safe_service.go 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. package services
  2. import (
  3. "fmt"
  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. daoSafeFile *dao.SafeFileDao
  26. daoProjectAccount *dao.ProjectAccountDao
  27. validDetail string
  28. }
  29. //创建项目用户service
  30. func NewSafeService() SafeService {
  31. return &safeService{
  32. validDetail: "/api/safe/detail",
  33. daoSafe: dao.NewSafeDao(datasource.InstanceDbMaster()),
  34. daoSafeAudit: dao.NewSafeAuditDao(datasource.InstanceDbMaster()),
  35. daoSafeFile: dao.NewSafeFileDao(datasource.InstanceDbMaster()),
  36. daoProjectAccount: dao.NewProjectAccountDao(datasource.InstanceDbMaster()),
  37. }
  38. }
  39. func (s *safeService) Get(id int, pid int) []viewmodels.SafeList {
  40. datalist := s.daoSafe.GetListByBid(id)
  41. safeList := make([]viewmodels.SafeList, 0)
  42. for _, item := range datalist {
  43. safeVM := viewmodels.SafeList{}
  44. safeVM.Code = item.Code
  45. account := s.daoProjectAccount.Get(item.Uid, pid)
  46. safeVM.AuditName = account.Name
  47. safeVM.CreateTime = item.CreateTime.Format(conf.SysTimeform)
  48. safeVM.Demand = item.Demand
  49. id, _ := comm.AesEncrypt(strconv.Itoa(item.Id), conf.SignSecret)
  50. safeVM.Id = id
  51. safeVM.Inspection = item.Inspection
  52. safeVM.InspectionDetail = item.InspectionDetail
  53. safeVM.Position = item.Position
  54. safeVM.Status = item.Status
  55. safeVM.FileCounts = s.daoSafeFile.GetCount(item.Id)
  56. safeList = append(safeList, safeVM)
  57. }
  58. return safeList
  59. }
  60. // post请求,插入单条数据
  61. func (s *safeService) Post(data models.CmSafe) error {
  62. Inserted, err := s.daoSafe.InsertRecord(data)
  63. if Inserted == true {
  64. return nil
  65. }
  66. return err
  67. }
  68. // delete请求,删除数据
  69. func (s *safeService) Del(id int) error {
  70. Deleted, err := s.daoSafe.DeleteRecord(id)
  71. if Deleted == true {
  72. return nil
  73. }
  74. return err
  75. }
  76. // 详情页数据拼装
  77. func (s *safeService) GetDetail(id int, pid int) viewmodels.SafeDetail {
  78. safeData := s.daoSafe.FindById(id)
  79. fmt.Println(safeData)
  80. safeId, _ := comm.AesEncrypt(strconv.Itoa(safeData.Id), conf.SignSecret)
  81. bid, _ := comm.AesEncrypt(strconv.Itoa(safeData.BidsectionId), conf.SignSecret)
  82. data := viewmodels.SafeDetail{}
  83. data.Id = string(safeId)
  84. data.BidsectionId = string(bid)
  85. data.Code = safeData.Code
  86. data.Inspection = safeData.Inspection
  87. data.InspectionDetail = safeData.InspectionDetail
  88. data.Demand = safeData.Demand
  89. account := s.daoProjectAccount.Get(safeData.Uid, pid)
  90. data.AuditName = account.Name
  91. data.CreateTime = safeData.CreateTime.Format(conf.SysTimeform)
  92. data.FileList = s.daoSafeFile.GetListBySid(safeData.Id)
  93. auditors := s.daoSafeAudit.GetAuditors(safeData.Id, safeData.Times, account.Id)
  94. data.Auditors = auditors
  95. return data
  96. }
  97. func (s *safeService) ValidRule(ctx iris.Context) (viewmodels.Safe, error) {
  98. safeVaild := viewmodels.Safe{}
  99. if ctx.Method() == "GET" {
  100. err := ctx.ReadForm(&safeVaild)
  101. if err != nil {
  102. log.Println("safe-ValidRule-ReadForm转换异常, error=", err)
  103. return safeVaild, err
  104. }
  105. if ctx.Path() == s.validDetail {
  106. // 一样要传id,所以用delete的方法判断
  107. err = safeVaild.ValidateDelete()
  108. } else {
  109. err = safeVaild.ValidateList()
  110. }
  111. }
  112. if ctx.Method() == "POST" {
  113. err := ctx.ReadJSON(&safeVaild)
  114. if err != nil {
  115. log.Println("safe-ValidRule-ReadJson转换异常, error=", err)
  116. return safeVaild, err
  117. }
  118. err = safeVaild.ValidateCreate()
  119. }
  120. if ctx.Method() == "PUT" {
  121. err := ctx.ReadForm(&safeVaild)
  122. if err != nil {
  123. log.Println("safe-ValidRule-ReadForm转换异常, error=", err)
  124. return safeVaild, err
  125. }
  126. err = safeVaild.ValidateDelete()
  127. }
  128. return safeVaild, nil
  129. }