From 05d00a906aaf2cc5fce8d2a5254663615600d16f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Mon, 29 Jan 2024 19:23:33 +0800 Subject: [PATCH] =?UTF-8?q?srms=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jero/config/shiro/ShiroConfig.java | 8 ++ .../srms/controller/SrmsApiController.java | 29 +++--- .../srms/mapper/LawsStandardMapper.java | 5 +- .../srms/mapper/xml/LawsStandardMapper.xml | 98 +++++++++++-------- .../srms/service/impl/SrmsApiServiceImpl.java | 65 ++++++++---- .../modules/docking/utils/ResponsesUtil.java | 12 +-- 6 files changed, 135 insertions(+), 82 deletions(-) diff --git a/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java b/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java index 90be6a80..d4a2b16c 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java @@ -152,6 +152,14 @@ public class ShiroConfig { // 获取token filterChainDefinitionMap.put("/srms/getByToken", "anon"); + // 标准法规文档查询 + filterChainDefinitionMap.put("/srms/getByLawsFileList", "anon"); + // 设计导航-产品设计条款查询 + filterChainDefinitionMap.put("/srms/getByLawsProductDesign", "anon"); + // 获取所有体系数据 + filterChainDefinitionMap.put("/srms/getByLawsSystem", "anon"); + // 分页查询标准数据 + filterChainDefinitionMap.put("/srms/getByLawsStandardPage", "anon"); // 添加自己的过滤器并且取名为jwt Map filterMap = new HashMap<>(1); diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java index 7974f0ca..3003ac8b 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; +import com.jero.common.constant.CommonConstant; import com.jero.modules.docking.srms.service.SrmsApiService; import com.jero.modules.docking.srms.vo.ByFileRows; import com.jero.modules.docking.srms.vo.StandardPageVO; @@ -44,7 +45,7 @@ public class SrmsApiController { try { Result re = srmsApiService.getByToken(json); if(!re.isSuccess()){ - return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr(re.getMessage())); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr(re.getMessage(),re.getCode())); } String token = re.getResult().get("token").toString(); JSONObject jsonResponses = ResponsesUtil.getJsonOk(); @@ -52,7 +53,7 @@ public class SrmsApiController { return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); }catch (Exception e){ log.error("获取token异常:",e); - return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr("操作失败")); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr("操作失败",CommonConstant.SC_INTERNAL_SERVER_ERROR_500)); } } @@ -63,7 +64,7 @@ public class SrmsApiController { try { Result> re = srmsApiService.getByLawsFileList(json,req); if(!re.isSuccess()){ - return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr(re.getMessage())); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr(re.getMessage(),re.getCode())); } List list = re.getResult(); JSONObject jsonResponses = ResponsesUtil.getJsonOk(); @@ -71,7 +72,7 @@ public class SrmsApiController { return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); }catch (Exception e){ log.error("标准法规文档查询异常:",e); - return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr("操作失败")); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr("操作失败", CommonConstant.SC_INTERNAL_SERVER_ERROR_500)); } } @@ -82,7 +83,7 @@ public class SrmsApiController { try { Result> re = srmsApiService.getByLawsProductDesign(json,req); if(!re.isSuccess()){ - return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr(re.getMessage())); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr(re.getMessage(),re.getCode())); } List list = re.getResult(); JSONObject jsonResponses = ResponsesUtil.getJsonOk(); @@ -90,7 +91,7 @@ public class SrmsApiController { return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); }catch (Exception e){ log.error("设计导航-产品设计条款查询异常:",e); - return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr("操作失败")); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr("操作失败",CommonConstant.SC_INTERNAL_SERVER_ERROR_500)); } } @@ -101,7 +102,7 @@ public class SrmsApiController { try { Result> re = srmsApiService.getByLawsSystem(json,req); if(!re.isSuccess()){ - return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr(re.getMessage())); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr(re.getMessage(),re.getCode())); } List list = re.getResult(); JSONObject jsonResponses = ResponsesUtil.getJsonOk(); @@ -109,7 +110,7 @@ public class SrmsApiController { return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); }catch (Exception e){ log.error("获取所有体系数据异常:",e); - return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr("操作失败")); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr("操作失败",CommonConstant.SC_INTERNAL_SERVER_ERROR_500)); } } @@ -120,7 +121,7 @@ public class SrmsApiController { try { Result> re = srmsApiService.getByLawsStandardPage(json,req); if(!re.isSuccess()){ - return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr(re.getMessage())); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr(re.getMessage(),re.getCode())); } IPage page = re.getResult(); JSONObject jsonPage = new JSONObject(); @@ -134,7 +135,7 @@ public class SrmsApiController { return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); }catch (Exception e){ log.error("分页查询标准数据异常:",e); - return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr("操作失败")); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErr("操作失败",CommonConstant.SC_INTERNAL_SERVER_ERROR_500)); } } @@ -145,14 +146,14 @@ public class SrmsApiController { try { Result re = srmsApiService.syncPartData(json,req); if(!re.isSuccess()){ - return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErrUpper(re.getMessage())); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErrUpper(re.getMessage(),re.getCode())); } JSONObject jsonResponses = ResponsesUtil.getJsonOkUpper(); jsonResponses.put("Result",re.getResult()); return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); }catch (Exception e){ log.error("零部件分类树同步接口异常:",e); - return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErrUpper("操作失败")); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErrUpper("操作失败",CommonConstant.SC_INTERNAL_SERVER_ERROR_500)); } } @@ -166,7 +167,7 @@ public class SrmsApiController { // todo Result> re = srmsApiService.getEStandardInfo(json,req); if(!re.isSuccess()){ - return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErrUpper(re.getMessage())); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErrUpper(re.getMessage(),re.getCode())); } List page = re.getResult(); JSONObject jsonPage = new JSONObject(); @@ -175,7 +176,7 @@ public class SrmsApiController { return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),jsonResponses); }catch (Exception e){ log.error("E采通获取标准信息异常:",e); - return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErrUpper("操作失败")); + return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),ResponsesUtil.getJsonErrUpper("操作失败",CommonConstant.SC_INTERNAL_SERVER_ERROR_500)); } } } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsStandardMapper.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsStandardMapper.java index a9c54e6d..c899a3ee 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsStandardMapper.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/LawsStandardMapper.java @@ -11,6 +11,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * @Description: ASMS国内法规 @@ -38,8 +39,8 @@ public interface LawsStandardMapper{ * @param queryLabels * @return java.util.List */ - String getStandardByProductDesign(@Param("standardNumber") String standardNumber, - @Param("queryLabels") String queryLabels); + List> getStandardByProductDesign(@Param("standardNumber") String standardNumber, + @Param("queryLabels") String queryLabels); IPage getByLawsStandardPage(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml index 7a8f0e58..a85d2525 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/mapper/xml/LawsStandardMapper.xml @@ -5,13 +5,16 @@ - + + + diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java index 3f3189e0..734bd1a8 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/service/impl/SrmsApiServiceImpl.java @@ -100,7 +100,7 @@ public class SrmsApiServiceImpl implements SrmsApiService { private String ettonSysUser; private static final String REQUESTS = "Requests"; - private static final String SYS_ERR = "系统验证失败"; + private static final String SYS_ERR = "访问受限,token授权过期"; private static final String STANDARD_NAME = "standardName"; private static final String STANDARD_NUMBER = "standardNumber"; private static final String PUBLISH_OF_ORIGINAL = "publish_of_original"; @@ -122,7 +122,7 @@ public class SrmsApiServiceImpl implements SrmsApiService { queryLawsSysApiInfo.eq(LawsSysApiInfo::getSecret,byTokenRequests.getSecret()); LawsSysApiInfo lawsSysApiInfo = lawsSysApiInfoService.getOne(queryLawsSysApiInfo,false); if(Objects.isNull(lawsSysApiInfo)){ - return Result.error(SYS_ERR); + return Result.error(403,SYS_ERR); } Result re; // E彩通访问,使用默认账户 @@ -145,8 +145,14 @@ public class SrmsApiServiceImpl implements SrmsApiService { public Result> getByLawsFileList(JSONObject json, HttpServletRequest req) { // 验证token String token = req.getHeader(X_ACCESS_TOKEN); - if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ - return Result.error(SYS_ERR); + try { + // 验证Token有效性 + boolean tokenOK = TokenUtils.verifyToken(req, sysBaseAPI, redisUtil); + if(!tokenOK){ + return Result.error(403,SYS_ERR); + } + } catch (Exception ignored) { + return Result.error(403,SYS_ERR); } JSONObject requests = JSON.parseObject(JSON.toJSONString(json.get(REQUESTS))); // 零部件-分类内部码(精准查询) @@ -284,9 +290,14 @@ public class SrmsApiServiceImpl implements SrmsApiService { @Override public Result> getByLawsProductDesign(JSONObject json, HttpServletRequest req) { // 验证token - String token = req.getHeader(X_ACCESS_TOKEN); - if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ - return Result.error(SYS_ERR); + try { + // 验证Token有效性 + boolean tokenOK = TokenUtils.verifyToken(req, sysBaseAPI, redisUtil); + if(!tokenOK){ + return Result.error(403,SYS_ERR); + } + } catch (Exception ignored) { + return Result.error(403,SYS_ERR); } JSONObject requests = JSON.parseObject(JSON.toJSONString(json.get(REQUESTS))); JSONArray rows = JSON.parseArray(JSON.toJSONString(requests.get("Rows"))); @@ -313,13 +324,16 @@ public class SrmsApiServiceImpl implements SrmsApiService { try { List listObj = new ArrayList<>(); for (ProductDesign productDesign : listProductDesign) { - String str = lawsStandardMapper.getStandardByProductDesign(productDesign.getStandardNumber(),productDesign.getQueryLabels()); - JSONObject obj = new JSONObject(); - obj.put("ID",productDesign.getId()); - obj.put(queryLabels,productDesign.getQueryLabels()); - obj.put("itemContent",str); - obj.put(STANDARD_NUMBER,productDesign.getStandardNumber()); - listObj.add(obj); + List> list = lawsStandardMapper.getStandardByProductDesign(productDesign.getStandardNumber(),productDesign.getQueryLabels()); + for (Map stringStringMap : list) { + JSONObject obj = new JSONObject(); + obj.put("ID",productDesign.getId()); + obj.put(queryLabels,productDesign.getQueryLabels()); + obj.put("itemContent",stringStringMap.get("item_content")); + obj.put(STANDARD_NUMBER,stringStringMap.get("standard_number")); + listObj.add(obj); + } + } return Result.OK(listObj); }catch (Exception e){ @@ -331,9 +345,14 @@ public class SrmsApiServiceImpl implements SrmsApiService { @Override public Result> getByLawsSystem(JSONObject json, HttpServletRequest req) { // 验证token - String token = req.getHeader(X_ACCESS_TOKEN); - if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ - return Result.error(SYS_ERR); + try { + // 验证Token有效性 + boolean tokenOK = TokenUtils.verifyToken(req, sysBaseAPI, redisUtil); + if(!tokenOK){ + return Result.error(403,SYS_ERR); + } + } catch (Exception ignored) { + return Result.error(403,SYS_ERR); } JSONObject requests = JSON.parseObject(JSON.toJSONString(json.get(REQUESTS))); String nodeName = ""; @@ -409,8 +428,14 @@ public class SrmsApiServiceImpl implements SrmsApiService { public Result> getByLawsStandardPage(JSONObject json, HttpServletRequest req) { // 验证token String token = req.getHeader(X_ACCESS_TOKEN); - if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ - return Result.error(SYS_ERR); + try { + // 验证Token有效性 + boolean tokenOK = TokenUtils.verifyToken(req, sysBaseAPI, redisUtil); + if(!tokenOK){ + return Result.error(403,SYS_ERR); + } + } catch (Exception ignored) { + return Result.error(403,SYS_ERR); } JSONObject requests = JSON.parseObject(JSON.toJSONString(json.get(REQUESTS))); @@ -561,7 +586,7 @@ public class SrmsApiServiceImpl implements SrmsApiService { // 验证token String token = req.getHeader(X_ACCESS_TOKEN); if(StringUtils.isBlank(token) || !Objects.equals(TokenUtils.getTokenByRequest(req),token)){ - return Result.error(SYS_ERR); + return Result.error(403,SYS_ERR); } JSONObject requests = JSON.parseObject(JSON.toJSONString(json.get(REQUESTS))); JSONArray rows = JSON.parseArray(JSON.toJSONString(requests.get("Rows"))); diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/utils/ResponsesUtil.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/utils/ResponsesUtil.java index fb016bc4..94fcbccd 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/utils/ResponsesUtil.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/utils/ResponsesUtil.java @@ -45,12 +45,12 @@ public class ResponsesUtil { } public static JSONObject getJsonErrUpper() { - return getJsonErrUpper(""); + return getJsonErrUpper("",CommonConstant.SC_INTERNAL_SERVER_ERROR_500); } - public static JSONObject getJsonErrUpper(String message) { + public static JSONObject getJsonErrUpper(String message,Integer code) { JSONObject jsonResponses = new JSONObject(); - jsonResponses.put("SrmsCode",CommonConstant.SC_INTERNAL_SERVER_ERROR_500); + jsonResponses.put("SrmsCode",code); jsonResponses.put("Message",message); jsonResponses.put("Success",false); jsonResponses.put("Timestamp",System.currentTimeMillis()); @@ -58,12 +58,12 @@ public class ResponsesUtil { } public static JSONObject getJsonErr() { - return getJsonErr(""); + return getJsonErr("",CommonConstant.SC_INTERNAL_SERVER_ERROR_500); } - public static JSONObject getJsonErr(String message) { + public static JSONObject getJsonErr(String message,Integer code) { JSONObject jsonResponses = new JSONObject(); - jsonResponses.put("srmsCode",CommonConstant.SC_INTERNAL_SERVER_ERROR_500); + jsonResponses.put("srmsCode",code); jsonResponses.put("message",message); jsonResponses.put("success",false); jsonResponses.put("timestamp",System.currentTimeMillis());