src/main/java/com/fzzy/api/data/PushProtocol.java
@@ -15,7 +15,8 @@ SB_GD_2022("SB_GD_2022", "广ä¸çå¹³å°2022ç"), SB_GD_2020("SB_GD_2020", "广ä¸çå¹³å°2020ç"), SB_HN_2022("SB_HN_2022", "æ²³åçå¹³å°2022ç"), HB_FZZY_JG_2022("HB_FZZY_JG_2022", "飿£è´è¿ç管2022çæ¬"); HB_FZZY_JG_2022("HB_FZZY_JG_2022", "飿£è´è¿ç管2022çæ¬"), SB_SHJdJW_2023("SB_SHJdJW_2023", "䏿µ·åå®çºªå§ç管平å°2023ç"); private String code; src/main/java/com/fzzy/api/service/ApiTriggerService.java
@@ -179,6 +179,7 @@ list.add(new ApiTrigger(PushProtocol.SB_GD_2022.getCode(), PushProtocol.SB_GD_2022.getName())); list.add(new ApiTrigger(PushProtocol.SB_GD_2020.getCode(), PushProtocol.SB_GD_2020.getName())); list.add(new ApiTrigger(PushProtocol.HB_FZZY_JG_2022.getCode(), PushProtocol.HB_FZZY_JG_2022.getName())); list.add(new ApiTrigger(PushProtocol.SB_SHJdJW_2023.getCode(), PushProtocol.SB_SHJdJW_2023.getName())); return list; } src/main/java/com/fzzy/api/utils/AESUtils.java
@@ -1,6 +1,7 @@ package com.fzzy.api.utils; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; @@ -29,6 +30,8 @@ * å è§£å¯æ¹å¼ */ private final static String ALGORITHM = "AES"; private final static String ALGORITHM_ECB = "ECB"; private final static int KEY_SIZE_128 = 128; /** *å 坿¨¡å¼åå¡«å æ¹å¼ @@ -81,5 +84,33 @@ return new String(encryptData,ENCODING); } /** * AESå å¯-ECBæ¹å¼ * @param plainText * @param key * @return * @throws Exception */ public static String encryptByEcb(String plainText, String key) throws Exception { if (key == null) { System.out.print("Key为空null"); return null; } // 夿Keyæ¯å¦ä¸º16ä½ // if (key.length() != 16) { // System.out.print("Keyé¿åº¦ä¸æ¯16ä½"); // return null; // } SecretKey secretKey = new SecretKeySpec(key.getBytes(ENCODING), ALGORITHM_ECB); // AESå å¯éç¨pkcs5paddingå¡«å Cipher cipher = Cipher.getInstance(PATTERN); //ç¨å¯ååå§åCipher对象 cipher.init(Cipher.ENCRYPT_MODE, secretKey); //æ§è¡å å¯æä½ byte[] encryptData = cipher.doFinal(plainText.getBytes(ENCODING)); return Base64.getEncoder().encodeToString(encryptData); } } src/main/java/com/fzzy/api/view/repository/Api1101Rep.java
@@ -3,11 +3,14 @@ import com.fzzy.api.entity.Api1101; import com.fzzy.api.entity.Api1111; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.transaction.annotation.Transactional; import java.util.List; public interface Api1101Rep extends JpaRepository<Api1101, String> { @@ -24,4 +27,11 @@ @Query("update Api1101 set czbz=:czbz where dwdm=:id ") int updateStatus(@Param("id") String id, @Param("czbz") String czbz); /** * æ¥è¯¢ææççæ§ç¹ä½ä¿¡æ¯ * @param kqdm * @return */ @Query("from Api1101 where kqdm=:kqdm ") List<Api1101> findPushData(@Param("kqdm") String kqdm); } src/main/java/com/fzzy/push/gd2022/GD2022PushService11.java
@@ -3,7 +3,6 @@ import com.fzzy.api.data.ApiParam; import com.fzzy.api.data.PushProtocol; import com.fzzy.api.service.PushService11; import com.fzzy.push.gd2020.GDApiRemoteService; import com.fzzy.push.impl.ComPushService11; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -19,7 +18,7 @@ public class GD2022PushService11 implements PushService11 { @Autowired private GDApiRemoteService apiRemoteService; private GD2022ApiRemoteService2022 apiRemoteService; @Autowired private ComPushService11 pushService; src/main/java/com/fzzy/push/impl/ComPushService11.java
@@ -3,8 +3,10 @@ import com.fzzy.api.Constant; import com.fzzy.api.data.ApiParam; import com.fzzy.api.dto.ResponseDto; import com.fzzy.api.entity.Api1101; import com.fzzy.api.entity.Api1111; import com.fzzy.api.service.ApiRemoteService; import com.fzzy.api.view.repository.Api1101Rep; import com.fzzy.api.view.repository.Api1111Rep; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -20,9 +22,37 @@ public class ComPushService11 { @Autowired private Api1101Rep api1101Rep; @Autowired private Api1111Rep api1111Rep; /** * 1101 åä½ä¿¡æ¯ */ public void pushData1101(ApiRemoteService apiRemoteService, ApiParam param) { List<Api1101> items = api1101Rep.findPushData(param.getKqdm()); if (null == items || items.isEmpty()) { return; } param.setInteCategory(Constant.API_CATEGORY_11); param.setInteId(Constant.API_CODE_1111); ResponseDto responseDto; for (Api1101 data : items) { param.setBizId(data.getBizId()); responseDto = apiRemoteService.pushData(param, data); if (responseDto.getSuccess() == 0) { if (Constant.CZBZ_I.equals(data.getCzbz())) { api1101Rep.updateStatus(data.getDwdm(), Constant.CZBZ_U); } } } } /** * 1111 åºåºå¾è§é¢çæ§è®¾å¤ç¹ä½æ 注 */ public void pushData1111(ApiRemoteService apiRemoteService, ApiParam param) { src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023HttpClientUtil.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,98 @@ package com.fzzy.push.shjdjw2023; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.fzzy.api.entity.ApiConfs; import com.fzzy.api.utils.AESUtils; import com.fzzy.api.utils.MyMD5Util; import com.fzzy.api.utils.SnowflakeIdWorker; import com.fzzy.push.gd2022.dto.GD2022AuthToken; import com.fzzy.push.gd2022.dto.GD2022ResponseDto; import lombok.extern.slf4j.Slf4j; import java.io.*; import java.lang.reflect.Type; import java.net.HttpURLConnection; import java.net.URL; import java.util.Map; import java.util.UUID; /** * 䏿µ·åå®çºªå§ç管平å°-ä¸ä¼ æ°æ®æå¡ç±» * @author czt * @date 2023/5/9 14:21 */ @Slf4j public class Shjdjw2023HttpClientUtil { /** * post formData * @param url * @return * @throws Exception */ @SuppressWarnings("resource") public static GD2022ResponseDto postPushData(String url, String data , ApiConfs apiConfs) throws Exception { log.info("---------æ¥å£è¯·æ±å°åï¼" +url+ "----------åæ°ï¼" + data +"---------"); BufferedReader in = null; URL urls = new URL(url); HttpURLConnection connection = null; OutputStream outputStream = null; String rs = ""; GD2022ResponseDto responseDto; try { String md = AESUtils.encryptByEcb(data, apiConfs.getPublicKey()); log.info("---------æ¥å£è¯·æ±å°åï¼" +url+ "----------坿忰ï¼" + md +"---------"); connection = (HttpURLConnection) urls.openConnection(); connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); connection.setDoOutput(true); connection.setDoInput(true); connection.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.8"); connection.setRequestProperty("Accept", "*/*"); connection.setRequestProperty("Range", "bytes=" + ""); connection.setRequestProperty("token", apiConfs.getPassword()); connection.setConnectTimeout(20000); connection.setReadTimeout(30000); connection.setRequestMethod("POST"); StringBuffer buffer = new StringBuffer(); buffer.append(md); outputStream = connection.getOutputStream(); outputStream.write(buffer.toString().getBytes("UTF-8")); try { connection.connect(); if (connection.getResponseCode() == 200) { in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); String line = ""; while ((line = in.readLine()) != null) { rs += line; } }else{ log.error("httpç¶æï¼" + connection.getResponseCode()); log.error("httpæ¶æ¯ï¼" + connection.getResponseMessage()); } } catch (Exception e) { System.out.println("åçå¼å¸¸"); log.error(e.getMessage(),e); rs = null; return new GD2022ResponseDto(99,e.getMessage()); } log.info("---------æ¥å£è¿åï¼" + rs +"---------"); responseDto = JSON.parseObject(rs,GD2022ResponseDto.class); if(responseDto == null ) return new GD2022ResponseDto(99,"æ¥å£è¯·æ±åçæªç¥é误"); return responseDto; } finally { try { outputStream.close(); if (in != null){ in.close(); } } catch (Exception e) { } outputStream = null; if (connection != null) connection.disconnect(); connection = null; } } } src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService11.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,41 @@ package com.fzzy.push.shjdjw2023; import com.fzzy.api.data.ApiParam; import com.fzzy.api.data.PushProtocol; import com.fzzy.api.service.PushService11; import com.fzzy.push.impl.ComPushService11; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** * 䏿µ·åå®çºªå§ç管平å°-åºç¡æ°æ®ä¸ä¼ * @author czt * @date 2023/5/9 16:21 */ @Slf4j @Component public class Shjdjw2023PushService11 implements PushService11 { @Autowired private ShjdjwApiRemoteService2023 apiRemoteService; @Autowired private ComPushService11 pushService; @Override public String getProtocol() { return PushProtocol.SB_GD_2022.getCode(); } @Override public void pushData(ApiParam param) { log.info("------->>>>åºç¡ä¿¡æ¯ æ¥å£æ¨¡å䏿¥å¼å§"); //TODO åä½ä¿¡æ¯ log.info("------->>>>åºç¡ä¿¡æ¯ æ¥å£æ¨¡å䏿¥ç»æ"); } } src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService12.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,48 @@ package com.fzzy.push.shjdjw2023; import com.fzzy.api.data.ApiParam; import com.fzzy.api.data.PushProtocol; import com.fzzy.api.service.PushService12; import com.fzzy.push.impl.ComPushService12; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** * 䏿µ·åå®çºªå§ç管平å°-ç²®é£è´éæ°æ®ä¸ä¼ * @author czt * @date 2023/5/9 16:23 */ @Slf4j @Component public class Shjdjw2023PushService12 implements PushService12 { @Autowired private ShjdjwApiRemoteService2023 apiRemoteService; @Autowired private ComPushService12 pushService; @Override public String getProtocol() { return PushProtocol.SB_GD_2022.getCode(); } @Override public void pushData(ApiParam param) { log.info("------->>>>ç²®é£è´é æ¥å£æ¨¡å䏿¥å¼å§"); //TODO ç²®é£å ¥åºä¿¡æ¯ //TODO ç²®é£å ¥åºè´¨æ£ä¿¡æ¯ //TODO ç²®é£åºåºä¿¡æ¯ //TODO ç²®é£åºåä¿¡æ¯ //TODO æçåä¿¡æ¯ log.info("------->>>>ç²®é£è´é æ¥å£æ¨¡å䏿¥ç»æ"); } } src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService13.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,41 @@ package com.fzzy.push.shjdjw2023; import com.fzzy.api.data.ApiParam; import com.fzzy.api.data.PushProtocol; import com.fzzy.api.service.PushService13; import com.fzzy.push.impl.ComPushService13; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** * 䏿µ·åå®çºªå§ç管平å°-ç²®é£ç®¡çæ°æ®ä¸ä¼ * @author czt * @date 2023/5/9 16:25 */ @Slf4j @Component public class Shjdjw2023PushService13 implements PushService13 { @Autowired private ShjdjwApiRemoteService2023 apiRemoteService; @Autowired private ComPushService13 pushService; @Override public String getProtocol() { return PushProtocol.SB_GD_2022.getCode(); } @Override public void pushData(ApiParam param) { log.info("------->>>>ç²®é£ç®¡ç æ¥å£æ¨¡å䏿¥å¼å§"); //TODO è´¨æ£ä¿¡æ¯ log.info("------->>>>ç²®é£ç®¡ç æ¥å£æ¨¡å䏿¥ç»æ"); } } src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService14.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,41 @@ package com.fzzy.push.shjdjw2023; import com.fzzy.api.data.ApiParam; import com.fzzy.api.data.PushProtocol; import com.fzzy.api.service.PushService14; import com.fzzy.push.impl.ComPushService14; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** * 䏿µ·åå®çºªå§ç管平å°-è¡æ¿ç®¡çæ°æ®ä¸ä¼ * @author czt * @date 2023/5/9 16:27 */ @Slf4j @Component public class Shjdjw2023PushService14 implements PushService14 { @Autowired private ShjdjwApiRemoteService2023 apiRemoteService; @Autowired private ComPushService14 pushService; @Override public String getProtocol() { return PushProtocol.SB_GD_2022.getCode(); } @Override public void pushData(ApiParam param) { log.info("------->>>>è¡æ¿ç®¡ç æ¥å£æ¨¡å䏿¥å¼å§"); //TODO è½®æ¢è®¡åä¿¡æ¯ //TODO è½®æ¢è®¡åå®æä¿¡æ¯ log.info("------->>>>è¡æ¿ç®¡ç æ¥å£æ¨¡å䏿¥ç»æ"); } } src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiCodeConstant.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,47 @@ package com.fzzy.push.shjdjw2023; /** * 䏿µ·åå®çºªå§ç管平å°-æ¥å£ç¼ç * @author czt * @date 2023/5/9 14:25 */ public class ShjdjwApiCodeConstant { /** * æ¥å£ç¼ç -1101 åä½ä¿¡æ¯ */ public static String API_CODE_LS1101 = "ls1101"; /** * æ¥å£ç¼ç -1201 è´¨æ£ */ public static String API_CODE_LS1201 = "ls1201"; /** * æ¥å£ç¼ç -1302 ç²®é£å ¥åº */ public static String API_CODE_LS1302 = "ls1302"; /** * æ¥å£ç¼ç -1303 å ¥åºè´¨æ£ */ public static String API_CODE_LS1303 = "ls1303"; /** * æ¥å£ç¼ç -1306 ç²®é£åºåº */ public static String API_CODE_LS1306 = "ls1306"; /** * æ¥å£ç¼ç -1310 ç²®é£åºå */ public static String API_CODE_LS1310 = "ls1310"; /** * æ¥å£ç¼ç -1311 æçå */ public static String API_CODE_LS1311 = "ls1311"; /** * æ¥å£ç¼ç -101 è½®æ¢è®¡å */ public static String API_CODE_LS1501 = "ls1501"; /** * æ¥å£ç¼ç -1502 è½®æ¢è®¡å宿æ åµ */ public static String API_CODE_LS1502 = "ls1502"; } src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiRemoteService2023.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,151 @@ package com.fzzy.push.shjdjw2023; import com.alibaba.fastjson.JSON; import com.fzzy.api.Constant; import com.fzzy.api.data.ApiParam; import com.fzzy.api.data.PushProtocol; import com.fzzy.api.dto.ResponseDto; import com.fzzy.api.entity.ApiConfs; import com.fzzy.api.entity.ApiLog; import com.fzzy.api.service.ApiCommonService; import com.fzzy.api.service.ApiRemoteService; import com.fzzy.api.utils.ContextUtil; import com.fzzy.api.utils.RedisUtil; import com.fzzy.api.view.repository.ApiLogRep; import com.fzzy.push.gd2022.dto.*; import com.fzzy.push.shjdjw2023.dto.ShjdjwReqDto; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; /** * 䏿µ·åå®çºªå§ç管平å°-ä¸ä¼ æ°æ®æå¡ç±» * * @author czt * @date 2023/5/9 14:09 */ @Slf4j @Data @Service public class ShjdjwApiRemoteService2023 implements ApiRemoteService { @Autowired private RedisUtil redisUtil; @Autowired private ApiCommonService apiCommonService; @Autowired private ApiLogRep apiLogRep; @Override public String getProtocol() { return PushProtocol.SB_SHJdJW_2023.getCode(); } @Override public ResponseDto pushData(ApiParam param, Object data) { return pushData(param, null, data); } @Override public ResponseDto pushData(ApiParam param, ApiConfs conf, Object data) { String inteId = param.getInteId(); String kqdm = param.getKqdm(); String bizId = param.getBizId(); try { if (null == conf) { conf = apiCommonService.getConf(kqdm); } //æ·»å æ¥å¿ ApiLog apiLog = new ApiLog(); apiLog.setId(ContextUtil.getUUID()); apiLog.setInteId(param.getInteId()); //è·åæ¥å£ç¼ç String interfaceId = getDataId(inteId); //è·åjsonæ°æ® String jsonData = getJsonData(inteId, data, interfaceId); if (StringUtils.isEmpty(interfaceId)) { ResponseDto responseDto = new ResponseDto(99, "没æè·åå°æ¥å£", bizId); apiLog.setStatus(99); apiLog.setResult("没æè·åå°æ¥å£"); apiLogRep.save(apiLog); return responseDto; } apiLog.setData(jsonData); apiLog.setKqdm(kqdm); apiLog.setUploadTime(new Date()); if (conf == null) { ResponseDto responseDto = new ResponseDto(99, "没æè·åå°ä¸ä¼ é ç½®", bizId); apiLog.setStatus(99); apiLog.setResult("没æè·åå°ä¸ä¼ é ç½®"); apiLogRep.save(apiLog); return responseDto; } Map<String, Object> map = new HashMap<>(); GD2022ResponseDto responseDto = Shjdjw2023HttpClientUtil.postPushData(conf.getApiUrl() + inteId, jsonData, conf); responseDto.setBizId(bizId); apiLog.setStatus(responseDto.getCode() == 200 ? 0 : responseDto.getCode()); apiLog.setResult(responseDto.getMsg()); apiLogRep.save(apiLog); ResponseDto resd = new ResponseDto(); resd.setSuccess(responseDto.getCode() == 200 ? 0 : responseDto.getCode()); resd.setMsg(responseDto.getMsg()); //updateGD2022AuthToken(responseDto,conf, token); return resd; } catch (Exception e) { log.error(e.getMessage(), e); return new ResponseDto(99, e.getMessage()); } } /** * è°æ´æ°æ®å°è£ ï¼è·åjsonæ°æ® * * @param inteId * @param data * @return * @throws Exception */ private String getJsonData(String inteId, Object data, String interfaceId){ ShjdjwReqDto<List<Object>> dto = new ShjdjwReqDto<>(); dto.setId(getDataId(interfaceId)); List<Object> list = new ArrayList<>(); //转æ¢å°è£ if(Constant.API_CODE_1101.equals(inteId)){ list.add(data); }else{ list.add(data); } dto.setData(list); return JSON.toJSONString(dto); } /** * è·åæ¥å£ç¼ç * * @param inteId * @return */ private String getDataId(String inteId) { switch (inteId) { case "1101": return ShjdjwApiCodeConstant.API_CODE_LS1101; default: return inteId; } } } src/main/java/com/fzzy/push/shjdjw2023/dto/ShjdjwReqDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package com.fzzy.push.shjdjw2023.dto; import lombok.Data; import java.io.Serializable; /** * 䏿µ·åå®çºªå§ç管平å°-æ°æ®å°è£ * @author czt * @date 2023/5/9 14:35 */ @Data public class ShjdjwReqDto<T> implements Serializable { /** * æ¥å£ç¼ç */ private String id; /** * ä¸ä¼ æ°æ®(éåå½¢å¼) */ private T data; }