wangzhibo
2026-07-16 bac4362a0b7726d38a23d38f0d7913f2c2bab262
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import { Provide } from '@midwayjs/core';
import { CoolController, BaseController } from '@cool-midway/core';
import { Context } from 'vm';
import { BaseSysRoleEntity } from '../../../entity/sys/role';
import { BaseSysRoleService } from '../../../service/sys/role';
 
/**
 * 系统角色
 */
@Provide()
@CoolController({
  api: ['add', 'delete', 'update', 'info', 'list', 'page'],
  entity: BaseSysRoleEntity,
  service: BaseSysRoleService,
  // 新增的时候插入当前用户ID
  insertParam: async (ctx: Context) => {
    return {
      userId: ctx.admin.userId,
    };
  },
  pageQueryOp: {
    keyWordLikeFields: ['a.name', 'a.label'],
    where: async (ctx: Context) => {
      const { userId, roleIds, username } = ctx.admin;
      return [
        // 超级管理员的角色不展示
        ['a.label != :label', { label: 'admin' }],
        // 如果不是超管,只能看到自己新建的或者自己有的角色
        [
          `(a.userId=:userId or a.id in (${roleIds.join(',')}))`,
          { userId },
          username !== 'admin',
        ],
      ];
    },
  },
})
export class BaseSysRoleController extends BaseController {}