Merge pull request #156 from MuSan-Li/feature_20250804_fix_bug

feat: 优化空指针bug&格式化代码&初始化用户知识库角色配置
This commit is contained in:
evo
2025-08-04 20:54:27 +08:00
committed by GitHub
3 changed files with 53 additions and 50 deletions

View File

@@ -162,7 +162,7 @@ tenant:
- sys_user_role - sys_user_role
knowledge-role: knowledge-role:
enable: false enable: true
# MyBatisPlus配置 # MyBatisPlus配置
# https://baomidou.com/config/ # https://baomidou.com/config/

View File

@@ -77,21 +77,21 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
Map<String, Object> params = user.getParams(); Map<String, Object> params = user.getParams();
QueryWrapper<SysUser> wrapper = Wrappers.query(); QueryWrapper<SysUser> wrapper = Wrappers.query();
wrapper.eq("u.del_flag", UserConstants.USER_NORMAL) wrapper.eq("u.del_flag", UserConstants.USER_NORMAL)
.eq(ObjectUtil.isNotNull(user.getUserId()), "u.user_id", user.getUserId()) .eq(ObjectUtil.isNotNull(user.getUserId()), "u.user_id", user.getUserId())
.eq(ObjectUtil.isNotNull(user.getUserGrade()), "u.user_grade", user.getUserGrade()) .eq(ObjectUtil.isNotNull(user.getUserGrade()), "u.user_grade", user.getUserGrade())
.like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName()) .like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName())
.eq(StringUtils.isNotBlank(user.getStatus()), "u.status", user.getStatus()) .eq(StringUtils.isNotBlank(user.getStatus()), "u.status", user.getStatus())
.like(StringUtils.isNotBlank(user.getPhonenumber()), "u.phonenumber", user.getPhonenumber()) .like(StringUtils.isNotBlank(user.getPhonenumber()), "u.phonenumber", user.getPhonenumber())
.between(params.get("beginTime") != null && params.get("endTime") != null, .between(params.get("beginTime") != null && params.get("endTime") != null,
"u.create_time", params.get("beginTime"), params.get("endTime")) "u.create_time", params.get("beginTime"), params.get("endTime"))
.and(ObjectUtil.isNotNull(user.getDeptId()), w -> { .and(ObjectUtil.isNotNull(user.getDeptId()), w -> {
List<SysDept> deptList = deptMapper.selectList(new LambdaQueryWrapper<SysDept>() List<SysDept> deptList = deptMapper.selectList(new LambdaQueryWrapper<SysDept>()
.select(SysDept::getDeptId) .select(SysDept::getDeptId)
.apply(DataBaseHelper.findInSet(user.getDeptId(), "ancestors"))); .apply(DataBaseHelper.findInSet(user.getDeptId(), "ancestors")));
List<Long> ids = StreamUtils.toList(deptList, SysDept::getDeptId); List<Long> ids = StreamUtils.toList(deptList, SysDept::getDeptId);
ids.add(user.getDeptId()); ids.add(user.getDeptId());
w.in("u.dept_id", ids); w.in("u.dept_id", ids);
}); });
return wrapper; return wrapper;
} }
@@ -105,10 +105,10 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
public TableDataInfo<SysUserVo> selectAllocatedList(SysUserBo user, PageQuery pageQuery) { public TableDataInfo<SysUserVo> selectAllocatedList(SysUserBo user, PageQuery pageQuery) {
QueryWrapper<SysUser> wrapper = Wrappers.query(); QueryWrapper<SysUser> wrapper = Wrappers.query();
wrapper.eq("u.del_flag", UserConstants.USER_NORMAL) wrapper.eq("u.del_flag", UserConstants.USER_NORMAL)
.eq(ObjectUtil.isNotNull(user.getRoleId()), "r.role_id", user.getRoleId()) .eq(ObjectUtil.isNotNull(user.getRoleId()), "r.role_id", user.getRoleId())
.like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName()) .like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName())
.eq(StringUtils.isNotBlank(user.getStatus()), "u.status", user.getStatus()) .eq(StringUtils.isNotBlank(user.getStatus()), "u.status", user.getStatus())
.like(StringUtils.isNotBlank(user.getPhonenumber()), "u.phonenumber", user.getPhonenumber()); .like(StringUtils.isNotBlank(user.getPhonenumber()), "u.phonenumber", user.getPhonenumber());
Page<SysUserVo> page = baseMapper.selectAllocatedList(pageQuery.build(), wrapper); Page<SysUserVo> page = baseMapper.selectAllocatedList(pageQuery.build(), wrapper);
return TableDataInfo.build(page); return TableDataInfo.build(page);
} }
@@ -124,10 +124,10 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
List<Long> userIds = userRoleMapper.selectUserIdsByRoleId(user.getRoleId()); List<Long> userIds = userRoleMapper.selectUserIdsByRoleId(user.getRoleId());
QueryWrapper<SysUser> wrapper = Wrappers.query(); QueryWrapper<SysUser> wrapper = Wrappers.query();
wrapper.eq("u.del_flag", UserConstants.USER_NORMAL) wrapper.eq("u.del_flag", UserConstants.USER_NORMAL)
.and(w -> w.ne("r.role_id", user.getRoleId()).or().isNull("r.role_id")) .and(w -> w.ne("r.role_id", user.getRoleId()).or().isNull("r.role_id"))
.notIn(CollUtil.isNotEmpty(userIds), "u.user_id", userIds) .notIn(CollUtil.isNotEmpty(userIds), "u.user_id", userIds)
.like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName()) .like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName())
.like(StringUtils.isNotBlank(user.getPhonenumber()), "u.phonenumber", user.getPhonenumber()); .like(StringUtils.isNotBlank(user.getPhonenumber()), "u.phonenumber", user.getPhonenumber());
Page<SysUserVo> page = baseMapper.selectUnallocatedList(pageQuery.build(), wrapper); Page<SysUserVo> page = baseMapper.selectUnallocatedList(pageQuery.build(), wrapper);
return TableDataInfo.build(page); return TableDataInfo.build(page);
} }
@@ -216,8 +216,8 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
@Override @Override
public boolean checkUserNameUnique(SysUserBo user) { public boolean checkUserNameUnique(SysUserBo user) {
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>() boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>()
.eq(SysUser::getUserName, user.getUserName()) .eq(SysUser::getUserName, user.getUserName())
.ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId())); .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
return !exist; return !exist;
} }
@@ -229,8 +229,8 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
@Override @Override
public boolean checkPhoneUnique(SysUserBo user) { public boolean checkPhoneUnique(SysUserBo user) {
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>() boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>()
.eq(SysUser::getPhonenumber, user.getPhonenumber()) .eq(SysUser::getPhonenumber, user.getPhonenumber())
.ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId())); .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
return !exist; return !exist;
} }
@@ -242,8 +242,8 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
@Override @Override
public boolean checkEmailUnique(SysUserBo user) { public boolean checkEmailUnique(SysUserBo user) {
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>() boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>()
.eq(SysUser::getEmail, user.getEmail()) .eq(SysUser::getEmail, user.getEmail())
.ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId())); .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
return !exist; return !exist;
} }
@@ -328,6 +328,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
insertUserRole(user, true); insertUserRole(user, true);
// 新增用户与岗位管理 // 新增用户与岗位管理
insertUserPost(user, true); insertUserPost(user, true);
// 更新知识库角色信息
SysUser sysUser = MapstructUtils.convert(user, SysUser.class); SysUser sysUser = MapstructUtils.convert(user, SysUser.class);
// 防止错误更新后导致的数据误删除 // 防止错误更新后导致的数据误删除
int flag = baseMapper.updateById(sysUser); int flag = baseMapper.updateById(sysUser);
@@ -371,9 +372,9 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
@Override @Override
public int updateUserStatus(Long userId, String status) { public int updateUserStatus(Long userId, String status) {
return baseMapper.update(null, return baseMapper.update(null,
new LambdaUpdateWrapper<SysUser>() new LambdaUpdateWrapper<SysUser>()
.set(SysUser::getStatus, status) .set(SysUser::getStatus, status)
.eq(SysUser::getUserId, userId)); .eq(SysUser::getUserId, userId));
} }
/** /**
@@ -385,12 +386,12 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
@Override @Override
public int updateUserProfile(SysUserBo user) { public int updateUserProfile(SysUserBo user) {
return baseMapper.update(null, return baseMapper.update(null,
new LambdaUpdateWrapper<SysUser>() new LambdaUpdateWrapper<SysUser>()
.set(ObjectUtil.isNotNull(user.getNickName()), SysUser::getNickName, user.getNickName()) .set(ObjectUtil.isNotNull(user.getNickName()), SysUser::getNickName, user.getNickName())
.set(SysUser::getPhonenumber, user.getPhonenumber()) .set(SysUser::getPhonenumber, user.getPhonenumber())
.set(SysUser::getEmail, user.getEmail()) .set(SysUser::getEmail, user.getEmail())
.set(SysUser::getSex, user.getSex()) .set(SysUser::getSex, user.getSex())
.eq(SysUser::getUserId, user.getUserId())); .eq(SysUser::getUserId, user.getUserId()));
} }
/** /**
@@ -403,17 +404,17 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
@Override @Override
public boolean updateUserAvatar(Long userId, String avatar) { public boolean updateUserAvatar(Long userId, String avatar) {
return baseMapper.update(null, return baseMapper.update(null,
new LambdaUpdateWrapper<SysUser>() new LambdaUpdateWrapper<SysUser>()
.set(SysUser::getAvatar, avatar) .set(SysUser::getAvatar, avatar)
.eq(SysUser::getUserId, userId)) > 0; .eq(SysUser::getUserId, userId)) > 0;
} }
@Override @Override
public boolean updateUserName(Long userId, String nickName) { public boolean updateUserName(Long userId, String nickName) {
return baseMapper.update(null, return baseMapper.update(null,
new LambdaUpdateWrapper<SysUser>() new LambdaUpdateWrapper<SysUser>()
.set(SysUser::getNickName, nickName) .set(SysUser::getNickName, nickName)
.eq(SysUser::getUserId, userId)) > 0; .eq(SysUser::getUserId, userId)) > 0;
} }
/** /**
@@ -426,9 +427,9 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
@Override @Override
public int resetUserPwd(Long userId, String password) { public int resetUserPwd(Long userId, String password) {
return baseMapper.update(null, return baseMapper.update(null,
new LambdaUpdateWrapper<SysUser>() new LambdaUpdateWrapper<SysUser>()
.set(SysUser::getPassword, password) .set(SysUser::getPassword, password)
.eq(SysUser::getUserId, userId)); .eq(SysUser::getUserId, userId));
} }
@@ -560,7 +561,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
@Override @Override
public String selectUserNameById(Long userId) { public String selectUserNameById(Long userId) {
SysUser sysUser = baseMapper.selectOne(new LambdaQueryWrapper<SysUser>() SysUser sysUser = baseMapper.selectOne(new LambdaQueryWrapper<SysUser>()
.select(SysUser::getUserName).eq(SysUser::getUserId, userId)); .select(SysUser::getUserName).eq(SysUser::getUserId, userId));
return ObjectUtil.isNull(sysUser) ? null : sysUser.getUserName(); return ObjectUtil.isNull(sysUser) ? null : sysUser.getUserName();
} }

View File

@@ -26,6 +26,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
import java.util.Objects;
/** /**
* dify 聊天管理 * dify 聊天管理
* *
@@ -65,7 +67,7 @@ public class DifyServiceImpl implements IChatService {
// 获取conversationId // 获取conversationId
ChatSessionVo sessionInfo = chatSessionService.queryById(chatRequest.getSessionId()); ChatSessionVo sessionInfo = chatSessionService.queryById(chatRequest.getSessionId());
if (StrUtil.isNotBlank(sessionInfo.getConversationId())) { if (Objects.nonNull(sessionInfo) && StrUtil.isNotBlank(sessionInfo.getConversationId())) {
message.setConversationId(sessionInfo.getConversationId()); message.setConversationId(sessionInfo.getConversationId());
} }