Prechádzať zdrojové kódy

feat:修改接口参数校验机制

liuchuanwei 1 mesiac pred
rodič
commit
ac6a78ad35

+ 6 - 1
pom.xml

@@ -45,9 +45,14 @@
         </dependency>
         <!-- 请求参数校验 -->
         <dependency>
+            <groupId>javax.validation</groupId>
+            <artifactId>validation-api</artifactId>
+            <version>2.0.1.Final</version>
+        </dependency>
+        <dependency>
             <groupId>org.hibernate</groupId>
             <artifactId>hibernate-validator</artifactId>
-            <version>6.0.1.Final</version>
+            <version>6.2.5.Final</version>
         </dependency>
 
         <dependency>

+ 4 - 2
src/main/java/com/anyway/favor/controller/FavorController.java

@@ -3,6 +3,7 @@ package com.anyway.favor.controller;
 import com.anyway.favor.model.Favor;
 import com.anyway.favor.model.User;
 import com.anyway.favor.model.dto.FavorDto;
+import com.anyway.favor.model.enums.Update;
 import com.anyway.favor.service.FavorService;
 import com.anyway.util.PageQuery;
 import com.anyway.util.R;
@@ -11,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.groups.Default;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -34,7 +36,7 @@ public class FavorController {
      * @return
      */
     @PostMapping("/add")
-    public R<Boolean> add(@RequestBody @Validated FavorDto favorAddDto) {
+    public R<Void> add(@Validated @RequestBody FavorDto favorAddDto) {
         User currentUser = SessionUtils.currentUser();
         favorAddDto.setCreateBy(currentUser.getId());
         return favorService.add(favorAddDto) ? R.ok() : R.fail("新增失败");
@@ -47,7 +49,7 @@ public class FavorController {
      * @return
      */
     @PostMapping("/update")
-    public R<Boolean> update(@RequestBody @Validated FavorDto favorAddDto) {
+    public R<Void> update(@Validated({Update.class, Default.class }) @RequestBody FavorDto favorAddDto) {
         if (favorAddDto.getId() == null) {
             return R.fail("人情事件ID不能为空");
         }

+ 9 - 7
src/main/java/com/anyway/favor/model/Favor.java

@@ -1,5 +1,6 @@
 package com.anyway.favor.model;
 
+import com.anyway.favor.model.enums.Update;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Getter;
 import lombok.Setter;
@@ -13,7 +14,7 @@ import java.util.Date;
 
 /**
  * 人情实体类
- * 
+ *
  * @author anyway
  * @date 2024-02-20
  */
@@ -23,24 +24,25 @@ public class Favor extends BaseModel implements java.io.Serializable {
     /** 版本号 */
     private static final long serialVersionUID = 666680999611094083L;
     /** id */
+    @NotNull(message = "事件id不能为空", groups = {Update.class})
     private Long id;
     /** 举办日期 */
-    @NotNull
+    @NotNull(message = "举办日期不能为空")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date holdDate;
     /** 标题 */
-    @NotBlank
+    @NotBlank(message = "事件标题不能为空")
     private String title;
     /** 举办人 */
-    @NotNull
+    @NotNull(message = "举办人不能为空")
     private Long holdPersonId;
     /** 收入金额 */
-    @Min(0)
+    @Min(value = 0, message = "收入金额不能小于0")
     private BigDecimal incomeAmount;
     /** 支出金额 */
-    @Min(0)
+    @Min(value = 0, message = "支出金额不能小于0")
     private BigDecimal payAmount;
     /** 备注 */
     private String remark;
-}
+}

+ 2 - 3
src/main/java/com/anyway/favor/model/FavorItem.java

@@ -21,15 +21,14 @@ public class FavorItem extends BaseModel implements java.io.Serializable {
     /** 事件ID */
     private Long favorId;
     /** 收礼人ID */
-    @NotNull
+    @NotNull(message = "收礼人不能为空")
     private Long receivePersonId;
     /** 回赠礼物ID */
     private Long returnGiftId;
     /** 送礼人ID */
-    @NotNull
+    @NotNull(message = "送礼人不能为空")
     private Long givePersonId;
     /** 赠送礼物ID */
-    @NotNull
     private Long giveGiftId;
     /** 备注 */
     private String remark;

+ 4 - 2
src/main/java/com/anyway/favor/model/Gift.java

@@ -3,11 +3,12 @@ package com.anyway.favor.model;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
 import java.math.BigDecimal;
 
 /**
  * 礼物实体类
- * 
+ *
  * @author anyway
  * @date 2024-06-29
  */
@@ -20,10 +21,11 @@ public class Gift extends BaseModel implements java.io.Serializable {
      */
     private Long id;
     /** 礼物名称 */
+    @NotBlank(message = "礼物名称不能为空")
     private String title;
     /** 类型,M钱,T物,O其他 */
     private String type;
     /** 价值 */
     private BigDecimal amount;
 
-}
+}

+ 7 - 3
src/main/java/com/anyway/favor/model/dto/FavorDto.java

@@ -2,10 +2,12 @@ package com.anyway.favor.model.dto;
 
 import com.anyway.favor.model.Favor;
 import com.anyway.favor.model.FavorItem;
-import lombok.Data;
+import lombok.Getter;
 import lombok.NoArgsConstructor;
+import lombok.Setter;
 import org.springframework.beans.BeanUtils;
 
+import javax.validation.Valid;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -16,7 +18,8 @@ import java.util.List;
  * @date 2024-06-29
  */
 @NoArgsConstructor
-@Data
+@Setter
+@Getter
 public class FavorDto extends Favor {
 
     public FavorDto(Favor favor) {
@@ -24,7 +27,8 @@ public class FavorDto extends Favor {
     }
 
     /** 人情明细 */
-    List<FavorItemDto> favorItemList;
+    @Valid
+    private List<FavorItemDto> favorItemList;
     /**
      * 初始化人情明细
      * @param favorItemList

+ 7 - 3
src/main/java/com/anyway/favor/model/dto/FavorItemDto.java

@@ -2,11 +2,13 @@ package com.anyway.favor.model.dto;
 
 import com.anyway.favor.model.FavorItem;
 import com.anyway.favor.model.Gift;
-import com.anyway.favor.model.Person;
-import lombok.Data;
+import lombok.Getter;
 import lombok.NoArgsConstructor;
+import lombok.Setter;
 import org.springframework.beans.BeanUtils;
 
+import javax.validation.constraints.NotNull;
+
 /**
  * 人情新增对象
  *
@@ -14,11 +16,13 @@ import org.springframework.beans.BeanUtils;
  * @date 2024-06-29
  */
 @NoArgsConstructor
-@Data
+@Getter
+@Setter
 public class FavorItemDto extends FavorItem{
     /** 回赠礼物 */
     private Gift returnGift;
     /** 赠送礼物 */
+    @NotNull(message = "赠送礼物不能为空")
     private Gift giveGift;
 
     public FavorItemDto(FavorItem favorItem) {

+ 4 - 0
src/main/java/com/anyway/favor/model/enums/Add.java

@@ -0,0 +1,4 @@
+package com.anyway.favor.model.enums;
+
+public interface Add {
+}

+ 4 - 0
src/main/java/com/anyway/favor/model/enums/Update.java

@@ -0,0 +1,4 @@
+package com.anyway.favor.model.enums;
+
+public interface Update {
+}