From 5670717996f7b791fdac0b745da28638bb0ff9af Mon Sep 17 00:00:00 2001 From: huzhengkao <562572218@qq.com> Date: Wed, 25 Jun 2025 18:01:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SupervisionEdhServerController.java | 54 ++++++++++++++++--- .../supervision/edh/enums/BuzStatusEnum.java | 3 +- .../edh/utils/ResponseBuilder.java | 18 ++++++- 3 files changed, 67 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/supervision/edh/controller/SupervisionEdhServerController.java b/src/main/java/com/supervision/edh/controller/SupervisionEdhServerController.java index 01e3a1f..dc7efa3 100644 --- a/src/main/java/com/supervision/edh/controller/SupervisionEdhServerController.java +++ b/src/main/java/com/supervision/edh/controller/SupervisionEdhServerController.java @@ -13,11 +13,15 @@ import com.supervision.edh.utils.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.IOException; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; import java.util.Map; /** @@ -50,9 +54,14 @@ public class SupervisionEdhServerController { Map paramsTemp = JSON.parseObject(body); System.out.println(paramsTemp); Map params = JSON.parseObject(paramsTemp.get("req").toString()); - logger.info("ProvTestController.receive.in.params:{}", params); + logger.info("接收到请求参数:{}", params); + // 检查参数,并获取校验结果 + String checkResult = checkRequestParam(params); + if (!ResponseBuilder.reqPass().equals(checkResult)) { + return checkResult; // 如果校验失败,直接返回错误信息 + } try { - //传输流水号0 + //传输流水号 String processId = String.valueOf(params.get("process_id")); //事件编号 String eventId = String.valueOf(params.get("event_id")); @@ -68,8 +77,8 @@ public class SupervisionEdhServerController { //企业统一社会信用代码 String tyshxydm = String.valueOf(params.get("tyshxydm")); - logger.info("processId:{}|eventId:{}|eventType:{}|event:{}|timeStamp:{}|ver:{}" - , processId, eventId, eventType, event, timeStamp, ver); + /* logger.info("processId:{}|eventId:{}|eventType:{}|event:{}|timeStamp:{}|ver:{}" + , processId, eventId, eventType, event, timeStamp, ver);*/ EventPojo eventPojo = JSON.parseObject(event, EventPojo.class); //获取私钥 @@ -100,11 +109,44 @@ public class SupervisionEdhServerController { return ResponseBuilder.success(); } catch (Exception e) { - logger.error("数据解析错误,错误信息:{}", e.getMessage()); - return ResponseBuilder.fail(BuzStatusEnum.SYS_ERR); + logger.error("出错了,错误信息:{}", e.getMessage()); + //return ResponseBuilder.fail(BuzStatusEnum.SYS_ERR); + return ResponseBuilder.failMsg(e.getMessage()); } } + /** + * 检测校验接收参数 + * @param params + */ + private String checkRequestParam(Map params) { + if (params == null || params.isEmpty()) { + return ResponseBuilder.failMsg("请求参数不能为空"); + } + + // 必填参数列表 + List requiredParams = Arrays.asList("process_id","event_id","tyshxydm","event_type","event","timestamp","ver"); + + // 统一校验必填参数 + for (String paramName : requiredParams) { + Object value = params.get(paramName); + + if (value == null) { + return ResponseBuilder.failMsg("参数'" + paramName + "'不能为null"); + } + if (value instanceof String && StringUtils.isEmpty(value)) { + return ResponseBuilder.failMsg("参数'" + paramName + "'不能为空字符串"); + } + + // 可以添加其他类型检查,如集合是否为空等 + if (value instanceof Collection && ((Collection) value).isEmpty()) { + return ResponseBuilder.failMsg("参数'" + paramName + "'集合不能为空"); + } + } + return ResponseBuilder.reqPass(); + + } + } diff --git a/src/main/java/com/supervision/edh/enums/BuzStatusEnum.java b/src/main/java/com/supervision/edh/enums/BuzStatusEnum.java index 7b602b3..ebcc49a 100644 --- a/src/main/java/com/supervision/edh/enums/BuzStatusEnum.java +++ b/src/main/java/com/supervision/edh/enums/BuzStatusEnum.java @@ -12,7 +12,8 @@ public enum BuzStatusEnum { SIGN_CHECK_ERR(1002,"签名认证失败"), DATA_PARSE_ERR(1003,"数据解析错误"), NO_ACCESS_AUTH_ERR(1004,"无接口访问权限"), - SYS_ERR(999,"系统开小差,请稍后重试"); + SYS_ERR(999,"系统开小差,请稍后重试"), + REQ_PASS(888,"请求校验通过"); int buzStatus; String buzMessage; diff --git a/src/main/java/com/supervision/edh/utils/ResponseBuilder.java b/src/main/java/com/supervision/edh/utils/ResponseBuilder.java index 985398d..e378bbb 100644 --- a/src/main/java/com/supervision/edh/utils/ResponseBuilder.java +++ b/src/main/java/com/supervision/edh/utils/ResponseBuilder.java @@ -48,6 +48,22 @@ public class ResponseBuilder extends HashMap{ return JSON.toJSONString(builder.build()); } + public static String failMsg(String msg){ + ResponseBuilder builder = new ResponseBuilder(); + builder.status(StatusEnum.FAILED.getStatus()); + builder.message(StatusEnum.FAILED.getMsg()); + builder.body(111,msg); + return JSON.toJSONString(builder.build()); + } + + public static String reqPass(){ + ResponseBuilder builder = new ResponseBuilder(); + builder.status(StatusEnum.SUCCESS.getStatus()); + builder.message(StatusEnum.SUCCESS.getMsg()); + builder.body(BuzStatusEnum.REQ_PASS); + return JSON.toJSONString(builder.build()); + } + public static Map buzError(Integer buzStatus,String buzMessage){ ResponseBuilder builder = new ResponseBuilder(); builder.status(StatusEnum.BUZ_ERROR.getStatus()); @@ -64,7 +80,7 @@ public class ResponseBuilder extends HashMap{ } public static void main(String[] args){ - System.out.println(JSON.toJSONString(fail(BuzStatusEnum.SIGN_CHECK_ERR))); + System.out.println(failMsg("参数'" + "'不能为空字符串")); } }