safe_service.go 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. package services
  2. import (
  3. "errors"
  4. "fmt"
  5. "log"
  6. "strconv"
  7. "github.com/kataras/iris/v12"
  8. "go.mod/comm"
  9. "go.mod/conf"
  10. "go.mod/dao"
  11. "go.mod/datasource"
  12. "go.mod/models"
  13. "go.mod/web/viewmodels"
  14. )
  15. type SafeService interface {
  16. Get(id int, pid int) []viewmodels.SafeList
  17. Post(data models.CmSafe) error
  18. Del(id int) error
  19. GetDetail(id int, pid int) viewmodels.SafeDetail
  20. ValidRule(ctx iris.Context) (viewmodels.Safe, error)
  21. }
  22. // //返回service操作类
  23. type safeService struct {
  24. daoSafe *dao.SafeDao
  25. daoSafeAudit *dao.SafeAuditDao
  26. daoSafeFile *dao.SafeFileDao
  27. daoProjectAccount *dao.ProjectAccountDao
  28. daoRule *dao.RuleDao
  29. validDetail string
  30. }
  31. //创建项目用户service
  32. func NewSafeService() SafeService {
  33. return &safeService{
  34. validDetail: "/api/safe/detail",
  35. daoSafe: dao.NewSafeDao(datasource.InstanceDbMaster()),
  36. daoSafeAudit: dao.NewSafeAuditDao(datasource.InstanceDbMaster()),
  37. daoSafeFile: dao.NewSafeFileDao(datasource.InstanceDbMaster()),
  38. daoProjectAccount: dao.NewProjectAccountDao(datasource.InstanceDbMaster()),
  39. }
  40. }
  41. func (s *safeService) Get(id int, pid int) []viewmodels.SafeList {
  42. datalist := s.daoSafe.GetListByBid(id)
  43. safeList := make([]viewmodels.SafeList, 0)
  44. for _, item := range datalist {
  45. safeVM := viewmodels.SafeList{}
  46. safeVM.Code = item.Code
  47. account := s.daoProjectAccount.Get(item.Uid, pid)
  48. safeVM.AuditName = account.Name
  49. safeVM.CreateTime = item.CreateTime.Format(conf.SysTimeform)
  50. safeVM.Demand = item.Demand
  51. id, _ := comm.AesEncrypt(strconv.Itoa(item.Id), conf.SignSecret)
  52. safeVM.Id = id
  53. safeVM.Inspection = item.Inspection
  54. safeVM.InspectionDetail = item.InspectionDetail
  55. safeVM.Position = item.Position
  56. safeVM.Status = item.Status
  57. safeVM.FileCounts = s.daoSafeFile.GetCount(item.Id)
  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.Format(conf.SysTimeform)
  98. data.FileList = s.daoSafeFile.GetListBySid(safeData.Id)
  99. auditors := s.daoSafeAudit.GetAuditors(safeData.Id, safeData.Times, account.Id)
  100. data.Auditors = auditors
  101. return data
  102. }
  103. func (s *safeService) ValidRule(ctx iris.Context) (viewmodels.Safe, error) {
  104. safeVaild := viewmodels.Safe{}
  105. fmt.Println("---------------------------safeVaild", safeVaild)
  106. if ctx.Method() == "GET" {
  107. err := ctx.ReadForm(&safeVaild)
  108. if err != nil {
  109. log.Println("safe-ValidRule-ReadForm转换异常, error=", err)
  110. return safeVaild, err
  111. }
  112. if ctx.Path() == s.validDetail {
  113. // 一样要传id,所以用delete的方法判断
  114. err = safeVaild.ValidateDelete()
  115. } else {
  116. err = safeVaild.ValidateList()
  117. }
  118. return safeVaild, err
  119. }
  120. if ctx.Method() == "POST" {
  121. err := ctx.ReadJSON(&safeVaild)
  122. if err != nil {
  123. log.Println("safe-ValidRule-ReadJson转换异常, error=", err)
  124. return safeVaild, err
  125. }
  126. err = safeVaild.ValidateCreate()
  127. return safeVaild, err
  128. }
  129. if ctx.Method() == "PUT" {
  130. err := ctx.ReadForm(&safeVaild)
  131. if err != nil {
  132. log.Println("safe-ValidRule-ReadForm转换异常, error=", err)
  133. return safeVaild, err
  134. }
  135. err = safeVaild.ValidateDelete()
  136. return safeVaild, err
  137. }
  138. return safeVaild, nil
  139. }