bid_account_service.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. /*
  2. * @description:标段账号相关数据操作
  3. * @Author: CP
  4. * @Date: 2020-10-22 16:13:32
  5. * @FilePath: \construction_management\services\bid_account_service.go
  6. */
  7. package services
  8. import (
  9. "errors"
  10. "log"
  11. "github.com/kataras/iris/v12"
  12. "go.mod/dao"
  13. "go.mod/datasource"
  14. "go.mod/web/utils"
  15. "go.mod/web/viewmodels"
  16. )
  17. //定义项目用户Service接口
  18. type BidAccountService interface {
  19. ValidRule(ctx iris.Context) (viewmodels.BidAccount, error)
  20. Create(viewBidAccount viewmodels.BidAccount, projectId int) error
  21. Delete(viewBidAccount viewmodels.BidAccount, projectId int) error
  22. }
  23. //返回service操作类
  24. type bidAccountService struct {
  25. projectAccountDao *dao.ProjectAccountDao
  26. projectDao *dao.ProjectDao
  27. bidsectionDao *dao.BidsectionDao
  28. treeDao *dao.TreeDao
  29. bidAccountDao *dao.BidAccountDao
  30. }
  31. //创建项目用户service
  32. func NewBidAccountService() BidAccountService {
  33. return &bidAccountService{
  34. projectAccountDao: dao.NewProjectAccountDao(datasource.InstanceDbMaster()),
  35. projectDao: dao.NewProjectDao(datasource.InstanceDbMaster()),
  36. bidsectionDao: dao.NewBidsectionDao(datasource.InstanceDbMaster()),
  37. treeDao: dao.NewTreeDao(datasource.InstanceDbMaster()),
  38. bidAccountDao: dao.NewBidAccountDao(datasource.InstanceDbMaster()),
  39. }
  40. }
  41. // 登陆验证
  42. func (s *bidAccountService) ValidRule(ctx iris.Context) (viewmodels.BidAccount, error) {
  43. bidAccountVaild := viewmodels.BidAccount{}
  44. err := ctx.ReadJSON(&bidAccountVaild)
  45. if err != nil {
  46. log.Println("ReadForm转换异常, error=", err)
  47. return bidAccountVaild, err
  48. }
  49. err = bidAccountVaild.Validate()
  50. if err != nil {
  51. log.Println("登录验证, error=", err)
  52. return bidAccountVaild, err
  53. }
  54. return bidAccountVaild, nil
  55. }
  56. // 新增标段于账号的关系
  57. func (s *bidAccountService) Create(viewBidAccount viewmodels.BidAccount, projectId int) error {
  58. // 写入关系表-标段的成员数量-账号表中标段ID
  59. // 1.检查账号合法性
  60. accountId, err := utils.GetDecryptId(viewBidAccount.AccountId)
  61. if err != nil {
  62. return err
  63. }
  64. accountData := s.projectAccountDao.Get(accountId, projectId)
  65. if accountData.Id == 0 {
  66. return errors.New("添加的账号不合法")
  67. }
  68. // 2.检查标段合法性
  69. bidsectionId, err := utils.GetDecryptId(viewBidAccount.BidsectionId)
  70. if err != nil {
  71. return err
  72. }
  73. bidsection := s.bidsectionDao.Get(bidsectionId, projectId)
  74. if bidsection.Id == 0 {
  75. return errors.New("标段不合法")
  76. }
  77. // 3.检查目录的合法性
  78. // 3-1标段ID,,项目ID
  79. treeData := s.treeDao.GetBidParentId(bidsectionId, projectId)
  80. // 3-2获得目录ID
  81. if treeData.Id == 0 {
  82. return errors.New("目录不合法")
  83. }
  84. treeId := treeData.Id
  85. // treeId, err := utils.GetDecryptId(viewBidAccount.FolderId)
  86. // if err != nil {
  87. // return err
  88. // }
  89. // treeData := s.treeDao.Get(treeId, projectId)
  90. // if treeData.Id == 0 {
  91. // return errors.New("目录不合法")
  92. // }
  93. // 新增成员到标段
  94. err = s.bidAccountDao.Create(bidsectionId, accountData, treeId, projectId)
  95. if err != nil {
  96. return err
  97. }
  98. return nil
  99. }
  100. //移除标段成员
  101. func (s *bidAccountService) Delete(viewBidAccount viewmodels.BidAccount, projectId int) error {
  102. // 1.检查账号合法性
  103. accountId, err := utils.GetDecryptId(viewBidAccount.AccountId)
  104. if err != nil {
  105. return err
  106. }
  107. accountData := s.projectAccountDao.Get(accountId, projectId)
  108. if accountData.Id == 0 {
  109. return errors.New("添加的账号不合法")
  110. }
  111. // 2.检查标段合法性
  112. bidsectionId, err := utils.GetDecryptId(viewBidAccount.BidsectionId)
  113. if err != nil {
  114. return err
  115. }
  116. bidsection := s.bidsectionDao.Get(bidsectionId, projectId)
  117. if bidsection.Id == 0 {
  118. return errors.New("标段不合法")
  119. }
  120. // 3.检查目录的合法性
  121. // 3-1标段ID,,项目ID
  122. treeData := s.treeDao.GetBidParentId(bidsectionId, projectId)
  123. // 3-2获得目录ID
  124. if treeData.Id == 0 {
  125. return errors.New("目录不合法")
  126. }
  127. treeId := treeData.Id
  128. // 删除成员到标段
  129. err = s.bidAccountDao.Delete(bidsectionId, accountData, treeId, projectId)
  130. if err != nil {
  131. return err
  132. }
  133. return nil
  134. }