Merge remote-tracking branch 'origin/fix-bug-202303'

# Conflicts:
#	jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/CsrfFilter.java
#	jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml
This commit is contained in:
zer0Black
2023-05-30 10:30:17 +08:00
19 changed files with 835 additions and 628 deletions
@@ -0,0 +1,31 @@
-- ----------------------------
-- 系统管理-菜单管理(增删查改权限)
-- ----------------------------
-- 权限数据 --
INSERT INTO `sys_permission` VALUES ('1654673897041223683', '54dd5457a3190740005c1bfec55b1c34', '查询', NULL, NULL, NULL, NULL, 2, 'permission:list', '1', NULL, 0, NULL, 1, 1, 0, 0, NULL, 'admin', '2023-05-06 10:26:14', NULL, NULL, 0, 0, '1', 0);
INSERT INTO `sys_permission` VALUES ('1654675497143033857', '54dd5457a3190740005c1bfec55b1c34', '添加', NULL, NULL, NULL, NULL, 2, 'permission:add', '1', NULL, 0, NULL, 1, 1, 0, 0, NULL, 'admin', '2023-05-06 10:32:36', NULL, NULL, 0, 0, '1', 0);
INSERT INTO `sys_permission` VALUES ('1654675694854135809', '54dd5457a3190740005c1bfec55b1c34', '删除', NULL, NULL, NULL, NULL, 2, 'permission:delete', '1', NULL, 0, NULL, 1, 1, 0, 0, NULL, 'admin', '2023-05-06 10:33:23', NULL, NULL, 0, 0, '1', 0);
INSERT INTO `sys_permission` VALUES ('1654675850508951554', '54dd5457a3190740005c1bfec55b1c34', '编辑', NULL, NULL, NULL, NULL, 2, 'permission:edit', '1', NULL, 0, NULL, 1, 1, 0, 0, NULL, 'admin', '2023-05-06 10:34:00', NULL, NULL, 0, 0, '1', 0);
-- 权限与admin角色关联数据 --
INSERT INTO `sys_role_permission` VALUES ('1654675964954730498', 'f6817f48af4fb3af11b9e8bf182f618b', '1654673897041223683', NULL, '2023-05-06 10:34:27', '127.0.0.1');
INSERT INTO `sys_role_permission` VALUES ('1654675964984090626', 'f6817f48af4fb3af11b9e8bf182f618b', '1654675497143033857', NULL, '2023-05-06 10:34:27', '127.0.0.1');
INSERT INTO `sys_role_permission` VALUES ('1654675964988284929', 'f6817f48af4fb3af11b9e8bf182f618b', '1654675694854135809', NULL, '2023-05-06 10:34:27', '127.0.0.1');
INSERT INTO `sys_role_permission` VALUES ('1654675964992479233', 'f6817f48af4fb3af11b9e8bf182f618b', '1654675850508951554', NULL, '2023-05-06 10:34:27', '127.0.0.1');
-- ----------------------------
-- 系统管理-数据字典(增删查改、导出导入权限)
-- ----------------------------
-- 权限数据 --
INSERT INTO `sys_permission` VALUES ('1654744031105675265', 'f1cb187abf927c88b89470d08615f5ac', '查询', NULL, NULL, NULL, NULL, 2, 'dict:list', '1', NULL, 0, NULL, 1, 1, 0, 0, NULL, 'admin', '2023-05-06 15:04:55', NULL, NULL, 0, 0, '1', 0);
INSERT INTO `sys_permission` VALUES ('1654744160357347330', 'f1cb187abf927c88b89470d08615f5ac', '添加', NULL, NULL, NULL, NULL, 2, 'dict:add', '1', NULL, 0, NULL, 1, 1, 0, 0, NULL, 'admin', '2023-05-06 15:05:26', NULL, NULL, 0, 0, '1', 0);
INSERT INTO `sys_permission` VALUES ('1654744259787517954', 'f1cb187abf927c88b89470d08615f5ac', '删除', NULL, NULL, NULL, NULL, 2, 'dict:delete', '1', NULL, 0, NULL, 1, 1, 0, 0, NULL, 'admin', '2023-05-06 15:05:50', NULL, NULL, 0, 0, '1', 0);
INSERT INTO `sys_permission` VALUES ('1654744350615171074', 'f1cb187abf927c88b89470d08615f5ac', '编辑', NULL, NULL, NULL, NULL, 2, 'dict:edit', '1', NULL, 0, NULL, 1, 1, 0, 0, NULL, 'admin', '2023-05-06 15:06:12', NULL, NULL, 0, 0, '1', 0);
INSERT INTO `sys_permission` VALUES ('1654746352959123457', 'f1cb187abf927c88b89470d08615f5ac', '导出', NULL, NULL, NULL, NULL, 2, 'dict:export', '1', NULL, 0, NULL, 1, 1, 0, 0, NULL, 'admin', '2023-05-06 15:14:09', NULL, NULL, 0, 0, '1', 0);
INSERT INTO `sys_permission` VALUES ('1654746470756151297', 'f1cb187abf927c88b89470d08615f5ac', '导入', NULL, NULL, NULL, NULL, 2, 'dict:import', '1', NULL, 0, NULL, 1, 1, 0, 0, NULL, 'admin', '2023-05-06 15:14:37', NULL, NULL, 0, 0, '1', 0);
-- 权限与admin角色关联数据 --
INSERT INTO `sys_role_permission` VALUES ('1654747707610263553', 'f6817f48af4fb3af11b9e8bf182f618b', '1654744031105675265', NULL, '2023-05-06 15:19:32', '127.0.0.1');
INSERT INTO `sys_role_permission` VALUES ('1654747707627040770', 'f6817f48af4fb3af11b9e8bf182f618b', '1654744160357347330', NULL, '2023-05-06 15:19:32', '127.0.0.1');
INSERT INTO `sys_role_permission` VALUES ('1654747707627040771', 'f6817f48af4fb3af11b9e8bf182f618b', '1654744259787517954', NULL, '2023-05-06 15:19:32', '127.0.0.1');
INSERT INTO `sys_role_permission` VALUES ('1654747707631235073', 'f6817f48af4fb3af11b9e8bf182f618b', '1654744350615171074', NULL, '2023-05-06 15:19:32', '127.0.0.1');
INSERT INTO `sys_role_permission` VALUES ('1654747707631235074', 'f6817f48af4fb3af11b9e8bf182f618b', '1654746352959123457', NULL, '2023-05-06 15:19:32', '127.0.0.1');
INSERT INTO `sys_role_permission` VALUES ('1654747707635429378', 'f6817f48af4fb3af11b9e8bf182f618b', '1654746470756151297', NULL, '2023-05-06 15:19:32', '127.0.0.1');
@@ -172,8 +172,8 @@ public class JeroController<T, S extends IService<T>> {
// 获取上传文件对象 // 获取上传文件对象
MultipartFile file = entity.getValue(); MultipartFile file = entity.getValue();
ImportParams params = new ImportParams(); ImportParams params = new ImportParams();
params.setTitleRows(2); /*params.setTitleRows(2);
params.setHeadRows(1); params.setHeadRows(1);*/
params.setNeedSave(true); params.setNeedSave(true);
try { try {
List<T> list = ExcelImportUtil.importExcel(file.getInputStream(), clazz, params); List<T> list = ExcelImportUtil.importExcel(file.getInputStream(), clazz, params);
@@ -32,8 +32,8 @@ public class JwtUtil {
} }
// Token过期时间24小时(用户登录过期时间是此时间的两倍,以token在reids缓存时间为准) // Token过期时间30分钟(用户登录过期时间也是30分钟,以token在reids缓存时间为准)
public static final long EXPIRE_TIME = 1440 * 60 * 1000L; public static final long EXPIRE_TIME = 30 * 60 * 1000L;
private static final String USERNAME_FIELD = "username"; private static final String USERNAME_FIELD = "username";
@@ -79,6 +79,7 @@ public class JwtUtil {
* @return 加密的token * @return 加密的token
*/ */
public static String sign(String username, String secret) { public static String sign(String username, String secret) {
// 24小时后过期
Date date = new Date(System.currentTimeMillis() + EXPIRE_TIME); Date date = new Date(System.currentTimeMillis() + EXPIRE_TIME);
Algorithm algorithm = Algorithm.HMAC256(secret); Algorithm algorithm = Algorithm.HMAC256(secret);
// 附带username信息 // 附带username信息
@@ -158,7 +158,7 @@ public class ShiroRealm extends AuthorizingRealm {
String newAuthorization = JwtUtil.sign(userName, passWord); String newAuthorization = JwtUtil.sign(userName, passWord);
// 设置超时时间 // 设置超时时间
redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, newAuthorization); redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, newAuthorization);
redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME / 1000); redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME / 1000 * 2);
log.debug("——————————用户在线操作,更新token保证不掉线—————————jwtTokenRefresh——————— "+ token); log.debug("——————————用户在线操作,更新token保证不掉线—————————jwtTokenRefresh——————— "+ token);
} }
return true; return true;
@@ -536,7 +536,7 @@ public class DbReadTableUtil {
} }
//通过表名获取表备注 //通过表名获取表备注
public String remarks(String a) throws SQLException, ClassNotFoundException { public String remarks(String tableName) throws SQLException, ClassNotFoundException {
Connection connection = null; Connection connection = null;
Statement statement = null; Statement statement = null;
try { try {
@@ -544,7 +544,15 @@ public class DbReadTableUtil {
connection = DriverManager.getConnection(com.jero.codegenerate.properties.CodeConfigProperties.databaseUrl, com.jero.codegenerate.properties.CodeConfigProperties.username, com.jero.codegenerate.properties.CodeConfigProperties.password); connection = DriverManager.getConnection(com.jero.codegenerate.properties.CodeConfigProperties.databaseUrl, com.jero.codegenerate.properties.CodeConfigProperties.username, com.jero.codegenerate.properties.CodeConfigProperties.password);
statement = connection.createStatement(1005, 1007); statement = connection.createStatement(1005, 1007);
String sqlStr = "SELECT table_comment FROM information_schema.TABLES WHERE table_name = " + "'"+a+"'"; String sqlStr = "";
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals(DbConvertDef.MYSQL)) {
// mysql获取表的列信息sql
sqlStr = "SELECT table_comment FROM information_schema.TABLES WHERE table_name = " + "'"+tableName+"'";
}
// oracle获取表的列信息sql
if (com.jero.codegenerate.properties.CodeConfigProperties.databaseType.equals(DbConvertDef.ORACLE)) {
sqlStr = "SELECT comments FROM user_tab_comments WHERE table_name = '" + tableName.toUpperCase() + "'";
}
ResultSet resultSet = statement.executeQuery(sqlStr); ResultSet resultSet = statement.executeQuery(sqlStr);
while(resultSet.next()) { while(resultSet.next()) {
String name = resultSet.getString(1); String name = resultSet.getString(1);
@@ -30,8 +30,8 @@ public class SysMessageTemplate extends JeroEntity {
@Excel(name = "模板内容", width = 50) @Excel(name = "模板内容", width = 50)
private java.lang.String templateContent; private java.lang.String templateContent;
/**模板测试json*/ /**模板测试json*/
@Excel(name = "模板测试json", width = 15) /*@Excel(name = "模板测试json", width = 15)
private java.lang.String templateTestJson; private java.lang.String templateTestJson;*/
/**模板类型*/ /**模板类型*/
@Excel(name = "模板类型", width = 15) @Excel(name = "模板类型", width = 15)
private java.lang.String templateType; private java.lang.String templateType;
@@ -3,6 +3,7 @@ package com.jero.modules.system.controller;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import com.jero.common.api.vo.Results; import com.jero.common.api.vo.Results;
import com.jero.common.util.PasswordUtil;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import com.jero.common.util.SqlInjectionUtil; import com.jero.common.util.SqlInjectionUtil;
import com.jero.modules.system.mapper.SysDictMapper; import com.jero.modules.system.mapper.SysDictMapper;
@@ -47,6 +48,11 @@ public class DuplicateCheckController {
//SQL注入校验(只限制非法串改数据库) //SQL注入校验(只限制非法串改数据库)
final String[] sqlInjCheck = {duplicateCheckVo.getTableName(),duplicateCheckVo.getFieldName()}; final String[] sqlInjCheck = {duplicateCheckVo.getTableName(),duplicateCheckVo.getFieldName()};
SqlInjectionUtil.filterContent(sqlInjCheck); SqlInjectionUtil.filterContent(sqlInjCheck);
if ("phone".equals(duplicateCheckVo.getFieldName())) {
if (StringUtils.isNotBlank(duplicateCheckVo.getFieldVal())) {
duplicateCheckVo.setFieldVal(PasswordUtil.encrypt(duplicateCheckVo.getFieldVal()));
}
}
if (StringUtils.isNotBlank(duplicateCheckVo.getDataId())) { if (StringUtils.isNotBlank(duplicateCheckVo.getDataId())) {
// [2].编辑页面校验 // [2].编辑页面校验
num = sysDictMapper.duplicateCheckCountSql(duplicateCheckVo); num = sysDictMapper.duplicateCheckCountSql(duplicateCheckVo);
@@ -90,18 +90,12 @@ public class SysAnnouncementController {
HttpServletRequest req) { HttpServletRequest req) {
Results<IPage<SysAnnouncement>> result = new Results<>(); Results<IPage<SysAnnouncement>> result = new Results<>();
sysAnnouncement.setDelFlag(CommonConstant.DEL_FLAG_0.toString()); sysAnnouncement.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
QueryWrapper<SysAnnouncement> queryWrapper = new QueryWrapper<>(sysAnnouncement);
Page<SysAnnouncement> page = new Page<>(pageNo,pageSize); Page<SysAnnouncement> page = new Page<>(pageNo,pageSize);
//排序逻辑 处理 LambdaQueryWrapper<SysAnnouncement> queryWrapper = new LambdaQueryWrapper<>();
String column = req.getParameter("column"); queryWrapper.eq(SysAnnouncement::getDelFlag, sysAnnouncement.getDelFlag());
String order = req.getParameter("order"); queryWrapper.like(StringUtils.isNotBlank(sysAnnouncement.getTitile())
if(oConvertUtils.isNotEmpty(column) && oConvertUtils.isNotEmpty(order)) { ,SysAnnouncement::getTitile, sysAnnouncement.getTitile());
if("asc".equals(order)) { queryWrapper.orderByDesc(SysAnnouncement::getCreateTime);
queryWrapper.orderByAsc(oConvertUtils.camelToUnderline(column));
}else {
queryWrapper.orderByDesc(oConvertUtils.camelToUnderline(column));
}
}
IPage<SysAnnouncement> pageList = sysAnnouncementService.page(page, queryWrapper); IPage<SysAnnouncement> pageList = sysAnnouncementService.page(page, queryWrapper);
result.setSuccess(true); result.setSuccess(true);
result.setResult(pageList); result.setResult(pageList);
@@ -24,6 +24,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.poi.ss.formula.functions.T; import org.apache.poi.ss.formula.functions.T;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -68,6 +69,7 @@ public class SysPermissionController {
* @return * @return
*/ */
@GetMapping("/page") @GetMapping("/page")
@RequiresPermissions("permission:list")
public Results<List<SysPermissionTree>> list() { public Results<List<SysPermissionTree>> list() {
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
Results<List<SysPermissionTree>> result = new Results<>(); Results<List<SysPermissionTree>> result = new Results<>();
@@ -94,6 +96,7 @@ public class SysPermissionController {
* @return * @return
*/ */
@GetMapping("/getSystemMenuList") @GetMapping("/getSystemMenuList")
@RequiresPermissions("permission:list")
public Results<List<SysPermissionTree>> getSystemMenuList() { public Results<List<SysPermissionTree>> getSystemMenuList() {
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
Results<List<SysPermissionTree>> result = new Results<>(); Results<List<SysPermissionTree>> result = new Results<>();
@@ -123,6 +126,7 @@ public class SysPermissionController {
* @return * @return
*/ */
@GetMapping("/getSystemSubmenu") @GetMapping("/getSystemSubmenu")
@RequiresPermissions("permission:list")
public Results<List<SysPermissionTree>> getSystemSubmenu(@RequestParam("parentId") String parentId){ public Results<List<SysPermissionTree>> getSystemSubmenu(@RequestParam("parentId") String parentId){
Results<List<SysPermissionTree>> result = new Results<>(); Results<List<SysPermissionTree>> result = new Results<>();
try{ try{
@@ -153,6 +157,7 @@ public class SysPermissionController {
* @return 返回 key-value 的 Map * @return 返回 key-value 的 Map
*/ */
@GetMapping("/getSystemSubmenuBatch") @GetMapping("/getSystemSubmenuBatch")
@RequiresPermissions("permission:list")
public Results<Map<String, List<SysPermissionTree>>> getSystemSubmenuBatch(@RequestParam("parentIds") String parentIds) { public Results<Map<String, List<SysPermissionTree>>> getSystemSubmenuBatch(@RequestParam("parentIds") String parentIds) {
try { try {
LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<>();
@@ -186,6 +191,7 @@ public class SysPermissionController {
* @return * @return
*/ */
@GetMapping("/getUserPermissionByToken") @GetMapping("/getUserPermissionByToken")
@RequiresPermissions("permission:list")
public Results<JSONObject> getUserPermissionByToken() { public Results<JSONObject> getUserPermissionByToken() {
Results<JSONObject> result = new Results<>(); Results<JSONObject> result = new Results<>();
try { try {
@@ -230,6 +236,7 @@ public class SysPermissionController {
*/ */
//@RequiresRoles({ "admin" }) //@RequiresRoles({ "admin" })
@PostMapping("/add") @PostMapping("/add")
@RequiresPermissions("permission:add")
public Results<Object> add(@RequestBody SysPermission permission) { public Results<Object> add(@RequestBody SysPermission permission) {
try { try {
permission = PermissionDataUtil.intelligentProcessData(permission); permission = PermissionDataUtil.intelligentProcessData(permission);
@@ -248,6 +255,7 @@ public class SysPermissionController {
*/ */
//@RequiresRoles({ "admin" }) //@RequiresRoles({ "admin" })
@PostMapping("/edit") @PostMapping("/edit")
@RequiresPermissions("permission:edit")
public Results<Object> edit(@RequestBody SysPermission permission) { public Results<Object> edit(@RequestBody SysPermission permission) {
try { try {
permission = PermissionDataUtil.intelligentProcessData(permission); permission = PermissionDataUtil.intelligentProcessData(permission);
@@ -266,6 +274,7 @@ public class SysPermissionController {
*/ */
//@RequiresRoles({ "admin" }) //@RequiresRoles({ "admin" })
@PostMapping("/delete") @PostMapping("/delete")
@RequiresPermissions("permission:delete")
public Results<T> delete(@RequestBody Map<String, String> map) { public Results<T> delete(@RequestBody Map<String, String> map) {
String id = map.get("id"); String id = map.get("id");
if(StringUtils.isBlank(id)){ if(StringUtils.isBlank(id)){
@@ -287,6 +296,7 @@ public class SysPermissionController {
*/ */
//@RequiresRoles({ "admin" }) //@RequiresRoles({ "admin" })
@PostMapping("/deleteBatch") @PostMapping("/deleteBatch")
@RequiresPermissions("permission:delete")
public Results<T> deleteBatch(@RequestBody Map<String, String> map) { public Results<T> deleteBatch(@RequestBody Map<String, String> map) {
String ids = map.get("ids"); String ids = map.get("ids");
if(StringUtils.isBlank(ids)){ if(StringUtils.isBlank(ids)){
@@ -312,6 +322,7 @@ public class SysPermissionController {
* @return * @return
*/ */
@GetMapping("/queryTreeList") @GetMapping("/queryTreeList")
@RequiresPermissions("permission:list")
public Results<Map<String, Object>> queryTreeList() { public Results<Map<String, Object>> queryTreeList() {
Results<Map<String, Object>> result = new Results<>(); Results<Map<String, Object>> result = new Results<>();
// 全部权限ids // 全部权限ids
@@ -344,6 +355,7 @@ public class SysPermissionController {
* @return * @return
*/ */
@GetMapping("/queryListAsync") @GetMapping("/queryListAsync")
@RequiresPermissions("permission:list")
public Results<List<TreeModel>> queryAsync(@RequestParam(name = "pid", required = false) String parentId) { public Results<List<TreeModel>> queryAsync(@RequestParam(name = "pid", required = false) String parentId) {
Results<List<TreeModel>> result = new Results<>(); Results<List<TreeModel>> result = new Results<>();
try { try {
@@ -367,6 +379,7 @@ public class SysPermissionController {
* @return * @return
*/ */
@GetMapping("/queryRolePermission") @GetMapping("/queryRolePermission")
@RequiresPermissions("permission:list")
public Results<List<String>> queryRolePermission(@RequestParam(name = "roleId", required = true) String roleId) { public Results<List<String>> queryRolePermission(@RequestParam(name = "roleId", required = true) String roleId) {
Results<List<String>> result = new Results<>(); Results<List<String>> result = new Results<>();
try { try {
@@ -385,6 +398,7 @@ public class SysPermissionController {
* @return * @return
*/ */
@PostMapping("/saveRolePermission") @PostMapping("/saveRolePermission")
@RequiresPermissions("permission:add")
//@RequiresRoles({ "admin" }) //@RequiresRoles({ "admin" })
public Results<String> saveRolePermission(@RequestBody JSONObject json) { public Results<String> saveRolePermission(@RequestBody JSONObject json) {
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
@@ -655,6 +669,7 @@ public class SysPermissionController {
* @return * @return
*/ */
@GetMapping("/getPermRuleListByPermId") @GetMapping("/getPermRuleListByPermId")
@RequiresPermissions("permission:list")
public Results<List<SysPermissionDataRule>> getPermRuleListByPermId(SysPermissionDataRule sysPermissionDataRule) { public Results<List<SysPermissionDataRule>> getPermRuleListByPermId(SysPermissionDataRule sysPermissionDataRule) {
List<SysPermissionDataRule> permRuleList = sysPermissionDataRuleService.getPermRuleListByPermId(sysPermissionDataRule.getPermissionId()); List<SysPermissionDataRule> permRuleList = sysPermissionDataRuleService.getPermRuleListByPermId(sysPermissionDataRule.getPermissionId());
Results<List<SysPermissionDataRule>> result = new Results<>(); Results<List<SysPermissionDataRule>> result = new Results<>();
@@ -671,6 +686,7 @@ public class SysPermissionController {
*/ */
//@RequiresRoles({ "admin" }) //@RequiresRoles({ "admin" })
@PostMapping("/addPermissionRule") @PostMapping("/addPermissionRule")
@RequiresPermissions("permission:add")
public Results<Object> addPermissionRule(@RequestBody SysPermissionDataRule sysPermissionDataRule) { public Results<Object> addPermissionRule(@RequestBody SysPermissionDataRule sysPermissionDataRule) {
try { try {
sysPermissionDataRule.setCreateTime(new Date()); sysPermissionDataRule.setCreateTime(new Date());
@@ -684,6 +700,7 @@ public class SysPermissionController {
//@RequiresRoles({ "admin" }) //@RequiresRoles({ "admin" })
@PostMapping("/editPermissionRule") @PostMapping("/editPermissionRule")
@RequiresPermissions("permission:edit")
public Results<Object> editPermissionRule(@RequestBody SysPermissionDataRule sysPermissionDataRule) { public Results<Object> editPermissionRule(@RequestBody SysPermissionDataRule sysPermissionDataRule) {
try { try {
sysPermissionDataRuleService.saveOrUpdate(sysPermissionDataRule); sysPermissionDataRuleService.saveOrUpdate(sysPermissionDataRule);
@@ -702,6 +719,7 @@ public class SysPermissionController {
*/ */
//@RequiresRoles({ "admin" }) //@RequiresRoles({ "admin" })
@PostMapping("/deletePermissionRule") @PostMapping("/deletePermissionRule")
@RequiresPermissions("permission:delete")
public Results<Object> deletePermissionRule(@RequestBody Map<String,String> map) { public Results<Object> deletePermissionRule(@RequestBody Map<String,String> map) {
try { try {
String id = map.get("id"); String id = map.get("id");
@@ -723,6 +741,7 @@ public class SysPermissionController {
* @return * @return
*/ */
@GetMapping("/queryPermissionRule") @GetMapping("/queryPermissionRule")
@RequiresPermissions("permission:list")
public Results<List<SysPermissionDataRule>> queryPermissionRule(SysPermissionDataRule sysPermissionDataRule) { public Results<List<SysPermissionDataRule>> queryPermissionRule(SysPermissionDataRule sysPermissionDataRule) {
try { try {
List<SysPermissionDataRule> permRuleList = sysPermissionDataRuleService.queryPermissionRule(sysPermissionDataRule); List<SysPermissionDataRule> permRuleList = sysPermissionDataRuleService.queryPermissionRule(sysPermissionDataRule);
@@ -739,6 +758,7 @@ public class SysPermissionController {
* @return * @return
*/ */
@GetMapping("/queryDepartPermission") @GetMapping("/queryDepartPermission")
@RequiresPermissions("permission:list")
public Results<List<String>> queryDepartPermission(@RequestParam(name = "departId", required = true) String departId) { public Results<List<String>> queryDepartPermission(@RequestParam(name = "departId", required = true) String departId) {
Results<List<String>> result = new Results<>(); Results<List<String>> result = new Results<>();
try { try {
@@ -757,6 +777,7 @@ public class SysPermissionController {
* @return * @return
*/ */
@PostMapping("/saveDepartPermission") @PostMapping("/saveDepartPermission")
@RequiresPermissions("permission:add")
//@RequiresRoles({ "admin" }) //@RequiresRoles({ "admin" })
public Results<String> saveDepartPermission(@RequestBody JSONObject json) { public Results<String> saveDepartPermission(@RequestBody JSONObject json) {
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
@@ -81,7 +81,7 @@ public class SysRoleController {
* @param req * @param req
* @return * @return
*/ */
//@RequiresPermissions("sys:role:list") @RequiresPermissions("sys:role:list")
@GetMapping("/page") @GetMapping("/page")
public Results<IPage<SysRole>> queryPageList(SysRole role, public Results<IPage<SysRole>> queryPageList(SysRole role,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@@ -181,7 +181,7 @@ public class SysRoleController {
* @param id * @param id
* @return * @return
*/ */
//@RequiresPermissions("sys:role:list") @RequiresPermissions("sys:role:list")
@GetMapping("/queryById") @GetMapping("/queryById")
public Results<SysRole> queryById(@RequestParam(name="id",required=true) String id) { public Results<SysRole> queryById(@RequestParam(name="id",required=true) String id) {
SysRole sysRole = sysRoleService.getById(id); SysRole sysRole = sysRoleService.getById(id);
@@ -191,7 +191,7 @@ public class SysRoleController {
return Results.OK(sysRole); return Results.OK(sysRole);
} }
} }
//@RequiresPermissions("sys:role:list") @RequiresPermissions("sys:role:list")
@GetMapping("/queryall") @GetMapping("/queryall")
public Results<List<SysRole>> queryall() { public Results<List<SysRole>> queryall() {
List<SysRole> list = sysRoleService.list(); List<SysRole> list = sysRoleService.list();
@@ -205,7 +205,7 @@ public class SysRoleController {
/** /**
* 校验角色编码唯一 * 校验角色编码唯一
*/ */
//@RequiresPermissions("sys:role:list") @RequiresPermissions("sys:role:list")
@GetMapping("/checkRoleCode") @GetMapping("/checkRoleCode")
public Results<Boolean> checkUsername(String id, String roleCode) { public Results<Boolean> checkUsername(String id, String roleCode) {
Results<Boolean> result = new Results<>(); Results<Boolean> result = new Results<>();
@@ -292,7 +292,7 @@ public class SysRoleController {
/** /**
* 查询数据规则数据 * 查询数据规则数据
*/ */
//@RequiresPermissions("sys:role:list") @RequiresPermissions("sys:role:list")
@GetMapping(value = "/datarule/{permissionId}/{roleId}") @GetMapping(value = "/datarule/{permissionId}/{roleId}")
public Results<Map<String, Object>> loadDatarule(@PathVariable("permissionId") String permissionId, @PathVariable("roleId") String roleId) { public Results<Map<String, Object>> loadDatarule(@PathVariable("permissionId") String permissionId, @PathVariable("roleId") String roleId) {
List<SysPermissionDataRule> list = sysPermissionDataRuleService.getPermRuleListByPermId(permissionId); List<SysPermissionDataRule> list = sysPermissionDataRuleService.getPermRuleListByPermId(permissionId);
@@ -320,7 +320,7 @@ public class SysRoleController {
/** /**
* 保存数据规则至角色菜单关联表 * 保存数据规则至角色菜单关联表
*/ */
//@RequiresPermissions("sys:role:list") @RequiresPermissions("sys:role:list")
@PostMapping(value = "/datarule") @PostMapping(value = "/datarule")
public Results<T> saveDatarule(@RequestBody JSONObject jsonObject) { public Results<T> saveDatarule(@RequestBody JSONObject jsonObject) {
try { try {
@@ -351,7 +351,7 @@ public class SysRoleController {
* @param request * @param request
* @return * @return
*/ */
//@RequiresPermissions("sys:role:list") @RequiresPermissions("sys:role:list")
@GetMapping("/queryTreeList") @GetMapping("/queryTreeList")
public Results<Map<String,Object>> queryTreeList(HttpServletRequest request) { public Results<Map<String,Object>> queryTreeList(HttpServletRequest request) {
Results<Map<String,Object>> result = new Results<>(); Results<Map<String,Object>> result = new Results<>();
@@ -377,7 +377,7 @@ public class SysRoleController {
} }
return result; return result;
} }
//@RequiresPermissions("sys:role:list") @RequiresPermissions("sys:role:list")
private void getTreeModelList(List<TreeModel> treeList,List<SysPermission> metaList,TreeModel temp) { private void getTreeModelList(List<TreeModel> treeList,List<SysPermission> metaList,TreeModel temp) {
for (SysPermission permission : metaList) { for (SysPermission permission : metaList) {
String tempPid = permission.getParentId(); String tempPid = permission.getParentId();
@@ -254,6 +254,7 @@ public class SysUserController {
} }
@PostMapping("/delete") @PostMapping("/delete")
@RequiresPermissions("sys:user:sel")
public Results<T> delete(@RequestBody Map<String,String> map) { public Results<T> delete(@RequestBody Map<String,String> map) {
String id = map.get("id"); String id = map.get("id");
if(StringUtils.isBlank(id)){ if(StringUtils.isBlank(id)){
@@ -265,6 +266,7 @@ public class SysUserController {
} }
@PostMapping("/deleteBatch") @PostMapping("/deleteBatch")
@RequiresPermissions("sys:user:sel")
public Results<T> deleteBatch(@RequestBody Map<String, String> map) { public Results<T> deleteBatch(@RequestBody Map<String, String> map) {
String ids = map.get("ids"); String ids = map.get("ids");
if(StringUtils.isBlank(ids)){ if(StringUtils.isBlank(ids)){
@@ -276,7 +278,7 @@ public class SysUserController {
} }
//@RequiresPermissions("sys:user:list") @RequiresPermissions("user:edit")
@PostMapping("/frozenBatch") @PostMapping("/frozenBatch")
public Results<Object> frozenBatch(@RequestBody JSONObject jsonObject) { public Results<Object> frozenBatch(@RequestBody JSONObject jsonObject) {
try { try {
@@ -296,11 +298,11 @@ public class SysUserController {
return Results.OK(OPTION_SUCCESS); return Results.OK(OPTION_SUCCESS);
} }
//@RequiresPermissions("sys:user:list") @RequiresPermissions("sys:user:list")
// @RequestMapping(value = "/queryById", method = RequestMethod.GET) // @RequestMapping(value = "/queryById", method = RequestMethod.GET)
@GetMapping("/queryById") @GetMapping("/queryById")
public Results<SysUser> queryById(@RequestParam(name = "id", required = true) String id) { public Results<SysUser> queryById(@RequestParam(name = "id", required = true) String id) {
SysUser sysUser = sysUserService.getById(id); SysUser sysUser = sysUserService.queryById(id);
if (sysUser == null) { if (sysUser == null) {
return Results.error(INEXISTENCE); return Results.error(INEXISTENCE);
} else { } else {
@@ -308,7 +310,7 @@ public class SysUserController {
} }
} }
//@RequiresPermissions("sys:user:list") @RequiresPermissions("sys:user:list")
// @RequestMapping(value = "/queryUserRole", method = RequestMethod.GET) // @RequestMapping(value = "/queryUserRole", method = RequestMethod.GET)
@GetMapping("/queryUserRole") @GetMapping("/queryUserRole")
public Results<List<String>> queryUserRole(@RequestParam(name = "userid", required = true) String userid) { public Results<List<String>> queryUserRole(@RequestParam(name = "userid", required = true) String userid) {
@@ -332,7 +334,7 @@ public class SysUserController {
* @param sysUser * @param sysUser
* @return * @return
*/ */
//@RequiresPermissions("sys:user:list") @RequiresPermissions("sys:user:list")
// @RequestMapping(value = "/checkOnlyUser", method = RequestMethod.GET) // @RequestMapping(value = "/checkOnlyUser", method = RequestMethod.GET)
@GetMapping("/checkOnlyUser") @GetMapping("/checkOnlyUser")
public Results<Boolean> checkOnlyUser(SysUser sysUser) { public Results<Boolean> checkOnlyUser(SysUser sysUser) {
@@ -363,6 +365,7 @@ public class SysUserController {
*/ */
// @RequestMapping(value = "/changePassword", method = RequestMethod.PUT) // @RequestMapping(value = "/changePassword", method = RequestMethod.PUT)
@PostMapping("/changePassword") @PostMapping("/changePassword")
@RequiresPermissions("user:edit")
public Results<T> changePassword(@RequestBody SysUser sysUser) { public Results<T> changePassword(@RequestBody SysUser sysUser) {
SysUser u = this.sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUsername, sysUser.getUsername())); SysUser u = this.sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUsername, sysUser.getUsername()));
if (u == null) { if (u == null) {
@@ -378,7 +381,7 @@ public class SysUserController {
* @param userId * @param userId
* @return * @return
*/ */
//@RequiresPermissions("sys:user:list") @RequiresPermissions("sys:user:list")
// @RequestMapping(value = "/userDepartList", method = RequestMethod.GET) // @RequestMapping(value = "/userDepartList", method = RequestMethod.GET)
@GetMapping("/userDepartList") @GetMapping("/userDepartList")
public Results<List<DepartIdModel>> getUserDepartsList(@RequestParam(name = "userId", required = true) String userId) { public Results<List<DepartIdModel>> getUserDepartsList(@RequestParam(name = "userId", required = true) String userId) {
@@ -408,7 +411,7 @@ public class SysUserController {
* *
* @return * @return
*/ */
//@RequiresPermissions("sys:user:list") @RequiresPermissions("sys:user:list")
// @RequestMapping(value = "/generateUserId", method = RequestMethod.GET) // @RequestMapping(value = "/generateUserId", method = RequestMethod.GET)
@GetMapping("/generateUserId") @GetMapping("/generateUserId")
public Results<String> generateUserId() { public Results<String> generateUserId() {
@@ -426,7 +429,7 @@ public class SysUserController {
* @param id * @param id
* @return * @return
*/ */
//@RequiresPermissions("sys:user:list") @RequiresPermissions("sys:user:list")
// @RequestMapping(value = "/queryUserByDepId", method = RequestMethod.GET) // @RequestMapping(value = "/queryUserByDepId", method = RequestMethod.GET)
@GetMapping("/queryUserByDepId") @GetMapping("/queryUserByDepId")
public Results<List<SysUser>> queryUserByDepId(@RequestParam(name = "id", required = true) String id, @RequestParam(name="realname",required=false) String realname , @RequestParam(name="username",required=false) String username) { public Results<List<SysUser>> queryUserByDepId(@RequestParam(name = "id", required = true) String id, @RequestParam(name="realname",required=false) String realname , @RequestParam(name="username",required=false) String username) {
@@ -451,6 +454,10 @@ public class SysUserController {
item.setOrgCodeTxt(useDepNames.get(item.getId())) item.setOrgCodeTxt(useDepNames.get(item.getId()))
); );
} }
userList.forEach(user -> {
// 对手机号、邮箱进行解密处理
sysUserService.proceedDecrypt(user);
});
try { try {
result.setSuccess(true); result.setSuccess(true);
@@ -471,6 +478,7 @@ public class SysUserController {
*/ */
// @RequestMapping(value = "/queryUserComponentData", method = RequestMethod.GET) // @RequestMapping(value = "/queryUserComponentData", method = RequestMethod.GET)
@GetMapping("/queryUserComponentData") @GetMapping("/queryUserComponentData")
@RequiresPermissions("sys:user:list")
public Results<IPage<SysUser>> queryUserComponentData( public Results<IPage<SysUser>> queryUserComponentData(
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
@@ -478,6 +486,10 @@ public class SysUserController {
@RequestParam(name="realname",required=false) String realname, @RequestParam(name="realname",required=false) String realname,
@RequestParam(name=USER_NAME,required=false) String username) { @RequestParam(name=USER_NAME,required=false) String username) {
IPage<SysUser> pageList = sysUserDepartService.queryDepartUserPageList(departId, username, realname, pageSize, pageNo); IPage<SysUser> pageList = sysUserDepartService.queryDepartUserPageList(departId, username, realname, pageSize, pageNo);
pageList.getRecords().forEach(user -> {
// 对手机号、邮箱进行解密处理
sysUserService.proceedDecrypt(user);
});
return Results.OK(pageList); return Results.OK(pageList);
} }
@@ -501,6 +513,10 @@ public class SysUserController {
} }
//update-end--Author:kangxiaolin Date:20180825 for[03]用户导出,如果选择数据则只导出相关数据---------------------- //update-end--Author:kangxiaolin Date:20180825 for[03]用户导出,如果选择数据则只导出相关数据----------------------
List<SysUser> pageList = sysUserService.list(queryWrapper); List<SysUser> pageList = sysUserService.list(queryWrapper);
pageList.forEach(user -> {
// 对手机号、邮箱进行解密处理
sysUserService.proceedDecrypt(user);
});
//导出文件名称 //导出文件名称
mv.addObject(JeroController.FILE_NAME, "用户列表"); mv.addObject(JeroController.FILE_NAME, "用户列表");
@@ -577,6 +593,8 @@ public class SysUserController {
successAndErrorLines.setSuccessLines(successLines); successAndErrorLines.setSuccessLines(successLines);
successAndErrorLines.setErrorLines(errorLines); successAndErrorLines.setErrorLines(errorLines);
try { try {
// 对手机号、邮箱进行加密处理
sysUserService.proceedEncrypt(sysUserExcel);
sysUserService.save(sysUserExcel); sysUserService.save(sysUserExcel);
successAndErrorLines.setSuccessLines(successLines + 1); successAndErrorLines.setSuccessLines(successLines + 1);
} catch (Exception e) { } catch (Exception e) {
@@ -624,11 +642,15 @@ public class SysUserController {
*/ */
//@RequiresPermissions("sys:user:list") //@RequiresPermissions("sys:user:list")
@GetMapping("/queryByIds") @GetMapping("/queryByIds")
@RequiresPermissions("sys:user:list")
public Results<Collection<SysUser>> queryByIds(@RequestParam String userIds) { public Results<Collection<SysUser>> queryByIds(@RequestParam String userIds) {
Results<Collection<SysUser>> result = new Results<>(); Results<Collection<SysUser>> result = new Results<>();
String[] userId = userIds.split(","); String[] userId = userIds.split(",");
Collection<String> idList = Arrays.asList(userId); Collection<String> idList = Arrays.asList(userId);
Collection<SysUser> userRole = sysUserService.listByIds(idList); Collection<SysUser> userRole = sysUserService.listByIds(idList);
userRole.forEach(user -> {
sysUserService.proceedDecrypt(user);
});
result.setSuccess(true); result.setSuccess(true);
result.setResult(userRole); result.setResult(userRole);
return result; return result;
@@ -638,6 +660,7 @@ public class SysUserController {
* 首页用户重置密码 * 首页用户重置密码
*/ */
@PostMapping("/updatePassword") @PostMapping("/updatePassword")
@RequiresPermissions("user:edit")
public Results<T> updatePassword(@RequestBody JSONObject json) { public Results<T> updatePassword(@RequestBody JSONObject json) {
String username = json.getString(USER_NAME); String username = json.getString(USER_NAME);
String oldpassword = json.getString("oldpassword"); String oldpassword = json.getString("oldpassword");
@@ -666,7 +689,7 @@ public class SysUserController {
} }
return sysUserService.resetPassword(username,oldpassword,password,confirmpassword); return sysUserService.resetPassword(username,oldpassword,password,confirmpassword);
} }
//@RequiresPermissions("sys:user:list") @RequiresPermissions("sys:user:list")
// @RequestMapping(value = "/userRoleList", method = RequestMethod.GET) // @RequestMapping(value = "/userRoleList", method = RequestMethod.GET)
@GetMapping("/userRoleList") @GetMapping("/userRoleList")
public Results<IPage<SysUser>> userRoleList(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, public Results<IPage<SysUser>> userRoleList(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@@ -676,6 +699,9 @@ public class SysUserController {
String roleId = req.getParameter("roleId"); String roleId = req.getParameter("roleId");
String username = req.getParameter(USER_NAME); String username = req.getParameter(USER_NAME);
IPage<SysUser> pageList = sysUserService.getUserByRoleId(page,roleId,username); IPage<SysUser> pageList = sysUserService.getUserByRoleId(page,roleId,username);
pageList.getRecords().forEach(user -> {
sysUserService.proceedDecrypt(user);
});
result.setSuccess(true); result.setSuccess(true);
result.setResult(pageList); result.setResult(pageList);
return result; return result;
@@ -721,6 +747,7 @@ public class SysUserController {
*/ */
// @RequestMapping(value = "/deleteUserRole", method = RequestMethod.DELETE) // @RequestMapping(value = "/deleteUserRole", method = RequestMethod.DELETE)
@PostMapping("/deleteUserRole") @PostMapping("/deleteUserRole")
@RequiresPermissions("sys:user:sel")
public Results<Object> deleteUserRole(@RequestParam(name="roleId") String roleId, public Results<Object> deleteUserRole(@RequestParam(name="roleId") String roleId,
@RequestParam(name="userId",required=true) String userId) { @RequestParam(name="userId",required=true) String userId) {
try { try {
@@ -742,6 +769,7 @@ public class SysUserController {
*/ */
// @RequestMapping(value = "/deleteUserRoleBatch", method = RequestMethod.DELETE) // @RequestMapping(value = "/deleteUserRoleBatch", method = RequestMethod.DELETE)
@PostMapping("/deleteUserRoleBatch") @PostMapping("/deleteUserRoleBatch")
@RequiresPermissions("sys:user:sel")
public Results<SysUserRole> deleteUserRoleBatch( public Results<SysUserRole> deleteUserRoleBatch(
@RequestParam(name="roleId") String roleId, @RequestParam(name="roleId") String roleId,
@RequestParam(name="userIds",required=true) String userIds) { @RequestParam(name="userIds",required=true) String userIds) {
@@ -761,7 +789,7 @@ public class SysUserController {
*/ */
// @RequestMapping(value = "/departUserList", method = RequestMethod.GET) // @RequestMapping(value = "/departUserList", method = RequestMethod.GET)
@GetMapping("/departUserList") @GetMapping("/departUserList")
//@RequiresPermissions("sys:user:list") @RequiresPermissions("sys:user:list")
public Results<IPage<SysUser>> departUserList(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, public Results<IPage<SysUser>> departUserList(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) {
Results<IPage<SysUser>> result = new Results<>(); Results<IPage<SysUser>> result = new Results<>();
@@ -793,6 +821,9 @@ public class SysUserController {
item.setOrgCode(useDepNames.get(item.getId())) item.setOrgCode(useDepNames.get(item.getId()))
); );
} }
pageList.getRecords().forEach(user -> {
sysUserService.proceedDecrypt(user);
});
result.setSuccess(true); result.setSuccess(true);
result.setResult(pageList); result.setResult(pageList);
}else{ }else{
@@ -808,7 +839,7 @@ public class SysUserController {
* 若某个用户包含多个部门,则会显示多条记录,可自行处理成单条记录 * 若某个用户包含多个部门,则会显示多条记录,可自行处理成单条记录
*/ */
@GetMapping("/queryByOrgCode") @GetMapping("/queryByOrgCode")
//@RequiresPermissions("sys:user:list") @RequiresPermissions("sys:user:list")
public Results<IPage<SysUserSysDepartModel>> queryByDepartId( public Results<IPage<SysUserSysDepartModel>> queryByDepartId(
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
@@ -854,6 +885,7 @@ public class SysUserController {
*/ */
// @RequestMapping(value = "/deleteUserInDepart", method = RequestMethod.DELETE) // @RequestMapping(value = "/deleteUserInDepart", method = RequestMethod.DELETE)
@PostMapping("/deleteUserInDepart") @PostMapping("/deleteUserInDepart")
@RequiresPermissions("sys:user:sel")
public Results<Object> deleteUserInDepart(@RequestParam(name="depId") String depId, public Results<Object> deleteUserInDepart(@RequestParam(name="depId") String depId,
@RequestParam(name="userId",required=true) String userId) { @RequestParam(name="userId",required=true) String userId) {
try { try {
@@ -874,6 +906,7 @@ public class SysUserController {
// @RequestMapping(value = "/deleteUserInDepartBatch", method = RequestMethod.DELETE) // @RequestMapping(value = "/deleteUserInDepartBatch", method = RequestMethod.DELETE)
@PostMapping("/deleteUserInDepartBatch") @PostMapping("/deleteUserInDepartBatch")
@Transactional @Transactional
@RequiresPermissions("sys:user:sel")
public Results<Object> deleteUserInDepartBatch( public Results<Object> deleteUserInDepartBatch(
@RequestParam(name="depId") String depId, @RequestParam(name="depId") String depId,
@RequestParam(name="userIds",required=true) String userIds) { @RequestParam(name="userIds",required=true) String userIds) {
@@ -897,7 +930,7 @@ public class SysUserController {
* 查询当前用户的所有部门/当前部门编码 * 查询当前用户的所有部门/当前部门编码
* @return * @return
*/ */
//@RequiresPermissions("sys:user:list") @RequiresPermissions("sys:user:list")
// @RequestMapping(value = "/getCurrentUserDeparts", method = RequestMethod.GET) // @RequestMapping(value = "/getCurrentUserDeparts", method = RequestMethod.GET)
@GetMapping("/getCurrentUserDeparts") @GetMapping("/getCurrentUserDeparts")
public Results<Map<String,Object>> getCurrentUserDeparts() { public Results<Map<String,Object>> getCurrentUserDeparts() {
@@ -1110,7 +1143,7 @@ public class SysUserController {
* @param pageSize * @param pageSize
* @return * @return
*/ */
//@RequiresPermissions("sys:user:list") @RequiresPermissions("sys:user:list")
@GetMapping("/appUserList") @GetMapping("/appUserList")
public Results<IPage<SysUser>> appUserList(@RequestParam(name = "keyword", required = false) String keyword, public Results<IPage<SysUser>> appUserList(@RequestParam(name = "keyword", required = false) String keyword,
@RequestParam(name = USER_NAME, required = false) String username, @RequestParam(name = USER_NAME, required = false) String username,
@@ -1147,7 +1180,7 @@ public class SysUserController {
* *
* @return logicDeletedUserList * @return logicDeletedUserList
*/ */
//@RequiresPermissions("sys:user:list") @RequiresPermissions("sys:user:list")
@GetMapping("/recycleBin") @GetMapping("/recycleBin")
public Results<List<SysUser>> getRecycleBin() { public Results<List<SysUser>> getRecycleBin() {
List<SysUser> logicDeletedUserList = sysUserService.queryLogicDeleted(); List<SysUser> logicDeletedUserList = sysUserService.queryLogicDeleted();
@@ -1171,6 +1204,7 @@ public class SysUserController {
//@RequiresPermissions("sys:user:list") //@RequiresPermissions("sys:user:list")
// @RequestMapping(value = "/putRecycleBin", method = RequestMethod.PUT) // @RequestMapping(value = "/putRecycleBin", method = RequestMethod.PUT)
@PostMapping("/putRecycleBin") @PostMapping("/putRecycleBin")
@RequiresPermissions("user:edit")
public Results<T> putRecycleBin(@RequestBody JSONObject jsonObject, HttpServletRequest request) { public Results<T> putRecycleBin(@RequestBody JSONObject jsonObject, HttpServletRequest request) {
String userIds = jsonObject.getString("userIds"); String userIds = jsonObject.getString("userIds");
if (StringUtils.isNotBlank(userIds)) { if (StringUtils.isNotBlank(userIds)) {
@@ -1190,6 +1224,7 @@ public class SysUserController {
*/ */
// @RequestMapping(value = "/deleteRecycleBin", method = RequestMethod.DELETE) // @RequestMapping(value = "/deleteRecycleBin", method = RequestMethod.DELETE)
@PostMapping("/deleteRecycleBin") @PostMapping("/deleteRecycleBin")
@RequiresPermissions("sys:user:sel")
public Results<T> deleteRecycleBin(@RequestParam("userIds") String userIds) { public Results<T> deleteRecycleBin(@RequestParam("userIds") String userIds) {
if (StringUtils.isNotBlank(userIds)) { if (StringUtils.isNotBlank(userIds)) {
sysUserService.removeLogicDeleted(Arrays.asList(userIds.split(","))); sysUserService.removeLogicDeleted(Arrays.asList(userIds.split(",")));
@@ -278,4 +278,18 @@ public interface ISysUserService extends IService<SysUser> {
/** userId转为username */ /** userId转为username */
List<String> userIdToUsername(Collection<String> userIdList); List<String> userIdToUsername(Collection<String> userIdList);
/**
* @Remarks: 根据id查询
**/
SysUser queryById(String id);
/**
* @Remarks: 对手机号、邮箱进行解密处理
**/
void proceedDecrypt(SysUser user);
/**
* @Remarks: 对手机号、邮箱进行加密处理
**/
void proceedEncrypt(SysUser user);
} }
@@ -132,7 +132,8 @@ public class LoginServiceImpl implements ILoginService {
// 重试登录次数加一 // 重试登录次数加一
retryCount++; retryCount++;
setRedis(username, retryCount); setRedis(username, retryCount);
String msg = retryCount == RETRY_LOGIN_MAX_COUNT ? "密码错误次数过多,请稍后重试":"用户名或密码错误,剩余可登录次数:"+(RETRY_LOGIN_MAX_COUNT - retryCount); //String msg = retryCount == RETRY_LOGIN_MAX_COUNT ? "密码错误次数过多,请稍后重试":"用户名或密码错误,剩余可登录次数:"+(RETRY_LOGIN_MAX_COUNT - retryCount);
String msg = retryCount == RETRY_LOGIN_MAX_COUNT ? "密码错误次数过多,请稍后重试":"用户名或密码错误";
return Results.error(msg); return Results.error(msg);
} }
//登录成功,清除错误登录次数 //登录成功,清除错误登录次数
@@ -1,5 +1,6 @@
package com.jero.modules.system.service.impl; package com.jero.modules.system.service.impl;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Results; import com.jero.common.api.vo.Results;
import com.jero.common.constant.CacheConstant; import com.jero.common.constant.CacheConstant;
import com.jero.common.constant.CommonConstant; import com.jero.common.constant.CommonConstant;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.common.system.vo.SysUserCacheInfo; import com.jero.common.system.vo.SysUserCacheInfo;
@@ -23,6 +25,7 @@ import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.vo.SysUserDepNameVo; import com.jero.modules.system.vo.SysUserDepNameVo;
import com.jero.modules.system.vo.SysUserRoleNameVo; import com.jero.modules.system.vo.SysUserRoleNameVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T; import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CacheEvict;
@@ -64,7 +67,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
@Override @Override
public IPage<SysUser> queryPage(Page<SysUser> page, List<String> subDepIds, String roleId, QueryWrapper<SysUser> queryWrapper){ public IPage<SysUser> queryPage(Page<SysUser> page, List<String> subDepIds, String roleId, QueryWrapper<SysUser> queryWrapper){
return this.userMapper.queryPage(page, subDepIds, roleId, queryWrapper); IPage<SysUser> sysUserIPage = this.userMapper.queryPage(page, subDepIds, roleId, queryWrapper);
sysUserIPage.getRecords().forEach(user -> {
// 对手机号、邮箱进行解密处理
proceedDecrypt(user);
});
return sysUserIPage;
} }
@Override @Override
@@ -376,7 +384,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
//情况1:根据用户信息查询,该用户不存在 //情况1:根据用户信息查询,该用户不存在
if (sysUser == null) { if (sysUser == null) {
baseCommonService.addLog("用户登录失败,用户不存在!", CommonConstant.LOG_TYPE_1, null); baseCommonService.addLog("用户登录失败,用户不存在!", CommonConstant.LOG_TYPE_1, null);
return Results.error("该用户不存在,请注册"); //return Results.error("该用户不存在,请注册");
return Results.error("用户名或密码错误");
} }
//情况2:根据用户信息查询,该用户已注销 //情况2:根据用户信息查询,该用户已注销
//update-begin---author:王帅 Date:20200601 forif条件永远为falsebug------------ //update-begin---author:王帅 Date:20200601 forif条件永远为falsebug------------
@@ -458,6 +467,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void saveUser(SysUser user, String selectedRoles, String selectedDeparts) { public void saveUser(SysUser user, String selectedRoles, String selectedDeparts) {
//step.1 保存用户 //step.1 保存用户
// 对手机号、邮箱进行加密处理
proceedEncrypt(user);
this.save(user); this.save(user);
//step.2 保存角色 //step.2 保存角色
if(oConvertUtils.isNotEmpty(selectedRoles)) { if(oConvertUtils.isNotEmpty(selectedRoles)) {
@@ -477,11 +488,67 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
} }
} }
/**
* @Remarks: 对手机号、邮箱进行加密处理
**/
@Override
public void proceedEncrypt(SysUser user) {
if (user == null) {
return;
}
String email = user.getEmail();
String phone = user.getPhone();
if (StrUtil.isNotEmpty(email)){
// 对邮箱地址进行加密
email = PasswordUtil.encrypt(email);
user.setEmail(email);
}
if (StrUtil.isNotEmpty(phone)){
// 对手机号码进行加密
phone = PasswordUtil.encrypt(phone);
user.setPhone(phone);
}
}
/**
* @Remarks: 对手机号、邮箱进行解密处理
**/
@Override
public void proceedDecrypt(SysUser user) {
if (user == null) {
return;
}
String email = user.getEmail();
String phone = user.getPhone();
if (StrUtil.isNotEmpty(email)){
// 对邮箱地址进行解密
try {
email = PasswordUtil.decrypt(email);
} catch (Exception e) {
email = user.getEmail();
}
user.setEmail(email);
}
if (StrUtil.isNotEmpty(phone)){
// 对手机号码进行解密
try {
phone = PasswordUtil.decrypt(phone);
} catch (Exception e) {
phone = user.getPhone();
}
user.setPhone(phone);
}
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true) @CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true)
public void editUser(SysUser user, String roles, String departs) { public void editUser(SysUser user, String roles, String departs) {
//step.1 修改用户基础信息 //step.1 修改用户基础信息
// 对手机号、邮箱进行加密处理
proceedEncrypt(user);
this.updateById(user); this.updateById(user);
//step.2 修改角色 //step.2 修改角色
//处理用户角色 先删后加 //处理用户角色 先删后加
@@ -523,5 +590,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
return userList.stream().map(SysUser::getUsername).collect(Collectors.toList()); return userList.stream().map(SysUser::getUsername).collect(Collectors.toList());
} }
@Override
public SysUser queryById(String id) {
SysUser user = getById(id);
// 对手机号、邮箱进行解密处理
proceedDecrypt(user);
return user;
}
} }
@@ -58,14 +58,14 @@ export default {
password: { password: {
rules: [ rules: [
{ required: true, message: '请输入新密码!' }, { required: true, message: '请输入新密码!' },
{ pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/, message: '密码由8-20位数字、大小写字母和特殊符号组成!' }, { pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/, message: '密码由8-20位数字、大小写字母和特殊符号组成!' },
{ validator: this.validateToNextPassword } { validator: this.validateToNextPassword }
] ]
}, },
confirmpassword: { confirmpassword: {
rules: [ rules: [
{ required: true, message: '请确认新密码!' }, { required: true, message: '请确认新密码!' },
{ pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/, message: '密码由8-20位数字大小写字母和特殊符号组成!' }, { pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/, message: '密码由8-20位数字大小写字母和特殊符号组成!' },
{ validator: this.validateToNextPassword } { validator: this.validateToNextPassword }
] ]
} }
+1 -1
View File
@@ -320,7 +320,7 @@ export default {
batchDel: function () { batchDel: function () {
console.log(this.checkedKeys) console.log(this.checkedKeys)
if (this.checkedKeys.length <= 0) { if (this.checkedKeys.length <= 0) {
this.$message.warning('请选择一条记录!') this.$message.warning('请至少选择一条记录!')
} else { } else {
let ids = '' let ids = ''
for (let a = 0; a < this.checkedKeys.length; a++) { for (let a = 0; a < this.checkedKeys.length; a++) {
+4 -4
View File
@@ -250,14 +250,14 @@ export default {
scopedSlots: { customRender: 'avatarslot' } scopedSlots: { customRender: 'avatarslot' }
}, },
{ {
title: '用户账号', title: '账号',
align: 'center', align: 'center',
dataIndex: 'username', dataIndex: 'username',
width: 120, width: 120,
sorter: true sorter: true
}, },
{ {
title: '用户姓名', title: '真实名字',
align: 'center', align: 'center',
width: 100, width: 100,
dataIndex: 'realname' dataIndex: 'realname'
@@ -276,7 +276,7 @@ export default {
dataIndex: 'phone' dataIndex: 'phone'
}, },
{ {
title: '部门', title: '组织机构',
align: 'center', align: 'center',
width: 180, width: 180,
dataIndex: 'orgCodeTxt' dataIndex: 'orgCodeTxt'
@@ -300,7 +300,7 @@ export default {
// dataIndex: 'departIds_dictText' // dataIndex: 'departIds_dictText'
// }, // },
{ {
title: '状态', title: '用户状态',
align: 'center', align: 'center',
width: 80, width: 80,
dataIndex: 'status_dictText' dataIndex: 'status_dictText'
@@ -164,7 +164,7 @@ export default {
validatorRules: { validatorRules: {
username: [{ required: true, message: '请输入用户账号!' }, username: [{ required: true, message: '请输入用户账号!' },
{ validator: this.validateUsername }], { validator: this.validateUsername }],
password: [{ required: true, pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/, message: '密码由8-20位数字大小写字母和特殊符号组成!' }, password: [{ required: true, pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/, message: '密码由8-20位数字大小写字母和特殊符号组成!' },
{ validator: this.validateToNextPassword, trigger: 'change' }], { validator: this.validateToNextPassword, trigger: 'change' }],
confirmpassword: [{ required: true, message: '请重新输入登录密码!' }, confirmpassword: [{ required: true, message: '请重新输入登录密码!' },
{ validator: this.compareToFirstPassword }], { validator: this.compareToFirstPassword }],