浏览代码

鉴权登录修改

wangliang 3 年之前
父节点
当前提交
ff29b662d0

+ 14 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/SsoServiceImpl.java

@@ -24,10 +24,7 @@ import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.io.IOException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 
 /**
  * @Date: 2021/5/20.
@@ -98,15 +95,24 @@ public class SsoServiceImpl implements SsoService {
     public Map<String, Object> analysisLogin(String loginName, RoleTypeEnum role, String orgName, String realName, String mobileNumber, Boolean enable, String returnUrl) throws IOException {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         BasicSchool basicSchool = commonCacheService.schoolCache(sysUser.getSchoolId());
-        List<SysOrg> sysOrgList = sysOrgService.findByConnectByParentId(sysUser.getOrgId(), false, true);
-        if (CollectionUtils.isEmpty(sysOrgList)) {
-            throw ExceptionResultEnum.ERROR.exception("未找到学院信息");
+        if (role == RoleTypeEnum.PRESIDENT || role == RoleTypeEnum.TEACHER) {
+            List<SysOrg> sysOrgList = sysOrgService.findByConnectByParentId(sysUser.getOrgId(), false, true);
+            if (CollectionUtils.isEmpty(sysOrgList)) {
+                throw ExceptionResultEnum.ERROR.exception("未找到学院信息");
+            }
+            orgName = sysOrgList.get(0).getName();
+        } else if (role == RoleTypeEnum.OFFICE_TEACHER && Objects.nonNull(sysUser.getOrgId())) {
+            SysOrg sysOrg = commonCacheService.orgCache(sysUser.getOrgId());
+            if (Objects.isNull(sysOrg)) {
+                throw ExceptionResultEnum.ERROR.exception("未找到学校信息");
+            }
+            orgName = sysOrg.getName();
         }
 
         Map<String, Object> map = new HashMap<>();
         map.computeIfAbsent("loginName", v -> loginName);
         map.computeIfAbsent("role", v -> role);
-        map.computeIfAbsent("orgName", v -> sysOrgList.get(0).getName());
+        map.put("orgName", orgName);
         map.computeIfAbsent("realName", v -> realName);
         map.computeIfAbsent("mobileNumber", v -> mobileNumber);
         map.computeIfAbsent("returnUrl", v -> returnUrl);