Commit 373f2a42 authored by duanruiming's avatar duanruiming

优化信号控制参数校验

parent dd0eec6a
package net.wanji.web.controller; package net.wanji.web.controller;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import net.wanji.feign.pojo.result.JsonViewObject; import net.wanji.feign.pojo.result.JsonViewObject;
import net.wanji.feign.pojo.vo.*; import net.wanji.feign.pojo.vo.*;
import net.wanji.feign.service.UtcFeignClients; import net.wanji.feign.service.UtcFeignClients;
import net.wanji.web.common.util.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Objects; import java.util.Objects;
...@@ -29,7 +31,7 @@ public class SignalServiceController { ...@@ -29,7 +31,7 @@ public class SignalServiceController {
@ApiOperation(value = "信号机方案下发-基础方案下发", notes = "信号机方案下发-基础方案下发") @ApiOperation(value = "信号机方案下发-基础方案下发", notes = "信号机方案下发-基础方案下发")
@PostMapping("/schemeSend") @PostMapping("/schemeSend")
public JsonViewObject schemeSend(@RequestBody SchemeSendVO schemeSendVO) { public JsonViewObject schemeSend(@RequestBody @Validated SchemeSendVO schemeSendVO) {
JsonViewObject jsonViewObject = utcFeignClients.schemeSend(schemeSendVO); JsonViewObject jsonViewObject = utcFeignClients.schemeSend(schemeSendVO);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) { if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
return jsonViewObject.fail("信号机方案下发-基础方案下发UTC服务调用异常"); return jsonViewObject.fail("信号机方案下发-基础方案下发UTC服务调用异常");
...@@ -39,7 +41,7 @@ public class SignalServiceController { ...@@ -39,7 +41,7 @@ public class SignalServiceController {
@ApiOperation(value = "计划下发-计划信息、时段信息", notes = "计划下发-计划信息、时段信息") @ApiOperation(value = "计划下发-计划信息、时段信息", notes = "计划下发-计划信息、时段信息")
@PostMapping("/planSend") @PostMapping("/planSend")
public JsonViewObject planSend(@RequestBody PlanSendVO planSendVO) throws Exception { public JsonViewObject planSend(@RequestBody @Validated PlanSendVO planSendVO) throws Exception {
JsonViewObject jsonViewObject = utcFeignClients.planSend(planSendVO); JsonViewObject jsonViewObject = utcFeignClients.planSend(planSendVO);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) { if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
return jsonViewObject.fail("计划下发-计划信息、时段信息UTC服务调用异常"); return jsonViewObject.fail("计划下发-计划信息、时段信息UTC服务调用异常");
...@@ -49,7 +51,7 @@ public class SignalServiceController { ...@@ -49,7 +51,7 @@ public class SignalServiceController {
@ApiOperation(value = "时间表下发-时间表信息", notes = "时间表下发-时间表信息") @ApiOperation(value = "时间表下发-时间表信息", notes = "时间表下发-时间表信息")
@PostMapping("/scheduleSend") @PostMapping("/scheduleSend")
public JsonViewObject scheduleSend(@RequestBody ScheduleSendVO scheduleSendVO) throws Exception { public JsonViewObject scheduleSend(@RequestBody @Validated ScheduleSendVO scheduleSendVO) throws Exception {
JsonViewObject jsonViewObject = utcFeignClients.scheduleSend(scheduleSendVO); JsonViewObject jsonViewObject = utcFeignClients.scheduleSend(scheduleSendVO);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) { if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
return jsonViewObject.fail("时间表下发-时间表信息UTC服务调用异常"); return jsonViewObject.fail("时间表下发-时间表信息UTC服务调用异常");
...@@ -59,7 +61,7 @@ public class SignalServiceController { ...@@ -59,7 +61,7 @@ public class SignalServiceController {
@ApiOperation(value = "相位配时下发-(下发相位参数)", notes = "相位配时下发-(下发相位参数)") @ApiOperation(value = "相位配时下发-(下发相位参数)", notes = "相位配时下发-(下发相位参数)")
@PostMapping("/phaseTimingSend") @PostMapping("/phaseTimingSend")
public JsonViewObject phaseTimingSend(@RequestBody PhaseTimingSendVO phaseTimingSendVO) throws Exception { public JsonViewObject phaseTimingSend(@RequestBody @Validated PhaseTimingSendVO phaseTimingSendVO) throws Exception {
JsonViewObject jsonViewObject = utcFeignClients.phaseTimingSend(phaseTimingSendVO); JsonViewObject jsonViewObject = utcFeignClients.phaseTimingSend(phaseTimingSendVO);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) { if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
return jsonViewObject.fail("相位配时下发-(下发相位参数)UTC服务调用异常"); return jsonViewObject.fail("相位配时下发-(下发相位参数)UTC服务调用异常");
...@@ -89,15 +91,9 @@ public class SignalServiceController { ...@@ -89,15 +91,9 @@ public class SignalServiceController {
@ApiOperation(value = "步进控制-步进控制/恢复", notes = "步进控制-步进控制/恢复") @ApiOperation(value = "步进控制-步进控制/恢复", notes = "步进控制-步进控制/恢复")
@ApiImplicitParams({
@ApiImplicitParam(name = "command", value = "1 开始步进 0 取消步进", paramType = "query", required = true, dataType = "int"),
@ApiImplicitParam(name = "stepNum", value = "0 顺序步进 n 跳过n个相位", paramType = "query", required = true, dataType = "int"),
})
@PostMapping("/stepControl") @PostMapping("/stepControl")
public JsonViewObject stepControl(@RequestParam String code, public JsonViewObject stepControl(@RequestBody @Validated StepControlVO stepControlVO) throws Exception {
@RequestParam Integer command, JsonViewObject jsonViewObject = utcFeignClients.stepControl(stepControlVO.getCode(), stepControlVO.getCommand(), stepControlVO.getStepNum());
@RequestParam int stepNum) throws Exception {
JsonViewObject jsonViewObject = utcFeignClients.stepControl(code, command, stepNum);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) { if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
return jsonViewObject.fail("步进控制-步进控制/恢复UTC服务调用异常"); return jsonViewObject.fail("步进控制-步进控制/恢复UTC服务调用异常");
} }
...@@ -106,8 +102,12 @@ public class SignalServiceController { ...@@ -106,8 +102,12 @@ public class SignalServiceController {
@ApiOperation(value = "恢复时间表-恢复路口时间表执行", notes = "恢复时间表-恢复路口时间表执行") @ApiOperation(value = "恢复时间表-恢复路口时间表执行", notes = "恢复时间表-恢复路口时间表执行")
@PostMapping("/recoverSchedule") @PostMapping("/recoverSchedule")
public JsonViewObject recoverSchedule(@RequestParam String code) throws Exception { public JsonViewObject recoverSchedule(@RequestBody String code) throws Exception {
JsonViewObject jsonViewObject = utcFeignClients.recoverSchedule(code); JsonViewObject jsonViewObject = JsonViewObject.newInstance();
if (StringUtils.isNotEmpty(code)) {
return jsonViewObject.fail("路口编号不能为空");
}
jsonViewObject = utcFeignClients.recoverSchedule(code);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) { if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
return jsonViewObject.fail("恢复时间表-恢复路口时间表执行UTC服务调用异常"); return jsonViewObject.fail("恢复时间表-恢复路口时间表执行UTC服务调用异常");
} }
...@@ -115,7 +115,7 @@ public class SignalServiceController { ...@@ -115,7 +115,7 @@ public class SignalServiceController {
} }
@ApiOperation(value = "锁定控制-相位锁定/解锁", notes = "锁定控制-相位锁定/解锁") @ApiOperation(value = "锁定控制-相位锁定/解锁", notes = "锁定控制-相位锁定/解锁")
@PostMapping("/lockControl") @PostMapping(value = "/lockControl")
public JsonViewObject lockControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception { public JsonViewObject lockControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception {
JsonViewObject jsonViewObject = utcFeignClients.lockControl(commandVO); JsonViewObject jsonViewObject = utcFeignClients.lockControl(commandVO);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) { if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
......
package net.wanji.web.handler; package net.wanji.web.handler;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.wanji.feign.feignEnum.ResultEnum;
import net.wanji.feign.pojo.result.JsonViewObject; import net.wanji.feign.pojo.result.JsonViewObject;
import net.wanji.web.exception.CrossException; import net.wanji.web.exception.CrossException;
import org.springframework.validation.FieldError; import org.springframework.validation.FieldError;
...@@ -11,6 +10,8 @@ import org.springframework.web.bind.annotation.RestControllerAdvice; ...@@ -11,6 +10,8 @@ import org.springframework.web.bind.annotation.RestControllerAdvice;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import static net.wanji.feign.feignEnum.ResultEnum.INTERNAL_SERVER_ERROR;
/** /**
* @author wuxiaokai * @author wuxiaokai
* @date 2022/11/21 9:06:40 * @date 2022/11/21 9:06:40
...@@ -33,9 +34,16 @@ public class GlobalExceptionHandler { ...@@ -33,9 +34,16 @@ public class GlobalExceptionHandler {
*/ */
@ExceptionHandler(value = NullPointerException.class) @ExceptionHandler(value = NullPointerException.class)
public JsonViewObject exceptionHandler(HttpServletRequest req, NullPointerException e) { public JsonViewObject exceptionHandler(HttpServletRequest req, NullPointerException e) {
String errorMessage = e.getCause().getMessage(); Throwable cause = e.getCause();
log.error("发生空指针异常!原因是:{}", errorMessage); String errorMessage;
return JsonViewObject.newInstance().fail("发生空指针异常!原因是:" + errorMessage); if (cause != null) {
errorMessage = cause.getMessage();
} else {
StackTraceElement element = e.getStackTrace()[0];
errorMessage = element.getClassName() + " " + element.getLineNumber();
}
log.error("发生空指针异常!位置在:{}", errorMessage);
return JsonViewObject.newInstance().fail("发生空指针异常!位置在:" + errorMessage);
} }
/** /**
...@@ -44,7 +52,7 @@ public class GlobalExceptionHandler { ...@@ -44,7 +52,7 @@ public class GlobalExceptionHandler {
@ExceptionHandler(value = MethodArgumentNotValidException.class) @ExceptionHandler(value = MethodArgumentNotValidException.class)
public JsonViewObject exceptionHandler(HttpServletRequest req, MethodArgumentNotValidException e) { public JsonViewObject exceptionHandler(HttpServletRequest req, MethodArgumentNotValidException e) {
FieldError fieldError = e.getBindingResult().getFieldError(); FieldError fieldError = e.getBindingResult().getFieldError();
String errorMessage = ResultEnum.INTERNAL_SERVER_ERROR.getResultMsg(); String errorMessage = INTERNAL_SERVER_ERROR.getResultMsg();
if (fieldError != null) { if (fieldError != null) {
errorMessage = fieldError.getDefaultMessage(); errorMessage = fieldError.getDefaultMessage();
} }
......
...@@ -6,6 +6,7 @@ import lombok.Data; ...@@ -6,6 +6,7 @@ import lombok.Data;
import javax.validation.constraints.Max; import javax.validation.constraints.Max;
import javax.validation.constraints.Min; import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
/** /**
...@@ -19,7 +20,7 @@ import javax.validation.constraints.NotNull; ...@@ -19,7 +20,7 @@ import javax.validation.constraints.NotNull;
public class ControlCommandVO { public class ControlCommandVO {
@ApiModelProperty(value = "路口编号", notes = "路口编号") @ApiModelProperty(value = "路口编号", notes = "路口编号")
@NotNull(message = "路口编号不可为空") @NotBlank(message = "路口编号不能为空")
private String crossCode; private String crossCode;
/** /**
......
...@@ -6,16 +6,20 @@ import lombok.Data; ...@@ -6,16 +6,20 @@ import lombok.Data;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List; import java.util.List;
@Data @Data
@ApiModel(value = "下发相位参数输入参数", description = "下发相位参数输入参数") @ApiModel(value = "PhaseTimingSendVO", description = "下发相位参数输入参数")
public class PhaseTimingSendVO { public class PhaseTimingSendVO {
@ApiModelProperty(value = "路口编号", notes = "路口编号") @ApiModelProperty(value = "路口编号", notes = "路口编号")
@NotBlank(message = "路口编号不能为空")
private String crossCode; private String crossCode;
@ApiModelProperty(value = "需要下发的相位列表", notes = "需要下发的相位列表") @ApiModelProperty(value = "需要下发的相位列表", notes = "需要下发的相位列表")
@NotEmpty(message = "相位列表不能为空")
private List<Phase> phaseList; private List<Phase> phaseList;
/** /**
......
...@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List; import java.util.List;
/** /**
...@@ -15,12 +17,14 @@ import java.util.List; ...@@ -15,12 +17,14 @@ import java.util.List;
*/ */
@Setter @Setter
@Getter @Getter
@ApiModel(value = "信号机计划下发输入参数", description = "信号机计划下发输入参数") @ApiModel(value = "PhaseTimingSendVO", description = "信号机计划下发输入参数")
public class PlanSendVO { public class PlanSendVO {
@ApiModelProperty(value = "路口编号", notes = "路口编号") @ApiModelProperty(value = "路口编号", notes = "路口编号")
@NotBlank(message = "路口编号不能为空")
private String crossCode; private String crossCode;
@ApiModelProperty(value = "计划列表", notes = "计划列表") @ApiModelProperty(value = "计划列表", notes = "计划列表")
@NotEmpty(message = "计划列表不能为空")
private List<Plan> planList; private List<Plan> planList;
@Setter @Setter
......
...@@ -6,15 +6,19 @@ import lombok.Data; ...@@ -6,15 +6,19 @@ import lombok.Data;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List; import java.util.List;
@Data @Data
@ApiModel(value = "信号机时间表下发输入参数", description = "信号机时间表下发输入参数") @ApiModel(value = "PhaseTimingSendVO", description = "信号机时间表下发输入参数")
public class ScheduleSendVO { public class ScheduleSendVO {
@ApiModelProperty(value = "路口编号", notes = "路口编号") @ApiModelProperty(value = "路口编号", notes = "路口编号")
@NotBlank(message = "路口编号不能为空")
private String crossCode; private String crossCode;
@ApiModelProperty(value = "时间表", notes = "时间表") @ApiModelProperty(value = "时间表", notes = "时间表")
@NotEmpty(message = "时间表不能为空")
private List<Schedule> schedules; private List<Schedule> schedules;
@Setter @Setter
......
...@@ -6,15 +6,19 @@ import lombok.Data; ...@@ -6,15 +6,19 @@ import lombok.Data;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List; import java.util.List;
@Data @Data
@ApiModel(value = "信号机方案下发输入参数", description = "信号机方案下发输入参数") @ApiModel(value = "PhaseTimingSendVO", description = "信号机方案下发输入参数")
public class SchemeSendVO { public class SchemeSendVO {
@ApiModelProperty(value = "路口编号", notes = "路口编号") @ApiModelProperty(value = "路口编号", notes = "路口编号")
@NotBlank(message = "路口编号不能为空")
private String crossCode; private String crossCode;
@ApiModelProperty(value = "方案列表", notes = "方案列表") @ApiModelProperty(value = "方案列表", notes = "方案列表")
@NotEmpty(message = "方案列表不能为空")
private List<Pattern> patternList; private List<Pattern> patternList;
/** /**
......
package net.wanji.feign.pojo.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @author duanruiming
* @date 2023/01/17 15:39
*/
@Data
@ApiModel(value = "StepControlVO", description = "步进控制-步进控制/恢复输入参数")
public class StepControlVO {
@ApiModelProperty(value = "路口编号", notes = "路口编号")
@NotBlank(message = "路口编号不能为空")
private String code;
@ApiModelProperty(value = "1 开始步进 0 取消步进", notes = "1 开始步进 0 取消步进")
private int stepNum;
@ApiModelProperty(value = "0 顺序步进 n 跳过n个相位", notes = "0 顺序步进 n 跳过n个相位")
private Integer command;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment