diff --git a/code/cpicxim-huixiabao/pom.xml b/code/cpicxim-huixiabao/pom.xml
index 4aa4c08..da6c93e 100644
--- a/code/cpicxim-huixiabao/pom.xml
+++ b/code/cpicxim-huixiabao/pom.xml
@@ -9,10 +9,8 @@
cpicxim-huixiabao
1.0-SNAPSHOT
war
-
- cpicxim-huixiabao Maven Webapp
-
- http://www.example.com
+ cpicxim-huixiabao-backend
+ http://www.cpic.com.cn
UTF-8
@@ -20,6 +18,7 @@
18
6.2.4
2.24.3
+ 2.18.3
@@ -30,6 +29,7 @@
test
+
org.springframework
spring-context
@@ -46,7 +46,6 @@
spring-web
${spring.version}
-
org.springframework
spring-webmvc
@@ -60,6 +59,7 @@
provided
+
org.apache.logging.log4j
log4j-core
@@ -75,12 +75,30 @@
log4j-api
${log4j.version}
-
+
org.apache.directory.studio
org.apache.commons.codec
1.8
+
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ ${jackson.version}
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+ ${jackson.version}
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+ ${jackson.version}
+
+
@@ -103,7 +121,7 @@
maven-war-plugin
3.4.0
- ${project.build.directory}/../../../../输出/back/
+ ${project.build.directory}/../../../输出/back/
diff --git a/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverController.java b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverController.java
new file mode 100644
index 0000000..68208f2
--- /dev/null
+++ b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverController.java
@@ -0,0 +1,54 @@
+/*
+ * @Author: Kane
+ *
+ * @Date: 2025-03-15 17:09:50
+ *
+ * @LastEditors: Kane
+ *
+ * @FilePath: /cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverController.java
+ *
+ * @Description:
+ *
+ * Copyright (c) ${2023} by Kane, All Rights Reserved.
+ */
+package com.cpic.xim.huixiabao.web.controllers.MediCover;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import org.springframework.web.bind.annotation.PostMapping;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.cpic.xim.utils.secrecy.*;;
+
+@Controller
+@RequestMapping( "/huixiabao" )
+public class MediCoverController
+{
+ private static Logger logger = LoggerFactory.getLogger( MediCoverController.class );
+ private static String privateKey = "MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAMBanAXTnHChd6W/vYq6eVmmr1R2p25tghivDEb8qrgxHMCY3lqYhJAw3jgQAH3HzSOFxZ3Mz/WcRaW3CzWfAZ0mm5dcVY0qEgyT/1BOsdhLwKa3BBuURRCEp5ZPapErm3Ugl/OBxjEURgtc9JnVBOECc9Kvk3FXvuN4tDWl18lxAgMBAAECgYBBAJ3HLkqomTg4sAIaloeZr0WC0pIkNCeJteX9OzdqBVbFEyPZE7+AhrMh2O6BkvqU7YjpmaQRSR0UMjY8iZ5eaJ8vkPJPFgoJI14dqj3Pby46GYqC8iPHTeFN35RL6Sgktt9i/loLoiRj6ifQ2AqnlE3e66Iaw1Zdnx1Lt9/T7QJBAP6PZatPD4UM9kQ0xO1QmJ+IsgLBhv3fhn2i8X4NSJGJ1yi9+JWnQ+CfBZ2u/V0op1Wz5kIDK7BA40o2Ntlf6acCQQDBcSNGlyE5sSSJS39pnbTqxNjKoakBQ5LFIrk4ld8Vuk0H7dcdfUittHoDnNMn9TKIIAvxo0s4fQe8WMPqH2cnAkEA4x49r6JSTntKHYCXUsTd5zim2h6gulF8RQvkOnrPjEpXVVppN9yMixRWhmFiXIOxCJ4BilQZ3p+GKuhD953DcQJBAKdGjpqcVb7t0AppnuRV2/yn/FA9O0g8hs6yGDk2YJMJZ1NT+JEnpZGQX3KASphjEC9mhu2Np55RgD7/A2uRfEECQQCdyFLVuPMSnCRAXvwb0EegaM0sS4/bT3/fix7RpKqv7tsUfXXsL1bbxxp9b/FBJe834s6wqq0U2wTlfVHXD1Oh";
+ private static String publicyKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDAWpwF05xwoXelv72KunlZpq9UdqdubYIYrwxG/Kq4MRzAmN5amISQMN44EAB9x80jhcWdzM/1nEWltws1nwGdJpuXXFWNKhIMk/9QTrHYS8CmtwQblEUQhKeWT2qRK5t1IJfzgcYxFEYLXPSZ1QThAnPSr5NxV77jeLQ1pdfJcQIDAQAB";
+
+ @PostMapping( "/xyx" )
+ @ResponseBody
+ public static MediCoverResponse getHmbXyxInfo(
+ @RequestBody MediCoverRequestBody request
+ )
+ {
+ MediCoverResponse response = new MediCoverResponse();
+ ObjectMapper jsonMapper = new ObjectMapper();
+
+ String decryptData = AESUtils.decryptData( request.getKey(), privateKey, request.getBizContent() );
+
+ logger.info( "【接收小药箱数据】请求参数<{}>", request.toString() );
+ logger.info( "【接收小药箱数据】解密参数<{}>", decryptData );
+
+ // jsonMapper.readValue(decryptData, null)
+ return response;
+ }
+}
\ No newline at end of file
diff --git a/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverRequestBody.java b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverRequestBody.java
new file mode 100644
index 0000000..afaf9d1
--- /dev/null
+++ b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverRequestBody.java
@@ -0,0 +1,107 @@
+/*
+ * @Author: Kane
+ *
+ * @Date: 2025-03-15 16:41:05
+ *
+ * @LastEditors: Kane
+ *
+ * @FilePath:
+ * /cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverRequestBody.java
+ * /cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverRequestBody.java
+ *
+ * @Description:
+ *
+ * Copyright (c) ${2023} by Kane, All Rights Reserved.
+ */
+package com.cpic.xim.huixiabao.web.controllers.MediCover;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class MediCoverRequestBody
+{
+
+ @JsonProperty( "transId" )
+ private String transId;
+
+ @JsonProperty( "format" )
+ private String format;
+
+ @JsonProperty( "bizContent" )
+ private String bizContent;
+
+ @JsonProperty( "key" )
+ private String key;
+
+ @JsonProperty( "timestamp" )
+ private String timestamp;
+
+ public MediCoverRequestBody(
+ String transId,
+ String format,
+ String bizContent,
+ String key,
+ String timestamp
+ )
+ {
+ this.transId = transId;
+ this.format = format;
+ this.bizContent = bizContent;
+ this.key = key;
+ this.timestamp = timestamp;
+ }
+
+ public String getTransId()
+ {
+ return transId;
+ }
+
+ public void setTransId( String transId )
+ {
+ this.transId = transId;
+ }
+
+ public String getFormat()
+ {
+ return format;
+ }
+
+ public void setFormat( String format )
+ {
+ this.format = format;
+ }
+
+ public String getBizContent()
+ {
+ return bizContent;
+ }
+
+ public void setBizContent( String bizContent )
+ {
+ this.bizContent = bizContent;
+ }
+
+ public String getKey()
+ {
+ return key;
+ }
+
+ public void setKey( String key )
+ {
+ this.key = key;
+ }
+
+ public String getTimestamp()
+ {
+ return timestamp;
+ }
+
+ public void setTimestamp( String timestamp )
+ {
+ this.timestamp = timestamp;
+ }
+
+ @Override public String toString()
+ {
+ return "MediCoverRequestBody [transId=" + transId + ", format=" + format + ", bizContent=" + bizContent + ", key=" + key + ", timestamp=" + timestamp + "]";
+ }
+}
\ No newline at end of file
diff --git a/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverResponse.java b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverResponse.java
new file mode 100644
index 0000000..ca32bff
--- /dev/null
+++ b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverResponse.java
@@ -0,0 +1,54 @@
+/*
+ * @Author: Kane
+ * @Date: 2025-03-15 17:21:50
+ * @LastEditors: Kane
+ * @FilePath: /cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverResponse.java
+ * @Description:
+ *
+ * Copyright (c) ${2023} by Kane, All Rights Reserved.
+ */
+package com.cpic.xim.huixiabao.web.controllers.MediCover;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class MediCoverResponse
+{
+ MediCoverResponse()
+ {
+ code = "500";
+ message = "未知失败原因";
+ subMessage = "";
+ result = new MediCoverResultInResponse("", "");
+ success = false;
+ }
+
+ public MediCoverResponse(
+ String code,
+ String message,
+ String subMessage,
+ String key,
+ String content,
+ Boolean success )
+ {
+ this.code = code;
+ this.message = message;
+ this.subMessage = subMessage;
+ this.result = new MediCoverResultInResponse(key, content);
+ this.success = success;
+ }
+
+ @JsonProperty("code")
+ private String code;
+
+ @JsonProperty("message")
+ private String message;
+
+ @JsonProperty("subMessage")
+ private String subMessage;
+
+ @JsonProperty("result")
+ private MediCoverResultInResponse result;
+
+ @JsonProperty("success")
+ private Boolean success;
+}
\ No newline at end of file
diff --git a/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverResultInResponse.java b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverResultInResponse.java
new file mode 100644
index 0000000..7834e98
--- /dev/null
+++ b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverResultInResponse.java
@@ -0,0 +1,55 @@
+/*
+ * @Author: Kane
+ *
+ * @Date: 2025-03-15 17:29:27
+ *
+ * @LastEditors: Kane
+ *
+ * @FilePath:
+ * /cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverResultInResponse.java
+ * /cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverResultInResponse.java
+ * /cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverResultInResponse.java
+ *
+ * @Description:
+ *
+ * Copyright (c) ${2023} by Kane, All Rights Reserved.
+ */
+package com.cpic.xim.huixiabao.web.controllers.MediCover;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class MediCoverResultInResponse
+{
+
+ public MediCoverResultInResponse( String key, String content )
+ {
+ this.key = key;
+ this.content = content;
+ }
+
+ public String getKey()
+ {
+ return key;
+ }
+
+ public void setKey( String key )
+ {
+ this.key = key;
+ }
+
+ public String getContent()
+ {
+ return content;
+ }
+
+ public void setContent( String content )
+ {
+ this.content = content;
+ }
+
+ @JsonProperty( "key" )
+ private String key;
+
+ @JsonProperty( "content" )
+ private String content;
+}
\ No newline at end of file
diff --git a/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/data/nhs/HmbXyxInfo.java b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/data/nhs/HmbXyxInfo.java
new file mode 100644
index 0000000..79de149
--- /dev/null
+++ b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/data/nhs/HmbXyxInfo.java
@@ -0,0 +1,86 @@
+/*
+ * @Author: Kane
+ *
+ * @Date: 2025-03-15 18:28:17
+ *
+ * @LastEditors: Kane
+ *
+ * @FilePath: /cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/data/nhs/HmbXyxInfo.java
+ *
+ * @Description: 惠厦保 小药箱数据同步对象。
+ * 对应惠厦保理赔规范接口 3.7。
+ * Copyright (c) ${2023} by Kane, All Rights Reserved.
+ */
+
+package com.cpic.xim.huixiabao.web.data.nhs;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class HmbXyxInfo
+{
+
+ public String getPsnName()
+ {
+ return psnName;
+ }
+
+ public void setPsnName( String psnName )
+ {
+ this.psnName = psnName;
+ }
+
+ public String getCertno()
+ {
+ return certno;
+ }
+
+ public void setCertno( String certno )
+ {
+ this.certno = certno;
+ }
+
+ public String getServiceId()
+ {
+ return serviceId;
+ }
+
+ public void setServiceId( String serviceId )
+ {
+ this.serviceId = serviceId;
+ }
+
+ public String getStatus()
+ {
+ return status;
+ }
+
+ public void setStatus( String status )
+ {
+ this.status = status;
+ }
+
+ public String getXyxNo()
+ {
+ return xyxNo;
+ }
+
+ public void setXyxNo( String xyxNo )
+ {
+ this.xyxNo = xyxNo;
+ }
+
+ @JsonProperty( "psnName" )
+ private String psnName;
+
+ @JsonProperty( "certno" )
+ private String certno;
+
+ @JsonProperty( "serviceId" )
+ private String serviceId;
+
+ @JsonProperty( "status" )
+ private String status;
+
+ @JsonProperty( "xyxNo" )
+ private String xyxNo;
+}
\ No newline at end of file
diff --git a/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/utils/secrecy/Base64Utils.java b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/utils/secrecy/Base64Utils.java
index 8ae7e8e..78857e5 100644
--- a/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/utils/secrecy/Base64Utils.java
+++ b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/utils/secrecy/Base64Utils.java
@@ -1,11 +1,15 @@
/*
* @Author: Kane
- * @Date: 2025-03-15 12:04:19
- * @LastEditors: Kane
- * @FilePath: /cpicxim-huixiabao/src/main/java/com/cpic/xim/utils/secrecy/Base64Utils.java
- * @Description:
*
- * Copyright (c) ${2023} by Kane, All Rights Reserved.
+ * @Date: 2025-03-15 12:04:19
+ *
+ * @LastEditors: Kane
+ *
+ * @FilePath: /cpicxim-huixiabao/src/main/java/com/cpic/xim/utils/secrecy/Base64Utils.java
+ *
+ * @Description:
+ *
+ * Copyright (c) ${2023} by Kane, All Rights Reserved.
*/
package com.cpic.xim.utils.secrecy;
@@ -34,14 +38,12 @@ public class Base64Utils
* @return
* @throws Exception
*/
- public static byte[] decode( String base64 )
- throws Exception
+ public static byte[] decode( String base64 ) throws Exception
{
return Base64.decodeBase64( base64.getBytes() );
}
- public static String decode( byte[] b )
- throws Exception
+ public static String decode( byte[] b ) throws Exception
{
return new String( Base64.decodeBase64( b ) );
}
diff --git a/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/filters/cros/CrosFilter.java b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/web/filters/cros/CrosFilter.java
similarity index 90%
rename from code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/filters/cros/CrosFilter.java
rename to code/cpicxim-huixiabao/src/main/java/com/cpic/xim/web/filters/cros/CrosFilter.java
index 5c4b8a4..d21d8d6 100644
--- a/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/filters/cros/CrosFilter.java
+++ b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/web/filters/cros/CrosFilter.java
@@ -1,14 +1,18 @@
/*
* @Author: Kane
- * @Date: 2025-03-15 11:56:54
- * @LastEditors: Kane
- * @FilePath: /cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/filters/cros/CrosFilter.java
- * @Description:
*
- * Copyright (c) ${2023} by Kane, All Rights Reserved.
+ * @Date: 2025-03-15 11:56:54
+ *
+ * @LastEditors: Kane
+ *
+ * @FilePath: /cpicxim-huixiabao/src/main/java/com/cpic/xim/web/filters/cros/CrosFilter.java
+ *
+ * @Description:
+ *
+ * Copyright (c) ${2023} by Kane, All Rights Reserved.
*/
-package com.cpic.xim.huixiabao.web.filters.cros;
+package com.cpic.xim.web.filters.cros;
import java.io.IOException;
import javax.servlet.Filter;
diff --git a/code/cpicxim-huixiabao/src/main/resources/log4j2.xml b/code/cpicxim-huixiabao/src/main/resources/log4j2.xml
new file mode 100644
index 0000000..9e4d4f2
--- /dev/null
+++ b/code/cpicxim-huixiabao/src/main/resources/log4j2.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+ [%t][%level][%d{HH:mm:ss.SSS}][%logger.%M{36}#%L] %msg%n
+
+
+
+
+
+
+
+
+
+ [%t][%level][%d{HH:mm:ss.SSS}][%logger.%M{36}#%L] %msg%n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/code/cpicxim-huixiabao/src/main/webapp/WEB-INF/web.xml b/code/cpicxim-huixiabao/src/main/webapp/WEB-INF/web.xml
index c7b2872..1e6294b 100644
--- a/code/cpicxim-huixiabao/src/main/webapp/WEB-INF/web.xml
+++ b/code/cpicxim-huixiabao/src/main/webapp/WEB-INF/web.xml
@@ -22,4 +22,13 @@
/huixibao
+
+ CrosFilter
+ com.cpic.xim.web.filters.cros.CrosFilter
+
+
+ CrosFilter
+ *
+
+
\ No newline at end of file