manager_service.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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. "strconv"
  10. "go.mod/comm"
  11. "go.mod/conf"
  12. "go.mod/dao"
  13. "go.mod/datasource"
  14. "go.mod/models"
  15. "go.mod/web/viewmodels"
  16. )
  17. //定义管理员Service接口
  18. type ManagerService interface {
  19. GetAll() (dataList []viewmodels.Manager, total int64)
  20. CountAll() int64
  21. Get(id int) *viewmodels.Manager
  22. Update(data *models.CmManager, columns []string) error
  23. Create(data *models.CmManager) error
  24. Enable(id int, canLogin int) error
  25. }
  26. //返回service操作类
  27. type managerService struct {
  28. dao *dao.ManagerDao
  29. }
  30. //创建管理员service
  31. func NewManagerService() ManagerService {
  32. return &managerService{
  33. dao: dao.NewManagerDao(datasource.InstanceDbMaster()),
  34. }
  35. }
  36. //实现getall接口
  37. func (s *managerService) GetAll() (dataList []viewmodels.Manager, total int64) {
  38. datalist := make([]viewmodels.Manager, 0)
  39. result, total := s.dao.GetAll()
  40. for _, item := range result {
  41. projectVM := makeManagerVM(&item)
  42. datalist = append(datalist, projectVM)
  43. }
  44. return dataList, total
  45. }
  46. func (s *managerService) CountAll() int64 {
  47. return s.dao.CountAll()
  48. }
  49. // 获得管理员详情
  50. func (s *managerService) Get(id int) *viewmodels.Manager {
  51. result := s.dao.Get(id)
  52. data := makeManagerVM(result)
  53. return &data
  54. }
  55. func (s *managerService) Enable(id int, canLogin int) error {
  56. Manager := models.CmManager{}
  57. Manager.Id = id
  58. Manager.CanLogin = canLogin
  59. err := s.dao.Update(&Manager, []string{"CanLogin"})
  60. return err
  61. }
  62. func (s *managerService) Update(data *models.CmManager, columns []string) error {
  63. return s.dao.Update(data, columns)
  64. }
  65. func (s *managerService) Create(data *models.CmManager) error {
  66. return s.dao.Create(data)
  67. }
  68. // 构造视图层models
  69. func makeManagerVM(projectCM *models.CmManager) viewmodels.Manager {
  70. modelsVM := viewmodels.Manager{}
  71. id, _ := comm.AesEncrypt(strconv.Itoa(projectCM.Id), conf.SignSecret)
  72. // userId, _ := comm.AesEncrypt(strconv.Itoa(projectCM.UserId), conf.SignSecret)
  73. modelsVM.Id = id
  74. modelsVM.Username = projectCM.Username
  75. modelsVM.Category = projectCM.Category
  76. modelsVM.GroupId = projectCM.GroupId
  77. modelsVM.RealName = projectCM.RealName
  78. modelsVM.Telephone = projectCM.Telephone
  79. modelsVM.LoginIp = projectCM.LoginIp
  80. modelsVM.CanLogin = projectCM.CanLogin
  81. modelsVM.Office = projectCM.Office
  82. modelsVM.Category = projectCM.Category
  83. if !projectCM.LastLogin.IsZero() {
  84. modelsVM.LastLogin = projectCM.LastLogin.Format(conf.SysTimeform)
  85. }
  86. if !projectCM.CreateTime.IsZero() {
  87. modelsVM.CreateTime = projectCM.CreateTime.Format(conf.SysTimeform)
  88. }
  89. return modelsVM
  90. }