This commit is contained in:
huzhengkao 2025-06-25 18:01:56 +08:00
parent ada75c98c8
commit 5670717996
3 changed files with 67 additions and 8 deletions

View File

@ -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<String, Object> paramsTemp = JSON.parseObject(body);
System.out.println(paramsTemp);
Map<String, Object> 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<String, Object> params) {
if (params == null || params.isEmpty()) {
return ResponseBuilder.failMsg("请求参数不能为空");
}
// 必填参数列表
List<String> 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();
}
}

View File

@ -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;

View File

@ -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<String,Object> 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("参数'" + "'不能为空字符串"));
}
}