feat: 🎸 解决 修改用户角色,权限无法及时同步

This commit is contained in:
GoCo 2025-09-02 02:42:19 +08:00
parent c0a2047544
commit f020747b1f
3 changed files with 747 additions and 678 deletions

View File

@ -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;
}

View File

@ -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
*/

View File

@ -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}