From c3160cb5049cde90eb5c7975bce41239d9796a0c Mon Sep 17 00:00:00 2001 From: czt <czt18638530771@163.com> Date: 星期一, 24 三月 2025 16:21:51 +0800 Subject: [PATCH] 上海对农接口,增加结果回调接口 --- src/main/java/com/fzzy/inte/sh2023/dto/ResultDto.java | 9 + src/main/java/com/fzzy/push/sh2023/SH2023Constant.java | 5 src/main/java/com/fzzy/inte/sh2023/dto/ApiResp.java | 11 + src/main/java/com/fzzy/inte/sh2023/controller/ControllerSh2023.java | 32 ++++ src/main/java/com/fzzy/inte/sh2023/service/SHDNService.java | 283 +++++++++++++++++++++++++++++----------------- 5 files changed, 226 insertions(+), 114 deletions(-) diff --git a/src/main/java/com/fzzy/inte/sh2023/controller/ControllerSh2023.java b/src/main/java/com/fzzy/inte/sh2023/controller/ControllerSh2023.java index 125aba5..882e588 100644 --- a/src/main/java/com/fzzy/inte/sh2023/controller/ControllerSh2023.java +++ b/src/main/java/com/fzzy/inte/sh2023/controller/ControllerSh2023.java @@ -1,13 +1,18 @@ package com.fzzy.inte.sh2023.controller; import com.alibaba.fastjson.JSONObject; +import com.fzzy.api.entity.Api9116; +import com.fzzy.api.utils.ContextUtil; import com.fzzy.api.utils.RSAUtils; +import com.fzzy.api.utils.RedisUtil; import com.fzzy.inte.sh2023.constant.ApiRespCode; import com.fzzy.inte.sh2023.dto.ApiResp; import com.fzzy.inte.sh2023.dto.SHDN2023ReqDto; import com.fzzy.inte.sh2023.service.SHDNService; +import com.fzzy.push.sh2023.SH2023Constant; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.time.DateFormatUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; @@ -15,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; +import java.util.Date; +import java.util.List; /** * 涓婃捣瀵瑰啘鎺ュ彛 @@ -25,7 +32,8 @@ public class ControllerSh2023 { @Autowired private SHDNService shdnService; - + @Autowired + private RedisUtil redisUtil; private static final String PRIVATE_KEY = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAJGxqYyI/k6nYkm2nf4ggkAMViEvbnplbQqw6Qweu4neFXCC+iKY8cq5RZEj8JLfrm/gHBTPN8FF1sQIwWwsDV7UUc88DS5KwAi5JXBHMdcbh2tftkINr0YVn6rIgUBTbmPZ7Y8L2iW8psYsF9nxwvUUtcbFJXIMJfi39Qxl0NQvAgMBAAECgYBKWLHfoCy9sFbMrN7UxnwQ+PqetpiW5tkNApf58ljbErQ4FO5V51xDieXBGejy2igmuOM7jz6xZtUgdiNV8uji/RtiNRqsBekVBPMeYAnPwA4GQ0HNwyHJ3ebJNQqT9bwrk8QpRUuCnrx/U1l7P1QNR5o52H1HpEKPlS0ga0fuQQJBAMdiSFYKt8/PwsYclvU/GqXrPy4cxMBhtE/ZssH9KourxnJcyfRz7EPgfSZykxlGHn8j/r8C2XxtAIYW6mRckqECQQC7EIZCZ3eV8abSIB33oKmw2jZlPQrHXMt8DWz8FYbNIA/9bvk9e9O42iQwMUtHfOMcNMWbcvKR/J+83bcE08TPAkA1ErdYl+/H1HDvVUrlq0+HnPArcSL6ZsedfcB0nNRHa4kehg6IEJdylf4aTuNTFfQmOcmkxLhpw4YhK1ZnMrEhAkEAuiMLNXA3MmCumk+TAiBAOdYoYjyHSTEw2VOSqpPQ+rN4tbmDEIbyefG2KK4kNhIy+pIYP0H11QYG/KuxvX/rSQJBALs0TqUgcGOp9+IkOq4jCXiVkP5/r7JWinQ4d6bYhJ4wspQYloYFCHljKKXtst1m8I3PC+vJY8R6va/3xtQKT8U="; private static final String PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCRsamMiP5Op2JJtp3+IIJADFYhL256ZW0KsOkMHruJ3hVwgvoimPHKuUWRI/CS365v4BwUzzfBRdbECMFsLA1e1FHPPA0uSsAIuSVwRzHXG4drX7ZCDa9GFZ+qyIFAU25j2e2PC9olvKbGLBfZ8cL1FLXGxSVyDCX4t/UMZdDULwIDAQAB"; private static final String SIGN = "JD-DNSGSJ"; @@ -54,9 +62,25 @@ return new ApiResp(ApiRespCode.R_500.getCode(),ApiRespCode.R_500.getMsg()); } log.info("-----瀵瑰啘绯荤粺锛屾帴鍙g紪鐮�={}锛屾暟鎹В瀵�={}-----",interfaceId, data); - //寮傛淇濆瓨 - shdnService.syncData(interfaceId, data, shdn2023ReqDto.getDeptId()); - return new ApiResp(); + //鍒ゆ柇鏄惁涓虹粨鏋滃洖璋冩帴鍙� + if(SH2023Constant.SH_2023_API_CODE_3301.equals(interfaceId)){ + return shdnService.getResult(data); + } + + //鐢熸垚outID + String outId = "OUT_ID_" + interfaceId + "_" + DateFormatUtils.format(new Date(), "yyyyMMddHHmmss"); + //寮傛瑙f瀽 + shdnService.syncData(interfaceId, data, shdn2023ReqDto.getDeptId(), outId); + + //杩斿洖outId,鐢ㄤ簬瀵瑰啘绯荤粺鍥炶皟 + return new ApiResp(outId); + } + + public static void main(String[] args) { + String outid = RSAUtils.encrypt("[{\n" + + "\t\"outId\":\"OUT_ID_3101_20250324161241\"\n" + + "\t}]",PUBLIC_KEY); + System.out.println("=====" + outid); } } diff --git a/src/main/java/com/fzzy/inte/sh2023/dto/ApiResp.java b/src/main/java/com/fzzy/inte/sh2023/dto/ApiResp.java index ac63186..5843462 100644 --- a/src/main/java/com/fzzy/inte/sh2023/dto/ApiResp.java +++ b/src/main/java/com/fzzy/inte/sh2023/dto/ApiResp.java @@ -15,16 +15,17 @@ private String msg = ApiRespCode.R_200.getMsg(); + private String outId; + public ApiResp() { + } + + public ApiResp(String outId) { + this.outId = outId; } public ApiResp(String code, String msg) { this.code = code; this.msg = msg; - } - - public ApiResp(ApiRespCode apiRespCode) { - this.code = apiRespCode.getCode(); - this.msg = apiRespCode.getMsg(); } } diff --git a/src/main/java/com/fzzy/inte/sh2023/dto/ResultDto.java b/src/main/java/com/fzzy/inte/sh2023/dto/ResultDto.java new file mode 100644 index 0000000..c5a2be7 --- /dev/null +++ b/src/main/java/com/fzzy/inte/sh2023/dto/ResultDto.java @@ -0,0 +1,9 @@ +package com.fzzy.inte.sh2023.dto; + +import lombok.Data; + +@Data +public class ResultDto { + + private String outId; +} diff --git a/src/main/java/com/fzzy/inte/sh2023/service/SHDNService.java b/src/main/java/com/fzzy/inte/sh2023/service/SHDNService.java index 94e5828..3b476f3 100644 --- a/src/main/java/com/fzzy/inte/sh2023/service/SHDNService.java +++ b/src/main/java/com/fzzy/inte/sh2023/service/SHDNService.java @@ -2,10 +2,11 @@ import com.alibaba.fastjson.JSONObject; import com.fzzy.api.entity.*; -import com.fzzy.api.service.ApiCommonService; +import com.fzzy.api.utils.RedisUtil; import com.fzzy.api.view.repository.*; import com.fzzy.inte.sh2023.constant.ApiRespCode; import com.fzzy.inte.sh2023.dto.ApiResp; +import com.fzzy.inte.sh2023.dto.ResultDto; import com.fzzy.push.sh2023.SH2023Constant; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -36,125 +37,197 @@ private Api9115Rep api9115Rep; @Autowired private Api9116Rep api9116Rep; + @Autowired + private RedisUtil redisUtil; @Async - public void syncData(String interfaceId, String dataStr, String deptId){ + public void syncData(String interfaceId, String dataStr, String deptId, String outId){ ApiConfs apiConfs = apiConfsRep.getDataByDeptId(deptId); if(null == apiConfs){ log.error("-----鏈幏鍙栧埌搴撳尯淇℃伅閰嶇疆锛屼笉瑙f瀽---------"); + resultRedis(outId, ApiRespCode.R_500.getCode(), "鏈幏鍙栧埌搴撳尯淇℃伅閰嶇疆锛屼笉瑙f瀽"); return; } - //鍗曚綅淇℃伅 - if(SH2023Constant.SH_2023_API_CODE_3101.equals(interfaceId)){ - List<Api9109> list = JSONObject.parseArray(dataStr, Api9109.class); - if(null == list || list.isEmpty()){ - log.error("-----鏈幏鍙栧埌淇℃伅锛屼笉瑙f瀽---------"); - return; + try { + //鍗曚綅淇℃伅 + if(SH2023Constant.SH_2023_API_CODE_3101.equals(interfaceId)){ + List<Api9109> list = JSONObject.parseArray(dataStr, Api9109.class); + if(null == list || list.isEmpty()){ + log.error("-----鏈幏鍙栧埌淇℃伅锛屼笉瑙f瀽---------"); + resultRedis(outId, ApiRespCode.R_500.getCode(), "鏈幏鍙栧埌淇℃伅锛屼笉瑙f瀽"); + return; + } + for (Api9109 apiData : list) { + apiData.setKqdm(apiConfs.getKqdm()); + apiData.setZhgxsj(new Date()); + api9109Rep.save(apiData); + } + log.info("-----鍗曚綅淇℃伅瑙f瀽瀹屾垚={}-----", list); + //瑙f瀽缁撴灉鏀惧叆缂撳瓨 + resultRedis(outId, ApiRespCode.R_200.getCode(), "鍗曚綅淇℃伅瑙f瀽瀹屾垚"); } - for (Api9109 apiData : list) { - apiData.setKqdm(apiConfs.getKqdm()); - apiData.setZhgxsj(new Date()); - api9109Rep.save(apiData); + + //鏀剁撼搴撲俊鎭� + if(SH2023Constant.SH_2023_API_CODE_3102.equals(interfaceId)){ + List<Api9110> list = JSONObject.parseArray(dataStr, Api9110.class); + if(null == list || list.isEmpty()){ + log.error("-----鏈幏鍙栧埌搴撳尯淇℃伅锛屼笉瑙f瀽---------"); + resultRedis(outId, ApiRespCode.R_500.getCode(), "鏈幏鍙栧埌搴撳尯淇℃伅锛屼笉瑙f瀽"); + return; + } + for (Api9110 apiData : list) { + apiData.setZhgxsj(new Date()); + api9110Rep.save(apiData); + } + log.info("-----搴撳尯淇℃伅瑙f瀽瀹屾垚={}-----", list); + //瑙f瀽缁撴灉鏀惧叆缂撳瓨 + resultRedis(outId, ApiRespCode.R_200.getCode(), "搴撳尯淇℃伅瑙f瀽瀹屾垚"); } - log.info("-----鍗曚綅淇℃伅瑙f瀽瀹屾垚={}-----", list); + + //浠撴埧淇℃伅 + if(SH2023Constant.SH_2023_API_CODE_3103.equals(interfaceId)){ + List<Api9111> list = JSONObject.parseArray(dataStr, Api9111.class); + if(null == list || list.isEmpty()){ + log.error("-----鏈幏鍙栧埌浠撴埧淇℃伅锛屼笉瑙f瀽---------"); + resultRedis(outId, ApiRespCode.R_500.getCode(), "鏈幏鍙栧埌浠撴埧淇℃伅锛屼笉瑙f瀽"); + return; + } + for (Api9111 apiData : list) { + apiData.setZhgxsj(new Date()); + api9111Rep.save(apiData); + } + log.info("-----浠撴埧淇℃伅瑙f瀽瀹屾垚={}-----", list); + //瑙f瀽缁撴灉鏀惧叆缂撳瓨 + resultRedis(outId, ApiRespCode.R_200.getCode(), "浠撴埧淇℃伅瑙f瀽瀹屾垚"); + } + + //寤掗棿淇℃伅 + if(SH2023Constant.SH_2023_API_CODE_3104.equals(interfaceId)){ + List<Api9112> list = JSONObject.parseArray(dataStr, Api9112.class); + if(null == list || list.isEmpty()){ + log.error("-----鏈幏鍙栧埌浠撴埧淇℃伅锛屼笉瑙f瀽---------"); + resultRedis(outId, ApiRespCode.R_500.getCode(), "鏈幏鍙栧埌浠撴埧淇℃伅锛屼笉瑙f瀽"); + return; + } + for (Api9112 apiData : list) { + apiData.setKqdm(apiConfs.getKqdm()); + apiData.setZhgxsj(new Date()); + api9112Rep.save(apiData); + } + log.info("-----寤掗棿淇℃伅瑙f瀽瀹屾垚={}-----", list); + //瑙f瀽缁撴灉鏀惧叆缂撳瓨 + resultRedis(outId, ApiRespCode.R_200.getCode(), "寤掗棿淇℃伅瑙f瀽瀹屾垚"); + } + + //璐т綅淇℃伅 + if(SH2023Constant.SH_2023_API_CODE_3105.equals(interfaceId)){ + List<Api9113> list = JSONObject.parseArray(dataStr, Api9113.class); + if(null == list || list.isEmpty()){ + log.error("-----鏈幏鍙栧埌璐т綅淇℃伅锛屼笉瑙f瀽---------"); + resultRedis(outId, ApiRespCode.R_500.getCode(), "鏈幏鍙栧埌浠撴埧淇℃伅锛屼笉瑙f瀽"); + return; + } + for (Api9113 apiData : list) { + apiData.setKqdm(apiConfs.getKqdm()); + apiData.setZhgxsj(new Date()); + api9113Rep.save(apiData); + } + log.info("-----璐т綅淇℃伅瑙f瀽瀹屾垚={}-----", list); + //瑙f瀽缁撴灉鏀惧叆缂撳瓨 + resultRedis(outId, ApiRespCode.R_200.getCode(), "璐т綅淇℃伅瑙f瀽瀹屾垚"); + } + + //绮鍏ュ簱淇℃伅 + if(SH2023Constant.SH_2023_API_CODE_3201.equals(interfaceId)){ + List<Api9114> list = JSONObject.parseArray(dataStr, Api9114.class); + if(null == list || list.isEmpty()){ + log.error("-----鏈幏鍙栧埌绮鍏ュ簱淇℃伅锛屼笉瑙f瀽---------"); + resultRedis(outId, ApiRespCode.R_500.getCode(), "鏈幏鍙栧埌浠撴埧淇℃伅锛屼笉瑙f瀽"); + return; + } + for (Api9114 apiData : list) { + apiData.setKqdm(apiConfs.getKqdm()); + apiData.setZhgxsj(new Date()); + api9114Rep.save(apiData); + } + log.info("-----绮鍏ュ簱淇℃伅瑙f瀽瀹屾垚={}-----", list); + //瑙f瀽缁撴灉鏀惧叆缂撳瓨 + resultRedis(outId, ApiRespCode.R_200.getCode(), "绮鍏ュ簱淇℃伅瑙f瀽瀹屾垚"); + } + + //鏉ョ伯妫�楠屼俊鎭� + if(SH2023Constant.SH_2023_API_CODE_3202.equals(interfaceId)){ + List<Api9115> list = JSONObject.parseArray(dataStr, Api9115.class); + if(null == list || list.isEmpty()){ + log.error("-----鏈幏鍙栧埌鏉ョ伯妫�楠屼俊鎭紝涓嶈В鏋�---------"); + resultRedis(outId, ApiRespCode.R_500.getCode(), "鏈幏鍙栧埌浠撴埧淇℃伅锛屼笉瑙f瀽"); + return; + } + for (Api9115 apiData : list) { + apiData.setKqdm(apiConfs.getKqdm()); + apiData.setZhgxsj(new Date()); + api9115Rep.save(apiData); + } + log.info("-----鏉ョ伯妫�楠屼俊鎭В鏋愬畬鎴�={}-----", list); + //瑙f瀽缁撴灉鏀惧叆缂撳瓨 + resultRedis(outId, ApiRespCode.R_200.getCode(), "鏉ョ伯妫�楠屼俊鎭В鏋愬畬鎴�"); + } + + //绮鏀惰喘鍩虹淇℃伅 + if(SH2023Constant.SH_2023_API_CODE_3203.equals(interfaceId)){ + List<Api9116> list = JSONObject.parseArray(dataStr, Api9116.class); + if(null == list || list.isEmpty()){ + log.error("-----鏈幏鍙栧埌绮鏀惰喘鍩虹淇℃伅锛屼笉瑙f瀽---------"); + resultRedis(outId, ApiRespCode.R_500.getCode(), "鏈幏鍙栧埌浠撴埧淇℃伅锛屼笉瑙f瀽"); + return; + } + for (Api9116 apiData : list) { + apiData.setKqdm(apiConfs.getKqdm()); + apiData.setZhgxsj(new Date()); + api9116Rep.save(apiData); + } + log.info("-----绮鏀惰喘鍩虹淇℃伅瑙f瀽瀹屾垚={}-----", list); + //瑙f瀽缁撴灉鏀惧叆缂撳瓨 + resultRedis(outId, ApiRespCode.R_200.getCode(), "绮鏀惰喘鍩虹淇℃伅瑙f瀽瀹屾垚"); + } + } catch (Exception e) { + log.error("-----鎺ュ彛{}瑙f瀽鎶ラ敊锛岄敊璇師鍥�={}-----", interfaceId, e.toString()); + resultRedis(outId, ApiRespCode.R_500.getCode(), "-----鎺ュ彛"+interfaceId+"瑙f瀽鎶ラ敊锛岄敊璇師鍥�="+e.toString()+"-----"); } - //鏀剁撼搴撲俊鎭� - if(SH2023Constant.SH_2023_API_CODE_3102.equals(interfaceId)){ - List<Api9110> list = JSONObject.parseArray(dataStr, Api9110.class); - if(null == list || list.isEmpty()){ - log.error("-----鏈幏鍙栧埌搴撳尯淇℃伅锛屼笉瑙f瀽---------"); - } - for (Api9110 apiData : list) { - apiData.setZhgxsj(new Date()); - api9110Rep.save(apiData); - } - log.info("-----搴撳尯淇℃伅瑙f瀽瀹屾垚={}-----", list); - } + } - //浠撴埧淇℃伅 - if(SH2023Constant.SH_2023_API_CODE_3103.equals(interfaceId)){ - List<Api9111> list = JSONObject.parseArray(dataStr, Api9111.class); - if(null == list || list.isEmpty()){ - return; - } - for (Api9111 apiData : list) { - apiData.setZhgxsj(new Date()); - api9111Rep.save(apiData); - } - log.info("-----浠撴埧淇℃伅瑙f瀽瀹屾垚={}-----", list); + /** + * 浠庣紦瀛樹腑鑾峰彇瑙f瀽缁撴灉 + * @param dataStr + * @return + */ + public ApiResp getResult(String dataStr){ + List<ResultDto> list = JSONObject.parseArray(dataStr, ResultDto.class); + if(null == list || list.isEmpty()){ + log.error("-----outId涓虹┖---------"); + return new ApiResp(ApiRespCode.R_500.getCode(), "outId涓虹┖锛屾棤娉曡幏鍙栬В鏋愮粨鏋滐紒"); } + ApiResp result = (ApiResp)redisUtil.get(list.get(0).getOutId()); + if(null == result){ + log.error("-----鏈幏鍙栧埌outId瀵瑰簲鐨勮В鏋愮粨鏋�---------"); + return new ApiResp(ApiRespCode.R_500.getCode(), "鏈幏鍙栧埌outId瀵瑰簲鐨勮В鏋愮粨鏋滐紒"); + } + return result; + } - //寤掗棿淇℃伅 - if(SH2023Constant.SH_2023_API_CODE_3104.equals(interfaceId)){ - List<Api9112> list = JSONObject.parseArray(dataStr, Api9112.class); - if(null == list || list.isEmpty()){ - return; - } - for (Api9112 apiData : list) { - apiData.setKqdm(apiConfs.getKqdm()); - apiData.setZhgxsj(new Date()); - api9112Rep.save(apiData); - } - log.info("-----寤掗棿淇℃伅瑙f瀽瀹屾垚={}-----", list); - } - - //璐т綅淇℃伅 - if(SH2023Constant.SH_2023_API_CODE_3105.equals(interfaceId)){ - List<Api9113> list = JSONObject.parseArray(dataStr, Api9113.class); - if(null == list || list.isEmpty()){ - return; - } - for (Api9113 apiData : list) { - apiData.setKqdm(apiConfs.getKqdm()); - apiData.setZhgxsj(new Date()); - api9113Rep.save(apiData); - } - log.info("-----璐т綅淇℃伅瑙f瀽瀹屾垚={}-----", list); - } - - //绮鍏ュ簱淇℃伅 - if(SH2023Constant.SH_2023_API_CODE_3201.equals(interfaceId)){ - List<Api9114> list = JSONObject.parseArray(dataStr, Api9114.class); - if(null == list || list.isEmpty()){ - return; - } - for (Api9114 apiData : list) { - apiData.setKqdm(apiConfs.getKqdm()); - apiData.setZhgxsj(new Date()); - api9114Rep.save(apiData); - } - log.info("-----绮鍏ュ簱淇℃伅瑙f瀽瀹屾垚={}-----", list); - } - - //鏉ョ伯妫�楠屼俊鎭� - if(SH2023Constant.SH_2023_API_CODE_3202.equals(interfaceId)){ - List<Api9115> list = JSONObject.parseArray(dataStr, Api9115.class); - if(null == list || list.isEmpty()){ - return; - } - for (Api9115 apiData : list) { - apiData.setKqdm(apiConfs.getKqdm()); - apiData.setZhgxsj(new Date()); - api9115Rep.save(apiData); - } - log.info("-----鏉ョ伯妫�楠屼俊鎭В鏋愬畬鎴�={}-----", list); - } - - //绮鏀惰喘鍩虹淇℃伅 - if(SH2023Constant.SH_2023_API_CODE_3203.equals(interfaceId)){ - List<Api9116> list = JSONObject.parseArray(dataStr, Api9116.class); - if(null == list || list.isEmpty()){ - return; - } - for (Api9116 apiData : list) { - apiData.setKqdm(apiConfs.getKqdm()); - apiData.setZhgxsj(new Date()); - api9116Rep.save(apiData); - } - log.info("-----绮鏀惰喘鍩虹淇℃伅瑙f瀽瀹屾垚={}-----", list); - } + /** + * + * 缁撴灉瀛樺叆缂撳瓨 + * @param outId + * @param code + * @param msg + */ + public void resultRedis(String outId, String code, String msg){ + ApiResp result = new ApiResp(code, msg); + //缁撴灉瀛樺叆缂撳瓨2灏忔椂 + redisUtil.set(outId, result, 60*60*2); } } diff --git a/src/main/java/com/fzzy/push/sh2023/SH2023Constant.java b/src/main/java/com/fzzy/push/sh2023/SH2023Constant.java index 207ea5a..5604706 100644 --- a/src/main/java/com/fzzy/push/sh2023/SH2023Constant.java +++ b/src/main/java/com/fzzy/push/sh2023/SH2023Constant.java @@ -258,6 +258,11 @@ */ public static String SH_2023_API_CODE_3203 = "3203"; + /** + * 鎺ュ彛缂栫爜-3301 瑙f瀽缁撴灉鍥炶皟 + */ + public static String SH_2023_API_CODE_3301 = "3301"; + } -- Gitblit v1.9.3