mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-10-31 00:57:13 +08:00 
			
		
		
		
	refactor: 优化系统管理相关代码及初始菜单脚本
1.优化方法排序 2.优化前端模板 3.完善菜单
This commit is contained in:
		| @@ -36,6 +36,14 @@ import java.util.Set; | |||||||
|  */ |  */ | ||||||
| public interface RoleService extends BaseService<RoleResp, RoleDetailResp, RoleQuery, RoleReq>, IService<RoleDO> { | public interface RoleService extends BaseService<RoleResp, RoleDetailResp, RoleQuery, RoleReq>, IService<RoleDO> { | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 分配角色给用户 | ||||||
|  |      * | ||||||
|  |      * @param id      角色 ID | ||||||
|  |      * @param userIds 用户 ID 列表 | ||||||
|  |      */ | ||||||
|  |     void assignToUsers(Long id, List<Long> userIds); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 根据用户 ID 查询权限码 |      * 根据用户 ID 查询权限码 | ||||||
|      * |      * | ||||||
| @@ -91,12 +99,4 @@ public interface RoleService extends BaseService<RoleResp, RoleDetailResp, RoleQ | |||||||
|      * @return 角色数量 |      * @return 角色数量 | ||||||
|      */ |      */ | ||||||
|     int countByNames(List<String> roleNames); |     int countByNames(List<String> roleNames); | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * 分配角色给用户 |  | ||||||
|      * |  | ||||||
|      * @param id      角色 ID |  | ||||||
|      * @param userIds 用户 ID 列表 |  | ||||||
|      */ |  | ||||||
|     void assignToUsers(Long id, List<Long> userIds); |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -39,14 +39,6 @@ import java.util.List; | |||||||
|  */ |  */ | ||||||
| public interface UserService extends BaseService<UserResp, UserDetailResp, UserQuery, UserReq>, IService<UserDO> { | public interface UserService extends BaseService<UserResp, UserDetailResp, UserQuery, UserReq>, IService<UserDO> { | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * 新增 |  | ||||||
|      * |  | ||||||
|      * @param user 用户信息 |  | ||||||
|      * @return ID |  | ||||||
|      */ |  | ||||||
|     Long add(UserDO user); |  | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 下载导入模板 |      * 下载导入模板 | ||||||
|      * |      * | ||||||
| @@ -132,6 +124,14 @@ public interface UserService extends BaseService<UserResp, UserDetailResp, UserQ | |||||||
|      */ |      */ | ||||||
|     void updateEmail(String newEmail, String oldPassword, Long id); |     void updateEmail(String newEmail, String oldPassword, Long id); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 新增 | ||||||
|  |      * | ||||||
|  |      * @param user 用户信息 | ||||||
|  |      * @return ID | ||||||
|  |      */ | ||||||
|  |     Long add(UserDO user); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 根据用户名查询 |      * 根据用户名查询 | ||||||
|      * |      * | ||||||
|   | |||||||
| @@ -52,36 +52,14 @@ import java.util.Optional; | |||||||
| @RequiredArgsConstructor | @RequiredArgsConstructor | ||||||
| public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptResp, DeptResp, DeptQuery, DeptReq> implements DeptService { | public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptResp, DeptResp, DeptQuery, DeptReq> implements DeptService { | ||||||
|  |  | ||||||
|  |     private final RoleDeptService roleDeptService; | ||||||
|     @Resource |     @Resource | ||||||
|     private UserService userService; |     private UserService userService; | ||||||
|     private final RoleDeptService roleDeptService; |  | ||||||
|     @Resource |     @Resource | ||||||
|     private DataSource dataSource; |     private DataSource dataSource; | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public List<DeptDO> listChildren(Long id) { |     public void beforeAdd(DeptReq req) { | ||||||
|         DatabaseType databaseType = MetaUtils.getDatabaseTypeOrDefault(dataSource, DatabaseType.MYSQL); |  | ||||||
|         return baseMapper.lambdaQuery().apply(databaseType.findInSet(id, "ancestors")).list(); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Override |  | ||||||
|     public List<DeptDO> listByNames(List<String> list) { |  | ||||||
|         if (CollUtil.isEmpty(list)) { |  | ||||||
|             return Collections.emptyList(); |  | ||||||
|         } |  | ||||||
|         return this.list(Wrappers.<DeptDO>lambdaQuery().in(DeptDO::getName, list)); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Override |  | ||||||
|     public int countByNames(List<String> deptNames) { |  | ||||||
|         if (CollUtil.isEmpty(deptNames)) { |  | ||||||
|             return 0; |  | ||||||
|         } |  | ||||||
|         return (int)this.count(Wrappers.<DeptDO>lambdaQuery().in(DeptDO::getName, deptNames)); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Override |  | ||||||
|     protected void beforeAdd(DeptReq req) { |  | ||||||
|         String name = req.getName(); |         String name = req.getName(); | ||||||
|         boolean isExists = this.isNameExists(name, req.getParentId(), null); |         boolean isExists = this.isNameExists(name, req.getParentId(), null); | ||||||
|         CheckUtils.throwIf(isExists, "新增失败,[{}] 已存在", name); |         CheckUtils.throwIf(isExists, "新增失败,[{}] 已存在", name); | ||||||
| @@ -89,7 +67,7 @@ public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptRes | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     protected void beforeUpdate(DeptReq req, Long id) { |     public void beforeUpdate(DeptReq req, Long id) { | ||||||
|         String name = req.getName(); |         String name = req.getName(); | ||||||
|         boolean isExists = this.isNameExists(name, req.getParentId(), id); |         boolean isExists = this.isNameExists(name, req.getParentId(), id); | ||||||
|         CheckUtils.throwIf(isExists, "修改失败,[{}] 已存在", name); |         CheckUtils.throwIf(isExists, "修改失败,[{}] 已存在", name); | ||||||
| @@ -124,7 +102,7 @@ public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptRes | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     protected void beforeDelete(List<Long> ids) { |     public void beforeDelete(List<Long> ids) { | ||||||
|         List<DeptDO> list = baseMapper.lambdaQuery() |         List<DeptDO> list = baseMapper.lambdaQuery() | ||||||
|             .select(DeptDO::getName, DeptDO::getIsSystem) |             .select(DeptDO::getName, DeptDO::getIsSystem) | ||||||
|             .in(DeptDO::getId, ids) |             .in(DeptDO::getId, ids) | ||||||
| @@ -138,6 +116,28 @@ public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptRes | |||||||
|         roleDeptService.deleteByDeptIds(ids); |         roleDeptService.deleteByDeptIds(ids); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public List<DeptDO> listChildren(Long id) { | ||||||
|  |         DatabaseType databaseType = MetaUtils.getDatabaseTypeOrDefault(dataSource, DatabaseType.MYSQL); | ||||||
|  |         return baseMapper.lambdaQuery().apply(databaseType.findInSet(id, "ancestors")).list(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public List<DeptDO> listByNames(List<String> list) { | ||||||
|  |         if (CollUtil.isEmpty(list)) { | ||||||
|  |             return Collections.emptyList(); | ||||||
|  |         } | ||||||
|  |         return this.list(Wrappers.<DeptDO>lambdaQuery().in(DeptDO::getName, list)); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public int countByNames(List<String> deptNames) { | ||||||
|  |         if (CollUtil.isEmpty(deptNames)) { | ||||||
|  |             return 0; | ||||||
|  |         } | ||||||
|  |         return (int)this.count(Wrappers.<DeptDO>lambdaQuery().in(DeptDO::getName, deptNames)); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 名称是否存在 |      * 名称是否存在 | ||||||
|      * |      * | ||||||
|   | |||||||
| @@ -55,14 +55,14 @@ public class DictItemServiceImpl extends BaseServiceImpl<DictItemMapper, DictIte | |||||||
|     private static final Map<String, List<LabelValueResp>> ENUM_DICT_CACHE = new ConcurrentHashMap<>(); |     private static final Map<String, List<LabelValueResp>> ENUM_DICT_CACHE = new ConcurrentHashMap<>(); | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     protected void beforeAdd(DictItemReq req) { |     public void beforeAdd(DictItemReq req) { | ||||||
|         String value = req.getValue(); |         String value = req.getValue(); | ||||||
|         CheckUtils.throwIf(this.isValueExists(value, null, req.getDictId()), "新增失败,字典值 [{}] 已存在", value); |         CheckUtils.throwIf(this.isValueExists(value, null, req.getDictId()), "新增失败,字典值 [{}] 已存在", value); | ||||||
|         RedisUtils.deleteByPattern(CacheConstants.DICT_KEY_PREFIX + StringConstants.ASTERISK); |         RedisUtils.deleteByPattern(CacheConstants.DICT_KEY_PREFIX + StringConstants.ASTERISK); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     protected void beforeUpdate(DictItemReq req, Long id) { |     public void beforeUpdate(DictItemReq req, Long id) { | ||||||
|         String value = req.getValue(); |         String value = req.getValue(); | ||||||
|         CheckUtils.throwIf(this.isValueExists(value, id, req.getDictId()), "修改失败,字典值 [{}] 已存在", value); |         CheckUtils.throwIf(this.isValueExists(value, id, req.getDictId()), "修改失败,字典值 [{}] 已存在", value); | ||||||
|         RedisUtils.deleteByPattern(CacheConstants.DICT_KEY_PREFIX + StringConstants.ASTERISK); |         RedisUtils.deleteByPattern(CacheConstants.DICT_KEY_PREFIX + StringConstants.ASTERISK); | ||||||
|   | |||||||
| @@ -45,7 +45,7 @@ public class DictServiceImpl extends BaseServiceImpl<DictMapper, DictDO, DictRes | |||||||
|     private final DictItemService dictItemService; |     private final DictItemService dictItemService; | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     protected void beforeAdd(DictReq req) { |     public void beforeAdd(DictReq req) { | ||||||
|         String name = req.getName(); |         String name = req.getName(); | ||||||
|         CheckUtils.throwIf(this.isNameExists(name, null), "新增失败,[{}] 已存在", name); |         CheckUtils.throwIf(this.isNameExists(name, null), "新增失败,[{}] 已存在", name); | ||||||
|         String code = req.getCode(); |         String code = req.getCode(); | ||||||
| @@ -53,7 +53,7 @@ public class DictServiceImpl extends BaseServiceImpl<DictMapper, DictDO, DictRes | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     protected void beforeUpdate(DictReq req, Long id) { |     public void beforeUpdate(DictReq req, Long id) { | ||||||
|         String name = req.getName(); |         String name = req.getName(); | ||||||
|         CheckUtils.throwIf(this.isNameExists(name, id), "修改失败,[{}] 已存在", name); |         CheckUtils.throwIf(this.isNameExists(name, id), "修改失败,[{}] 已存在", name); | ||||||
|         DictDO oldDict = super.getById(id); |         DictDO oldDict = super.getById(id); | ||||||
| @@ -61,7 +61,7 @@ public class DictServiceImpl extends BaseServiceImpl<DictMapper, DictDO, DictRes | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     protected void beforeDelete(List<Long> ids) { |     public void beforeDelete(List<Long> ids) { | ||||||
|         List<DictDO> list = baseMapper.lambdaQuery() |         List<DictDO> list = baseMapper.lambdaQuery() | ||||||
|             .select(DictDO::getName, DictDO::getIsSystem) |             .select(DictDO::getName, DictDO::getIsSystem) | ||||||
|             .in(DictDO::getId, ids) |             .in(DictDO::getId, ids) | ||||||
|   | |||||||
| @@ -105,7 +105,7 @@ public class MenuServiceImpl extends BaseServiceImpl<MenuMapper, MenuDO, MenuRes | |||||||
|     public List<MenuResp> listByRoleCode(String roleCode) { |     public List<MenuResp> listByRoleCode(String roleCode) { | ||||||
|         List<MenuDO> menuList = baseMapper.selectListByRoleCode(roleCode); |         List<MenuDO> menuList = baseMapper.selectListByRoleCode(roleCode); | ||||||
|         List<MenuResp> list = BeanUtil.copyToList(menuList, MenuResp.class); |         List<MenuResp> list = BeanUtil.copyToList(menuList, MenuResp.class); | ||||||
|         list.forEach(this::fill); |         list.forEach(super::fill); | ||||||
|         return list; |         return list; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -106,7 +106,7 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleRes | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     protected void beforeDelete(List<Long> ids) { |     public void beforeDelete(List<Long> ids) { | ||||||
|         List<RoleDO> list = baseMapper.lambdaQuery() |         List<RoleDO> list = baseMapper.lambdaQuery() | ||||||
|             .select(RoleDO::getName, RoleDO::getIsSystem) |             .select(RoleDO::getName, RoleDO::getIsSystem) | ||||||
|             .in(RoleDO::getId, ids) |             .in(RoleDO::getId, ids) | ||||||
| @@ -122,7 +122,16 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleRes | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     protected void fill(Object obj) { |     public void assignToUsers(Long id, List<Long> userIds) { | ||||||
|  |         super.getById(id); | ||||||
|  |         // 保存用户和角色关联 | ||||||
|  |         userRoleService.assignRoleToUsers(id, userIds); | ||||||
|  |         // 更新用户上下文 | ||||||
|  |         this.updateUserContext(id); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void fill(Object obj) { | ||||||
|         super.fill(obj); |         super.fill(obj); | ||||||
|         if (obj instanceof RoleDetailResp detail) { |         if (obj instanceof RoleDetailResp detail) { | ||||||
|             Long roleId = detail.getId(); |             Long roleId = detail.getId(); | ||||||
| @@ -188,15 +197,6 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleRes | |||||||
|         return (int)this.count(Wrappers.<RoleDO>lambdaQuery().in(RoleDO::getName, roleNames)); |         return (int)this.count(Wrappers.<RoleDO>lambdaQuery().in(RoleDO::getName, roleNames)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |  | ||||||
|     public void assignToUsers(Long id, List<Long> userIds) { |  | ||||||
|         super.getById(id); |  | ||||||
|         // 保存用户和角色关联 |  | ||||||
|         userRoleService.assignRoleToUsers(id, userIds); |  | ||||||
|         // 更新用户上下文 |  | ||||||
|         this.updateUserContext(id); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 名称是否存在 |      * 名称是否存在 | ||||||
|      * |      * | ||||||
|   | |||||||
| @@ -65,7 +65,7 @@ public class StorageServiceImpl extends BaseServiceImpl<StorageMapper, StorageDO | |||||||
|     private FileService fileService; |     private FileService fileService; | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     protected void beforeAdd(StorageReq req) { |     public void beforeAdd(StorageReq req) { | ||||||
|         this.decodeSecretKey(req, null); |         this.decodeSecretKey(req, null); | ||||||
|         CheckUtils.throwIf(Boolean.TRUE.equals(req.getIsDefault()) && this.isDefaultExists(null), "请先取消原有默认存储"); |         CheckUtils.throwIf(Boolean.TRUE.equals(req.getIsDefault()) && this.isDefaultExists(null), "请先取消原有默认存储"); | ||||||
|         String code = req.getCode(); |         String code = req.getCode(); | ||||||
| @@ -74,7 +74,7 @@ public class StorageServiceImpl extends BaseServiceImpl<StorageMapper, StorageDO | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     protected void beforeUpdate(StorageReq req, Long id) { |     public void beforeUpdate(StorageReq req, Long id) { | ||||||
|         StorageDO oldStorage = super.getById(id); |         StorageDO oldStorage = super.getById(id); | ||||||
|         CheckUtils.throwIfNotEqual(req.getCode(), oldStorage.getCode(), "不允许修改存储编码"); |         CheckUtils.throwIfNotEqual(req.getCode(), oldStorage.getCode(), "不允许修改存储编码"); | ||||||
|         CheckUtils.throwIfNotEqual(req.getType(), oldStorage.getType(), "不允许修改存储类型"); |         CheckUtils.throwIfNotEqual(req.getType(), oldStorage.getType(), "不允许修改存储类型"); | ||||||
| @@ -99,7 +99,7 @@ public class StorageServiceImpl extends BaseServiceImpl<StorageMapper, StorageDO | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     protected void beforeDelete(List<Long> ids) { |     public void beforeDelete(List<Long> ids) { | ||||||
|         CheckUtils.throwIf(fileService.countByStorageIds(ids) > 0, "所选存储存在文件关联,请删除文件后重试"); |         CheckUtils.throwIf(fileService.countByStorageIds(ids) > 0, "所选存储存在文件关联,请删除文件后重试"); | ||||||
|         List<StorageDO> storageList = baseMapper.lambdaQuery().in(StorageDO::getId, ids).list(); |         List<StorageDO> storageList = baseMapper.lambdaQuery().in(StorageDO::getId, ids).list(); | ||||||
|         storageList.forEach(s -> { |         storageList.forEach(s -> { | ||||||
|   | |||||||
| @@ -209,13 +209,6 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes | |||||||
|         ids.forEach(onlineUserService::kickOut); |         ids.forEach(onlineUserService::kickOut); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |  | ||||||
|     public Long add(UserDO user) { |  | ||||||
|         user.setStatus(DisEnableStatusEnum.ENABLE); |  | ||||||
|         baseMapper.insert(user); |  | ||||||
|         return user.getId(); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void downloadImportTemplate(HttpServletResponse response) throws IOException { |     public void downloadImportTemplate(HttpServletResponse response) throws IOException { | ||||||
|         try { |         try { | ||||||
| @@ -360,19 +353,6 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes | |||||||
|         return new UserImportResp(insertList.size() + updateList.size(), insertList.size(), updateList.size()); |         return new UserImportResp(insertList.size() + updateList.size(), insertList.size(), updateList.size()); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public void doImportUser(List<UserDO> insertList, List<UserDO> updateList, List<UserRoleDO> userRoleDOList) { |  | ||||||
|         if (CollUtil.isNotEmpty(insertList)) { |  | ||||||
|             baseMapper.insert(insertList); |  | ||||||
|         } |  | ||||||
|         if (CollUtil.isNotEmpty(updateList)) { |  | ||||||
|             this.updateBatchById(updateList); |  | ||||||
|             userRoleService.deleteByUserIds(updateList.stream().map(UserDO::getId).toList()); |  | ||||||
|         } |  | ||||||
|         if (CollUtil.isNotEmpty(userRoleDOList)) { |  | ||||||
|             userRoleService.saveBatch(userRoleDOList); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void resetPassword(UserPasswordResetReq req, Long id) { |     public void resetPassword(UserPasswordResetReq req, Long id) { | ||||||
|         super.getById(id); |         super.getById(id); | ||||||
| @@ -459,6 +439,13 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes | |||||||
|         baseMapper.lambdaUpdate().set(UserDO::getEmail, newEmail).eq(UserDO::getId, id).update(); |         baseMapper.lambdaUpdate().set(UserDO::getEmail, newEmail).eq(UserDO::getId, id).update(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public Long add(UserDO user) { | ||||||
|  |         user.setStatus(DisEnableStatusEnum.ENABLE); | ||||||
|  |         baseMapper.insert(user); | ||||||
|  |         return user.getId(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public UserDO getByUsername(String username) { |     public UserDO getByUsername(String username) { | ||||||
|         return baseMapper.selectByUsername(username); |         return baseMapper.selectByUsername(username); | ||||||
| @@ -523,6 +510,26 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes | |||||||
|             .in(CollUtil.isNotEmpty(userIdList), "t1.id", userIdList); |             .in(CollUtil.isNotEmpty(userIdList), "t1.id", userIdList); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 导入用户 | ||||||
|  |      * | ||||||
|  |      * @param insertList     新增用户 | ||||||
|  |      * @param updateList     修改用户 | ||||||
|  |      * @param userRoleDOList 用户角色关联 | ||||||
|  |      */ | ||||||
|  |     private void doImportUser(List<UserDO> insertList, List<UserDO> updateList, List<UserRoleDO> userRoleDOList) { | ||||||
|  |         if (CollUtil.isNotEmpty(insertList)) { | ||||||
|  |             baseMapper.insert(insertList); | ||||||
|  |         } | ||||||
|  |         if (CollUtil.isNotEmpty(updateList)) { | ||||||
|  |             this.updateBatchById(updateList); | ||||||
|  |             userRoleService.deleteByUserIds(updateList.stream().map(UserDO::getId).toList()); | ||||||
|  |         } | ||||||
|  |         if (CollUtil.isNotEmpty(userRoleDOList)) { | ||||||
|  |             userRoleService.saveBatch(userRoleDOList); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 判断是否跳过导入 |      * 判断是否跳过导入 | ||||||
|      * |      * | ||||||
| @@ -681,6 +688,12 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes | |||||||
|         return null != count && count > 0; |         return null != count && count > 0; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 根据用户名获取用户列表 | ||||||
|  |      * | ||||||
|  |      * @param usernames 用户名列表 | ||||||
|  |      * @return 用户列表 | ||||||
|  |      */ | ||||||
|     private List<UserDO> listByUsernames(List<String> usernames) { |     private List<UserDO> listByUsernames(List<String> usernames) { | ||||||
|         return this.list(Wrappers.<UserDO>lambdaQuery() |         return this.list(Wrappers.<UserDO>lambdaQuery() | ||||||
|             .in(UserDO::getUsername, usernames) |             .in(UserDO::getUsername, usernames) | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
| <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > | ||||||
| <mapper namespace="top.continew.admin.system.mapper.DictItemMapper"> | <mapper namespace="top.continew.admin.system.mapper.DictItemMapper"> | ||||||
|     <select id="listByDictCode" resultType="top.continew.starter.extension.crud.model.resp.LabelValueResp"> |     <select id="listByDictCode" resultType="top.continew.starter.extension.crud.model.resp.LabelValueResp"> | ||||||
|         SELECT t1.label, t1.value, t1.color AS extend |         SELECT t1.label, t1.value, t1.color AS extra | ||||||
|         FROM sys_dict_item AS t1 |         FROM sys_dict_item AS t1 | ||||||
|         LEFT JOIN sys_dict AS t2 ON t1.dict_id = t2.id |         LEFT JOIN sys_dict AS t2 ON t1.dict_id = t2.id | ||||||
|         WHERE t1.status = 1 AND t2.code = #{dictCode} |         WHERE t1.status = 1 AND t2.code = #{dictCode} | ||||||
|   | |||||||
| @@ -4,6 +4,7 @@ | |||||||
|     :title="title" |     :title="title" | ||||||
|     :mask-closable="false" |     :mask-closable="false" | ||||||
|     :esc-to-close="false" |     :esc-to-close="false" | ||||||
|  |     draggable | ||||||
|     :width="width >= 600 ? 600 : '100%'" |     :width="width >= 600 ? 600 : '100%'" | ||||||
|     @before-ok="save" |     @before-ok="save" | ||||||
|     @close="reset" |     @close="reset" | ||||||
| @@ -31,7 +32,6 @@ const visible = ref(false) | |||||||
| const isUpdate = computed(() => !!dataId.value) | const isUpdate = computed(() => !!dataId.value) | ||||||
| const title = computed(() => (isUpdate.value ? '修改${businessName}' : '新增${businessName}')) | const title = computed(() => (isUpdate.value ? '修改${businessName}' : '新增${businessName}')) | ||||||
| const formRef = ref<InstanceType<typeof GiForm>>() | const formRef = ref<InstanceType<typeof GiForm>>() | ||||||
|  |  | ||||||
| <#if hasDictField> | <#if hasDictField> | ||||||
| const { <#list dictCodes as dictCode>${dictCode}<#if dictCode_has_next>,</#if></#list> } = useDict(<#list dictCodes as dictCode>'${dictCode}'<#if dictCode_has_next>,</#if></#list>) | const { <#list dictCodes as dictCode>${dictCode}<#if dictCode_has_next>,</#if></#list> } = useDict(<#list dictCodes as dictCode>'${dictCode}'<#if dictCode_has_next>,</#if></#list>) | ||||||
| </#if> | </#if> | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ | |||||||
|  |  | ||||||
| <script setup lang="ts"> | <script setup lang="ts"> | ||||||
| import { useWindowSize } from '@vueuse/core' | import { useWindowSize } from '@vueuse/core' | ||||||
| import { type ${classNamePrefix}DetailResp, get${classNamePrefix} } from '@/apis/${apiModuleName}/${apiName}' | import { type ${classNamePrefix}DetailResp, get${classNamePrefix} as getDetail } from '@/apis/${apiModuleName}/${apiName}' | ||||||
|  |  | ||||||
| const { width } = useWindowSize() | const { width } = useWindowSize() | ||||||
|  |  | ||||||
| @@ -25,7 +25,7 @@ const visible = ref(false) | |||||||
|  |  | ||||||
| // 查询详情 | // 查询详情 | ||||||
| const getDataDetail = async () => { | const getDataDetail = async () => { | ||||||
|   const { data } = await get${classNamePrefix}(dataId.value) |   const { data } = await getDetail(dataId.value) | ||||||
|   dataDetail.value = data |   dataDetail.value = data | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| <template> | <template> | ||||||
|   <div class="table-page"> |   <div class="table-page"> | ||||||
|     <GiTable |     <GiTable | ||||||
|       row-key="id" |  | ||||||
|       title="${businessName}管理" |       title="${businessName}管理" | ||||||
|  |       row-key="id" | ||||||
|       :data="dataList" |       :data="dataList" | ||||||
|       :columns="columns" |       :columns="columns" | ||||||
|       :loading="loading" |       :loading="loading" | ||||||
| @@ -135,7 +135,6 @@ const { | |||||||
|   search, |   search, | ||||||
|   handleDelete |   handleDelete | ||||||
| } = useTable((page) => list${classNamePrefix}({ ...queryForm, ...page }), { immediate: true }) | } = useTable((page) => list${classNamePrefix}({ ...queryForm, ...page }), { immediate: true }) | ||||||
|  |  | ||||||
| const columns: TableInstanceColumns[] = [ | const columns: TableInstanceColumns[] = [ | ||||||
| <#if fieldConfigs??> | <#if fieldConfigs??> | ||||||
|   <#list fieldConfigs as fieldConfig> |   <#list fieldConfigs as fieldConfig> | ||||||
| @@ -150,7 +149,7 @@ const columns: TableInstanceColumns[] = [ | |||||||
|     width: 130, |     width: 130, | ||||||
|     align: 'center', |     align: 'center', | ||||||
|     fixed: !isMobile() ? 'right' : undefined, |     fixed: !isMobile() ? 'right' : undefined, | ||||||
|     show: has.hasPermOr(['${apiModuleName}:${apiName}:update', '${apiModuleName}:${apiName}:delete']) |     show: has.hasPermOr(['${apiModuleName}:${apiName}:detail', '${apiModuleName}:${apiName}:update', '${apiModuleName}:${apiName}:delete']) | ||||||
|   } |   } | ||||||
| ] | ] | ||||||
|  |  | ||||||
|   | |||||||
| @@ -54,13 +54,6 @@ public class RoleController extends BaseController<RoleService, RoleResp, RoleDe | |||||||
|  |  | ||||||
|     private final UserRoleService userRoleService; |     private final UserRoleService userRoleService; | ||||||
|  |  | ||||||
|     @Operation(summary = "查询角色关联用户", description = "查询角色关联的用户ID列表") |  | ||||||
|     @Parameter(name = "id", description = "ID", example = "1", in = ParameterIn.PATH) |  | ||||||
|     @GetMapping("/{id}/user") |  | ||||||
|     public List<Long> listUser(@PathVariable("id") Long id) { |  | ||||||
|         return userRoleService.listUserIdByRoleId(id); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Operation(summary = "分配角色给用户", description = "批量分配角色给用户") |     @Operation(summary = "分配角色给用户", description = "批量分配角色给用户") | ||||||
|     @SaCheckPermission("system:role:assign") |     @SaCheckPermission("system:role:assign") | ||||||
|     @PostMapping("/{id}/user") |     @PostMapping("/{id}/user") | ||||||
| @@ -68,4 +61,11 @@ public class RoleController extends BaseController<RoleService, RoleResp, RoleDe | |||||||
|                               @Validated @NotEmpty(message = "用户ID列表不能为空") @RequestBody List<Long> userIds) { |                               @Validated @NotEmpty(message = "用户ID列表不能为空") @RequestBody List<Long> userIds) { | ||||||
|         baseService.assignToUsers(id, userIds); |         baseService.assignToUsers(id, userIds); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Operation(summary = "查询角色关联用户", description = "查询角色关联的用户ID列表") | ||||||
|  |     @Parameter(name = "id", description = "ID", example = "1", in = ParameterIn.PATH) | ||||||
|  |     @GetMapping("/{id}/user") | ||||||
|  |     public List<Long> listUser(@PathVariable("id") Long id) { | ||||||
|  |         return userRoleService.listUserIdByRoleId(id); | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -28,32 +28,36 @@ VALUES | |||||||
|  |  | ||||||
| (1050, '菜单管理', 1000, 2, '/system/menu', 'SystemMenu', 'system/menu/index', NULL, 'menu', b'0', b'0', b'0', NULL, 3, 1, 1, NOW(), NULL, NULL), | (1050, '菜单管理', 1000, 2, '/system/menu', 'SystemMenu', 'system/menu/index', NULL, 'menu', b'0', b'0', b'0', NULL, 3, 1, 1, NOW(), NULL, NULL), | ||||||
| (1051, '列表', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:list', 1, 1, 1, NOW(), NULL, NULL), | (1051, '列表', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:list', 1, 1, 1, NOW(), NULL, NULL), | ||||||
| (1052, '新增', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:add', 2, 1, 1, NOW(), NULL, NULL), | (1052, '详情', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:detail', 2, 1, 1, NOW(), NULL, NULL), | ||||||
| (1053, '修改', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:update', 3, 1, 1, NOW(), NULL, NULL), | (1053, '新增', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:add', 3, 1, 1, NOW(), NULL, NULL), | ||||||
| (1054, '删除', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:delete', 4, 1, 1, NOW(), NULL, NULL), | (1054, '修改', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:update', 4, 1, 1, NOW(), NULL, NULL), | ||||||
|  | (1055, '删除', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:delete', 5, 1, 1, NOW(), NULL, NULL), | ||||||
|  |  | ||||||
| (1060, '部门管理', 1000, 2, '/system/dept', 'SystemDept', 'system/dept/index', NULL, 'mind-mapping', b'0', b'0', b'0', NULL, 4, 1, 1, NOW(), NULL, NULL), | (1060, '部门管理', 1000, 2, '/system/dept', 'SystemDept', 'system/dept/index', NULL, 'mind-mapping', b'0', b'0', b'0', NULL, 4, 1, 1, NOW(), NULL, NULL), | ||||||
| (1061, '列表', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:list', 1, 1, 1, NOW(), NULL, NULL), | (1061, '列表', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:list', 1, 1, 1, NOW(), NULL, NULL), | ||||||
| (1062, '新增', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:add', 2, 1, 1, NOW(), NULL, NULL), | (1062, '详情', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:detail', 2, 1, 1, NOW(), NULL, NULL), | ||||||
| (1063, '修改', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:update', 3, 1, 1, NOW(), NULL, NULL), | (1063, '新增', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:add', 3, 1, 1, NOW(), NULL, NULL), | ||||||
| (1064, '删除', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:delete', 4, 1, 1, NOW(), NULL, NULL), | (1064, '修改', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:update', 4, 1, 1, NOW(), NULL, NULL), | ||||||
| (1065, '导出', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:export', 5, 1, 1, NOW(), NULL, NULL), | (1065, '删除', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:delete', 5, 1, 1, NOW(), NULL, NULL), | ||||||
|  | (1066, '导出', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:export', 6, 1, 1, NOW(), NULL, NULL), | ||||||
|  |  | ||||||
| (1070, '字典管理', 1000, 2, '/system/dict', 'SystemDict', 'system/dict/index', NULL, 'bookmark', b'0', b'0', b'0', NULL, 5, 1, 1, NOW(), NULL, NULL), | (1070, '字典管理', 1000, 2, '/system/dict', 'SystemDict', 'system/dict/index', NULL, 'bookmark', b'0', b'0', b'0', NULL, 5, 1, 1, NOW(), NULL, NULL), | ||||||
| (1071, '列表', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:list', 1, 1, 1, NOW(), NULL, NULL), | (1071, '列表', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:list', 1, 1, 1, NOW(), NULL, NULL), | ||||||
| (1072, '新增', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:add', 2, 1, 1, NOW(), NULL, NULL), | (1072, '详情', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:detail', 2, 1, 1, NOW(), NULL, NULL), | ||||||
| (1073, '修改', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:update', 3, 1, 1, NOW(), NULL, NULL), | (1073, '新增', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:add', 3, 1, 1, NOW(), NULL, NULL), | ||||||
| (1074, '删除', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:delete', 4, 1, 1, NOW(), NULL, NULL), | (1074, '修改', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:update', 4, 1, 1, NOW(), NULL, NULL), | ||||||
|  | (1075, '删除', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:delete', 5, 1, 1, NOW(), NULL, NULL), | ||||||
| (1080, '字典项管理', 1000, 2, '/system/dict/item', 'SystemDictItem', 'system/dict/item/index', NULL, 'bookmark', b'0', b'0', b'1', NULL, 5, 1, 1, NOW(), NULL, NULL), | (1080, '字典项管理', 1000, 2, '/system/dict/item', 'SystemDictItem', 'system/dict/item/index', NULL, 'bookmark', b'0', b'0', b'1', NULL, 5, 1, 1, NOW(), NULL, NULL), | ||||||
| (1081, '列表', 1080, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:item:list', 1, 1, 1, NOW(), NULL, NULL), | (1081, '列表', 1080, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:item:list', 1, 1, 1, NOW(), NULL, NULL), | ||||||
| (1082, '新增', 1080, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:item:add', 2, 1, 1, NOW(), NULL, NULL), | (1082, '详情', 1080, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:item:detail', 2, 1, 1, NOW(), NULL, NULL), | ||||||
| (1083, '修改', 1080, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:item:update', 3, 1, 1, NOW(), NULL, NULL), | (1083, '新增', 1080, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:item:add', 3, 1, 1, NOW(), NULL, NULL), | ||||||
| (1084, '删除', 1080, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:item:delete', 4, 1, 1, NOW(), NULL, NULL), | (1084, '修改', 1080, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:item:update', 4, 1, 1, NOW(), NULL, NULL), | ||||||
|  | (1085, '删除', 1080, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:item:delete', 5, 1, 1, NOW(), NULL, NULL), | ||||||
|  |  | ||||||
| (1090, '通知公告', 1000, 2, '/system/notice', 'SystemNotice', 'system/notice/index', NULL, 'notification', b'0', b'0', b'0', NULL, 6, 1, 1, NOW(), NULL, NULL), | (1090, '通知公告', 1000, 2, '/system/notice', 'SystemNotice', 'system/notice/index', NULL, 'notification', b'0', b'0', b'0', NULL, 6, 1, 1, NOW(), NULL, NULL), | ||||||
| (1091, '列表', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:list', 1, 1, 1, NOW(), NULL, NULL), | (1091, '列表', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:list', 1, 1, 1, NOW(), NULL, NULL), | ||||||
| (1092, '详情', 1090, 2, '/system/notice/detail', 'SystemNoticeDetail', 'system/notice/page/detail', NULL, NULL, b'0', b'0', b'1', 'system:notice:detail', 2, 1, 1, NOW(), NULL, NULL), | (1092, '详情', 1090, 2, '/system/notice/detail', 'SystemNoticeDetail', 'system/notice/detail/index', NULL, NULL, b'0', b'0', b'1', 'system:notice:detail', 2, 1, 1, NOW(), NULL, NULL), | ||||||
| (1093, '新增', 1090, 2, '/system/notice/add', 'SystemNoticeAdd', 'system/notice/page/add', NULL, NULL, b'0', b'0', b'1', 'system:notice:add', 3, 1, 1, NOW(), NULL, NULL), | (1093, '新增', 1090, 2, '/system/notice/add', 'SystemNoticeAdd', 'system/notice/add/index', NULL, NULL, b'0', b'0', b'1', 'system:notice:add', 3, 1, 1, NOW(), NULL, NULL), | ||||||
| (1094, '修改', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:update', 4, 1, 1, NOW(), NULL, NULL), | (1094, '修改', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:update', 4, 1, 1, NOW(), NULL, NULL), | ||||||
| (1095, '删除', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:delete', 5, 1, 1, NOW(), NULL, NULL), | (1095, '删除', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:delete', 5, 1, 1, NOW(), NULL, NULL), | ||||||
|  |  | ||||||
| @@ -67,9 +71,10 @@ VALUES | |||||||
|  |  | ||||||
| (1110, '存储管理', 1000, 2, '/system/storage', 'SystemStorage', 'system/storage/index', NULL, 'storage', b'0', b'0', b'0', NULL, 8, 1, 1, NOW(), NULL, NULL), | (1110, '存储管理', 1000, 2, '/system/storage', 'SystemStorage', 'system/storage/index', NULL, 'storage', b'0', b'0', b'0', NULL, 8, 1, 1, NOW(), NULL, NULL), | ||||||
| (1111, '列表', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:list', 1, 1, 1, NOW(), NULL, NULL), | (1111, '列表', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:list', 1, 1, 1, NOW(), NULL, NULL), | ||||||
| (1112, '新增', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:add', 2, 1, 1, NOW(), NULL, NULL), | (1112, '详情', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:detail', 2, 1, 1, NOW(), NULL, NULL), | ||||||
| (1113, '修改', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:update', 3, 1, 1, NOW(), NULL, NULL), | (1113, '新增', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:add', 3, 1, 1, NOW(), NULL, NULL), | ||||||
| (1114, '删除', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:delete', 4, 1, 1, NOW(), NULL, NULL), | (1114, '修改', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:update', 4, 1, 1, NOW(), NULL, NULL), | ||||||
|  | (1115, '删除', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:delete', 5, 1, 1, NOW(), NULL, NULL), | ||||||
|  |  | ||||||
| (1190, '系统配置', 1000, 2, '/system/config', 'SystemConfig', 'system/config/index', NULL, 'config', b'0', b'0', b'0', NULL, 999, 1, 1, NOW(), NULL, NULL), | (1190, '系统配置', 1000, 2, '/system/config', 'SystemConfig', 'system/config/index', NULL, 'config', b'0', b'0', b'0', NULL, 999, 1, 1, NOW(), NULL, NULL), | ||||||
| (1191, '查看', 1190, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:config:list', 1, 1, 1, NOW(), NULL, NULL), | (1191, '查看', 1190, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:config:list', 1, 1, 1, NOW(), NULL, NULL), | ||||||
| @@ -80,6 +85,7 @@ VALUES | |||||||
| (2010, '在线用户', 2000, 2, '/monitor/online', 'MonitorOnline', 'monitor/online/index', NULL, 'user', b'0', b'0', b'0', NULL, 1, 1, 1, NOW(), NULL, NULL), | (2010, '在线用户', 2000, 2, '/monitor/online', 'MonitorOnline', 'monitor/online/index', NULL, 'user', b'0', b'0', b'0', NULL, 1, 1, 1, NOW(), NULL, NULL), | ||||||
| (2011, '列表', 2010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:online:list', 1, 1, 1, NOW(), NULL, NULL), | (2011, '列表', 2010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:online:list', 1, 1, 1, NOW(), NULL, NULL), | ||||||
| (2012, '强退', 2010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:online:kickout', 2, 1, 1, NOW(), NULL, NULL), | (2012, '强退', 2010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:online:kickout', 2, 1, 1, NOW(), NULL, NULL), | ||||||
|  |  | ||||||
| (2020, '系统日志', 2000, 2, '/monitor/log', 'MonitorLog', 'monitor/log/index', NULL, 'history', b'0', b'0', b'0', NULL, 2, 1, 1, NOW(), NULL, NULL), | (2020, '系统日志', 2000, 2, '/monitor/log', 'MonitorLog', 'monitor/log/index', NULL, 'history', b'0', b'0', b'0', NULL, 2, 1, 1, NOW(), NULL, NULL), | ||||||
| (2021, '列表', 2020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:log:list', 1, 1, 1, NOW(), NULL, NULL), | (2021, '列表', 2020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:log:list', 1, 1, 1, NOW(), NULL, NULL), | ||||||
| (2022, '详情', 2020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:log:detail', 2, 1, 1, NOW(), NULL, NULL), | (2022, '详情', 2020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:log:detail', 2, 1, 1, NOW(), NULL, NULL), | ||||||
|   | |||||||
| @@ -28,32 +28,36 @@ VALUES | |||||||
|  |  | ||||||
| (1050, '菜单管理', 1000, 2, '/system/menu', 'SystemMenu', 'system/menu/index', NULL, 'menu', false, false, false, NULL, 3, 1, 1, NOW(), NULL, NULL), | (1050, '菜单管理', 1000, 2, '/system/menu', 'SystemMenu', 'system/menu/index', NULL, 'menu', false, false, false, NULL, 3, 1, 1, NOW(), NULL, NULL), | ||||||
| (1051, '列表', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:list', 1, 1, 1, NOW(), NULL, NULL), | (1051, '列表', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:list', 1, 1, 1, NOW(), NULL, NULL), | ||||||
| (1052, '新增', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:add', 2, 1, 1, NOW(), NULL, NULL), | (1052, '详情', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:detail', 2, 1, 1, NOW(), NULL, NULL), | ||||||
| (1053, '修改', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:update', 3, 1, 1, NOW(), NULL, NULL), | (1053, '新增', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:add', 3, 1, 1, NOW(), NULL, NULL), | ||||||
| (1054, '删除', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:delete', 4, 1, 1, NOW(), NULL, NULL), | (1054, '修改', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:update', 4, 1, 1, NOW(), NULL, NULL), | ||||||
|  | (1055, '删除', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:delete', 5, 1, 1, NOW(), NULL, NULL), | ||||||
|  |  | ||||||
| (1060, '部门管理', 1000, 2, '/system/dept', 'SystemDept', 'system/dept/index', NULL, 'mind-mapping', false, false, false, NULL, 4, 1, 1, NOW(), NULL, NULL), | (1060, '部门管理', 1000, 2, '/system/dept', 'SystemDept', 'system/dept/index', NULL, 'mind-mapping', false, false, false, NULL, 4, 1, 1, NOW(), NULL, NULL), | ||||||
| (1061, '列表', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:list', 1, 1, 1, NOW(), NULL, NULL), | (1061, '列表', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:list', 1, 1, 1, NOW(), NULL, NULL), | ||||||
| (1062, '新增', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:add', 2, 1, 1, NOW(), NULL, NULL), | (1062, '详情', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:detail', 2, 1, 1, NOW(), NULL, NULL), | ||||||
| (1063, '修改', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:update', 3, 1, 1, NOW(), NULL, NULL), | (1063, '新增', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:add', 3, 1, 1, NOW(), NULL, NULL), | ||||||
| (1064, '删除', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:delete', 4, 1, 1, NOW(), NULL, NULL), | (1064, '修改', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:update', 4, 1, 1, NOW(), NULL, NULL), | ||||||
| (1065, '导出', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:export', 5, 1, 1, NOW(), NULL, NULL), | (1065, '删除', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:delete', 5, 1, 1, NOW(), NULL, NULL), | ||||||
|  | (1066, '导出', 1060, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:export', 6, 1, 1, NOW(), NULL, NULL), | ||||||
|  |  | ||||||
| (1070, '字典管理', 1000, 2, '/system/dict', 'SystemDict', 'system/dict/index', NULL, 'bookmark', false, false, false, NULL, 5, 1, 1, NOW(), NULL, NULL), | (1070, '字典管理', 1000, 2, '/system/dict', 'SystemDict', 'system/dict/index', NULL, 'bookmark', false, false, false, NULL, 5, 1, 1, NOW(), NULL, NULL), | ||||||
| (1071, '列表', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:list', 1, 1, 1, NOW(), NULL, NULL), | (1071, '列表', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:list', 1, 1, 1, NOW(), NULL, NULL), | ||||||
| (1072, '新增', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:add', 2, 1, 1, NOW(), NULL, NULL), | (1072, '详情', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:detail', 2, 1, 1, NOW(), NULL, NULL), | ||||||
| (1073, '修改', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:update', 3, 1, 1, NOW(), NULL, NULL), | (1073, '新增', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:add', 3, 1, 1, NOW(), NULL, NULL), | ||||||
| (1074, '删除', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:delete', 4, 1, 1, NOW(), NULL, NULL), | (1074, '修改', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:update', 4, 1, 1, NOW(), NULL, NULL), | ||||||
|  | (1075, '删除', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:delete', 5, 1, 1, NOW(), NULL, NULL), | ||||||
| (1080, '字典项管理', 1000, 2, '/system/dict/item', 'SystemDictItem', 'system/dict/item/index', NULL, 'bookmark', false, false, true, NULL, 5, 1, 1, NOW(), NULL, NULL), | (1080, '字典项管理', 1000, 2, '/system/dict/item', 'SystemDictItem', 'system/dict/item/index', NULL, 'bookmark', false, false, true, NULL, 5, 1, 1, NOW(), NULL, NULL), | ||||||
| (1081, '列表', 1080, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:item:list', 1, 1, 1, NOW(), NULL, NULL), | (1081, '列表', 1080, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:item:list', 1, 1, 1, NOW(), NULL, NULL), | ||||||
| (1082, '新增', 1080, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:item:add', 2, 1, 1, NOW(), NULL, NULL), | (1082, '详情', 1080, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:item:detail', 2, 1, 1, NOW(), NULL, NULL), | ||||||
| (1083, '修改', 1080, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:item:update', 3, 1, 1, NOW(), NULL, NULL), | (1083, '新增', 1080, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:item:add', 3, 1, 1, NOW(), NULL, NULL), | ||||||
| (1084, '删除', 1080, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:item:delete', 4, 1, 1, NOW(), NULL, NULL), | (1084, '修改', 1080, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:item:update', 4, 1, 1, NOW(), NULL, NULL), | ||||||
|  | (1085, '删除', 1080, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:item:delete', 5, 1, 1, NOW(), NULL, NULL), | ||||||
|  |  | ||||||
| (1090, '通知公告', 1000, 2, '/system/notice', 'SystemNotice', 'system/notice/index', NULL, 'notification', false, false, false, NULL, 6, 1, 1, NOW(), NULL, NULL), | (1090, '通知公告', 1000, 2, '/system/notice', 'SystemNotice', 'system/notice/index', NULL, 'notification', false, false, false, NULL, 6, 1, 1, NOW(), NULL, NULL), | ||||||
| (1091, '列表', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:list', 1, 1, 1, NOW(), NULL, NULL), | (1091, '列表', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:list', 1, 1, 1, NOW(), NULL, NULL), | ||||||
| (1092, '详情', 1090, 2, '/system/notice/detail', 'SystemNoticeDetail', 'system/notice/page/detail', NULL, NULL, false, false, true, 'system:notice:detail', 2, 1, 1, NOW(), NULL, NULL), | (1092, '详情', 1090, 2, '/system/notice/detail', 'SystemNoticeDetail', 'system/notice/detail/index', NULL, NULL, false, false, true, 'system:notice:detail', 2, 1, 1, NOW(), NULL, NULL), | ||||||
| (1093, '新增', 1090, 2, '/system/notice/add', 'SystemNoticeAdd', 'system/notice/page/add', NULL, NULL, false, false, true, 'system:notice:add', 3, 1, 1, NOW(), NULL, NULL), | (1093, '新增', 1090, 2, '/system/notice/add', 'SystemNoticeAdd', 'system/notice/add/index', NULL, NULL, false, false, true, 'system:notice:add', 3, 1, 1, NOW(), NULL, NULL), | ||||||
| (1094, '修改', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:update', 4, 1, 1, NOW(), NULL, NULL), | (1094, '修改', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:update', 4, 1, 1, NOW(), NULL, NULL), | ||||||
| (1095, '删除', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:delete', 5, 1, 1, NOW(), NULL, NULL), | (1095, '删除', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:delete', 5, 1, 1, NOW(), NULL, NULL), | ||||||
|  |  | ||||||
| @@ -67,9 +71,10 @@ VALUES | |||||||
|  |  | ||||||
| (1110, '存储管理', 1000, 2, '/system/storage', 'SystemStorage', 'system/storage/index', NULL, 'storage', false, false, false, NULL, 8, 1, 1, NOW(), NULL, NULL), | (1110, '存储管理', 1000, 2, '/system/storage', 'SystemStorage', 'system/storage/index', NULL, 'storage', false, false, false, NULL, 8, 1, 1, NOW(), NULL, NULL), | ||||||
| (1111, '列表', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:list', 1, 1, 1, NOW(), NULL, NULL), | (1111, '列表', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:list', 1, 1, 1, NOW(), NULL, NULL), | ||||||
| (1112, '新增', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:add', 2, 1, 1, NOW(), NULL, NULL), | (1112, '详情', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:detail', 2, 1, 1, NOW(), NULL, NULL), | ||||||
| (1113, '修改', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:update', 3, 1, 1, NOW(), NULL, NULL), | (1113, '新增', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:add', 3, 1, 1, NOW(), NULL, NULL), | ||||||
| (1114, '删除', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:delete', 4, 1, 1, NOW(), NULL, NULL), | (1114, '修改', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:update', 4, 1, 1, NOW(), NULL, NULL), | ||||||
|  | (1115, '删除', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:delete', 5, 1, 1, NOW(), NULL, NULL), | ||||||
|  |  | ||||||
| (1190, '系统配置', 1000, 2, '/system/config', 'SystemConfig', 'system/config/index', NULL, 'config', false, false, false, NULL, 999, 1, 1, NOW(), NULL, NULL), | (1190, '系统配置', 1000, 2, '/system/config', 'SystemConfig', 'system/config/index', NULL, 'config', false, false, false, NULL, 999, 1, 1, NOW(), NULL, NULL), | ||||||
| (1191, '查看', 1190, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:config:list', 1, 1, 1, NOW(), NULL, NULL), | (1191, '查看', 1190, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:config:list', 1, 1, 1, NOW(), NULL, NULL), | ||||||
| @@ -80,6 +85,7 @@ VALUES | |||||||
| (2010, '在线用户', 2000, 2, '/monitor/online', 'MonitorOnline', 'monitor/online/index', NULL, 'user', false, false, false, NULL, 1, 1, 1, NOW(), NULL, NULL), | (2010, '在线用户', 2000, 2, '/monitor/online', 'MonitorOnline', 'monitor/online/index', NULL, 'user', false, false, false, NULL, 1, 1, 1, NOW(), NULL, NULL), | ||||||
| (2011, '列表', 2010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:online:list', 1, 1, 1, NOW(), NULL, NULL), | (2011, '列表', 2010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:online:list', 1, 1, 1, NOW(), NULL, NULL), | ||||||
| (2012, '强退', 2010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:online:kickout', 2, 1, 1, NOW(), NULL, NULL), | (2012, '强退', 2010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:online:kickout', 2, 1, 1, NOW(), NULL, NULL), | ||||||
|  |  | ||||||
| (2020, '系统日志', 2000, 2, '/monitor/log', 'MonitorLog', 'monitor/log/index', NULL, 'history', false, false, false, NULL, 2, 1, 1, NOW(), NULL, NULL), | (2020, '系统日志', 2000, 2, '/monitor/log', 'MonitorLog', 'monitor/log/index', NULL, 'history', false, false, false, NULL, 2, 1, 1, NOW(), NULL, NULL), | ||||||
| (2021, '列表', 2020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:log:list', 1, 1, 1, NOW(), NULL, NULL), | (2021, '列表', 2020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:log:list', 1, 1, 1, NOW(), NULL, NULL), | ||||||
| (2022, '详情', 2020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:log:detail', 2, 1, 1, NOW(), NULL, NULL), | (2022, '详情', 2020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:log:detail', 2, 1, 1, NOW(), NULL, NULL), | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user