1
This commit is contained in:
@@ -2,6 +2,7 @@ package service
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"blazing/cool"
|
||||
|
||||
@@ -45,8 +46,10 @@ func (s *BaseSysMenuService) GetPerms(roleIds []string) []string {
|
||||
func (s *BaseSysMenuService) GetMenus(roleIds []string, isAdmin bool) (result gdb.Result) {
|
||||
// 屏蔽 base_sys_role_menu.id 防止部分权限的用户登录时菜单渲染错误
|
||||
m := cool.DBM(s.Model).As("a").Fields("a.*")
|
||||
var err error
|
||||
if isAdmin {
|
||||
result, _ = m.Group("a.id").Order("a.orderNum asc").All()
|
||||
result, err = m.Group("a.id").Order("a.orderNum", "asc").All()
|
||||
fmt.Println(err)
|
||||
} else {
|
||||
result, _ = m.InnerJoin("base_sys_role_menu b", "a.id=b.menuId").Where("b.roleId IN (?)", roleIds).Group("a.id").Order("a.orderNum asc").All()
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ func (c *BaseSysPermsService) Permmenu(ctx context.Context, roleIds []string) (r
|
||||
|
||||
res = &permmenu{
|
||||
Perms: baseSysMenuService.GetPerms(roleIds),
|
||||
Menus: baseSysMenuService.GetMenus(admin.RoleIds, admin.UserId == 1),
|
||||
Menus: baseSysMenuService.GetMenus(admin.RoleIds, admin.UserId == 10001),
|
||||
}
|
||||
|
||||
return
|
||||
|
||||
@@ -75,7 +75,7 @@ func (s *BaseSysRoleService) GetByUser(userId uint) []string {
|
||||
var (
|
||||
roles []string
|
||||
)
|
||||
res, _ := cool.DBM(baseSysUserRole).Where("userId = ?", userId).Array("roleId")
|
||||
res, _ := cool.DBM(baseSysUserRole).Where("userId", userId).Array("roleId")
|
||||
for _, v := range res {
|
||||
roles = append(roles, gconv.String(v))
|
||||
}
|
||||
|
||||
@@ -214,35 +214,38 @@ func NewBaseSysUserService() *BaseSysUserService {
|
||||
"email": "邮箱不能重复",
|
||||
},
|
||||
PageQueryOp: &cool.QueryOp{
|
||||
Select: "base_sys_user.*,dept.`name` as departmentName,GROUP_CONCAT( role.`name` ) AS `roleName`",
|
||||
Select: `
|
||||
base_sys_user.*,
|
||||
dept.name AS departmentName,
|
||||
STRING_AGG(role.name, ', ') AS roleName`,
|
||||
Join: []*cool.JoinOp{
|
||||
{
|
||||
Model: model.NewBaseSysDepartment(),
|
||||
Alias: "dept",
|
||||
Type: "LeftJoin",
|
||||
Condition: "`base_sys_user`.`departmentId` = `dept`.`id`",
|
||||
Condition: `base_sys_user."departmentId" = dept.id`,
|
||||
},
|
||||
{
|
||||
Model: model.NewBaseSysUserRole(),
|
||||
Alias: "user_role",
|
||||
Type: "LeftJoin",
|
||||
Condition: "`base_sys_user`.`id` = `user_role`.`userId`",
|
||||
Condition: `base_sys_user.id = user_role."userId"`,
|
||||
},
|
||||
{
|
||||
Model: model.NewBaseSysRole(),
|
||||
Alias: "`role`",
|
||||
Alias: "role",
|
||||
Type: "LeftJoin",
|
||||
Condition: "`role`.`id` = `user_role`.`roleId`",
|
||||
Condition: `role.id = user_role."roleId"`,
|
||||
},
|
||||
},
|
||||
Where: func(ctx context.Context) []g.Array {
|
||||
r := g.RequestFromCtx(ctx).GetMap()
|
||||
return []g.Array{
|
||||
{"(departmentId IN (?))", gconv.SliceStr(r["departmentIds"])},
|
||||
{`("departmentId" IN (?))`, gconv.SliceStr(r["departmentIds"])},
|
||||
}
|
||||
},
|
||||
Extend: func(ctx g.Ctx, m *gdb.Model) *gdb.Model {
|
||||
return m.Group("`base_sys_user`.`id`")
|
||||
return m.Group(`base_sys_user.id`)
|
||||
},
|
||||
KeyWordField: []string{"name", "username", "nickName"},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user