Browse Source

加入西交大登录前查找账号逻辑

wangliang 2 năm trước cách đây
mục cha
commit
3aea8790e4

+ 31 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/OpenApiController.java

@@ -27,8 +27,8 @@ import javax.annotation.Resource;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.security.NoSuchAlgorithmException;
-import java.util.Objects;
-import java.util.Optional;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -177,4 +177,33 @@ public class OpenApiController {
         loginResult.setReturnUrl(returnUrl);
         return ResultUtil.ok(loginResult);
     }
+
+    @ApiOperation(value = "西交大登录之前逻辑")
+    @ApiResponses({@ApiResponse(code = 200, message = "返回消息", response = SysUser.class)})
+    @RequestMapping(value = "/login_before_xju_logic", method = RequestMethod.POST)
+    @Aac(auth = BOOL.FALSE)
+    public Result loginBeforeXjuLogic(@ApiParam(value = "西交大登录之前逻辑", required = true) @RequestBody String account) throws UnsupportedEncodingException {
+        Optional.ofNullable(account).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("账号为空"));
+        String decodeJson = URLDecoder.decode(account, SystemConstant.CHARSET_NAME);
+        log.info("loginBeforeXjuLogic进来了,result:{}", decodeJson);
+        account = JacksonUtil.readJson(decodeJson, String.class);
+
+        BasicSchool basicSchool = AuthThirdUtil.hasPermission();
+        Set<String> schoolCodes = new HashSet<>(Arrays.asList("xjtu", "xjtuyjs"));
+        schoolCodes.add(basicSchool.getCode());
+
+        QueryWrapper<BasicSchool> basicSchoolQueryWrapper = new QueryWrapper<>();
+        basicSchoolQueryWrapper.lambda().in(BasicSchool::getCode, schoolCodes);
+        List<BasicSchool> basicSchoolList = basicSchoolService.list(basicSchoolQueryWrapper);
+        if (CollectionUtils.isEmpty(basicSchoolList)) {
+            throw ExceptionResultEnum.PARAMS_ERROR.exception("未找到西交大学校信息");
+        }
+        List<Long> schoolIds = basicSchoolList.stream().map(s -> s.getId()).collect(Collectors.toList());
+
+        QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
+        sysUserQueryWrapper.lambda().eq(SysUser::getLoginName, account)
+                .eq(SysUser::getEnable, true)
+                .in(SysUser::getSchoolId, schoolIds);
+        return ResultUtil.ok(sysUserService.list(sysUserQueryWrapper));
+    }
 }