From 7bdf025bb59121bf7d058cb2ff79d71ed9903133 Mon Sep 17 00:00:00 2001 From: Kane Wang Date: Sun, 16 Mar 2025 23:07:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E5=88=B0springmvc6=E5=AE=B9?= =?UTF-8?q?=E5=99=A8=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/cpicxim-huixiabao/pom.xml | 34 +++++++++++- .../MediCover/MediCoverController.java | 28 ++++++++-- .../MediCover/MediCoverRequestBody.java | 2 + .../web/data/nhs/xyx/HmbXyxInfo.java | 55 +++++++++++++++++-- .../web/data/nhs/xyx/HmbXyxInfoItem.java | 3 +- .../cpic/xim/web/filters/cros/CrosFilter.java | 14 ++--- .../main/webapp/WEB-INF/classes/spring.xml | 4 +- .../src/main/webapp/WEB-INF/web.xml | 8 +-- 8 files changed, 122 insertions(+), 26 deletions(-) diff --git a/code/cpicxim-huixiabao/pom.xml b/code/cpicxim-huixiabao/pom.xml index da6c93e..96d1b00 100644 --- a/code/cpicxim-huixiabao/pom.xml +++ b/code/cpicxim-huixiabao/pom.xml @@ -52,13 +52,43 @@ ${spring.version} + + + + + + + + jakarta.servlet + jakarta.servlet-api + 6.1.0 + provided + org.apache.logging.log4j @@ -120,9 +150,9 @@ org.apache.maven.plugins maven-war-plugin 3.4.0 - + org.apache.maven.plugins 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 index 6b30d88..03ff12a 100644 --- 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 @@ -15,13 +15,16 @@ 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.JsonMappingException; 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.*;; +import com.cpic.xim.utils.secrecy.*; +import com.cpic.xim.huixiabao.web.data.nhs.xyx.HmbXyxInfo; + @Controller @RequestMapping( "/huixiabao" ) @@ -37,21 +40,38 @@ public class MediCoverController * @param request * @return */ - @PostMapping( "/xyx" ) + @PostMapping( "/xyx.do" ) @ResponseBody public static MediCoverResponse getHmbXyxInfo( @RequestBody MediCoverRequestBody request ) { - MediCoverResponse response = new MediCoverResponse(); ObjectMapper jsonMapper = new ObjectMapper(); + MediCoverResponse response = null; + HmbXyxInfo xyxInfo = null; String decryptData = AESUtils.decryptData( request.getKey(), privateKey, request.getBizContent() ); logger.info( "【接收小药箱数据】请求参数<{}>", request.toString() ); logger.info( "【接收小药箱数据】解密参数<{}>", decryptData ); - // jsonMapper.readValue( decryptData, null ); + try + { + xyxInfo = jsonMapper.readValue( decryptData, HmbXyxInfo.class ); + } + catch ( Exception error ) + { + // 解析json错误。 + response = new MediCoverResponse( "500", + "解析JSON失败:" + error.getMessage(), + "", + "", + "", + false ); + + return response; + } + 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 index 9b6cd75..f678620 100644 --- 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 @@ -45,6 +45,8 @@ public class MediCoverRequestBody this.timestamp = timestamp; } + public MediCoverRequestBody() {} + public String getTransId() { return transId; diff --git a/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/data/nhs/xyx/HmbXyxInfo.java b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/data/nhs/xyx/HmbXyxInfo.java index d3d07bd..7204ef7 100644 --- a/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/data/nhs/xyx/HmbXyxInfo.java +++ b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/data/nhs/xyx/HmbXyxInfo.java @@ -1,10 +1,53 @@ /** - * @Author: Kane - * @Date: 2025-03-16 00:12:27 - * @LastEditors: Kane - * @FilePath: /cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/data/nhs/HmbXyxInfo.java + * @Author: Kane Wang + * @Date: 2025-03-16 08:41:32 + * @LastEditors: Kane Wang + * @LastModified: 2025-03-16 20:00:26 + * @FilePath: src/main/java/com/cpic/xim/huixiabao/web/data/nhs/xyx/HmbXyxInfo.java * @Description: * - * Copyright (c) ${2023} by Kane, All Rights Reserved. + * Copyright (c) 2025 by Kane All rights reserved */ -package com.cpic.xim.huixiabao.web.data.nhs.xyx; \ No newline at end of file +package com.cpic.xim.huixiabao.web.data.nhs.xyx; + +import java.util.Vector; +import com.fasterxml.jackson.annotation.JsonProperty; + +public class HmbXyxInfo +{ + public HmbXyxInfo() + { + } + + public HmbXyxInfo( String topic, Vector hmbList ) + { + this.topic = topic; + this.hmbList = hmbList; + } + + public String getTopic() + { + return topic; + } + + public void setTopic( String topic ) + { + this.topic = topic; + } + + public Vector getHmbList() + { + return hmbList; + } + + public void setHmbList( Vector hmbList ) + { + this.hmbList = hmbList; + } + + @JsonProperty( "topic" ) + private String topic; + + @JsonProperty( "hmbList" ) + private Vector hmbList; +} \ No newline at end of file diff --git a/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/data/nhs/xyx/HmbXyxInfoItem.java b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/data/nhs/xyx/HmbXyxInfoItem.java index 5e04c14..9c36f79 100644 --- a/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/data/nhs/xyx/HmbXyxInfoItem.java +++ b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/data/nhs/xyx/HmbXyxInfoItem.java @@ -15,7 +15,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; public class HmbXyxInfoItem { - + public HmbXyxInfoItem() {} + public String getPsnName() { return psnName; diff --git a/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/web/filters/cros/CrosFilter.java b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/web/filters/cros/CrosFilter.java index 424a270..c1abfa0 100644 --- a/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/web/filters/cros/CrosFilter.java +++ b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/web/filters/cros/CrosFilter.java @@ -11,13 +11,13 @@ package com.cpic.xim.web.filters.cros; import java.io.IOException; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpMethod; diff --git a/code/cpicxim-huixiabao/src/main/webapp/WEB-INF/classes/spring.xml b/code/cpicxim-huixiabao/src/main/webapp/WEB-INF/classes/spring.xml index a349f68..674970d 100644 --- a/code/cpicxim-huixiabao/src/main/webapp/WEB-INF/classes/spring.xml +++ b/code/cpicxim-huixiabao/src/main/webapp/WEB-INF/classes/spring.xml @@ -28,10 +28,10 @@ --> - - + --> \ 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 1e6294b..ebde8f4 100644 --- a/code/cpicxim-huixiabao/src/main/webapp/WEB-INF/web.xml +++ b/code/cpicxim-huixiabao/src/main/webapp/WEB-INF/web.xml @@ -17,11 +17,11 @@ 1 - + springmvc - /huixibao + / - + CrosFilter com.cpic.xim.web.filters.cros.CrosFilter @@ -30,5 +30,5 @@ CrosFilter * - + \ No newline at end of file