manager_service.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. /*
  2. * @description: 管理员数据处理
  3. * @Author: CP
  4. * @Date: 2020-08-20 17:08:38
  5. * @FilePath: \construction_management\services\manager_service.go
  6. */
  7. package services
  8. import (
  9. "errors"
  10. "fmt"
  11. "strconv"
  12. "go.mod/comm"
  13. "go.mod/conf"
  14. "go.mod/dao"
  15. "go.mod/datasource"
  16. "go.mod/models"
  17. "go.mod/web/viewmodels"
  18. )
  19. //定义管理员Service接口
  20. type ManagerService interface {
  21. GetAll() (dataList []viewmodels.Manager, total int64)
  22. CountAll() int64
  23. Get(id int) *viewmodels.Manager
  24. Update(data viewmodels.Manager, id int, groupId int) error
  25. Create(data *models.CmManager) error
  26. Enable(id int, canLogin int) error
  27. }
  28. //返回service操作类
  29. type managerService struct {
  30. dao *dao.ManagerDao
  31. }
  32. //创建管理员service
  33. func NewManagerService() ManagerService {
  34. return &managerService{
  35. dao: dao.NewManagerDao(datasource.InstanceDbMaster()),
  36. }
  37. }
  38. //实现getall接口
  39. func (s *managerService) GetAll() (data []viewmodels.Manager, total int64) {
  40. datalist := make([]viewmodels.Manager, 0)
  41. result, total := s.dao.GetAll()
  42. for _, item := range result {
  43. projectVM := makeManagerVM(&item)
  44. datalist = append(datalist, projectVM)
  45. }
  46. return datalist, total
  47. }
  48. func (s *managerService) CountAll() int64 {
  49. return s.dao.CountAll()
  50. }
  51. // 获得管理员详情
  52. func (s *managerService) Get(id int) *viewmodels.Manager {
  53. result := s.dao.Get(id)
  54. data := makeManagerVM(result)
  55. return &data
  56. }
  57. func (s *managerService) Update(data viewmodels.Manager, id int, groupId int) error {
  58. // 1.查询是否有该权限组
  59. groupDao := dao.NewGroupDao(datasource.InstanceDbMaster())
  60. groupData := groupDao.Get(groupId)
  61. if groupData.Id == 0 {
  62. return errors.New("未找到管理组")
  63. }
  64. updateData := models.CmManager{}
  65. updateData.Id = id
  66. updateData.GroupId = groupId
  67. updateData.IsAdmin = data.IsAdmin
  68. // 要填写字段名称必须要更新的字段
  69. if err := s.dao.Update(&updateData, []string{"group_id", "is_admin"}); err != nil {
  70. fmt.Println(err)
  71. return err
  72. }
  73. return nil
  74. }
  75. func (s *managerService) Enable(id int, canLogin int) error {
  76. Manager := models.CmManager{}
  77. Manager.Id = id
  78. Manager.CanLogin = canLogin
  79. // 要填写字段名称必须要更新的字段
  80. if err := s.dao.Update(&Manager, []string{"can_login"}); err != nil {
  81. fmt.Println(err)
  82. return err
  83. }
  84. return nil
  85. }
  86. func (s *managerService) Create(data *models.CmManager) error {
  87. return s.dao.Create(data)
  88. }
  89. // 构造视图层models
  90. func makeManagerVM(projectCM *models.CmManager) viewmodels.Manager {
  91. modelsVM := viewmodels.Manager{}
  92. id, _ := comm.AesEncrypt(strconv.Itoa(projectCM.Id), conf.SignSecret)
  93. groupId, _ := comm.AesEncrypt(strconv.Itoa(projectCM.GroupId), conf.SignSecret)
  94. modelsVM.Id = id
  95. modelsVM.Username = projectCM.Username
  96. modelsVM.Category = projectCM.Category
  97. modelsVM.GroupId = groupId
  98. modelsVM.IsAdmin = projectCM.IsAdmin
  99. modelsVM.RealName = projectCM.RealName
  100. modelsVM.Telephone = projectCM.Telephone
  101. modelsVM.LoginIp = projectCM.LoginIp
  102. modelsVM.CanLogin = projectCM.CanLogin
  103. modelsVM.Office = projectCM.Office
  104. modelsVM.Category = projectCM.Category
  105. if !projectCM.LastLogin.IsZero() {
  106. modelsVM.LastLogin = projectCM.LastLogin.Format(conf.SysTimeform)
  107. }
  108. if !projectCM.CreateTime.IsZero() {
  109. modelsVM.CreateTime = projectCM.CreateTime.Format(conf.SysTimeform)
  110. }
  111. return modelsVM
  112. }