feat: 🎸 解决 修改用户角色,权限无法及时同步
This commit is contained in:
parent
c0a2047544
commit
f020747b1f
@ -61,7 +61,7 @@ public class ShiroRealm extends AuthorizingRealm {
|
||||
*/
|
||||
@Override
|
||||
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
|
||||
log.debug("===============Shiro权限认证开始============ [ roles、permissions]==========");
|
||||
log.info("===============Shiro权限认证开始============ [ roles、permissions]==========");
|
||||
String username = null;
|
||||
String userId = null;
|
||||
if (principals != null) {
|
||||
@ -79,7 +79,6 @@ public class ShiroRealm extends AuthorizingRealm {
|
||||
// 设置用户拥有的权限集合,比如“sys:role:add,sys:user:add”
|
||||
Set<String> permissionSet = commonApi.queryUserAuths(userId);
|
||||
info.addStringPermissions(permissionSet);
|
||||
//System.out.println(permissionSet);
|
||||
log.info("===============Shiro权限认证成功==============");
|
||||
return info;
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
package org.jeecg.modules.system.controller;
|
||||
|
||||
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
@ -107,6 +106,7 @@ public class SysUserController {
|
||||
|
||||
/**
|
||||
* 获取租户下用户数据(支持租户隔离)
|
||||
*
|
||||
* @param user
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
@ -115,7 +115,8 @@ public class SysUserController {
|
||||
*/
|
||||
@PermissionData(pageComponent = "system/UserList")
|
||||
@RequestMapping(value = "/list", method = RequestMethod.GET)
|
||||
public Result<IPage<SysUser>> queryPageList(SysUser user,@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
public Result<IPage<SysUser>> queryPageList(SysUser user,
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
|
||||
QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(user, req.getParameterMap());
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
@ -144,7 +145,8 @@ public class SysUserController {
|
||||
*/
|
||||
@RequiresPermissions("system:user:listAll")
|
||||
@RequestMapping(value = "/listAll", method = RequestMethod.GET)
|
||||
public Result<IPage<SysUser>> queryAllPageList(SysUser user, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
public Result<IPage<SysUser>> queryAllPageList(SysUser user,
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
|
||||
QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(user, req.getParameterMap());
|
||||
return sysUserService.queryPageList(req, queryWrapper, pageSize, pageNo);
|
||||
@ -192,7 +194,8 @@ public class SysUserController {
|
||||
} else {
|
||||
SysUser user = JSON.parseObject(jsonObject.toJSONString(), SysUser.class);
|
||||
user.setUpdateTime(new Date());
|
||||
//String passwordEncode = PasswordUtil.encrypt(user.getUsername(), user.getPassword(), sysUser.getSalt());
|
||||
// String passwordEncode = PasswordUtil.encrypt(user.getUsername(),
|
||||
// user.getPassword(), sysUser.getSalt());
|
||||
user.setPassword(sysUser.getPassword());
|
||||
String roles = jsonObject.getString("selectedroles");
|
||||
String departs = jsonObject.getString("selecteddeparts");
|
||||
@ -207,6 +210,10 @@ public class SysUserController {
|
||||
String relTenantIds = jsonObject.getString("relTenantIds");
|
||||
String updateFromPage = jsonObject.getString("updateFromPage");
|
||||
sysUserService.editUser(user, roles, departs, relTenantIds, updateFromPage);
|
||||
|
||||
// 添加权限缓存清理
|
||||
clearUserPermissionCache(user.getId());
|
||||
|
||||
result.success("修改成功!");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
@ -216,6 +223,23 @@ public class SysUserController {
|
||||
return result;
|
||||
}
|
||||
|
||||
// 添加清理用户权限缓存的方法
|
||||
private void clearUserPermissionCache(String userId) {
|
||||
try {
|
||||
// 方式1:通过 Redis 直接删除缓存
|
||||
String cacheKey = "shiro:cache:org.jeecg.config.shiro.ShiroRealm.authorizationCache:" + userId;
|
||||
redisUtil.del(cacheKey);
|
||||
|
||||
// 方式2:通过 ShiroRealm 清除缓存
|
||||
// 需要注入 ShiroRealm
|
||||
// shiroRealm.clearCache(principals);
|
||||
|
||||
log.info("已清除用户 {} 的权限缓存", userId);
|
||||
} catch (Exception e) {
|
||||
log.error("清除用户权限缓存失败: userId={}, error={}", userId, e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除用户
|
||||
*/
|
||||
@ -251,6 +275,7 @@ public class SysUserController {
|
||||
|
||||
/**
|
||||
* 冻结&解冻用户
|
||||
*
|
||||
* @param jsonObject
|
||||
* @return
|
||||
*/
|
||||
@ -265,9 +290,11 @@ public class SysUserController {
|
||||
String[] arr = ids.split(",");
|
||||
for (String id : arr) {
|
||||
if (oConvertUtils.isNotEmpty(id)) {
|
||||
//update-begin---author:liusq ---date:20230620 for:[QQYUN-5577]用户列表-冻结用户,再解冻之后,用户还是无法登陆,有缓存问题 #5066------------
|
||||
// update-begin---author:liusq ---date:20230620
|
||||
// for:[QQYUN-5577]用户列表-冻结用户,再解冻之后,用户还是无法登陆,有缓存问题 #5066------------
|
||||
sysUserService.updateStatus(id, status);
|
||||
//update-end---author:liusq ---date:20230620 for:[QQYUN-5577]用户列表-冻结用户,再解冻之后,用户还是无法登陆,有缓存问题 #5066------------
|
||||
// update-end---author:liusq ---date:20230620
|
||||
// for:[QQYUN-5577]用户列表-冻结用户,再解冻之后,用户还是无法登陆,有缓存问题 #5066------------
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
@ -298,7 +325,8 @@ public class SysUserController {
|
||||
public Result<List<String>> queryUserRole(@RequestParam(name = "userid", required = true) String userid) {
|
||||
Result<List<String>> result = new Result<>();
|
||||
List<String> list = new ArrayList<String>();
|
||||
List<SysUserRole> userRole = sysUserRoleService.list(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, userid));
|
||||
List<SysUserRole> userRole = sysUserRoleService
|
||||
.list(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, userid));
|
||||
if (userRole == null || userRole.size() <= 0) {
|
||||
result.error500("未找到用户相关角色信息");
|
||||
} else {
|
||||
@ -311,7 +339,6 @@ public class SysUserController {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 校验用户账号是否唯一<br>
|
||||
* 可以校验其他 需要检验什么就传什么。。。
|
||||
@ -349,15 +376,19 @@ public class SysUserController {
|
||||
@RequiresPermissions("system:user:changepwd")
|
||||
@RequestMapping(value = "/changePassword", method = RequestMethod.PUT)
|
||||
public Result<?> 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) {
|
||||
return Result.error("用户不存在!");
|
||||
}
|
||||
sysUser.setId(u.getId());
|
||||
//update-begin---author:wangshuai ---date:20220316 for:[VUEN-234]修改密码添加敏感日志------------
|
||||
// update-begin---author:wangshuai ---date:20220316
|
||||
// for:[VUEN-234]修改密码添加敏感日志------------
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
baseCommonService.addLog("修改用户 "+sysUser.getUsername()+" 的密码,操作人: " +loginUser.getUsername() ,CommonConstant.LOG_TYPE_2, 2);
|
||||
//update-end---author:wangshuai ---date:20220316 for:[VUEN-234]修改密码添加敏感日志------------
|
||||
baseCommonService.addLog("修改用户 " + sysUser.getUsername() + " 的密码,操作人: " + loginUser.getUsername(),
|
||||
CommonConstant.LOG_TYPE_2, 2);
|
||||
// update-end---author:wangshuai ---date:20220316
|
||||
// for:[VUEN-234]修改密码添加敏感日志------------
|
||||
return sysUserService.changePassword(sysUser);
|
||||
}
|
||||
|
||||
@ -368,7 +399,8 @@ public class SysUserController {
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value = "/userDepartList", method = RequestMethod.GET)
|
||||
public Result<List<DepartIdModel>> getUserDepartsList(@RequestParam(name = "userId", required = true) String userId) {
|
||||
public Result<List<DepartIdModel>> getUserDepartsList(
|
||||
@RequestParam(name = "userId", required = true) String userId) {
|
||||
Result<List<DepartIdModel>> result = new Result<>();
|
||||
try {
|
||||
List<DepartIdModel> depIdModelList = this.sysUserDepartService.queryDepartIdsOfUser(userId);
|
||||
@ -412,7 +444,8 @@ public class SysUserController {
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value = "/queryUserByDepId", method = RequestMethod.GET)
|
||||
public Result<List<SysUser>> queryUserByDepId(@RequestParam(name = "id", required = true) String id,@RequestParam(name="realname",required=false) String realname) {
|
||||
public Result<List<SysUser>> queryUserByDepId(@RequestParam(name = "id", required = true) String id,
|
||||
@RequestParam(name = "realname", required = false) String realname) {
|
||||
Result<List<SysUser>> result = new Result<>();
|
||||
// List<SysUser> userList = sysUserDepartService.queryUserByDepId(id);
|
||||
SysDepart sysDepart = sysDepartService.getById(id);
|
||||
@ -443,6 +476,7 @@ public class SysUserController {
|
||||
|
||||
/**
|
||||
* 用户选择组件 专用 根据用户账号或部门分页查询
|
||||
*
|
||||
* @param departId
|
||||
* @param username
|
||||
* @return
|
||||
@ -460,7 +494,8 @@ public class SysUserController {
|
||||
String[] arr = new String[] { departId, realname, username, id };
|
||||
SqlInjectionUtil.filterContent(arr, SymbolConstant.SINGLE_QUOTATION_MARK);
|
||||
// update-end-author:taoyan date:2022-7-14 for: VUEN-1702【禁止问题】sql注入漏洞
|
||||
IPage<SysUser> pageList = sysUserDepartService.queryDepartUserPageList(departId, username, realname, pageSize, pageNo,id,isMultiTranslate);
|
||||
IPage<SysUser> pageList = sysUserDepartService.queryDepartUserPageList(departId, username, realname, pageSize,
|
||||
pageNo, id, isMultiTranslate);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
@ -477,12 +512,14 @@ public class SysUserController {
|
||||
QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(sysUser, request.getParameterMap());
|
||||
// Step.2 AutoPoi 导出Excel
|
||||
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
|
||||
//update-begin--Author:kangxiaolin Date:20180825 for:[03]用户导出,如果选择数据则只导出相关数据--------------------
|
||||
// update-begin--Author:kangxiaolin Date:20180825
|
||||
// for:[03]用户导出,如果选择数据则只导出相关数据--------------------
|
||||
String selections = request.getParameter("selections");
|
||||
if (!oConvertUtils.isEmpty(selections)) {
|
||||
queryWrapper.in("id", selections.split(","));
|
||||
}
|
||||
//update-end--Author:kangxiaolin Date:20180825 for:[03]用户导出,如果选择数据则只导出相关数据----------------------
|
||||
// update-end--Author:kangxiaolin Date:20180825
|
||||
// for:[03]用户导出,如果选择数据则只导出相关数据----------------------
|
||||
List<SysUser> pageList = sysUserService.list(queryWrapper);
|
||||
|
||||
// 导出文件名称
|
||||
@ -528,7 +565,8 @@ public class SysUserController {
|
||||
// 密码加密加盐
|
||||
String salt = oConvertUtils.randomGen(8);
|
||||
sysUserExcel.setSalt(salt);
|
||||
String passwordEncode = PasswordUtil.encrypt(sysUserExcel.getUsername(), sysUserExcel.getPassword(), salt);
|
||||
String passwordEncode = PasswordUtil.encrypt(sysUserExcel.getUsername(), sysUserExcel.getPassword(),
|
||||
salt);
|
||||
sysUserExcel.setPassword(passwordEncode);
|
||||
try {
|
||||
sysUserService.save(sysUserExcel);
|
||||
@ -596,7 +634,6 @@ public class SysUserController {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @功能:根据id 批量查询
|
||||
* @param userNames
|
||||
@ -632,10 +669,12 @@ public class SysUserController {
|
||||
if (user == null) {
|
||||
return Result.error("用户不存在!");
|
||||
}
|
||||
//update-begin---author:wangshuai ---date:20220316 for:[VUEN-234]修改密码添加敏感日志------------
|
||||
// update-begin---author:wangshuai ---date:20220316
|
||||
// for:[VUEN-234]修改密码添加敏感日志------------
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
baseCommonService.addLog("修改密码,username: " + loginUser.getUsername(), CommonConstant.LOG_TYPE_2, 2);
|
||||
//update-end---author:wangshuai ---date:20220316 for:[VUEN-234]修改密码添加敏感日志------------
|
||||
// update-end---author:wangshuai ---date:20220316
|
||||
// for:[VUEN-234]修改密码添加敏感日志------------
|
||||
return sysUserService.resetPassword(username, oldpassword, password, confirmpassword);
|
||||
}
|
||||
|
||||
@ -685,16 +724,17 @@ public class SysUserController {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除指定角色的用户关系
|
||||
*
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
@RequiresPermissions("system:user:deleteRole")
|
||||
@RequestMapping(value = "/deleteUserRole", method = RequestMethod.DELETE)
|
||||
public Result<SysUserRole> deleteUserRole(@RequestParam(name = "roleId") String roleId,
|
||||
@RequestParam(name="userId",required=true) String userId
|
||||
) {
|
||||
@RequestParam(name = "userId", required = true) String userId) {
|
||||
Result<SysUserRole> result = new Result<SysUserRole>();
|
||||
try {
|
||||
QueryWrapper<SysUserRole> queryWrapper = new QueryWrapper<SysUserRole>();
|
||||
@ -748,10 +788,12 @@ public class SysUserController {
|
||||
if (oConvertUtils.isEmpty(depId)) {
|
||||
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
int userIdentity = user.getUserIdentity() != null ? user.getUserIdentity() : CommonConstant.USER_IDENTITY_1;
|
||||
//update-begin---author:chenrui ---date:20250107 for:[QQYUN-10775]验证码可以复用 #7674------------
|
||||
// update-begin---author:chenrui ---date:20250107 for:[QQYUN-10775]验证码可以复用
|
||||
// #7674------------
|
||||
if (oConvertUtils.isNotEmpty(userIdentity) && userIdentity == CommonConstant.USER_IDENTITY_2
|
||||
&& oConvertUtils.isNotEmpty(user.getDepartIds())) {
|
||||
//update-end---author:chenrui ---date:20250107 for:[QQYUN-10775]验证码可以复用 #7674------------
|
||||
// update-end---author:chenrui ---date:20250107 for:[QQYUN-10775]验证码可以复用
|
||||
// #7674------------
|
||||
subDepids = sysDepartService.getMySubDepIdsByDepId(user.getDepartIds());
|
||||
}
|
||||
} else {
|
||||
@ -770,10 +812,12 @@ public class SysUserController {
|
||||
item.setOrgCode(useDepNames.get(item.getId()));
|
||||
});
|
||||
}
|
||||
//update-begin---author:wangshuai ---date:20221223 for:[QQYUN-3371]租户逻辑改造,改成关系表------------
|
||||
// update-begin---author:wangshuai ---date:20221223
|
||||
// for:[QQYUN-3371]租户逻辑改造,改成关系表------------
|
||||
// 设置租户id
|
||||
page.setRecords(userTenantService.setUserTenantIds(page.getRecords()));
|
||||
//update-end---author:wangshuai ---date:20221223 for:[QQYUN-3371]租户逻辑改造,改成关系表------------
|
||||
// update-end---author:wangshuai ---date:20221223
|
||||
// for:[QQYUN-3371]租户逻辑改造,改成关系表------------
|
||||
result.setSuccess(true);
|
||||
result.setResult(pageList);
|
||||
} else {
|
||||
@ -783,7 +827,6 @@ public class SysUserController {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据 orgCode 查询用户,包括子部门下的用户
|
||||
* 若某个用户包含多个部门,则会显示多条记录,可自行处理成单条记录
|
||||
@ -793,9 +836,9 @@ public class SysUserController {
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(name = "orgCode") String orgCode,
|
||||
SysUser userParams
|
||||
) {
|
||||
IPage<SysUserSysDepartModel> pageList = sysUserService.queryUserByOrgCode(orgCode, userParams, new Page(pageNo, pageSize));
|
||||
SysUser userParams) {
|
||||
IPage<SysUserSysDepartModel> pageList = sysUserService.queryUserByOrgCode(orgCode, userParams,
|
||||
new Page(pageNo, pageSize));
|
||||
return Result.ok(pageList);
|
||||
}
|
||||
|
||||
@ -808,8 +851,7 @@ public class SysUserController {
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(name = "orgCode", required = false) String orgCode,
|
||||
SysUser userParams
|
||||
) {
|
||||
SysUser userParams) {
|
||||
IPage page = new Page(pageNo, pageSize);
|
||||
IPage<SysUserSysDepartModel> pageList = sysUserService.queryUserByOrgCode(orgCode, userParams, page);
|
||||
List<SysUserSysDepartModel> list = pageList.getRecords();
|
||||
@ -880,16 +922,17 @@ public class SysUserController {
|
||||
@RequiresPermissions("system:user:deleteUserInDepart")
|
||||
@RequestMapping(value = "/deleteUserInDepart", method = RequestMethod.DELETE)
|
||||
public Result<SysUserDepart> deleteUserInDepart(@RequestParam(name = "depId") String depId,
|
||||
@RequestParam(name="userId",required=true) String userId
|
||||
) {
|
||||
@RequestParam(name = "userId", required = true) String userId) {
|
||||
Result<SysUserDepart> result = new Result<SysUserDepart>();
|
||||
try {
|
||||
QueryWrapper<SysUserDepart> queryWrapper = new QueryWrapper<SysUserDepart>();
|
||||
queryWrapper.eq("dep_id", depId).eq("user_id", userId);
|
||||
boolean b = sysUserDepartService.remove(queryWrapper);
|
||||
if (b) {
|
||||
List<SysDepartRole> sysDepartRoleList = departRoleService.list(new QueryWrapper<SysDepartRole>().eq("depart_id",depId));
|
||||
List<String> roleIds = sysDepartRoleList.stream().map(SysDepartRole::getId).collect(Collectors.toList());
|
||||
List<SysDepartRole> sysDepartRoleList = departRoleService
|
||||
.list(new QueryWrapper<SysDepartRole>().eq("depart_id", depId));
|
||||
List<String> roleIds = sysDepartRoleList.stream().map(SysDepartRole::getId)
|
||||
.collect(Collectors.toList());
|
||||
if (roleIds != null && roleIds.size() > 0) {
|
||||
QueryWrapper<SysDepartRoleUser> query = new QueryWrapper<>();
|
||||
query.eq("user_id", userId).in("drole_id", roleIds);
|
||||
@ -935,6 +978,7 @@ public class SysUserController {
|
||||
|
||||
/**
|
||||
* 查询当前用户的所有部门/当前部门编码
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value = "/getCurrentUserDeparts", method = RequestMethod.GET)
|
||||
@ -955,9 +999,6 @@ public class SysUserController {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 用户注册接口
|
||||
*
|
||||
@ -1141,7 +1182,8 @@ public class SysUserController {
|
||||
@RequestParam(name = "smscode") String smscode,
|
||||
@RequestParam(name = "phone") String phone) {
|
||||
Result<SysUser> result = new Result<SysUser>();
|
||||
if(oConvertUtils.isEmpty(username) || oConvertUtils.isEmpty(password) || oConvertUtils.isEmpty(smscode) || oConvertUtils.isEmpty(phone) ) {
|
||||
if (oConvertUtils.isEmpty(username) || oConvertUtils.isEmpty(password) || oConvertUtils.isEmpty(smscode)
|
||||
|| oConvertUtils.isEmpty(phone)) {
|
||||
result.setMessage("重置密码失败!");
|
||||
result.setSuccess(false);
|
||||
return result;
|
||||
@ -1178,7 +1220,8 @@ public class SysUserController {
|
||||
result.setSuccess(false);
|
||||
return result;
|
||||
}
|
||||
sysUser = this.sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUsername,username).eq(SysUser::getPhone,phone));
|
||||
sysUser = this.sysUserService.getOne(
|
||||
new LambdaQueryWrapper<SysUser>().eq(SysUser::getUsername, username).eq(SysUser::getPhone, phone));
|
||||
if (sysUser == null) {
|
||||
result.setMessage("当前用户和绑定的手机号不匹配,无法修改密码!");
|
||||
result.setSuccess(false);
|
||||
@ -1189,9 +1232,12 @@ public class SysUserController {
|
||||
String passwordEncode = PasswordUtil.encrypt(sysUser.getUsername(), password, salt);
|
||||
sysUser.setPassword(passwordEncode);
|
||||
this.sysUserService.updateById(sysUser);
|
||||
//update-begin---author:wangshuai ---date:20220316 for:[VUEN-234]密码重置添加敏感日志------------
|
||||
baseCommonService.addLog("重置 "+username+" 的密码,操作人: " +sysUser.getUsername() ,CommonConstant.LOG_TYPE_2, 2);
|
||||
//update-end---author:wangshuai ---date:20220316 for:[VUEN-234]密码重置添加敏感日志------------
|
||||
// update-begin---author:wangshuai ---date:20220316
|
||||
// for:[VUEN-234]密码重置添加敏感日志------------
|
||||
baseCommonService.addLog("重置 " + username + " 的密码,操作人: " + sysUser.getUsername(), CommonConstant.LOG_TYPE_2,
|
||||
2);
|
||||
// update-end---author:wangshuai ---date:20220316
|
||||
// for:[VUEN-234]密码重置添加敏感日志------------
|
||||
result.setSuccess(true);
|
||||
result.setMessage("密码重置完成!");
|
||||
// 修改完密码后清空redis
|
||||
@ -1200,14 +1246,14 @@ public class SysUserController {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据TOKEN获取用户的部分信息(返回的数据是可供表单设计器使用的数据)
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/getUserSectionInfoByToken")
|
||||
public Result<?> getUserSectionInfoByToken(HttpServletRequest request, @RequestParam(name = "token", required = false) String token) {
|
||||
public Result<?> getUserSectionInfoByToken(HttpServletRequest request,
|
||||
@RequestParam(name = "token", required = false) String token) {
|
||||
try {
|
||||
String username = null;
|
||||
// 如果没有传递token,就从header中获取token并获取用户信息
|
||||
@ -1238,6 +1284,7 @@ public class SysUserController {
|
||||
|
||||
/**
|
||||
* 【APP端接口】获取用户列表 根据用户名和真实名 模糊匹配
|
||||
*
|
||||
* @param keyword
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
@ -1327,9 +1374,9 @@ public class SysUserController {
|
||||
return Result.ok("删除成功");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 移动端修改用户信息
|
||||
*
|
||||
* @param jsonObject
|
||||
* @return
|
||||
*/
|
||||
@ -1371,7 +1418,8 @@ public class SysUserController {
|
||||
sysUser.setPhone(phone);
|
||||
}
|
||||
if (StringUtils.isNotBlank(email)) {
|
||||
//update-begin---author:wangshuai ---date:20220708 for:[VUEN-1528]积木官网邮箱重复,应该提示准确------------
|
||||
// update-begin---author:wangshuai ---date:20220708
|
||||
// for:[VUEN-1528]积木官网邮箱重复,应该提示准确------------
|
||||
LambdaQueryWrapper<SysUser> emailQuery = new LambdaQueryWrapper<>();
|
||||
emailQuery.eq(SysUser::getEmail, email);
|
||||
long count = sysUserService.count(emailQuery);
|
||||
@ -1379,7 +1427,8 @@ public class SysUserController {
|
||||
result.error500("保存失败,邮箱已存在!");
|
||||
return result;
|
||||
}
|
||||
//update-end---author:wangshuai ---date:20220708 for:[VUEN-1528]积木官网邮箱重复,应该提示准确--------------
|
||||
// update-end---author:wangshuai ---date:20220708
|
||||
// for:[VUEN-1528]积木官网邮箱重复,应该提示准确--------------
|
||||
sysUser.setEmail(email);
|
||||
}
|
||||
if (null != birthday) {
|
||||
@ -1394,8 +1443,10 @@ public class SysUserController {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 移动端保存设备信息
|
||||
*
|
||||
* @param clientId
|
||||
* @return
|
||||
*/
|
||||
@ -1417,6 +1468,7 @@ public class SysUserController {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据userid获取用户信息和部门员工信息
|
||||
*
|
||||
@ -1441,13 +1493,16 @@ public class SysUserController {
|
||||
}
|
||||
return Result.ok(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 移动端查询部门用户信息
|
||||
*
|
||||
* @param departId
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/appQueryByDepartId")
|
||||
public Result<List<SysUser>> appQueryByDepartId(@RequestParam(name="departId", required = false) String departId) {
|
||||
public Result<List<SysUser>> appQueryByDepartId(
|
||||
@RequestParam(name = "departId", required = false) String departId) {
|
||||
Result<List<SysUser>> result = new Result<List<SysUser>>();
|
||||
List<String> list = new ArrayList<String>();
|
||||
list.add(departId);
|
||||
@ -1455,8 +1510,10 @@ public class SysUserController {
|
||||
result.setResult(childrenUser);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 移动端查询用户信息(通过用户名模糊查询)
|
||||
*
|
||||
* @param keyword
|
||||
* @return
|
||||
*/
|
||||
@ -1483,12 +1540,14 @@ public class SysUserController {
|
||||
// 是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
|
||||
if (MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL) {
|
||||
String tenantId = oConvertUtils.getString(TokenUtils.getTenantIdByRequest(request), "-1");
|
||||
//update-begin---author:wangshuai ---date:20221223 for:[QQYUN-3371]租户逻辑改造,改成关系表------------
|
||||
// update-begin---author:wangshuai ---date:20221223
|
||||
// for:[QQYUN-3371]租户逻辑改造,改成关系表------------
|
||||
List<String> userIds = userTenantService.getUserIdsByTenantId(Integer.valueOf(tenantId));
|
||||
if (oConvertUtils.listIsNotEmpty(userIds)) {
|
||||
queryWrapper.in(SysUser::getId, userIds);
|
||||
}
|
||||
//update-end---author:wangshuai ---date:20221223 for:[QQYUN-3371]租户逻辑改造,改成关系表------------
|
||||
// update-end---author:wangshuai ---date:20221223
|
||||
// for:[QQYUN-3371]租户逻辑改造,改成关系表------------
|
||||
}
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
Page<SysUser> page = new Page<>(pageNo, pageSize);
|
||||
@ -1509,6 +1568,7 @@ public class SysUserController {
|
||||
|
||||
/**
|
||||
* 根据用户名修改手机号[该方法未使用]
|
||||
*
|
||||
* @param json
|
||||
* @return
|
||||
*/
|
||||
@ -1547,18 +1607,20 @@ public class SysUserController {
|
||||
return Result.ok("手机号设置成功!");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据对象里面的属性值作in查询 属性可能会变 用户组件用到
|
||||
*
|
||||
* @param sysUser
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/getMultiUser")
|
||||
public List<SysUser> getMultiUser(SysUser sysUser) {
|
||||
QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(sysUser, null);
|
||||
//update-begin---author:wangshuai ---date:20220104 for:[JTC-297]已冻结用户仍可设置为代理人------------
|
||||
// update-begin---author:wangshuai ---date:20220104
|
||||
// for:[JTC-297]已冻结用户仍可设置为代理人------------
|
||||
queryWrapper.eq("status", Integer.parseInt(CommonConstant.STATUS_1));
|
||||
//update-end---author:wangshuai ---date:20220104 for:[JTC-297]已冻结用户仍可设置为代理人------------
|
||||
// update-end---author:wangshuai ---date:20220104
|
||||
// for:[JTC-297]已冻结用户仍可设置为代理人------------
|
||||
List<SysUser> ls = this.sysUserService.list(queryWrapper);
|
||||
for (SysUser user : ls) {
|
||||
user.setPassword(null);
|
||||
@ -1569,6 +1631,7 @@ public class SysUserController {
|
||||
|
||||
/**
|
||||
* 聊天 创建聊天组件专用 根据用户账号、用户姓名、部门id分页查询
|
||||
*
|
||||
* @param departId 部门id
|
||||
* @param keyword 搜索值
|
||||
* @return
|
||||
@ -1586,12 +1649,14 @@ public class SysUserController {
|
||||
tenantId = oConvertUtils.getInt(TenantContext.getTenant(), 0);
|
||||
}
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
IPage<SysUser> pageList = sysUserDepartService.getUserInformation(tenantId,departId, keyword, pageSize, pageNo);
|
||||
IPage<SysUser> pageList = sysUserDepartService.getUserInformation(tenantId, departId, keyword, pageSize,
|
||||
pageNo);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 简版流程用户选择组件
|
||||
*
|
||||
* @param departId 部门id
|
||||
* @param roleId 角色id
|
||||
* @param keyword 搜索值
|
||||
@ -1611,16 +1676,19 @@ public class SysUserController {
|
||||
// 是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
|
||||
if (MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL) {
|
||||
String tenantStr = TenantContext.getTenant();
|
||||
tenantId = oConvertUtils.getInteger(tenantStr, oConvertUtils.getInt(TokenUtils.getTenantIdByRequest(req), -1));
|
||||
tenantId = oConvertUtils.getInteger(tenantStr,
|
||||
oConvertUtils.getInt(TokenUtils.getTenantIdByRequest(req), -1));
|
||||
log.info("---------简流中选择用户接口,通过租户筛选,租户ID={}", tenantId);
|
||||
}
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
IPage<SysUser> pageList = sysUserDepartService.getUserInformation(tenantId, departId,roleId, keyword, pageSize, pageNo,excludeUserIdList);
|
||||
IPage<SysUser> pageList = sysUserDepartService.getUserInformation(tenantId, departId, roleId, keyword, pageSize,
|
||||
pageNo, excludeUserIdList);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户离职(新增代理人和用户状态变更操作)【低代码应用专用接口】
|
||||
*
|
||||
* @param sysUserAgent
|
||||
* @return
|
||||
*/
|
||||
@ -1658,6 +1726,7 @@ public class SysUserController {
|
||||
|
||||
/**
|
||||
* 更新刪除状态和离职状态【低代码应用专用接口】
|
||||
*
|
||||
* @param jsonObject
|
||||
* @return Result<String>
|
||||
*/
|
||||
@ -1681,6 +1750,7 @@ public class SysUserController {
|
||||
|
||||
/**
|
||||
* 获取用户信息(vue3用户设置专用)【低代码应用专用接口】
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/login/setting/getUserData")
|
||||
@ -1691,11 +1761,13 @@ public class SysUserController {
|
||||
return Result.error("未找到该用户数据");
|
||||
}
|
||||
|
||||
//update-begin---author:wangshuai ---date:20230220 for:[QQYUN-3980]组织管理中 职位功能 职位表加租户id 加职位-用户关联表------------
|
||||
// update-begin---author:wangshuai ---date:20230220 for:[QQYUN-3980]组织管理中 职位功能
|
||||
// 职位表加租户id 加职位-用户关联表------------
|
||||
// 获取用户id通过职位数据
|
||||
List<SysPosition> sysPositionList = sysPositionService.getPositionList(user.getId());
|
||||
if (null != sysPositionList && sysPositionList.size() > 0) {
|
||||
//update-end---author:wangshuai ---date:20230220 for:[QQYUN-3980]组织管理中 职位功能 职位表加租户id 加职位-用户关联表------------
|
||||
// update-end---author:wangshuai ---date:20230220 for:[QQYUN-3980]组织管理中 职位功能
|
||||
// 职位表加租户id 加职位-用户关联表------------
|
||||
StringBuilder nameBuilder = new StringBuilder();
|
||||
StringBuilder idBuilder = new StringBuilder();
|
||||
String verticalBar = " | ";
|
||||
@ -1720,6 +1792,7 @@ public class SysUserController {
|
||||
|
||||
/**
|
||||
* 用户编辑(vue3用户设置专用)【低代码应用专用接口】
|
||||
*
|
||||
* @param sysUser
|
||||
* @return
|
||||
*/
|
||||
@ -1740,6 +1813,7 @@ public class SysUserController {
|
||||
|
||||
/**
|
||||
* 批量修改 【low-app】
|
||||
*
|
||||
* @param jsonObject
|
||||
* @return
|
||||
*/
|
||||
@ -1759,6 +1833,7 @@ public class SysUserController {
|
||||
|
||||
/**
|
||||
* 根据关键词搜索部门和用户【low-app】
|
||||
*
|
||||
* @param keyword
|
||||
* @return
|
||||
*/
|
||||
@ -1770,6 +1845,7 @@ public class SysUserController {
|
||||
|
||||
/**
|
||||
* 编辑部门前获取部门相关信息 【low-app】
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@ -1781,6 +1857,7 @@ public class SysUserController {
|
||||
|
||||
/**
|
||||
* 编辑部门 【low-app】
|
||||
*
|
||||
* @param updateDepartInfo
|
||||
* @return
|
||||
*/
|
||||
@ -1792,6 +1869,7 @@ public class SysUserController {
|
||||
|
||||
/**
|
||||
* 设置负责人 取消负责人
|
||||
*
|
||||
* @param json
|
||||
* @return
|
||||
*/
|
||||
@ -1803,6 +1881,7 @@ public class SysUserController {
|
||||
|
||||
/**
|
||||
* 修改租户下的用户【低代码应用专用接口】
|
||||
*
|
||||
* @param sysUser
|
||||
* @param req
|
||||
* @return
|
||||
@ -1829,6 +1908,7 @@ public class SysUserController {
|
||||
/**
|
||||
* 切换租户时 需要修改 loginTenantId
|
||||
* QQYUN-4491 【应用】一些小问题 1、上次选中登录的租户,下次登录未记忆
|
||||
*
|
||||
* @param sysUser
|
||||
* @return
|
||||
*/
|
||||
@ -1859,6 +1939,7 @@ public class SysUserController {
|
||||
|
||||
/**
|
||||
* 应用用户导出
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@ -1869,6 +1950,7 @@ public class SysUserController {
|
||||
|
||||
/**
|
||||
* 应用用户导入
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
|
@ -1,17 +1,5 @@
|
||||
${AnsiColor.BRIGHT_BLUE}
|
||||
(_) | | | |
|
||||
_ ___ ___ ___ __ _ ______| |__ ___ ___ | |_
|
||||
| |/ _ \/ _ \/ __/ _` |______| '_ \ / _ \ / _ \| __|
|
||||
| | __/ __/ (_| (_| | | |_) | (_) | (_) | |_
|
||||
| |\___|\___|\___\__, | |_.__/ \___/ \___/ \__|
|
||||
_/ | __/ |
|
||||
|__/ |___/
|
||||
|
||||
|
||||
${AnsiColor.BRIGHT_GREEN}
|
||||
Jeecg Boot Version: 3.8.2
|
||||
Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version}
|
||||
产品官网: www.jeecg.com
|
||||
版权所属: 北京国炬信息技术有限公司
|
||||
公司官网: www.guojusoft.com
|
||||
${AnsiColor.BLACK}
|
||||
|
Loading…
x
Reference in New Issue
Block a user