annex_service.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. /*
  2. * @description:附件相关
  3. * @Author: Lanjianrong
  4. * @Date: 2020-12-04 16:13:32
  5. * @FilePath: \construction_management\services\annex_service.go
  6. */
  7. package services
  8. import (
  9. "fmt"
  10. "log"
  11. "time"
  12. "go.mod/comm"
  13. "go.mod/conf"
  14. "go.mod/models"
  15. "github.com/kataras/iris/v12"
  16. "go.mod/dao"
  17. "go.mod/datasource"
  18. "go.mod/web/viewmodels"
  19. )
  20. type AnnexService interface {
  21. ValidRule(ctx iris.Context) (viewmodels.Annex, error)
  22. ValidCreate(ctx iris.Context) (viewmodels.AnnexCreate, error)
  23. Create(uid int, dataType int, dataId int, list []viewmodels.AnnexList) error
  24. Delete(id int) error
  25. GetCounts(dataType int, dataId int) (int64, error)
  26. Get(dataType int, dataId int, pageNo int, pageSize int) ([]viewmodels.AnnexListView, int64)
  27. }
  28. // //返回service操作类
  29. type annexService struct {
  30. daoAnnex *dao.AnnexDao
  31. valideGet string
  32. // validDetail string
  33. }
  34. // 创建项目用户service
  35. func NewAnnexService() AnnexService {
  36. return &annexService{
  37. valideGet: "/api/file",
  38. daoAnnex: dao.NewAnnexDao(datasource.InstanceDbMaster()),
  39. }
  40. }
  41. // 附件列表
  42. func (s *annexService) Get(dataType int, dataId int, pageNo int, pageSize int) ([]viewmodels.AnnexListView, int64) {
  43. fileData := make([]viewmodels.AnnexListView, 0)
  44. list, total := s.daoAnnex.GetList(dataType, dataId, pageNo, pageSize)
  45. for _, item := range list {
  46. annexVM := viewmodels.AnnexListView{}
  47. uid, _ := comm.AesEncrypt(item.AccountId, conf.SignSecret)
  48. annexVM.AccountId = uid
  49. id, _ := comm.AesEncrypt(item.Id, conf.SignSecret)
  50. annexVM.Id = id
  51. annexVM.AccountName = item.AccountName
  52. annexVM.CreateTime = item.CreateTime
  53. annexVM.FileName = item.FileName
  54. annexVM.FilePath = item.FilePath
  55. fileData = append(fileData, annexVM)
  56. }
  57. return fileData, total
  58. }
  59. // 计算附件总数
  60. func (s *annexService) GetCounts(dataType int, dataId int) (int64, error) {
  61. count, err := s.daoAnnex.GetCount(dataType, dataId)
  62. return count, err
  63. }
  64. // 插入数据
  65. func (s *annexService) Create(uid int, dataType int, dataId int, list []viewmodels.AnnexList) error {
  66. fileData := make([]models.CmAnnex, 0)
  67. fmt.Println("-------------------------", list)
  68. for _, file := range list {
  69. fileVM := models.CmAnnex{}
  70. fileVM.DataType = dataType
  71. fileVM.DataId = dataId
  72. fileVM.AccountId = uid
  73. fileVM.Name = file.FileName
  74. fileVM.OssUrl = file.FilePath
  75. // fileVM.CreateTime = time.Unix(file.CreateTime, 0)
  76. // time, _ := time.Parse("2020-11-11 20:11:11", file.CreateTime)
  77. fileVM.CreateTime = file.CreateTime
  78. fileVM.UpdateTime = time.Now()
  79. // fmt.Println("------------------", file.CreateTime)
  80. fileData = append(fileData, fileVM)
  81. }
  82. fmt.Println("fileData", fileData)
  83. err := s.daoAnnex.InsertByList(fileData)
  84. return err
  85. }
  86. // 删除数据
  87. func (s *annexService) Delete(id int) error {
  88. err := s.daoAnnex.DeleteById(id)
  89. return err
  90. }
  91. // 规则校验
  92. func (s *annexService) ValidRule(ctx iris.Context) (viewmodels.Annex, error) {
  93. annexVaild := viewmodels.Annex{}
  94. if ctx.Method() == "GET" {
  95. err := ctx.ReadForm(&annexVaild)
  96. if err != nil {
  97. log.Println("safe-ValidRule-ReadForm转换异常, error=", err)
  98. return annexVaild, err
  99. }
  100. if ctx.Path() == s.valideGet {
  101. err = annexVaild.ValidateGet()
  102. }
  103. return annexVaild, err
  104. }
  105. return annexVaild, nil
  106. }
  107. func (s *annexService) ValidCreate(ctx iris.Context) (viewmodels.AnnexCreate, error) {
  108. annexVaild := viewmodels.AnnexCreate{}
  109. err := ctx.ReadJSON(&annexVaild)
  110. if err != nil {
  111. log.Println("safe-ValidRule-ReadJSON转换异常, error=", err)
  112. return annexVaild, err
  113. }
  114. return annexVaild, nil
  115. }