Commit 2d01fde0 authored by daniel's avatar daniel

feat(bag+ex): bag查询优化+验证异常处理

parent 3bc40b42
package com.dlbridge.jadp.config.web; package com.dlbridge.jadp.config.web;
import com.dlbridge.jadp.common.web.ResultBean; import com.dlbridge.jadp.common.web.ResultBean;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.annotation.Order; import org.springframework.core.annotation.Order;
import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.multipart.MaxUploadSizeExceededException;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Objects; import java.util.Objects;
@Order(1) // 优先级最高 @Log4j2
@Order(0)
@RestControllerAdvice @RestControllerAdvice
public class GlobalExceptionHandler { public class GlobalExceptionHandler {
@Value("${spring.servlet.multipart.max-file-size}")
private String maxFileSize;
@ExceptionHandler(MethodArgumentNotValidException.class) @ExceptionHandler(MethodArgumentNotValidException.class)
public ResultBean<?> handleValidException(MethodArgumentNotValidException e) { public ResultBean<?> handleMethodArgumentNotValid(MethodArgumentNotValidException e) {
String msg = Objects.requireNonNull(e.getBindingResult() String msg = Objects.requireNonNull(
.getFieldError()) e.getBindingResult().getFieldError()
.getDefaultMessage(); ).getDefaultMessage();
return ResultBean.fail(msg); return ResultBean.fail(msg);
} }
@ResponseBody
@ExceptionHandler(value = Exception.class)
public ResultBean<?> errorHandler(Exception ex) {
log.info("exception from GlobalExceptionHandler : {} {}",ex.getClass(),ex.getMessage());
return ResultBean.fail(ex.getMessage());
}
@ResponseBody
@ExceptionHandler(MaxUploadSizeExceededException.class)
public ResultBean<?> handleMaxUploadSizeExceeded(MaxUploadSizeExceededException ex,
HttpServletResponse response) throws IOException {
log.error("文件上传大小超出限制: {}", ex.getMessage());
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
return ResultBean.fail("文件大小超出限制,最大允许: "+maxFileSize);
}
} }
package com.dlbridge.jadp.plugins.cmpt.web;
import com.neusoft.www.utils.web.Result;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.annotation.Order;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MaxUploadSizeExceededException;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@ControllerAdvice
@Order(0)
@Log4j2
public class ExceptionController {
@Value("${spring.servlet.multipart.max-file-size}")
private String maxFileSize;
@ResponseBody
@ExceptionHandler(value = Exception.class)
public Result<?> errorHandler(Exception ex) {
log.info("exception from global exceptionController : "+ ex.getMessage(),ex);
return Result.fail().setMsg(ex.getMessage());
}
@ResponseBody
@ExceptionHandler(MaxUploadSizeExceededException.class)
public Result<?> handleMaxUploadSizeExceeded(MaxUploadSizeExceededException ex,
HttpServletResponse response) throws IOException {
log.error("文件上传大小超出限制: {}", ex.getMessage());
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
return Result.fail().setMsg("文件大小超出限制,最大允许: "+maxFileSize);
}
}
...@@ -16,6 +16,7 @@ import io.swagger.annotations.Api; ...@@ -16,6 +16,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
...@@ -73,21 +74,12 @@ public class BagDeliveryController { ...@@ -73,21 +74,12 @@ public class BagDeliveryController {
* @return 赛包邮寄申请详情 * @return 赛包邮寄申请详情
*/ */
@PostMapping("/query") @PostMapping("/query")
@ApiOperation("查询赛包申请详情") @ApiOperation("查询选手寄存包详情")
public ResultBean<BagDelivery> queryBagDeliveryByParam(@RequestBody BagDeliveryParam bagDeliveryParam) { public ResultBean<BagDelivery> queryBagDeliveryByParam(@Validated @RequestBody BagDeliveryParam bagDeliveryParam) {
// 判断是否为空
if (bagDeliveryParam.getCmptId() == null) {
return ResultBean.fail("查询参数不能为空");
}
// 判断是否为空
if (bagDeliveryParam.getServiceType() == null) {
return ResultBean.fail("查询参数不能为空");
}
// 判断是否为空
if (bagDeliveryParam.getMarkNo() == null) {
return ResultBean.fail("查询参数不能为空");
}
BagDelivery bagDelivery = bagDeliveryService.queryBagDeliveryByParam(bagDeliveryParam); BagDelivery bagDelivery = bagDeliveryService.queryBagDeliveryByParam(bagDeliveryParam);
if(bagDelivery == null) {
return ResultBean.fail("赛包寄存不存在");
}
return ResultBean.success(bagDelivery); return ResultBean.success(bagDelivery);
} }
......
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