From 8381325223bee254168855b1b697db31fc591b9e Mon Sep 17 00:00:00 2001 From: ludc Date: 星期二, 19 九月 2023 09:28:42 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java | 78 ++++++++++++++++++++++++++++++++++----- 1 files changed, 68 insertions(+), 10 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java index 8381d07..31b61e1 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java @@ -53,12 +53,23 @@ 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; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; + 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.*; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.atomic.AtomicBoolean; @@ -74,20 +85,25 @@ @Slf4j @VciWebservice(path = "/universalInterface") public class UniversalInterfaceImpl<IDockingLogeServiceing> implements UniversalInterfaceI { + @Value("${code.universalinterface.checkSystemConfig:true}") public boolean CODE_CHECKCONFIG; + @Autowired(required = false) private AttributeMapConfig attributeMapConfig; + /*** * 浜哄憳鐩稿叧閰嶇疆鏈嶅姟 */ @Autowired(required = false) private PersonAndDeptConfig personAndDeptConfig; + /** * 缂撳瓨鏈嶅姟 */ //@Autowired //private RedisService redisService; + /** * 涓婚搴撳垎绫荤殑鏈嶅姟 */ @@ -127,7 +143,6 @@ /** * 瀵嗙骇鐨勬湇鍔� */ - @Resource private MdmIOService mdmIOService; @@ -142,12 +157,43 @@ */ @Resource private IDockingLogeService dockingLogeService; + @Resource + private IPasswordFreeLoginService passwordFreeLoginService; private static String separator="##VCI##"; private String errorid="0"; private String msg="鎴愬姛"; 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 + 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; + } + /*** * 鐢宠缂栫爜鎺ュ彛 * @param data 浼犻�掔殑鏁版嵁鍙傛暟 @@ -190,9 +236,11 @@ ClassfysVO classfysVO = interParameterVO.getData().getClassifys(); systemId = interParameterVO.getData().getSystemId(); UserVO userVo = interParameterVO.getData().getUser(); + //鍏嶅瘑鐧诲綍鐢宠token锛宺equest涓坊鍔犵敤鎴蜂俊鎭� + passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest()); + AuthUtil.getUser(); List<ClassfyVO> classVOList = classfysVO.getClassify(); InterParameterVO finalInterParameterVO = interParameterVO; - //杩欐槸璐﹀彿淇℃伅 SessionInfo sessionInfo = new SessionInfo(); sessionInfo.setUserId(userVo.getUserName()); @@ -341,8 +389,6 @@ //璋冪敤闆嗗洟鐢宠鎺ュ彛鐢宠闆嗗洟鐮� return resultStr; } - - /**** * 浜哄憳鏁版嵁鍚屾 @@ -616,6 +662,7 @@ return resultOrgData; } + /**** * 閮ㄩ棬鏁版嵁鍚屾 * @param orgData @@ -882,6 +929,7 @@ } return resultOrgData; } + /*** * 缁熶竴鏇存柊鎺ュ彛锛堟洿鏀圭姸鎬侊紝鏇存敼灞炴�т俊鎭級鎺ュ彛 * @param data @@ -926,6 +974,8 @@ ClassfysVO classfysVO = interParameterVO.getData().getClassifys(); systemId = interParameterVO.getData().getSystemId(); UserVO userVo = interParameterVO.getData().getUser(); + //鍏嶅瘑鐧诲綍鐢宠token锛宺equest涓坊鍔犵敤鎴蜂俊鎭� + passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest()); List<ClassfyVO> classVOList = classfysVO.getClassify(); InterParameterVO finalInterParameterVO = interParameterVO; //杩欐槸璐﹀彿淇℃伅 @@ -1097,6 +1147,8 @@ } QueryData queryData=queryClassifyVO.getData(); UserVO userVo=queryData.getUser(); + //鍏嶅瘑鐧诲綍鐢宠token锛宺equest涓坊鍔犵敤鎴蜂俊鎭� + passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest()); systemId=queryData.getSystemId(); QueryLibraryVO libraryVO= queryData.getLibrary(); String libId= libraryVO.getId(); @@ -1255,6 +1307,8 @@ CondtionsVO condtionsVO=dataCondtionsVO.getCondtions(); systemId=condtionsVO.getSystemId(); UserVO userVo=condtionsVO.getUser(); + //鍏嶅瘑鐧诲綍鐢宠token锛宺equest涓坊鍔犵敤鎴蜂俊鎭� + passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest()); CondtionVO condtionVO= condtionsVO.getCondtion(); SessionInfo sessionInfo = new SessionInfo(); sessionInfo.setUserId(userVo.getUserName()); @@ -1431,11 +1485,8 @@ return resultStr; } - - @Override public String queryClassifyRule(String data, String dataType) throws Throwable { - boolean issucess=false; String resultStr = ""; String errorid="0"; @@ -1471,6 +1522,8 @@ } QueryData queryData=queryClassifyVO.getData(); UserVO userVo=queryData.getUser(); + //鍏嶅瘑鐧诲綍鐢宠token锛宺equest涓坊鍔犵敤鎴蜂俊鎭� + passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest()); systemId=queryData.getSystemId(); QueryLibraryVO libraryVO= queryData.getLibrary(); String libId= libraryVO.getId(); @@ -1781,10 +1834,10 @@ } log.info(libId); }else if(secType.equals("codelevelsec")) {//灞傜骇鐮佹 - int level = codeBasicSecVO.getCodeLevelValue(); CodeClassifyVO levelCodeClassifyVO = new CodeClassifyVO(); CodeClassifyFullInfoBO classifyFullInfoBO = this.classifyService.getClassifyFullInfo(codeClassifyDO.getOid()); if(codeBasicSecVO.getCodeLevelType().equals("code_level_special")){//鎸囧畾灞傜骇 + int level = codeBasicSecVO.getCodeLevelValue(); List<CodeClassifyVO> classifyVOS = classifyFullInfoBO.getParentClassifyVOs().stream().sorted(((o1, o2) -> o2.getDataLevel().compareTo(o1.getDataLevel()))).collect(Collectors.toList()); if (classifyVOS.size() >= level && level > 0) { levelCodeClassifyVO = classifyVOS.get(level - 1); @@ -2234,7 +2287,8 @@ if(StringUtils.isNotBlank(classOid)){ queryWrapper.in(DockingSystemConfig::getClassifyOid,classOid); } - List<DockingSystemConfig> dockingSystemConfigList= dockingSystemConfigList=dockingSystemConfigService.list(queryWrapper); + List<DockingSystemConfig> dockingSystemConfigList=new ArrayList<>(); + dockingSystemConfigList= dockingSystemConfigList=dockingSystemConfigService.list(queryWrapper); if(!CollectionUtils.isEmpty(dockingSystemConfigList)){ return dockingSystemConfigList.get(0); }else{ @@ -2242,6 +2296,10 @@ return checkIspass(systemId, type, operationType, codeClassifyVO.getParentCodeClassifyOid()); } } - return dockingSystemConfigList.get(0); + if(dockingSystemConfigList.size()>0){ + return dockingSystemConfigList.get(0); + }else{ + return new DockingSystemConfig(); + } } } -- Gitblit v1.9.3