浏览代码

新增商品空格校验

donglang 2 月之前
父节点
当前提交
0950625635

+ 6 - 1
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/KwpGoods.java

@@ -103,6 +103,11 @@ public class KwpGoods extends BaseModel implements Serializable {
      */
     private BigDecimal performedAmount;
 
+    /**
+     * 备注
+     */
+    private String remark;
+
     /**
      * 缩略图
      */
@@ -110,7 +115,7 @@ public class KwpGoods extends BaseModel implements Serializable {
 
 
     /**
-     * 缩略图
+     * 是否删除
      */
     private Integer delFlag;
 

+ 14 - 5
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/AddGoodsParam.java

@@ -2,10 +2,7 @@ package com.sckw.product.model.vo.req;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.Valid;
-import jakarta.validation.constraints.DecimalMin;
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
+import jakarta.validation.constraints.*;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
@@ -29,6 +26,7 @@ public class AddGoodsParam {
     @Schema(description = "商品名称")
     @NotBlank(message = "商品名称不能为空")
     @Length(max = 50, message = "商品名称最多支持50字")
+    @Pattern(regexp = "^[^\\s]*$", message = "商品名称不允许包含空格!")
     private String name;
 
     /**
@@ -50,6 +48,7 @@ public class AddGoodsParam {
      */
     @Schema(description = "规格尺寸")
     @Length(max = 20, message = "规格尺寸最多支持20字")
+    @Pattern(regexp = "^[^\\s]*$", message = "规格尺寸不允许包含空格!")
     private String spec;
 
     /**
@@ -71,6 +70,7 @@ public class AddGoodsParam {
      * 商品编码
      */
     @Schema(description = "商品编码")
+    @Pattern(regexp = "^[^\\s]*$", message = "商品编码不允许包含空格!")
     private String code;
 
     /**
@@ -89,7 +89,8 @@ public class AddGoodsParam {
      * 参考价格(元)
      */
     @Schema(description = "参考价格(元)")
-    @DecimalMin(value = "0.01", message = "参考价格必须大于零")
+    @Positive(message = "金额必须大于0!")
+    @Digits(integer = 9, fraction = 5, message = "金额最多9位整数和5位小数!")
     private BigDecimal price;
 
     /**
@@ -114,6 +115,14 @@ public class AddGoodsParam {
     @NotNull(message = "客户经理不能为空")
     private Long manager;
 
+    /**
+     * 备注
+     */
+    @Schema(description = "备注")
+    @Length(max = 200, message = "备注最多支持200字")
+    @Pattern(regexp = "^[^\\s]*$", message = "备注不允许包含空格!")
+    private String remark;
+
     /**
      * 商品缩略图
      */

+ 3 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/GoodsAttributes.java

@@ -1,6 +1,7 @@
 package com.sckw.product.model.vo.req;
 
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.Pattern;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
@@ -21,6 +22,7 @@ public class GoodsAttributes {
      */
     @Schema(description = "供应商企业id")
     @Length(max = 10,message = "参数名称最长10字符")
+    @Pattern(regexp = "^[^\\s]*$", message = "商品名称不允许包含空格!")
     private String name;
 
     /**
@@ -28,5 +30,6 @@ public class GoodsAttributes {
      */
     @Schema(description = "供应商企业id")
     @Length(max = 20,message = "参数值最长20字符")
+    @Pattern(regexp = "^[^\\s]*$", message = "商品名称不允许包含空格!")
     private String val;
 }

+ 2 - 2
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/GoodsImages.java

@@ -21,14 +21,14 @@ public class GoodsImages {
     /**
      * 图片地址
      */
-    @Schema(description = "供应商企业id")
+    @Schema(description = "图片地址")
     @NotBlank(message = "图片地址不能为空")
     private String image;
 
     /**
      * 图片排序
      */
-    @Schema(description = "供应商企业id")
+    @Schema(description = "图片排序")
     @NotNull(message = "图片排序不能为空")
     private Integer sort;
 }

+ 7 - 3
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/GoodsUnitParam.java

@@ -1,6 +1,8 @@
 package com.sckw.product.model.vo.req;
 
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.Digits;
+import jakarta.validation.constraints.Positive;
 import lombok.Data;
 
 import java.io.Serial;
@@ -20,18 +22,20 @@ public class GoodsUnitParam implements Serializable {
     /**
      * 被转换单位
      */
-    @Schema(description = "供应商企业id")
+    @Schema(description = "被转换单位")
     private String fromUnit;
 
     /**
      * 转换目标单位
      */
-    @Schema(description = "供应商企业id")
+    @Schema(description = "转换目标单位")
     private String toUnit;
 
     /**
      * 换算值
      */
-    @Schema(description = "供应商企业id")
+    @Schema(description = "换算值")
+    @Positive(message = "金额必须大于0!")
+    @Digits(integer = 9, fraction = 5, message = "金额最多9位整数和5位小数!")
     private Double conversionValue;
 }

+ 25 - 5
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/UpdateGoodsParam.java

@@ -2,10 +2,7 @@ package com.sckw.product.model.vo.req;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.Valid;
-import jakarta.validation.constraints.DecimalMin;
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
+import jakarta.validation.constraints.*;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
@@ -28,35 +25,43 @@ public class UpdateGoodsParam {
     /**
      * 商品id
      */
+    @Schema(description = "商品id")
     @NotNull(message = "商品id不能为空")
     private Long id;
 
     /**
      * 商品名称
      */
+    @Schema(description = "商品名称")
     @Length(max = 50, message = "商品名称最多支持50字")
+    @Pattern(regexp = "^[^\\s]*$", message = "商品名称不允许包含空格!")
     @NotBlank(message = "商品名称不能为空")
     private String name;
 
     /**
      * 商品类型
      */
+    @Schema(description = "商品类型")
     private String goodsType;
 
     /**
      * 单位(吨、方、件、箱、其他)
      */
+    @Schema(description = "单位")
     private String unit;
 
     /**
      * 规格尺寸
      */
+    @Schema(description = "规格尺寸")
     @Length(max = 20, message = "规格尺寸最多支持20字")
+    @Pattern(regexp = "^[^\\s]*$", message = "规格尺寸不允许包含空格!")
     private String spec;
 
     /**
      * 参数目录
      */
+    @Schema(description = "参数目录")
     @Size(max = 10, message = "参数目录最多支持10个")
     @Valid
     private List<GoodsAttributes> attributes;
@@ -65,6 +70,7 @@ public class UpdateGoodsParam {
      * 商品编码
      */
     @Schema(description = "商品编码")
+    @Pattern(regexp = "^[^\\s]*$", message = "商品编码不允许包含空格!")
     private String code;
 
     /**
@@ -83,40 +89,54 @@ public class UpdateGoodsParam {
      * 参考价格(元)
      */
     @Schema(description = "参考价格(元)")
-    @DecimalMin(value = "0.01", message = "参考价格必须大于零")
+    @Positive(message = "金额必须大于0!")
+    @Digits(integer = 9, fraction = 5, message = "金额最多9位整数和5位小数!")
     private BigDecimal price;
 
     /**
      * 供应企业
      */
+    @Schema(description = "供应企业")
     @NotNull(message = "供应企业不能为空")
     private Long supplyEntId;
 
     /**
      * 地址信息
      */
+    @Schema(description = "地址信息")
     private AddressInfo addressInfo;
 
     /**
      * 专属客户经理(用户ID)
      */
+    @Schema(description = "专属客户经理")
     private Long manager;
 
+    /**
+     * 备注
+     */
+    @Schema(description = "备注")
+    @Length(max = 200, message = "备注最多支持200字")
+    @Pattern(regexp = "^[^\\s]*$", message = "备注不允许包含空格!")
+    private String remark;
 
     /**
      * 商品缩略图
      */
+    @Schema(description = "商品缩略图")
     private String thumb;
 
     /**
      * 商品详情图片
      */
+    @Schema(description = "商品详情图片")
     @Size(max = 5, message = "商品详情图片最多支持5张")
     private List<GoodsImages> images;
 
     /**
      * 辅助单位
      */
+    @Schema(description = "辅助单位")
     private List<GoodsUnitParam> assistUnit;
 
 }

+ 5 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/res/GoodsDetail.java

@@ -173,6 +173,11 @@ public class GoodsDetail {
     @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date shelfTime;
 
+    /**
+     * 备注
+     */
+    private String remark;
+
     /**
      * 状态:0草稿/1上架/2下架
      */

+ 3 - 13
sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java

@@ -385,6 +385,7 @@ public class KwpGoodsService {
                 .set(KwpGoods::getCarAxis, param.getCarAxis())
                 .set(KwpGoods::getContent, param.getContent())
                 .set(KwpGoods::getSupplyEntId, param.getSupplyEntId())
+                .set(KwpGoods::getRemark, param.getRemark())
                 .set(KwpGoods::getThumb, FileUtils.replaceAll(param.getThumb()))
                 .set(KwpGoods::getAreaCode, areaCode)
                 .set(KwpGoods::getAddressName, addressName)
@@ -494,10 +495,6 @@ public class KwpGoodsService {
                 }
             }
         }
-        BigDecimal price = param.getPrice();
-        if (price == null) {
-            return "价格不能为空!";
-        }
 
         AddressInfo address = param.getAddressInfo();
         if (Objects.isNull(address)) {
@@ -650,15 +647,8 @@ public class KwpGoodsService {
             }
             String keywords = params.getKeywords();
             if (StringUtils.isNotBlank(keywords)) {
-                //模糊匹配商品名称、仓储地址、客户经理
-                List<KwsUserResDto> managers = remoteUserService.getUserByName(keywords);
-                if (CollectionUtils.isEmpty(managers)) {
-                    wrapper.and(e -> e.like(KwpGoods::getName, keywords).or().like(KwpGoods::getAddressName, keywords));
-                } else {
-                    List<Long> managerIds = managers.stream().map(KwsUserResDto::getId).toList();
-                    wrapper.and(e -> e.like(KwpGoods::getName, keywords).or().like(KwpGoods::getAddressName, keywords)
-                            .or().in(KwpGoods::getManager, managerIds));
-                }
+                //模糊匹配商品名称、仓储地址
+                wrapper.and(e -> e.like(KwpGoods::getName, keywords.trim()).or().like(KwpGoods::getAddressName, keywords.trim()));
             }
         }
         wrapper.eq(KwpGoods::getEntId, LoginUserHolder.getEntId()).eq(KwpGoods::getDelFlag, Global.NO).orderByDesc(KwpGoods::getCreateTime);