group_service.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. /*
  2. * @description: 管理员组
  3. * @Author: CP
  4. * @Date: 2021-06-01 14:56:44
  5. * @FilePath: \construction_management\services\group_service.go
  6. */
  7. package services
  8. import (
  9. "encoding/json"
  10. "fmt"
  11. "strconv"
  12. "time"
  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 GroupService interface {
  22. GetAll() (dataList []viewmodels.Group, total int64)
  23. Add(dataVM viewmodels.Group) error
  24. Update(dataVM viewmodels.Group, id int) error
  25. }
  26. //返回service操作类
  27. type groupService struct {
  28. dao *dao.GroupDao
  29. }
  30. //创建管理员service
  31. func NewGroupService() GroupService {
  32. return &groupService{
  33. dao: dao.NewGroupDao(datasource.InstanceDbMaster()),
  34. }
  35. }
  36. //实现getall接口
  37. func (s *groupService) GetAll() (data []viewmodels.Group, total int64) {
  38. datalist := make([]viewmodels.Group, 0)
  39. result, total := s.dao.GetAll()
  40. for _, item := range result {
  41. projectVM := makeGroupVM(&item)
  42. datalist = append(datalist, projectVM)
  43. }
  44. return datalist, total
  45. }
  46. func (s *groupService) Add(dataVM viewmodels.Group) error {
  47. data := &models.CmGroup{}
  48. persission, err := json.Marshal(dataVM.Permission)
  49. if err != nil {
  50. return err
  51. }
  52. data.Permission = string(persission)
  53. data.Name = dataVM.Name
  54. data.Remark = dataVM.Remark
  55. data.CreateTime = time.Now()
  56. return s.dao.Add(data)
  57. }
  58. func (s *groupService) Update(dataVM viewmodels.Group, id int) error {
  59. updateData := models.CmGroup{}
  60. updateData.Id = id
  61. updateData.Name = dataVM.Name
  62. persission, err := json.Marshal(dataVM.Permission)
  63. if err != nil {
  64. return err
  65. }
  66. updateData.Permission = string(persission)
  67. // 要填写字段名称必须要更新的字段
  68. if err := s.dao.Update(&updateData, []string{"name", "persission"}); err != nil {
  69. fmt.Println(err)
  70. return err
  71. }
  72. return nil
  73. }
  74. // 构造视图层models
  75. func makeGroupVM(projectCM *models.CmGroup) viewmodels.Group {
  76. modelsVM := viewmodels.Group{}
  77. id, _ := comm.AesEncrypt(strconv.Itoa(projectCM.Id), conf.SignSecret)
  78. // userId, _ := comm.AesEncrypt(strconv.Itoa(projectCM.UserId), conf.SignSecret)
  79. modelsVM.Id = id
  80. modelsVM.Name = projectCM.Name
  81. modelsVM.Remark = projectCM.Remark
  82. if !projectCM.CreateTime.IsZero() {
  83. modelsVM.CreateTime = projectCM.CreateTime.Format(conf.SysTimeform)
  84. }
  85. return modelsVM
  86. }