Răsfoiți Sursa

后台bug修复

xiaof 4 ani în urmă
părinte
comite
acda5b1a7f

+ 6 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/SysUserServiceImpl.java

@@ -258,14 +258,14 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             if (Objects.isNull(sysUser.getId())) {//新增用户
                 // 登录名是否唯一
                 QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
-                if(Objects.isNull(schoolId)){
+                if (Objects.isNull(schoolId)) {
                     queryWrapper.lambda().isNull(SysUser::getSchoolId);
                 } else {
                     queryWrapper.lambda().eq(SysUser::getSchoolId, schoolId);
                 }
                 queryWrapper.lambda().eq(SysUser::getLoginName, sysUser.getLoginName());
                 SysUser user = sysUserService.getOne(queryWrapper);
-                if(user != null){
+                if (user != null) {
                     throw ExceptionResultEnum.ERROR.exception("用户名已存在");
                 }
 
@@ -282,7 +282,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 SysUser dbUser = sysUserService.getById(sysUser.getId());
                 sysUser.setUpdateInfo(requestUser.getId());
                 sysUserService.updateById(sysUser);
-                if (count == 0 || dbUserRolesList.size() != userRolesList.size()) {
+                List<SysRole> list = sysUserRoleService.listRoleByUserId(sysUser.getId());
+                boolean containsQuestionTeacher = list.stream().filter(m -> RoleTypeEnum.SCHOOL_ADMIN.equals(m.getType())).count() > 0;
+                if (containsQuestionTeacher || count == 0 || dbUserRolesList.size() != userRolesList.size()) {
                     QueryWrapper<SysUserRole> sysUserRoleQueryWrapper = new QueryWrapper<>();
                     sysUserRoleQueryWrapper.lambda().eq(SysUserRole::getUserId, sysUser.getId());
                     sysUserRoleService.remove(sysUserRoleQueryWrapper);
@@ -297,7 +299,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                     commonService.removeUserInfo(sysUser.getId());
                 }
                 //如果修改了机构或手机号,需更新用户缓存
-                if (dbUser.getOrgId().longValue() != sysUser.getOrgId().longValue()
+                if (containsQuestionTeacher || dbUser.getOrgId().longValue() != sysUser.getOrgId().longValue()
                         || !Objects.equals(dbUser.getMobileNumber(), sysUser.getMobileNumber())) {
                     cacheService.updateUserCache(sysUser.getId());
                     cacheService.updateUserAuthCache(sysUser.getId());