Parcourir la source

fix:超管和客服修改密码

caozixuan il y a 3 ans
Parent
commit
29a7575c17

+ 13 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -210,8 +210,19 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         }
 
         // 登录
-        BasicSchool basicSchool = basicSchoolService.getById(sysUser.getSchoolId());
-        String schoolCode = basicSchool.getCode();
+        BasicSchool basicSchool = null;
+        String schoolCode = null;
+        basicSchool = basicSchoolService.getById(sysUser.getSchoolId());
+        if (Objects.isNull(basicSchool)){
+            List<Long> userRoles = sysRoleService.getUserRoles(sysUser.getId());
+            List<SysRole> sysRoleList = sysRoleService.list(new QueryWrapper<SysRole>().lambda().in(SysRole::getId,userRoles));
+            Set<RoleTypeEnum> roleType = sysRoleList.stream().map(SysRole::getType).collect(Collectors.toSet());
+            if (roleType.contains(RoleTypeEnum.ADMIN) || roleType.contains(RoleTypeEnum.CUSTOMER)){
+                schoolCode = SystemConstant.ADMIN_CODE;
+            }
+        }else {
+            schoolCode = basicSchool.getCode();
+        }
         if (!schoolCode.equalsIgnoreCase(SystemConstant.ADMIN_CODE)) {
             basicSchool = commonCacheService.schoolCache(schoolCode);
             if (Objects.isNull(basicSchool)) {