diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/permission/UserController.java b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/permission/UserController.java index 2742044..971d0af 100644 --- a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/permission/UserController.java +++ b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/permission/UserController.java @@ -65,11 +65,11 @@ public class UserController { @GetMapping @PreAuthorize("hasAuthority('system:user:get')") @Operation(summary = "获取所有用户(权限管理相关)") - public ResponseResult> getAllUser(Long currentPage, Long pageSize, String searchName, String searchRole, String searchGroup, Integer searchEnable) { + public ResponseResult> getAllUser(Long currentPage, Long pageSize, String searchName, String searchRole, String searchGroup, Integer searchEnable, Integer searchRegex) { List searchRoleList = WebUtil.convertStringToList(searchRole, Long.class); List searchGroupList = WebUtil.convertStringToList(searchGroup, Long.class); - IPage users = userService.getAllUser(currentPage, pageSize, searchName, searchRoleList, searchGroupList, searchEnable); + IPage users = userService.getAllUser(currentPage, pageSize, searchName, searchRoleList, searchGroupList, searchEnable, searchRegex); return ResponseResult.databaseSelectSuccess(users); } diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/mapper/permission/UserMapper.java b/Pinnacle/src/main/java/com/cfive/pinnacle/mapper/permission/UserMapper.java index 0246b2a..ae1ae0e 100644 --- a/Pinnacle/src/main/java/com/cfive/pinnacle/mapper/permission/UserMapper.java +++ b/Pinnacle/src/main/java/com/cfive/pinnacle/mapper/permission/UserMapper.java @@ -17,7 +17,7 @@ import java.util.List; */ @Mapper public interface UserMapper extends BaseMapper { - List filterUserByRoleIdAndGroupId(@Param("userList") List userList, @Param("roleId") Long roleId, @Param("groupId") Long groupId, String searchName, Integer searchEnable); + List filterUserByRoleIdAndGroupId(@Param("userList") List userList, @Param("roleId") Long roleId, @Param("groupId") Long groupId, @Param("searchName") String searchName, @Param("searchEnable") Integer searchEnable, @Param("searchRegex") Integer searchRegex); List getAllWithRoleAndGroup(@Param("userList") List userList); diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/service/permission/IUserService.java b/Pinnacle/src/main/java/com/cfive/pinnacle/service/permission/IUserService.java index 32d7820..a0c8f64 100644 --- a/Pinnacle/src/main/java/com/cfive/pinnacle/service/permission/IUserService.java +++ b/Pinnacle/src/main/java/com/cfive/pinnacle/service/permission/IUserService.java @@ -24,7 +24,7 @@ public interface IUserService extends IService { List getNoticeUser(); - IPage getAllUser(Long currentPage, Long pageSize, String searchName, List searchRole, List searchGroup, Integer searchEnable); + IPage getAllUser(Long currentPage, Long pageSize, String searchName, List searchRole, List searchGroup, Integer searchEnable, Integer searchRegex); User getUser(long id); diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/service/permission/impl/UserServiceImpl.java b/Pinnacle/src/main/java/com/cfive/pinnacle/service/permission/impl/UserServiceImpl.java index 45dfeb7..f550a81 100644 --- a/Pinnacle/src/main/java/com/cfive/pinnacle/service/permission/impl/UserServiceImpl.java +++ b/Pinnacle/src/main/java/com/cfive/pinnacle/service/permission/impl/UserServiceImpl.java @@ -96,13 +96,13 @@ public class UserServiceImpl extends ServiceImpl implements IU @Override - public IPage getAllUser(Long currentPage, Long pageSize, String searchName, List searchRole, List searchGroup, Integer searchEnable) { + public IPage getAllUser(Long currentPage, Long pageSize, String searchName, List searchRole, List searchGroup, Integer searchEnable, Integer searchRegex) { IPage userIPage = PageDTO.of(currentPage, pageSize); searchName = searchName.trim(); - List userList = userMapper.filterUserByRoleIdAndGroupId(null, null, null, searchName, searchEnable); + List userList = userMapper.filterUserByRoleIdAndGroupId(null, null, null, searchName, searchEnable, searchRegex); if (userList.size() > 0) { for (Long roleId : searchRole) { - userList = userMapper.filterUserByRoleIdAndGroupId(userList, roleId, null, null, null); + userList = userMapper.filterUserByRoleIdAndGroupId(userList, roleId, null, null, null, null); if (userList.size() == 0) { break; } @@ -110,7 +110,7 @@ public class UserServiceImpl extends ServiceImpl implements IU } if (userList.size() > 0) { for (Long groupId : searchGroup) { - userList = userMapper.filterUserByRoleIdAndGroupId(userList, null, groupId, null, null); + userList = userMapper.filterUserByRoleIdAndGroupId(userList, null, groupId, null, null, null); if (userList.size() == 0) { break; } diff --git a/Pinnacle/src/main/resources/mapper/permission/UserMapper.xml b/Pinnacle/src/main/resources/mapper/permission/UserMapper.xml index e6b5181..7c4d9a9 100644 --- a/Pinnacle/src/main/resources/mapper/permission/UserMapper.xml +++ b/Pinnacle/src/main/resources/mapper/permission/UserMapper.xml @@ -22,7 +22,12 @@ #{item} - and instr(t_user.username, #{searchName}) > 0 + + and t_user.username regexp #{searchName} + + + and instr(t_user.username, #{searchName}) > 0 + and t_user.enable = #{searchEnable} diff --git a/ui/src/pages/power/GroupManagement.vue b/ui/src/pages/power/GroupManagement.vue index e272f96..45575a7 100644 --- a/ui/src/pages/power/GroupManagement.vue +++ b/ui/src/pages/power/GroupManagement.vue @@ -31,7 +31,6 @@ > - - + + + @change="handleInputChange" + > + + - + - + 非法正则表达式,请重新输入' + }) + return + } this.tableLoading = true request .get('/user', { @@ -277,7 +303,8 @@ export default { searchName: this.searchName, searchRole: this.searchRole + '', searchGroup: this.searchGroup + '', - searchEnable: this.searchEnable + searchEnable: this.searchEnable, + searchRegex: this.searchRegex ?? 0 }) .then((res) => { const response = res.data @@ -494,18 +521,35 @@ export default { }, handleQuery() { this.searchName = this.inputName + this.searchRegex = _.cloneDeep(this.checkedRegex) this.searchRole = this.selectedRole this.searchGroup = this.selectedGroup this.searchEnable = this.selectedEnable this.currentPage = 1 + this.handleInputChange() this.loadUserTable() }, handleClear() { this.inputName = '' + this.checkedRegex = 0 this.selectedRole = [] this.selectedGroup = [] this.selectedEnable = -1 this.handleQuery() + }, + handleInputChange() { + if (this.checkedRegex) { + try { + RegExp(this.inputName) + this.isRegexLegal = !( + this.inputName.includes('{}') || this.inputName.includes('[]') + ) + } catch (e) { + this.isRegexLegal = false + } + } else { + this.isRegexLegal = true + } } }, mounted() {