yinhao преди 4 години
родител
ревизия
cf882ceae7

+ 2 - 1
huimv-smart-apiservice/src/main/java/com/huimv/apiservice/controller/PigController.java

@@ -5,6 +5,7 @@ import com.huimv.apiservice.limit.annotation.Limit;
 import com.huimv.apiservice.service.PigService;
 import com.huimv.common.utils.PageUtils;
 import com.huimv.common.utils.R;
+import com.huimv.common.validate.ListValue;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -109,7 +110,7 @@ public class PigController {
     @GetMapping("/outFence")
     public R outFence(@RequestParam(value = "accessToken", required = false) String accessToken,
                       @RequestParam("pigEarTagNo") @NotBlank(message = "耳标号不能为空!") String pigEarTagNo,
-                      @RequestParam("status") Integer status) {
+                      @ListValue(vals = {1,2,3}) @RequestParam("status") Integer status) {
         pigService.outFence(pigEarTagNo,status);
         return Objects.requireNonNull(R.ok().put("code", 1000)).put("msg", "更新出栏状态成功!");
     }

+ 2 - 0
huimv-smart-apiservice/src/main/java/com/huimv/apiservice/service/impl/PigServiceImpl.java

@@ -283,6 +283,8 @@ public class PigServiceImpl extends ServiceImpl<PigDao, YearPigBaseEntity> imple
 
         LambdaUpdateWrapper<YearPigBaseEntity> pigBaseLambdaUpdate = Wrappers.lambdaUpdate();
         pigBaseLambdaUpdate.eq(YearPigBaseEntity::getEartag, pigEarTagNo)
+                .set(YearPigBaseEntity::getDeleted,true)
+                .set(YearPigBaseEntity::getFosterStatus,false)
                 .set(YearPigBaseEntity::getOutFenceStatus, status);
 
         update(pigBaseLambdaUpdate);

+ 23 - 5
huimv-smart-common/src/main/java/com/huimv/common/validate/ListValue.java

@@ -1,13 +1,31 @@
 package com.huimv.common.validate;
 
+import javax.validation.Constraint;
+import javax.validation.Payload;
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.*;
+import static java.lang.annotation.ElementType.TYPE_USE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
 /**
- * <p>
- *
- * </p>
+ * 自定义校验注解
  *
  * @author yinhao
- * @date 2021/5/14 16:28
+ * @date 2021/5/15 16:00
  */
+@Documented
+@Constraint(validatedBy = { ListValueConstraintValidator.class })
+@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
+@Retention(RUNTIME)
+public @interface ListValue {
+    String message() default "出栏状态必须是1(正常出栏) or 2(弃养出栏) or 3(死亡出栏)";
+
+    Class<?>[] groups() default { };
+
+    Class<? extends Payload>[] payload() default { };
 
-public class ListValue {
+    int[] vals() default { };
 }

+ 39 - 0
huimv-smart-common/src/main/java/com/huimv/common/validate/ListValueConstraintValidator.java

@@ -0,0 +1,39 @@
+package com.huimv.common.validate;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author yinhao
+ * @date 2021/5/15 16:02
+ */
+public class ListValueConstraintValidator implements ConstraintValidator<ListValue,Integer> {
+
+    private Set<Integer> set = new HashSet<>();
+    //初始化方法
+    @Override
+    public void initialize(ListValue constraintAnnotation) {
+
+        int[] vals = constraintAnnotation.vals();
+        for (int val : vals) {
+            set.add(val);
+        }
+
+    }
+
+    //判断是否校验成功
+
+    /**
+     *
+     * @param value 需要校验的值
+     * @param context
+     * @return
+     */
+    @Override
+    public boolean isValid(Integer value, ConstraintValidatorContext context) {
+
+        return set.contains(value);
+    }
+}