123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- /*
- * @description: 管理员组
- * @Author: CP
- * @Date: 2021-06-01 14:56:44
- * @FilePath: \construction_management\services\group_service.go
- */
- package services
- import (
- "encoding/json"
- "errors"
- "fmt"
- "strconv"
- "time"
- "go.mod/comm"
- "go.mod/conf"
- "go.mod/dao"
- "go.mod/datasource"
- "go.mod/models"
- "go.mod/web/viewmodels"
- )
- //定义管理员Service接口
- type GroupService interface {
- GetAll() (dataList []viewmodels.Group, total int64)
- Add(dataVM viewmodels.Group) error
- Update(dataVM viewmodels.Group, id int) error
- Delete(id int) error
- }
- //返回service操作类
- type groupService struct {
- dao *dao.GroupDao
- }
- //创建管理员service
- func NewGroupService() GroupService {
- return &groupService{
- dao: dao.NewGroupDao(datasource.InstanceDbMaster()),
- }
- }
- //实现getall接口
- func (s *groupService) GetAll() (data []viewmodels.Group, total int64) {
- datalist := make([]viewmodels.Group, 0)
- result, total := s.dao.GetAll()
- for _, item := range result {
- projectVM := makeGroupVM(&item)
- datalist = append(datalist, projectVM)
- }
- return datalist, total
- }
- func (s *groupService) Add(dataVM viewmodels.Group) error {
- data := &models.CmGroup{}
- persission, err := json.Marshal(dataVM.Permission)
- if err != nil {
- return err
- }
- data.Permission = string(persission)
- data.Name = dataVM.Name
- data.Remark = dataVM.Remark
- data.CreateTime = time.Now()
- return s.dao.Add(data)
- }
- func (s *groupService) Update(dataVM viewmodels.Group, id int) error {
- persission, err := json.Marshal(dataVM.Permission)
- if err != nil {
- return err
- }
- updateData := models.CmGroup{}
- updateData.Id = id
- updateData.Name = dataVM.Name
- updateData.Permission = string(persission)
- // 要填写字段名称必须要更新的字段
- if err := s.dao.Update(&updateData, []string{"permission", "name"}); err != nil {
- fmt.Println(err)
- return err
- }
- return nil
- }
- //移除标段成员
- func (s *groupService) Delete(id int) error {
- // 1.检查权限组合法性
- groupData := s.dao.Get(id)
- if groupData.Id == 0 {
- return errors.New("添加的账号不合法")
- }
- // 2.权限组下是否有管理员
- managerDao := dao.NewManagerDao(datasource.InstanceDbMaster())
- managerList := managerDao.GetGroupId(id)
- if len(managerList) != 0 {
- return errors.New("权限组下还有管理员")
- }
- // 删除权限组
- data := models.CmGroup{}
- data.Id = id
- err := s.dao.Delete(&data)
- if err != nil {
- return err
- }
- return nil
- }
- // 构造视图层models
- func makeGroupVM(projectCM *models.CmGroup) viewmodels.Group {
- modelsVM := viewmodels.Group{}
- permission := []string{}
- id, _ := comm.AesEncrypt(strconv.Itoa(projectCM.Id), conf.SignSecret)
- // userId, _ := comm.AesEncrypt(strconv.Itoa(projectCM.UserId), conf.SignSecret)
- modelsVM.Id = id
- modelsVM.Name = projectCM.Name
- modelsVM.Remark = projectCM.Remark
- json.Unmarshal([]byte(projectCM.Permission), &permission)
- modelsVM.Permission = permission
- if !projectCM.CreateTime.IsZero() {
- modelsVM.CreateTime = projectCM.CreateTime.Format(conf.SysTimeform)
- }
- return modelsVM
- }
|