ludc
2023-09-18 fbb473488a8b7ece88ecba16d8f2ba25c0c35c61
代码提交
已修改5个文件
59 ■■■■ 文件已修改
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineFallback.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/UniversalInterfaceI.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineFallback.java
@@ -40,7 +40,8 @@
    }
    @Override
    public R<Integer> updateBatchByType(String btmType, List<BaseModel> baseModels) {
    public R<Integer> updateBatchBtypeDatas(String btmType, List<BaseModel> baseModels) {
        return R.fail("更新数据失败");
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java
@@ -1,6 +1,7 @@
package com.vci.ubcs.code.controller;
import com.vci.ubcs.code.service.UniversalInterfaceI;
import org.apache.tools.ant.taskdefs.condition.Http;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.core.tool.api.R;
@@ -13,6 +14,7 @@
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.core.Context;
import java.util.concurrent.ConcurrentHashMap;
/**
 * 主题库分类控制器
@@ -43,10 +45,12 @@
     * @throws Throwable
     */
    @PostMapping("/applyCode")
    public String applyCode(@RequestParam("dataString")String dataString, @RequestParam("dataType")String dataType, ServletRequest request)  {
    public String applyCode(@RequestParam("dataString")String dataString, @RequestParam("dataType")String dataType, HttpServletRequest request)  {
        String result="";
        HttpServletRequest httpServletRequest = (HttpServletRequest) request;
        try {
            ThreadLocal<HttpServletRequest> threadLocal = new ThreadLocal<>();
            threadLocal.set(request);
            universalInterfaceI.setThreadLocal(threadLocal);
            result = universalInterfaceI.applyCode(dataString, dataType);
        }catch (Throwable e){
            e.printStackTrace();
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/UniversalInterfaceI.java
@@ -27,6 +27,8 @@
     */
    public String applyCode(String data, String dataType)throws Throwable;
    public void setThreadLocal(ThreadLocal<HttpServletRequest> threadLocal);
    /****
     * 人员数据同步
     * @param personData
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java
@@ -11,6 +11,7 @@
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.ObjectUtil;
@@ -84,9 +85,11 @@
        String ipAddr = request.getRemoteAddr();
        // 先尝试从缓存当中取,存在就直接从缓存中获取
        String authToken = bladeRedis.get(PWD_FREE_LOGIN_TOKEN+ipAddr+":"+userName);
        BladeUser user = null;
        // 解析token存放进attr中
        String token2 = JwtUtil.getToken(authToken);
        BladeUser user = this.getUser(token2);
        //不存在就请求
        if(Func.isEmpty(authToken)){
        if(Func.isEmpty(authToken) || Func.isEmpty(user)){
            // 免密登录接口地址
            String loginUrl = "http://localhost:"+this.getGatewayPort("ubcs-gateway")+"/ubcs-auth/oauth/token";
            // 请求ubcs-auth服务获取token,先设置请求头
@@ -118,10 +121,10 @@
            authToken = "bearer " + tokenUserObject.getAccess_token();
            // 将token存入缓存当中,过期时间为24小时
            bladeRedis.setEx(PWD_FREE_LOGIN_TOKEN+ipAddr+":"+userName,"bearer "+tokenUserObject.getAccess_token(),tokenRedisExpire);
            token2 = JwtUtil.getToken(authToken);
            user = this.getUser(token2);
        }
        // 解析token存放进attr中
        String token2 = JwtUtil.getToken(authToken);
        user = this.getUser(token2);
        //request.setAttribute("Blade-Auth",token);
        request.setAttribute("_BLADE_USER_REQUEST_ATTR_",user);
        return true;
@@ -186,11 +189,9 @@
        if (StringUtil.isNotBlank(authToken)) {
            token = JwtUtil.getToken(authToken);
        }
        if (StringUtil.isNotBlank(token)) {
            claims = parseJWT(token);
        }
        if (ObjectUtil.isNotEmpty(claims) && getJwtProperties().getState()) {
            tenantId = Func.toStr(claims.get("tenant_id"));
            String userId = Func.toStr(claims.get("user_id"));
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -53,6 +53,9 @@
import com.vci.ubcs.system.vo.DeptVO;
import com.vci.ubcs.system.vo.RoleVO;
import lombok.extern.slf4j.Slf4j;
import org.apache.tools.ant.taskdefs.condition.Http;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.beans.factory.annotation.Autowired;
@@ -62,7 +65,9 @@
import javax.annotation.Resource;
import javax.jws.WebMethod;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.core.Context;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
import java.util.*;
@@ -161,13 +166,31 @@
    private  String objerrorCode="0";
    private String objerrorMsg="成功";
    private final ThreadLocal<HttpServletRequest> threadLocal = new ThreadLocal<>();
    @Resource
    private WebServiceContext webServiceContext;
    @Override
    public void setThreadLocal(ThreadLocal<HttpServletRequest> requestThreadLocal){
        this.threadLocal.set(requestThreadLocal.get());
        requestThreadLocal.remove();
    }
    @WebMethod
    public HttpServletRequest getRequest() {
        // 获取HttpServletRequest对象
        HttpServletRequest request = (HttpServletRequest)webServiceContext.getMessageContext().get(MessageContext.SERVLET_REQUEST);
    private HttpServletRequest getRequest() {
        //rest请求方式获取request
        HttpServletRequest request = this.threadLocal.get();
        if(Func.isEmpty(request)){
            try {
                // webservice请求方式获取HttpServletRequest对象
                request = (HttpServletRequest)webServiceContext.getMessageContext().get(MessageContext.SERVLET_REQUEST);
            }catch (Exception e){
                throw new ServiceException("获取httpServletRequest失败,原因:"+e.getMessage());
            }
        }else {
            this.threadLocal.remove();
        }
        return request;
    }
@@ -215,6 +238,7 @@
            UserVO userVo = interParameterVO.getData().getUser();
            //免密登录申请token,request中添加用户信息
            passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest());
            AuthUtil.getUser();
            List<ClassfyVO> classVOList = classfysVO.getClassify();
            InterParameterVO finalInterParameterVO = interParameterVO;
            //这是账号信息
@@ -1463,7 +1487,6 @@
    @Override
    public String queryClassifyRule(String data, String dataType) throws Throwable {
        boolean issucess=false;
        String resultStr = "";
        String errorid="0";