提交 2c67a6b2 编写于 作者: yubinCloud's avatar yubinCloud

6-11 集成 Validation 参数校验功能,并完成对ebook查询的参数校验

上级 632d5ea1
......@@ -74,6 +74,11 @@
<version>1.2.13</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
......
package io.github.yubincloud.fairywiki.controller;
import io.github.yubincloud.fairywiki.dto.resp.ErrorCode;
import io.github.yubincloud.fairywiki.dto.resp.RestfulModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.validation.BindException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
@ControllerAdvice
public class ControllerExceptionHandler {
private static final Logger LOG = LoggerFactory.getLogger(ControllerExceptionHandler.class);
/**
* 统一处理参数校验异常
* @param e 捕捉到的异常
*/
@ExceptionHandler(value = BindException.class)
@ResponseBody
public RestfulModel<Object> validExceptionHandler(BindException e) {
String exceptionMsg = e.getBindingResult().getAllErrors().get(0).getDefaultMessage();
LOG.warn("参数校验失败:{}", exceptionMsg);
return new RestfulModel<>(ErrorCode.ARGS_VALIDATION_ERROR, exceptionMsg, null);
}
}
......@@ -11,6 +11,7 @@ import io.github.yubincloud.fairywiki.service.EbookService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;
@RestController
......@@ -24,7 +25,7 @@ public class EbookController {
* 获取全部的电子书信息
*/
@GetMapping("/list")
public RestfulModel<PageRespDto<EbookQueryRespDto>> getAllEbook(PageReqDto pageReqDto) {
public RestfulModel<PageRespDto<EbookQueryRespDto>> getAllEbook(@Valid PageReqDto pageReqDto) {
PageRespDto<EbookQueryRespDto> bookList = ebookService.queryAll(pageReqDto.getPageNum(), pageReqDto.getPageSize());
return new RestfulModel<>(ErrorCode.SUCCESS, "", bookList);
}
......
......@@ -2,13 +2,19 @@ package io.github.yubincloud.fairywiki.dto.req;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull;
/**
* 当需要对数据库的查询进行分页时需要继承此 Req 类
*/
@Data
public class PageReqDto {
@NotNull(message = "【页码】不能为空")
private int pageNum;
@NotNull(message = "【每页条数】不能为空")
@Max(value = 1000, message = "【每页条数】不能超过1000")
private int pageSize;
}
......@@ -4,4 +4,5 @@ public class ErrorCode {
public static final int SUCCESS = 0;
public static final int ARGS_VALIDATION_ERROR = -1000;
}
......@@ -67,6 +67,7 @@
<script lang="ts">
import { defineComponent, onMounted, ref } from 'vue';
import axios from 'axios';
import { message } from 'ant-design-vue'
export default defineComponent({
name: 'AdminEbook',
......@@ -74,7 +75,7 @@ export default defineComponent({
const ebooks = ref();
const pagination = ref({
current: 1,
pageSize: 4,
pageSize: 5000,
total: 0
});
const loading = ref(false);
......@@ -130,12 +131,17 @@ export default defineComponent({
}).then((response) => {
loading.value = false;
const respData = response.data;
const pageData = respData.data;
ebooks.value = pageData.list;
// 重置分页按钮
pagination.value.current = queryParams.pageNum;
pagination.value.total = pageData.total;
if (respData.code == 0) {
const pageData = respData.data;
ebooks.value = pageData.list;
// 重置分页按钮
pagination.value.current = queryParams.pageNum;
pagination.value.total = pageData.total;
} else {
message.error(respData.msg);
}
});
};
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册