feature: 新增设置角色菜单配置

This commit is contained in:
anyanfei 2022-03-24 09:42:47 +08:00
parent 7c658e26c0
commit b392dd51af
3 changed files with 67 additions and 4 deletions

View File

@ -8,11 +8,13 @@ package adminController
import (
"context"
"github.com/gogf/gf/v2/util/gconv"
"github.com/bufanyun/hotgo/app/com"
"github.com/bufanyun/hotgo/app/form/adminForm"
"github.com/bufanyun/hotgo/app/form/input"
"github.com/bufanyun/hotgo/app/service/adminService"
"github.com/gogf/gf/v2/util/gconv"
)
// 角色
@ -94,3 +96,20 @@ func (controller *role) Dynamic(ctx context.Context, req *adminForm.RoleDynamicR
}
return res, nil
}
//
//  @Title  修改角色菜单权限
//  @Description
//  @Author  Ms <133814250@qq.com>
//  @Param   ctx
//  @Param   req
//  @Return  res
//  @Return  err
//
func (controller *role) Edit(ctx context.Context, req *adminForm.RoleMenuEditReq) (res *adminForm.RoleMenuEditRes, err error) {
err = adminService.Role.EditRoleMenu(ctx, req)
if err != nil {
return nil, err
}
return res, nil
}

View File

@ -7,9 +7,10 @@
package adminForm
import (
"github.com/gogf/gf/v2/frame/g"
"github.com/bufanyun/hotgo/app/form"
"github.com/bufanyun/hotgo/app/form/input"
"github.com/gogf/gf/v2/frame/g"
)
// 查询列表
@ -87,3 +88,11 @@ type RoleDynamicMenu struct {
}
type RoleDynamicRes []*RoleDynamicMenu
type RoleMenuEditReq struct {
g.Meta `path:"/role/edit" method:"post" tags:"角色" summary:"编辑角色菜单权限"`
RoleId int64 `json:"id"`
MenuIds []int64 `json:"menuIds"`
}
type RoleMenuEditRes struct{}

View File

@ -8,13 +8,17 @@ package adminService
import (
"context"
"github.com/gogf/gf/v2/database/gdb"
"github.com/gogf/gf/v2/errors/gerror"
"github.com/gogf/gf/v2/frame/g"
"github.com/bufanyun/hotgo/app/consts"
"github.com/bufanyun/hotgo/app/form/adminForm"
"github.com/bufanyun/hotgo/app/form/input"
"github.com/bufanyun/hotgo/app/service/internal/dao"
"github.com/bufanyun/hotgo/app/service/internal/dto"
"github.com/bufanyun/hotgo/app/utils"
"github.com/gogf/gf/v2/errors/gerror"
"github.com/gogf/gf/v2/frame/g"
)
var Role = new(role)
@ -128,3 +132,34 @@ func (service *role) GetMemberList(ctx context.Context, RoleId int64) (list []*i
return list, err
}
//
//  @Title  更改角色菜单权限
//  @Description
//  @Author  Ms <133814250@qq.com>
//  @Param   ctx
//  @Param   req
//  @Return  err
//
func (service *role) EditRoleMenu(ctx context.Context, reqInfo *adminForm.RoleMenuEditReq) error {
return dao.AdminRoleMenu.Transaction(ctx, func(ctx context.Context, tx *gdb.TX) (err error) {
_, err = dao.AdminRoleMenu.Ctx(ctx).Where("role_id", reqInfo.RoleId).Delete()
if err != nil {
err = gerror.Wrap(err, consts.ErrorORM)
return err
}
addMap := make(g.List, 0, len(reqInfo.MenuIds))
for _, v := range reqInfo.MenuIds {
addMap = append(addMap, g.Map{
"role_id": reqInfo.RoleId,
"menu_id": v,
})
}
_, err = dao.AdminRoleMenu.Ctx(ctx).Data(addMap).Insert()
if err != nil {
err = gerror.Wrap(err, consts.ErrorORM)
return err
}
return nil
})
}