safe_service.go 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package services
  2. import (
  3. "errors"
  4. "log"
  5. "strconv"
  6. "github.com/kataras/iris/v12"
  7. "go.mod/comm"
  8. "go.mod/conf"
  9. "go.mod/dao"
  10. "go.mod/datasource"
  11. "go.mod/models"
  12. "go.mod/web/viewmodels"
  13. )
  14. type SafeService interface {
  15. Get(id int, pid int) []viewmodels.SafeList
  16. Post(data models.CmSafe) error
  17. Del(id int) error
  18. GetDetail(id int, pid int) viewmodels.SafeDetail
  19. ValidRule(ctx iris.Context) (viewmodels.Safe, error)
  20. }
  21. // //返回service操作类
  22. type safeService struct {
  23. daoSafe *dao.SafeDao
  24. daoSafeAudit *dao.SafeAuditDao
  25. daoProjectAccount *dao.ProjectAccountDao
  26. daoAnnex *dao.AnnexDao
  27. daoRule *dao.RuleDao
  28. validDetail string
  29. }
  30. //创建项目用户service
  31. func NewSafeService() SafeService {
  32. return &safeService{
  33. validDetail: "/api/safe/detail",
  34. daoSafe: dao.NewSafeDao(datasource.InstanceDbMaster()),
  35. daoAnnex: dao.NewAnnexDao(datasource.InstanceDbMaster()),
  36. daoSafeAudit: dao.NewSafeAuditDao(datasource.InstanceDbMaster()),
  37. daoProjectAccount: dao.NewProjectAccountDao(datasource.InstanceDbMaster()),
  38. }
  39. }
  40. func (s *safeService) Get(id int, pid int) []viewmodels.SafeList {
  41. datalist := s.daoSafe.GetListByBid(id)
  42. safeList := make([]viewmodels.SafeList, 0)
  43. for _, item := range datalist {
  44. safeVM := viewmodels.SafeList{}
  45. safeVM.Code = item.Code
  46. account := s.daoProjectAccount.Get(item.Uid, pid)
  47. safeVM.AuditName = account.Name
  48. safeVM.CreateTime = item.CreateTime.Format(conf.SysTimeform)
  49. safeVM.Demand = item.Demand
  50. id, _ := comm.AesEncrypt(strconv.Itoa(item.Id), conf.SignSecret)
  51. safeVM.Id = id
  52. safeVM.Inspection = item.Inspection
  53. safeVM.InspectionDetail = item.InspectionDetail
  54. safeVM.Position = item.Position
  55. safeVM.Status = item.Status
  56. counts, _ := s.daoAnnex.GetCount(3, item.Id)
  57. safeVM.FileCounts = counts
  58. safeList = append(safeList, safeVM)
  59. }
  60. return safeList
  61. }
  62. // post请求,插入单条数据
  63. func (s *safeService) Post(data models.CmSafe) error {
  64. has := s.daoSafe.FindByCode(data.Code)
  65. if has {
  66. return errors.New("该编号已存在!")
  67. }
  68. Inserted, err := s.daoSafe.InsertRecord(data)
  69. if Inserted == true {
  70. return nil
  71. }
  72. return err
  73. }
  74. // delete请求,删除数据
  75. func (s *safeService) Del(id int) error {
  76. Deleted, err := s.daoSafe.DeleteRecord(id)
  77. if Deleted == true {
  78. return nil
  79. }
  80. return err
  81. }
  82. // 详情页数据拼装
  83. func (s *safeService) GetDetail(id int, pid int) viewmodels.SafeDetail {
  84. safeData := s.daoSafe.FindById(id)
  85. // fmt.Println(safeData)
  86. safeId, _ := comm.AesEncrypt(strconv.Itoa(safeData.Id), conf.SignSecret)
  87. bid, _ := comm.AesEncrypt(strconv.Itoa(safeData.BidsectionId), conf.SignSecret)
  88. data := viewmodels.SafeDetail{}
  89. data.Id = string(safeId)
  90. data.BidsectionId = string(bid)
  91. data.Code = safeData.Code
  92. data.Inspection = safeData.Inspection
  93. data.InspectionDetail = safeData.InspectionDetail
  94. data.Demand = safeData.Demand
  95. account := s.daoProjectAccount.Get(safeData.Uid, pid)
  96. data.AuditName = account.Name
  97. data.CreateTime = safeData.CreateTime
  98. data.FileList = s.daoAnnex.GetList(3, safeData.Id)
  99. auditors := s.daoSafeAudit.GetAuditors(safeData.Id, safeData.Times, account.Id)
  100. data.Auditors = auditors
  101. return data
  102. }
  103. // 规则校验
  104. func (s *safeService) ValidRule(ctx iris.Context) (viewmodels.Safe, error) {
  105. safeVaild := viewmodels.Safe{}
  106. // fmt.Println("---------------------------safeVaild", safeVaild)
  107. if ctx.Method() == "GET" {
  108. err := ctx.ReadForm(&safeVaild)
  109. if err != nil {
  110. log.Println("safe-ValidRule-ReadForm转换异常, error=", err)
  111. return safeVaild, err
  112. }
  113. if ctx.Path() == s.validDetail {
  114. // 一样要传id,所以用delete的方法判断
  115. err = safeVaild.ValidateDelete()
  116. } else {
  117. err = safeVaild.ValidateList()
  118. }
  119. return safeVaild, err
  120. }
  121. if ctx.Method() == "POST" {
  122. err := ctx.ReadJSON(&safeVaild)
  123. if err != nil {
  124. log.Println("safe-ValidRule-ReadJson转换异常, error=", err)
  125. return safeVaild, err
  126. }
  127. err = safeVaild.ValidateCreate()
  128. return safeVaild, err
  129. // if ctx.Path() == s.validCreate {
  130. // }
  131. // if ctx.Path() == s.validFile {
  132. // err = safeVaild.ValidateFile()
  133. // return safeVaild, err
  134. // }
  135. }
  136. if ctx.Method() == "PUT" {
  137. err := ctx.ReadForm(&safeVaild)
  138. if err != nil {
  139. log.Println("safe-ValidRule-ReadForm转换异常, error=", err)
  140. return safeVaild, err
  141. }
  142. err = safeVaild.ValidateDelete()
  143. return safeVaild, err
  144. }
  145. return safeVaild, nil
  146. }