123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- package service
- // AdminRole 后台角色
- var AdminRole = new(sAdminRole)
- type sAdminRole struct{}
- //func (s *sAdminRole) List(ctx *gin.Context, req forms.AdminRoleListReq) serializer.Response {
- // var (
- // q = query.Use(config.AdminDB).AdminRole
- // m = q.WithContext(ctx)
- // mq = query.Use(config.AdminDB).AdminRoleMenu
- // pq = query.Use(config.AdminDB).AdminRolePermission
- // offset int64 = 0
- // models forms.UserAccountListRes
- // lists []*forms.AdminRoleListModel
- // )
- //
- // m = m.Order(q.Sort).Order(q.ID.Desc())
- //
- // req.Page, req.PerPage, offset = forms.CalculatePage(req.Page, req.PerPage)
- //
- // count, err := m.Count()
- // if err != nil {
- // return serializer.Err(consts.CodeParamErr, "查询出错 count", err)
- // }
- //
- // if count > 0 {
- // if err = m.Limit(int(req.PerPage)).Offset(int(offset)).Scan(&lists); err != nil {
- // return serializer.Err(consts.CodeParamErr, "查询出错 lists", err)
- // }
- // }
- //
- // for _, v := range lists {
- // if err := json.Unmarshal([]byte(cast.ToString(v.Systems)), &v.Systems); err != nil {
- // return serializer.Err(consts.CodeParamErr, "格式化出错 Systems", err)
- // }
- //
- // permissionsModels, err := pq.Where(pq.RoleID.Eq(int32(v.ID))).Find()
- // if err != nil {
- // return serializer.Err(consts.CodeParamErr, "查询出错 permissionsModels", err)
- // }
- // permissionsMap := make(map[int32][]int32)
- // for _, item := range permissionsModels {
- // if _, ok := permissionsMap[item.SystemID]; ok {
- // permissionsMap[item.SystemID] = append(permissionsMap[item.SystemID], item.PermissionID)
- // } else {
- // permissionsMap[item.SystemID] = []int32{item.PermissionID}
- // }
- // }
- // v.Permissions = permissionsMap
- //
- // pagesModels, err := mq.Where(mq.RoleID.Eq(int32(v.ID))).Find()
- // if err != nil {
- // return serializer.Err(consts.CodeParamErr, "查询出错 pagesModels", err)
- // }
- // pagesMap := make(map[int32][]int32)
- // for _, item := range pagesModels {
- // if _, ok := pagesMap[item.SystemID]; ok {
- // pagesMap[item.SystemID] = append(pagesMap[item.SystemID], item.PageID)
- // } else {
- // pagesMap[item.SystemID] = []int32{item.PageID}
- // }
- // }
- // v.Pages = pagesMap
- // }
- //
- // models.List = lists
- // models.Page = req.Page
- // models.PerPage = req.PerPage
- // models.PageCount = (count + req.PerPage - 1) / req.PerPage
- //
- // return serializer.Suc(models)
- //}
- //func (s *sAdminRole) Edit(ctx *gin.Context, req forms.AdminRoleEditReq) serializer.Response {
- //
- // q := query.Use(config.AdminDB).AdminRole
- // mq := query.Use(config.AdminDB).AdminRoleMenu
- // pq := query.Use(config.AdminDB).AdminRolePermission
- // uq := query.Use(config.AdminDB).AdminUser
- //
- // logrus.Warnf("req:%+v", req)
- //
- // menusModel := make([]*model.AdminRoleMenu, 0)
- // for sysId, menus := range req.Pages {
- // for _, menu := range menus {
- // menusModel = append(menusModel, &model.AdminRoleMenu{
- // SystemID: sysId,
- // RoleID: int32(req.ID),
- // PageID: menu,
- // })
- // }
- // }
- // permissionsModel := make([]*model.AdminRolePermission, 0)
- // for sysId, permissions := range req.Permissions {
- // for _, id := range permissions {
- // permissionsModel = append(permissionsModel, &model.AdminRolePermission{
- // SystemID: sysId,
- // RoleID: int32(req.ID),
- // PermissionID: id,
- // })
- // }
- // }
- //
- // systems, err := json.Marshal(req.Systems)
- // if err != nil {
- // return serializer.Err(consts.CodeParamErr, "格式化出错 Systems:", err)
- // }
- // // 修改
- // if req.ID > 0 {
- // update := &model.AdminRole{
- // Name: req.Name,
- // Key: req.Key,
- // Sort: req.Sort,
- // Remark: req.Remark,
- // Status: req.Status,
- // Systems: string(systems),
- // UpdatedAt: time.Now(),
- // }
- // queryTx := query.Use(config.AdminDB).Begin()
- // _, err := queryTx.AdminRole.Where(q.ID.Eq(req.ID)).Updates(update)
- // if err != nil {
- // queryTx.Rollback()
- // return serializer.Err(consts.CodeDBError, "更新出错", err)
- // }
- // // 删除旧的菜单权限
- // if _, err := queryTx.AdminRoleMenu.Where(mq.RoleID.Eq(int32(req.ID))).Delete(); err != nil {
- // queryTx.Rollback()
- // return serializer.Err(consts.CodeDBError, "更新出错", err)
- // }
- // // 插入新的菜单权限
- // if err := queryTx.AdminRoleMenu.Create(menusModel...); err != nil {
- // queryTx.Rollback()
- // return serializer.Err(consts.CodeDBError, "更新出错", err)
- // }
- // // 删除旧的操作权限
- // if _, err := queryTx.AdminRolePermission.Where(pq.RoleID.Eq(int32(req.ID))).Delete(); err != nil {
- // queryTx.Rollback()
- // return serializer.Err(consts.CodeDBError, "更新出错", err)
- // }
- // // 插入新的操作权限
- // if err := queryTx.AdminRolePermission.Create(permissionsModel...); err != nil {
- // queryTx.Rollback()
- // return serializer.Err(consts.CodeDBError, "更新出错", err)
- // }
- // queryTx.Commit()
- // // 查询该角色下的用户,清空token
- // users, _ := query.Use(config.AdminDB).AdminUser.Where(uq.RoleID.Eq(int32(req.ID))).Find()
- // for _, user := range users {
- // config.TokenRedis.Del(config.GetUserTokenKey(user.ID))
- // }
- // return serializer.Suc(nil)
- // }
- //
- // // 新增
- // create := &model.AdminRole{
- // Name: req.Name,
- // Key: req.Key,
- // Sort: req.Sort,
- // Systems: string(systems),
- // Remark: req.Remark,
- // Status: req.Status,
- // UpdatedAt: time.Now(),
- // CreatedAt: time.Now(),
- // }
- // queryTx := query.Use(config.AdminDB).Begin()
- // if err := queryTx.AdminRole.WithContext(ctx).Create(create); err != nil {
- // logrus.Error(err)
- // queryTx.Rollback()
- // return serializer.Err(consts.CodeDBError, "更新出错", err)
- // }
- // // 插入新的菜单权限
- // for _, item := range menusModel {
- // item.RoleID = int32(create.ID)
- // }
- // if err := queryTx.AdminRoleMenu.Create(menusModel...); err != nil {
- // logrus.Error(err)
- // queryTx.Rollback()
- // return serializer.Err(consts.CodeDBError, "更新出错", err)
- // }
- //
- // // 插入新的操作权限
- // for _, item := range permissionsModel {
- // item.RoleID = int32(create.ID)
- // }
- // if err := queryTx.AdminRolePermission.Create(permissionsModel...); err != nil {
- // logrus.Error(err)
- // queryTx.Rollback()
- // return serializer.Err(consts.CodeDBError, "更新出错", err)
- // }
- // queryTx.Commit()
- // return serializer.Suc(nil)
- //}
- //func (s *sAdminRole) GetRole(ctx *gin.Context, req forms.AdminRoleReq) (*model.AdminRole, error) {
- // var (
- // q = query.Use(config.AdminDB).AdminRole
- // m = q.WithContext(ctx)
- // )
- // result, err := m.Where(q.ID.Eq(req.ID)).First()
- // if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
- // return nil, err
- // }
- // return result, nil
- //}
- //func (s *sAdminRole) GetAllSystem() ([]*model.AdminSystem, error) {
- // var (
- // q = query.Use(config.AdminDB).AdminSystem
- // )
- // systems, err := q.Find()
- // if err != nil {
- // logrus.Error(err)
- // }
- // return systems, nil
- //}
|