Parcourir la source

单点登录修改schoolInfo

wangliang il y a 2 ans
Parent
commit
2da67f4d2b

+ 20 - 6
distributed-print/src/main/java/com/qmth/distributed/print/api/OpenApiController.java

@@ -15,6 +15,7 @@ import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.AppSourceEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.service.BasicSchoolService;
+import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.util.*;
@@ -59,6 +60,9 @@ public class OpenApiController {
     @Resource
     BasicSchoolService basicSchoolService;
 
+    @Resource
+    CommonCacheService commonCacheService;
+
     @ApiOperation(value = "试卷基础配置查询")
     @ApiResponses({@ApiResponse(code = 200, message = "试卷基础配置查询", response = Object.class)})
     @PostMapping("/paper_config")
@@ -160,7 +164,7 @@ public class OpenApiController {
         }
         account = URLDecoder.decode(account, SystemConstant.CHARSET_NAME);
 
-        BasicSchool basicSchool = AuthThirdUtil.hasPermissionCas(time, path, signature);
+        AuthThirdUtil.hasPermissionCas(time, path, signature);
         OpenParams openParams = null;
         if (Objects.nonNull(params) && !Objects.equals(params, "")) {
             String decodeJson = URLDecoder.decode(params, SystemConstant.CHARSET_NAME);
@@ -169,17 +173,27 @@ public class OpenApiController {
 
         //查询用户是否存在
         QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
-        sysUserQueryWrapper.lambda().eq(SysUser::getSchoolId, basicSchool.getId())
-                .eq(SysUser::getLoginName, account)
+        sysUserQueryWrapper.lambda().eq(SysUser::getLoginName, account)
                 .eq(SysUser::getEnable, true);
-        SysUser sysUser = sysUserService.getOne(sysUserQueryWrapper);
-        Optional.ofNullable(sysUser).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("用户不存在"));
+        List<SysUser> sysUserList = sysUserService.list(sysUserQueryWrapper);
+        if (CollectionUtils.isEmpty(sysUserList)) {
+            throw ExceptionResultEnum.PARAMS_ERROR.exception("用户不存在");
+        }
 
-        LoginResult loginResult = teachcloudCommonService.login(sysUser.getPassword(), sysUser, AppSourceEnum.CAS_THIRD);
+        LoginResult loginResult = teachcloudCommonService.login(sysUserList.get(0).getPassword(), sysUserList.get(0), AppSourceEnum.CAS_THIRD);
         if (Objects.nonNull(returnUrl) && !Objects.equals(returnUrl, "")) {
             returnUrl = URLDecoder.decode(returnUrl, SystemConstant.CHARSET_NAME);
         }
         loginResult.setReturnUrl(returnUrl);
+        if (sysUserList.size() > 1) {
+            List<LoginResult.SchoolNativeBean> schoolNativeBeanList = new ArrayList<>(sysUserList.size());
+            for (SysUser sysUser : sysUserList) {
+                BasicSchool school = commonCacheService.schoolCache(sysUser.getSchoolId());
+                schoolNativeBeanList.add(loginResult.new SchoolNativeBean(school, sysUser.getPassword()));
+            }
+            loginResult.setSchoolInfo(schoolNativeBeanList);
+        }
+
         return ResultUtil.ok(loginResult);
     }
 

+ 30 - 13
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/result/LoginResult.java

@@ -40,7 +40,7 @@ public class LoginResult implements Serializable {
     String accessToken;
 
     @ApiModelProperty(value = "学校信息")
-    SchoolNativeBean schoolInfo;
+    List<SchoolNativeBean> schoolInfo;
 
     @ApiModelProperty(value = "机构信息")
     OrgNativeBean orgInfo;
@@ -91,7 +91,7 @@ public class LoginResult implements Serializable {
         this.roleSource = roleSource;
     }
 
-    public LoginResult(SysUser sysUser, String sessionId, String accessToken, SchoolNativeBean schoolInfo, OrgNativeBean orgInfo, AppSourceEnum appSource) {
+    public LoginResult(SysUser sysUser, String sessionId, String accessToken, List<SchoolNativeBean> schoolInfo, OrgNativeBean orgInfo, AppSourceEnum appSource) {
         this.loginName = sysUser.getLoginName();
         this.realName = sysUser.getRealName();
         this.sessionId = sessionId;
@@ -173,14 +173,6 @@ public class LoginResult implements Serializable {
         this.accessToken = accessToken;
     }
 
-    public SchoolNativeBean getSchoolInfo() {
-        return schoolInfo;
-    }
-
-    public void setSchoolInfo(SchoolNativeBean schoolInfo) {
-        this.schoolInfo = schoolInfo;
-    }
-
     public long getTime() {
         return time;
     }
@@ -205,6 +197,14 @@ public class LoginResult implements Serializable {
         this.userLoginCheckResult = userLoginCheckResult;
     }
 
+    public List<SchoolNativeBean> getSchoolInfo() {
+        return schoolInfo;
+    }
+
+    public void setSchoolInfo(List<SchoolNativeBean> schoolInfo) {
+        this.schoolInfo = schoolInfo;
+    }
+
     public class SchoolNativeBean implements Serializable {
 
         @ApiModelProperty(value = "id")
@@ -217,6 +217,9 @@ public class LoginResult implements Serializable {
         @ApiModelProperty(value = "名称")
         String name;
 
+        @ApiModelProperty(value = "密码")
+        String password;
+
         public SchoolNativeBean() {
 
         }
@@ -225,14 +228,20 @@ public class LoginResult implements Serializable {
             this.id = tbSchool.getId();
             this.code = tbSchool.getCode();
             this.name = tbSchool.getName();
-            schoolInfo = this;
         }
 
-        public SchoolNativeBean(Long id, String code, String name) {
+        public SchoolNativeBean(BasicSchool tbSchool, String password) {
+            this.id = tbSchool.getId();
+            this.code = tbSchool.getCode();
+            this.name = tbSchool.getName();
+            this.password = password;
+        }
+
+        public SchoolNativeBean(Long id, String code, String name, String password) {
             this.id = id;
             this.code = code;
             this.name = name;
-            schoolInfo = this;
+            this.password = password;
         }
 
         public Long getId() {
@@ -258,6 +267,14 @@ public class LoginResult implements Serializable {
         public void setName(String name) {
             this.name = name;
         }
+
+        public String getPassword() {
+            return password;
+        }
+
+        public void setPassword(String password) {
+            this.password = password;
+        }
     }
 
     public class OrgNativeBean implements Serializable {

+ 15 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TeachcloudCommonServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.io.FileUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.google.common.collect.Lists;
 import com.google.common.reflect.TypeToken;
 import com.google.gson.Gson;
 import com.qmth.boot.core.enums.Platform;
@@ -785,7 +786,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
 
 //        LoginResult loginResult = new LoginResult(sysUser, sessionId, test, Objects.nonNull(roleTypes) && roleTypes.size() > 0 ? roleTypes : roleNamesSet, appSource, roleSource);
         LoginResult loginResult = new LoginResult(sysUser, sessionId, token, Objects.nonNull(roleTypes) && roleTypes.size() > 0 ? roleTypes : roleNamesSet, appSource, roleSource);
-        loginResult.setSchoolInfo(Objects.nonNull(authBean.getSchool()) ? loginResult.new SchoolNativeBean(authBean.getSchool()) : null);
+        loginResult.setSchoolInfo(Objects.nonNull(authBean.getSchool()) ? Lists.newArrayList(loginResult.new SchoolNativeBean(authBean.getSchool())) : null);
         loginResult.setOrgInfo(Objects.nonNull(authBean.getOrg()) ? loginResult.new OrgNativeBean(authBean.getOrg()) : null);
         loginResult.setTime(System.currentTimeMillis());
         String mobileNumber = sysUser.getMobileNumber();
@@ -795,6 +796,19 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
             pwdCount = 1;
         }
         loginResult.setUserLoginCheckResult(new UserLoginCheckResult(sysUser.getId(), mobileNumber, pwdCount));
+
+        QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
+        sysUserQueryWrapper.lambda().eq(SysUser::getLoginName, sysUser.getLoginName())
+                .eq(SysUser::getEnable, true);
+        List<SysUser> sysUserList = sysUserService.list(sysUserQueryWrapper);
+        if (sysUserList.size() > 1) {
+            List<LoginResult.SchoolNativeBean> schoolNativeBeanList = new ArrayList<>(sysUserList.size());
+            for (SysUser s : sysUserList) {
+                BasicSchool school = commonCacheService.schoolCache(s.getSchoolId());
+                schoolNativeBeanList.add(loginResult.new SchoolNativeBean(school, s.getPassword()));
+            }
+            loginResult.setSchoolInfo(schoolNativeBeanList);
+        }
         return loginResult;
     }