folder_service.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. /*
  2. * @description:层级文件夹数据操作相关
  3. * @Author: CP
  4. * @Date: 2020-09-11 14:43:58
  5. * @FilePath: \construction_management\services\folder_service.go
  6. */
  7. package services
  8. import (
  9. "log"
  10. "strconv"
  11. "time"
  12. "github.com/kataras/iris/v12"
  13. "go.mod/comm"
  14. "go.mod/conf"
  15. "go.mod/dao"
  16. "go.mod/datasource"
  17. "go.mod/models"
  18. "go.mod/web/viewmodels"
  19. )
  20. //定义项目Service接口
  21. type FoldertService interface {
  22. //ValidManager(code string, account string, password string) error
  23. ValidRule(ctx iris.Context) (viewmodels.Folder, error)
  24. Create(data viewmodels.Folder) error
  25. GetAllProject(int) []viewmodels.Folder
  26. }
  27. //返回service操作类
  28. type foldertService struct {
  29. dao *dao.FolderDao
  30. }
  31. //创建项目service
  32. func NewFoldertService() FoldertService {
  33. return &foldertService{
  34. dao: dao.NewFolderDao(datasource.InstanceDbMaster()),
  35. }
  36. }
  37. // 文件夹规则验证
  38. func (s *foldertService) ValidRule(ctx iris.Context) (viewmodels.Folder, error) {
  39. folderVaild := viewmodels.Folder{}
  40. err := ctx.ReadForm(&folderVaild)
  41. if err != nil {
  42. log.Println("folder-ValidRule-ReadForm转换异常, error=", err)
  43. return folderVaild, err
  44. }
  45. err = folderVaild.Validate()
  46. if err != nil {
  47. log.Println("文件夹验证, error=", err)
  48. return folderVaild, err
  49. }
  50. return folderVaild, nil
  51. }
  52. // 获得项目文件夹相关
  53. func (s *foldertService) GetAllProject(projectId int) []viewmodels.Folder {
  54. datalist := s.dao.GetAllProject(projectId)
  55. folderlist := make([]viewmodels.Folder, 0)
  56. for _, data := range datalist {
  57. folder := viewmodels.Folder{}
  58. //folder.Id = comm.Encrypt([]byte(conf.SignSecret), []byte(strconv.Itoa(data.Id)))
  59. id, _ := comm.AesEncrypt(strconv.Itoa(data.Id), conf.SignSecret)
  60. parentId, _ := comm.AesEncrypt(strconv.Itoa(data.ParentId), conf.SignSecret)
  61. projectId, _ := comm.AesEncrypt(strconv.Itoa(data.ProjectId), conf.SignSecret)
  62. folder.Id = id
  63. folder.Name = data.Name
  64. folder.ParentId = parentId
  65. folder.ProjectId = projectId
  66. folderlist = append(folderlist, folder)
  67. }
  68. return folderlist
  69. }
  70. // 新增一个文件夹
  71. func (s *foldertService) Create(data viewmodels.Folder) error {
  72. //now := comm.NowUnix()
  73. //comm.FormatFromUnixTime(now)
  74. folder := models.CmFolder{}
  75. folder.Name = data.Name
  76. ProjectId, err := strconv.Atoi(data.ProjectId)
  77. if err != nil {
  78. return err
  79. }
  80. ParentIdInt := 0
  81. if data.ParentId != "" {
  82. ParentId, err := comm.AesDecrypt(data.ParentId, conf.SignSecret)
  83. if err != nil {
  84. return err
  85. }
  86. ParentIdInt, err = strconv.Atoi(ParentId)
  87. if err != nil {
  88. ParentIdInt = 0
  89. }
  90. }
  91. folder.ProjectId = ProjectId
  92. folder.ParentId = ParentIdInt
  93. folder.CreateTime = time.Now()
  94. folder.UpdateTime = time.Now()
  95. err = s.dao.Create(&folder)
  96. if err != nil {
  97. return err
  98. }
  99. return nil
  100. }