liusheng
2026-09-23 ccf5fc76de48e6add5b325b93f2b0ea54efbf2b8
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -175,7 +175,12 @@
        headers.put("app-key", APP_KEY);
        Map<String, String> requestParams = new HashMap<>();
        requestParams.put("token", token);
        String reqData = HttpUtil.postFormRequest(sltdPubPath + "/checkSsoTokenId", requestParams, headers, null);
        String url = active != null && active.contains("nhfy")
                ? sltdPubPath + "/hbos-thirdparty-integration/standard/ih/getHisLoginUserInfo"
                : sltdPubPath + "/checkSsoTokenId";
        log.info("【SLTD token 验证】请求地址:{},token长度:{},token结尾:{}", url, token.length(),
                token.length() > 4 ? token.substring(token.length() - 4) : token);
        String reqData = HttpUtil.postFormRequest(url, requestParams, headers, null);
        log.info("【SLTD token 验证】响应结果:{}", reqData);
        if (StringUtils.isEmpty(reqData)) {
@@ -184,13 +189,31 @@
        }
        Map<String, Object> map = JSONObject.parseObject(reqData, Map.class);
        if (ObjectUtils.isEmpty(map) || (Integer) map.get("code") != 200) {
            log.error("【SLTD token 验证】响应码异常,验证失败");
        if (ObjectUtils.isEmpty(map)) {
            log.error("【SLTD token 验证】响应解析为空,验证失败,响应内容:{}", reqData);
            return null;
        }
        Map<String, Object> data = (Map<String, Object>) map.get("data");
        return (String) data.get("accountNo");
        Object codeObj = map.get("code");
        int code = codeObj instanceof Number ? ((Number) codeObj).intValue() : -1;
        if (code != 200) {
            log.error("【SLTD token 验证】响应码异常,验证失败,code={}, message={}, 响应内容:{}",
                    code, map.get("message"), reqData);
            return null;
        }
        Object dataObj = map.get("data");
        if (!(dataObj instanceof Map)) {
            log.error("【SLTD token 验证】响应缺少data节点,验证失败,data={}", dataObj);
            return null;
        }
        Object accountNo = ((Map<?, ?>) dataObj).get("accountNo");
        if (accountNo == null || StringUtils.isEmpty(String.valueOf(accountNo))) {
            log.error("【SLTD token 验证】响应data中没有accountNo,验证失败,data={}", dataObj);
            return null;
        }
        return String.valueOf(accountNo);
    }
    public String loginByUserName(String userName) {