Browse Source

提交上传供应商和生产地时获取高德地图的经纬度

qiubo 4 years ago
parent
commit
ee87cff3b4
37 changed files with 2270 additions and 1303 deletions
  1. 76 77
      forest-admin/admin-mbg/src/main/java/com/hwrj/cloud/admin/model/PmsProduct.java
  2. 982 982
      forest-admin/admin-mbg/src/main/java/com/hwrj/cloud/admin/model/PmsProductExample.java
  3. 127 127
      forest-admin/admin-mbg/src/main/resources/com/hwrj/cloud/admin/mapper/PmsProductMapper.xml
  4. 1 1
      forest-admin/admin-mbg/src/main/resources/generatorConfig.xml
  5. 4 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsCompanyController.java
  6. 69 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsCompanyShareController.java
  7. 1 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/service/UmsCompanyService.java
  8. 41 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/service/UmsCompanyShareService.java
  9. 8 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/service/impl/UmsCompanyInfoServiceImpl.java
  10. 86 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/service/impl/UmsCompanyShareServiceImpl.java
  11. 12 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/util/CurrUserUtil.java
  12. 2 2
      forest-admin/admin-server/src/main/resources/bootstrap.yml
  13. 83 0
      forest-common/src/main/java/com/hwrj/cloud/common/util/ShareCodeUtil.java
  14. 22 0
      forest-portal/portal-common/src/main/java/com/hwrj/cloud/portal/model/CmsPrefrenceAreaProductRelationInput.java
  15. 26 0
      forest-portal/portal-common/src/main/java/com/hwrj/cloud/portal/model/CmsSubjectProductRelationInput.java
  16. 1 1
      forest-portal/portal-mbg/src/main/resources/generator.properties
  17. 1 1
      forest-portal/portal-mbg/src/main/resources/generatorConfig.xml
  18. 73 0
      forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/controller/PortalProductPublishController.java
  19. 18 0
      forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/dao/PmsMemberPriceDao.java
  20. 18 0
      forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/dao/PmsProductAttributeValueDao.java
  21. 17 0
      forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/dao/PmsProductFullReductionDao.java
  22. 17 0
      forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/dao/PmsProductLadderDao.java
  23. 17 0
      forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/dao/PmsProductVertifyRecordDao.java
  24. 23 0
      forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/dao/PmsSkuStockDao.java
  25. 34 0
      forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/domain/PmsProductVo.java
  26. 38 0
      forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/service/PortalProductPulishService.java
  27. 273 0
      forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/service/impl/PortalProductPulishServiceImpl.java
  28. 62 23
      forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/service/impl/UmsMemberPlatformServiceImpl.java
  29. 14 0
      forest-portal/portal-server/src/main/resources/dao/PmsMemberPriceDao.xml
  30. 12 0
      forest-portal/portal-server/src/main/resources/dao/PmsProductAttributeValueDao.xml
  31. 12 0
      forest-portal/portal-server/src/main/resources/dao/PmsProductFullReductionDao.xml
  32. 13 0
      forest-portal/portal-server/src/main/resources/dao/PmsProductLadderDao.xml
  33. 15 0
      forest-portal/portal-server/src/main/resources/dao/PmsProductVertifyRecordDao.xml
  34. 31 0
      forest-portal/portal-server/src/main/resources/dao/PmsSkuStockDao.xml
  35. 12 33
      nacos/data/config-data/DEFAULT_GROUP/forest-admin
  36. 5 10
      nacos/data/config-data/DEFAULT_GROUP/forest-gateway
  37. 24 46
      nacos/data/config-data/DEFAULT_GROUP/forest-portal

+ 76 - 77
forest-admin/admin-mbg/src/main/java/com/hwrj/cloud/admin/model/PmsProduct.java

@@ -1,7 +1,5 @@
 package com.hwrj.cloud.admin.model;
 
-
-import javax.validation.constraints.NotNull;
 import io.swagger.annotations.ApiModelProperty;
 import java.io.Serializable;
 import java.math.BigDecimal;
@@ -12,13 +10,16 @@ public class PmsProduct implements Serializable {
 
     @ApiModelProperty(value = "品牌id")
     private Long brandId;
-    @NotNull(message="产品大类id不能为空")
+
+    @ApiModelProperty(value = "品牌名称")
+    private String brandName;
+
     @ApiModelProperty(value = "产品大类标识")
     private Long productBigCategoryId;
 
     @ApiModelProperty(value = "产品大类类别名称")
     private String productBigCategoryName;
-    @NotNull(message="产品小类id不能为空")
+
     @ApiModelProperty(value = "产品类别标识")
     private Long productCategoryId;
 
@@ -31,10 +32,27 @@ public class PmsProduct implements Serializable {
     @ApiModelProperty(value = "产品属性类别标识")
     private Long productAttributeCategoryId;
 
+    @ApiModelProperty(value = "生产地id")
+    private Long placeOfProductionId;
+
+    @ApiModelProperty(value = "生产地")
+    private String placeOfProduction;
+
+    @ApiModelProperty(value = "供应商id")
+    private Long compId;
+
+    @ApiModelProperty(value = "供应商")
+    private String compName;
+
+    @ApiModelProperty(value = "商品名称")
     private String name;
 
+    @ApiModelProperty(value = "商品首图")
     private String pic;
 
+    @ApiModelProperty(value = "规格")
+    private String spec;
+
     @ApiModelProperty(value = "货号")
     private String productSn;
 
@@ -112,31 +130,12 @@ public class PmsProduct implements Serializable {
     @ApiModelProperty(value = "促销类型:0->没有促销使用原价;1->使用促销价;2->使用会员价;3->使用阶梯价格;4->使用满减价格;5->限时购")
     private Integer promotionType;
 
-    @ApiModelProperty(value = "品牌名称")
-    private String brandName;
-    @NotNull(message="供应商id不能为空")
-    @ApiModelProperty(value = "供应商id")
-    private Long compId;
-
-    @ApiModelProperty(value = "供应商")
-    private String compName;
-
     @ApiModelProperty(value = "批发价")
     private BigDecimal tradePrice;
 
-    @ApiModelProperty(value = "规格")
-    private String spec;
-
     @ApiModelProperty(value = "生产日期")
     private String dateOfManufacture;
 
-    @NotNull(message="供应商id不能为空")
-    @ApiModelProperty(value = "生产地id")
-    private Long placeOfProductionId;
-
-    @ApiModelProperty(value = "生产地")
-    private String placeOfProduction;
-
     @ApiModelProperty(value = "保质期")
     private String qualityGuaranteePeriod;
 
@@ -196,6 +195,14 @@ public class PmsProduct implements Serializable {
         this.brandId = brandId;
     }
 
+    public String getBrandName() {
+        return brandName;
+    }
+
+    public void setBrandName(String brandName) {
+        this.brandName = brandName;
+    }
+
     public Long getProductBigCategoryId() {
         return productBigCategoryId;
     }
@@ -244,6 +251,38 @@ public class PmsProduct implements Serializable {
         this.productAttributeCategoryId = productAttributeCategoryId;
     }
 
+    public Long getPlaceOfProductionId() {
+        return placeOfProductionId;
+    }
+
+    public void setPlaceOfProductionId(Long placeOfProductionId) {
+        this.placeOfProductionId = placeOfProductionId;
+    }
+
+    public String getPlaceOfProduction() {
+        return placeOfProduction;
+    }
+
+    public void setPlaceOfProduction(String placeOfProduction) {
+        this.placeOfProduction = placeOfProduction;
+    }
+
+    public Long getCompId() {
+        return compId;
+    }
+
+    public void setCompId(Long compId) {
+        this.compId = compId;
+    }
+
+    public String getCompName() {
+        return compName;
+    }
+
+    public void setCompName(String compName) {
+        this.compName = compName;
+    }
+
     public String getName() {
         return name;
     }
@@ -260,6 +299,14 @@ public class PmsProduct implements Serializable {
         this.pic = pic;
     }
 
+    public String getSpec() {
+        return spec;
+    }
+
+    public void setSpec(String spec) {
+        this.spec = spec;
+    }
+
     public String getProductSn() {
         return productSn;
     }
@@ -476,30 +523,6 @@ public class PmsProduct implements Serializable {
         this.promotionType = promotionType;
     }
 
-    public String getBrandName() {
-        return brandName;
-    }
-
-    public void setBrandName(String brandName) {
-        this.brandName = brandName;
-    }
-
-    public Long getCompId() {
-        return compId;
-    }
-
-    public void setCompId(Long compId) {
-        this.compId = compId;
-    }
-
-    public String getCompName() {
-        return compName;
-    }
-
-    public void setCompName(String compName) {
-        this.compName = compName;
-    }
-
     public BigDecimal getTradePrice() {
         return tradePrice;
     }
@@ -508,14 +531,6 @@ public class PmsProduct implements Serializable {
         this.tradePrice = tradePrice;
     }
 
-    public String getSpec() {
-        return spec;
-    }
-
-    public void setSpec(String spec) {
-        this.spec = spec;
-    }
-
     public String getDateOfManufacture() {
         return dateOfManufacture;
     }
@@ -524,22 +539,6 @@ public class PmsProduct implements Serializable {
         this.dateOfManufacture = dateOfManufacture;
     }
 
-    public Long getPlaceOfProductionId() {
-        return placeOfProductionId;
-    }
-
-    public void setPlaceOfProductionId(Long placeOfProductionId) {
-        this.placeOfProductionId = placeOfProductionId;
-    }
-
-    public String getPlaceOfProduction() {
-        return placeOfProduction;
-    }
-
-    public void setPlaceOfProduction(String placeOfProduction) {
-        this.placeOfProduction = placeOfProduction;
-    }
-
     public String getQualityGuaranteePeriod() {
         return qualityGuaranteePeriod;
     }
@@ -660,14 +659,20 @@ public class PmsProduct implements Serializable {
         sb.append("Hash = ").append(hashCode());
         sb.append(", id=").append(id);
         sb.append(", brandId=").append(brandId);
+        sb.append(", brandName=").append(brandName);
         sb.append(", productBigCategoryId=").append(productBigCategoryId);
         sb.append(", productBigCategoryName=").append(productBigCategoryName);
         sb.append(", productCategoryId=").append(productCategoryId);
         sb.append(", productCategoryName=").append(productCategoryName);
         sb.append(", feightTemplateId=").append(feightTemplateId);
         sb.append(", productAttributeCategoryId=").append(productAttributeCategoryId);
+        sb.append(", placeOfProductionId=").append(placeOfProductionId);
+        sb.append(", placeOfProduction=").append(placeOfProduction);
+        sb.append(", compId=").append(compId);
+        sb.append(", compName=").append(compName);
         sb.append(", name=").append(name);
         sb.append(", pic=").append(pic);
+        sb.append(", spec=").append(spec);
         sb.append(", productSn=").append(productSn);
         sb.append(", deleteStatus=").append(deleteStatus);
         sb.append(", publishStatus=").append(publishStatus);
@@ -695,14 +700,8 @@ public class PmsProduct implements Serializable {
         sb.append(", promotionEndTime=").append(promotionEndTime);
         sb.append(", promotionPerLimit=").append(promotionPerLimit);
         sb.append(", promotionType=").append(promotionType);
-        sb.append(", brandName=").append(brandName);
-        sb.append(", compId=").append(compId);
-        sb.append(", compName=").append(compName);
         sb.append(", tradePrice=").append(tradePrice);
-        sb.append(", spec=").append(spec);
         sb.append(", dateOfManufacture=").append(dateOfManufacture);
-        sb.append(", placeOfProductionId=").append(placeOfProductionId);
-        sb.append(", placeOfProduction=").append(placeOfProduction);
         sb.append(", qualityGuaranteePeriod=").append(qualityGuaranteePeriod);
         sb.append(", pointsForAttention=").append(pointsForAttention);
         sb.append(", createId=").append(createId);

+ 982 - 982
forest-admin/admin-mbg/src/main/java/com/hwrj/cloud/admin/model/PmsProductExample.java

@@ -226,6 +226,76 @@ public class PmsProductExample {
             return (Criteria) this;
         }
 
+        public Criteria andBrandNameIsNull() {
+            addCriterion("brand_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andBrandNameIsNotNull() {
+            addCriterion("brand_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andBrandNameEqualTo(String value) {
+            addCriterion("brand_name =", value, "brandName");
+            return (Criteria) this;
+        }
+
+        public Criteria andBrandNameNotEqualTo(String value) {
+            addCriterion("brand_name <>", value, "brandName");
+            return (Criteria) this;
+        }
+
+        public Criteria andBrandNameGreaterThan(String value) {
+            addCriterion("brand_name >", value, "brandName");
+            return (Criteria) this;
+        }
+
+        public Criteria andBrandNameGreaterThanOrEqualTo(String value) {
+            addCriterion("brand_name >=", value, "brandName");
+            return (Criteria) this;
+        }
+
+        public Criteria andBrandNameLessThan(String value) {
+            addCriterion("brand_name <", value, "brandName");
+            return (Criteria) this;
+        }
+
+        public Criteria andBrandNameLessThanOrEqualTo(String value) {
+            addCriterion("brand_name <=", value, "brandName");
+            return (Criteria) this;
+        }
+
+        public Criteria andBrandNameLike(String value) {
+            addCriterion("brand_name like", value, "brandName");
+            return (Criteria) this;
+        }
+
+        public Criteria andBrandNameNotLike(String value) {
+            addCriterion("brand_name not like", value, "brandName");
+            return (Criteria) this;
+        }
+
+        public Criteria andBrandNameIn(List<String> values) {
+            addCriterion("brand_name in", values, "brandName");
+            return (Criteria) this;
+        }
+
+        public Criteria andBrandNameNotIn(List<String> values) {
+            addCriterion("brand_name not in", values, "brandName");
+            return (Criteria) this;
+        }
+
+        public Criteria andBrandNameBetween(String value1, String value2) {
+            addCriterion("brand_name between", value1, value2, "brandName");
+            return (Criteria) this;
+        }
+
+        public Criteria andBrandNameNotBetween(String value1, String value2) {
+            addCriterion("brand_name not between", value1, value2, "brandName");
+            return (Criteria) this;
+        }
+
         public Criteria andProductBigCategoryIdIsNull() {
             addCriterion("product_big_category_id is null");
             return (Criteria) this;
@@ -606,2353 +676,2283 @@ public class PmsProductExample {
             return (Criteria) this;
         }
 
-        public Criteria andNameIsNull() {
-            addCriterion("name is null");
+        public Criteria andPlaceOfProductionIdIsNull() {
+            addCriterion("place_of_production_id is null");
             return (Criteria) this;
         }
 
-        public Criteria andNameIsNotNull() {
-            addCriterion("name is not null");
+        public Criteria andPlaceOfProductionIdIsNotNull() {
+            addCriterion("place_of_production_id is not null");
             return (Criteria) this;
         }
 
-        public Criteria andNameEqualTo(String value) {
-            addCriterion("name =", value, "name");
+        public Criteria andPlaceOfProductionIdEqualTo(Long value) {
+            addCriterion("place_of_production_id =", value, "placeOfProductionId");
             return (Criteria) this;
         }
 
-        public Criteria andNameNotEqualTo(String value) {
-            addCriterion("name <>", value, "name");
+        public Criteria andPlaceOfProductionIdNotEqualTo(Long value) {
+            addCriterion("place_of_production_id <>", value, "placeOfProductionId");
             return (Criteria) this;
         }
 
-        public Criteria andNameGreaterThan(String value) {
-            addCriterion("name >", value, "name");
+        public Criteria andPlaceOfProductionIdGreaterThan(Long value) {
+            addCriterion("place_of_production_id >", value, "placeOfProductionId");
             return (Criteria) this;
         }
 
-        public Criteria andNameGreaterThanOrEqualTo(String value) {
-            addCriterion("name >=", value, "name");
+        public Criteria andPlaceOfProductionIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("place_of_production_id >=", value, "placeOfProductionId");
             return (Criteria) this;
         }
 
-        public Criteria andNameLessThan(String value) {
-            addCriterion("name <", value, "name");
+        public Criteria andPlaceOfProductionIdLessThan(Long value) {
+            addCriterion("place_of_production_id <", value, "placeOfProductionId");
             return (Criteria) this;
         }
 
-        public Criteria andNameLessThanOrEqualTo(String value) {
-            addCriterion("name <=", value, "name");
+        public Criteria andPlaceOfProductionIdLessThanOrEqualTo(Long value) {
+            addCriterion("place_of_production_id <=", value, "placeOfProductionId");
             return (Criteria) this;
         }
 
-        public Criteria andNameLike(String value) {
-            addCriterion("name like", value, "name");
+        public Criteria andPlaceOfProductionIdIn(List<Long> values) {
+            addCriterion("place_of_production_id in", values, "placeOfProductionId");
             return (Criteria) this;
         }
 
-        public Criteria andNameNotLike(String value) {
-            addCriterion("name not like", value, "name");
+        public Criteria andPlaceOfProductionIdNotIn(List<Long> values) {
+            addCriterion("place_of_production_id not in", values, "placeOfProductionId");
             return (Criteria) this;
         }
 
-        public Criteria andNameIn(List<String> values) {
-            addCriterion("name in", values, "name");
+        public Criteria andPlaceOfProductionIdBetween(Long value1, Long value2) {
+            addCriterion("place_of_production_id between", value1, value2, "placeOfProductionId");
             return (Criteria) this;
         }
 
-        public Criteria andNameNotIn(List<String> values) {
-            addCriterion("name not in", values, "name");
+        public Criteria andPlaceOfProductionIdNotBetween(Long value1, Long value2) {
+            addCriterion("place_of_production_id not between", value1, value2, "placeOfProductionId");
             return (Criteria) this;
         }
 
-        public Criteria andNameBetween(String value1, String value2) {
-            addCriterion("name between", value1, value2, "name");
+        public Criteria andPlaceOfProductionIsNull() {
+            addCriterion("place_of_production is null");
             return (Criteria) this;
         }
 
-        public Criteria andNameNotBetween(String value1, String value2) {
-            addCriterion("name not between", value1, value2, "name");
+        public Criteria andPlaceOfProductionIsNotNull() {
+            addCriterion("place_of_production is not null");
             return (Criteria) this;
         }
 
-        public Criteria andPicIsNull() {
-            addCriterion("pic is null");
+        public Criteria andPlaceOfProductionEqualTo(String value) {
+            addCriterion("place_of_production =", value, "placeOfProduction");
             return (Criteria) this;
         }
 
-        public Criteria andPicIsNotNull() {
-            addCriterion("pic is not null");
+        public Criteria andPlaceOfProductionNotEqualTo(String value) {
+            addCriterion("place_of_production <>", value, "placeOfProduction");
             return (Criteria) this;
         }
 
-        public Criteria andPicEqualTo(String value) {
-            addCriterion("pic =", value, "pic");
+        public Criteria andPlaceOfProductionGreaterThan(String value) {
+            addCriterion("place_of_production >", value, "placeOfProduction");
             return (Criteria) this;
         }
 
-        public Criteria andPicNotEqualTo(String value) {
-            addCriterion("pic <>", value, "pic");
+        public Criteria andPlaceOfProductionGreaterThanOrEqualTo(String value) {
+            addCriterion("place_of_production >=", value, "placeOfProduction");
             return (Criteria) this;
         }
 
-        public Criteria andPicGreaterThan(String value) {
-            addCriterion("pic >", value, "pic");
+        public Criteria andPlaceOfProductionLessThan(String value) {
+            addCriterion("place_of_production <", value, "placeOfProduction");
             return (Criteria) this;
         }
 
-        public Criteria andPicGreaterThanOrEqualTo(String value) {
-            addCriterion("pic >=", value, "pic");
+        public Criteria andPlaceOfProductionLessThanOrEqualTo(String value) {
+            addCriterion("place_of_production <=", value, "placeOfProduction");
             return (Criteria) this;
         }
 
-        public Criteria andPicLessThan(String value) {
-            addCriterion("pic <", value, "pic");
+        public Criteria andPlaceOfProductionLike(String value) {
+            addCriterion("place_of_production like", value, "placeOfProduction");
             return (Criteria) this;
         }
 
-        public Criteria andPicLessThanOrEqualTo(String value) {
-            addCriterion("pic <=", value, "pic");
+        public Criteria andPlaceOfProductionNotLike(String value) {
+            addCriterion("place_of_production not like", value, "placeOfProduction");
             return (Criteria) this;
         }
 
-        public Criteria andPicLike(String value) {
-            addCriterion("pic like", value, "pic");
+        public Criteria andPlaceOfProductionIn(List<String> values) {
+            addCriterion("place_of_production in", values, "placeOfProduction");
             return (Criteria) this;
         }
 
-        public Criteria andPicNotLike(String value) {
-            addCriterion("pic not like", value, "pic");
+        public Criteria andPlaceOfProductionNotIn(List<String> values) {
+            addCriterion("place_of_production not in", values, "placeOfProduction");
             return (Criteria) this;
         }
 
-        public Criteria andPicIn(List<String> values) {
-            addCriterion("pic in", values, "pic");
+        public Criteria andPlaceOfProductionBetween(String value1, String value2) {
+            addCriterion("place_of_production between", value1, value2, "placeOfProduction");
             return (Criteria) this;
         }
 
-        public Criteria andPicNotIn(List<String> values) {
-            addCriterion("pic not in", values, "pic");
+        public Criteria andPlaceOfProductionNotBetween(String value1, String value2) {
+            addCriterion("place_of_production not between", value1, value2, "placeOfProduction");
             return (Criteria) this;
         }
 
-        public Criteria andPicBetween(String value1, String value2) {
-            addCriterion("pic between", value1, value2, "pic");
+        public Criteria andCompIdIsNull() {
+            addCriterion("comp_id is null");
             return (Criteria) this;
         }
 
-        public Criteria andPicNotBetween(String value1, String value2) {
-            addCriterion("pic not between", value1, value2, "pic");
+        public Criteria andCompIdIsNotNull() {
+            addCriterion("comp_id is not null");
             return (Criteria) this;
         }
 
-        public Criteria andProductSnIsNull() {
-            addCriterion("product_sn is null");
+        public Criteria andCompIdEqualTo(Long value) {
+            addCriterion("comp_id =", value, "compId");
             return (Criteria) this;
         }
 
-        public Criteria andProductSnIsNotNull() {
-            addCriterion("product_sn is not null");
+        public Criteria andCompIdNotEqualTo(Long value) {
+            addCriterion("comp_id <>", value, "compId");
             return (Criteria) this;
         }
 
-        public Criteria andProductSnEqualTo(String value) {
-            addCriterion("product_sn =", value, "productSn");
+        public Criteria andCompIdGreaterThan(Long value) {
+            addCriterion("comp_id >", value, "compId");
             return (Criteria) this;
         }
 
-        public Criteria andProductSnNotEqualTo(String value) {
-            addCriterion("product_sn <>", value, "productSn");
+        public Criteria andCompIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("comp_id >=", value, "compId");
             return (Criteria) this;
         }
 
-        public Criteria andProductSnGreaterThan(String value) {
-            addCriterion("product_sn >", value, "productSn");
+        public Criteria andCompIdLessThan(Long value) {
+            addCriterion("comp_id <", value, "compId");
             return (Criteria) this;
         }
 
-        public Criteria andProductSnGreaterThanOrEqualTo(String value) {
-            addCriterion("product_sn >=", value, "productSn");
+        public Criteria andCompIdLessThanOrEqualTo(Long value) {
+            addCriterion("comp_id <=", value, "compId");
             return (Criteria) this;
         }
 
-        public Criteria andProductSnLessThan(String value) {
-            addCriterion("product_sn <", value, "productSn");
+        public Criteria andCompIdIn(List<Long> values) {
+            addCriterion("comp_id in", values, "compId");
             return (Criteria) this;
         }
 
-        public Criteria andProductSnLessThanOrEqualTo(String value) {
-            addCriterion("product_sn <=", value, "productSn");
+        public Criteria andCompIdNotIn(List<Long> values) {
+            addCriterion("comp_id not in", values, "compId");
             return (Criteria) this;
         }
 
-        public Criteria andProductSnLike(String value) {
-            addCriterion("product_sn like", value, "productSn");
+        public Criteria andCompIdBetween(Long value1, Long value2) {
+            addCriterion("comp_id between", value1, value2, "compId");
             return (Criteria) this;
         }
 
-        public Criteria andProductSnNotLike(String value) {
-            addCriterion("product_sn not like", value, "productSn");
+        public Criteria andCompIdNotBetween(Long value1, Long value2) {
+            addCriterion("comp_id not between", value1, value2, "compId");
             return (Criteria) this;
         }
 
-        public Criteria andProductSnIn(List<String> values) {
-            addCriterion("product_sn in", values, "productSn");
+        public Criteria andCompNameIsNull() {
+            addCriterion("comp_name is null");
             return (Criteria) this;
         }
 
-        public Criteria andProductSnNotIn(List<String> values) {
-            addCriterion("product_sn not in", values, "productSn");
+        public Criteria andCompNameIsNotNull() {
+            addCriterion("comp_name is not null");
             return (Criteria) this;
         }
 
-        public Criteria andProductSnBetween(String value1, String value2) {
-            addCriterion("product_sn between", value1, value2, "productSn");
+        public Criteria andCompNameEqualTo(String value) {
+            addCriterion("comp_name =", value, "compName");
             return (Criteria) this;
         }
 
-        public Criteria andProductSnNotBetween(String value1, String value2) {
-            addCriterion("product_sn not between", value1, value2, "productSn");
+        public Criteria andCompNameNotEqualTo(String value) {
+            addCriterion("comp_name <>", value, "compName");
             return (Criteria) this;
         }
 
-        public Criteria andDeleteStatusIsNull() {
-            addCriterion("delete_status is null");
+        public Criteria andCompNameGreaterThan(String value) {
+            addCriterion("comp_name >", value, "compName");
             return (Criteria) this;
         }
 
-        public Criteria andDeleteStatusIsNotNull() {
-            addCriterion("delete_status is not null");
+        public Criteria andCompNameGreaterThanOrEqualTo(String value) {
+            addCriterion("comp_name >=", value, "compName");
             return (Criteria) this;
         }
 
-        public Criteria andDeleteStatusEqualTo(Integer value) {
-            addCriterion("delete_status =", value, "deleteStatus");
+        public Criteria andCompNameLessThan(String value) {
+            addCriterion("comp_name <", value, "compName");
             return (Criteria) this;
         }
 
-        public Criteria andDeleteStatusNotEqualTo(Integer value) {
-            addCriterion("delete_status <>", value, "deleteStatus");
+        public Criteria andCompNameLessThanOrEqualTo(String value) {
+            addCriterion("comp_name <=", value, "compName");
             return (Criteria) this;
         }
 
-        public Criteria andDeleteStatusGreaterThan(Integer value) {
-            addCriterion("delete_status >", value, "deleteStatus");
-            return (Criteria) this;
-        }
-
-        public Criteria andDeleteStatusGreaterThanOrEqualTo(Integer value) {
-            addCriterion("delete_status >=", value, "deleteStatus");
-            return (Criteria) this;
-        }
-
-        public Criteria andDeleteStatusLessThan(Integer value) {
-            addCriterion("delete_status <", value, "deleteStatus");
-            return (Criteria) this;
-        }
-
-        public Criteria andDeleteStatusLessThanOrEqualTo(Integer value) {
-            addCriterion("delete_status <=", value, "deleteStatus");
-            return (Criteria) this;
-        }
-
-        public Criteria andDeleteStatusIn(List<Integer> values) {
-            addCriterion("delete_status in", values, "deleteStatus");
-            return (Criteria) this;
-        }
-
-        public Criteria andDeleteStatusNotIn(List<Integer> values) {
-            addCriterion("delete_status not in", values, "deleteStatus");
-            return (Criteria) this;
-        }
-
-        public Criteria andDeleteStatusBetween(Integer value1, Integer value2) {
-            addCriterion("delete_status between", value1, value2, "deleteStatus");
-            return (Criteria) this;
-        }
-
-        public Criteria andDeleteStatusNotBetween(Integer value1, Integer value2) {
-            addCriterion("delete_status not between", value1, value2, "deleteStatus");
-            return (Criteria) this;
-        }
-
-        public Criteria andPublishStatusIsNull() {
-            addCriterion("publish_status is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andPublishStatusIsNotNull() {
-            addCriterion("publish_status is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andPublishStatusEqualTo(Integer value) {
-            addCriterion("publish_status =", value, "publishStatus");
-            return (Criteria) this;
-        }
-
-        public Criteria andPublishStatusNotEqualTo(Integer value) {
-            addCriterion("publish_status <>", value, "publishStatus");
-            return (Criteria) this;
-        }
-
-        public Criteria andPublishStatusGreaterThan(Integer value) {
-            addCriterion("publish_status >", value, "publishStatus");
-            return (Criteria) this;
-        }
-
-        public Criteria andPublishStatusGreaterThanOrEqualTo(Integer value) {
-            addCriterion("publish_status >=", value, "publishStatus");
-            return (Criteria) this;
-        }
-
-        public Criteria andPublishStatusLessThan(Integer value) {
-            addCriterion("publish_status <", value, "publishStatus");
+        public Criteria andCompNameLike(String value) {
+            addCriterion("comp_name like", value, "compName");
             return (Criteria) this;
         }
 
-        public Criteria andPublishStatusLessThanOrEqualTo(Integer value) {
-            addCriterion("publish_status <=", value, "publishStatus");
+        public Criteria andCompNameNotLike(String value) {
+            addCriterion("comp_name not like", value, "compName");
             return (Criteria) this;
         }
 
-        public Criteria andPublishStatusIn(List<Integer> values) {
-            addCriterion("publish_status in", values, "publishStatus");
+        public Criteria andCompNameIn(List<String> values) {
+            addCriterion("comp_name in", values, "compName");
             return (Criteria) this;
         }
 
-        public Criteria andPublishStatusNotIn(List<Integer> values) {
-            addCriterion("publish_status not in", values, "publishStatus");
+        public Criteria andCompNameNotIn(List<String> values) {
+            addCriterion("comp_name not in", values, "compName");
             return (Criteria) this;
         }
 
-        public Criteria andPublishStatusBetween(Integer value1, Integer value2) {
-            addCriterion("publish_status between", value1, value2, "publishStatus");
+        public Criteria andCompNameBetween(String value1, String value2) {
+            addCriterion("comp_name between", value1, value2, "compName");
             return (Criteria) this;
         }
 
-        public Criteria andPublishStatusNotBetween(Integer value1, Integer value2) {
-            addCriterion("publish_status not between", value1, value2, "publishStatus");
+        public Criteria andCompNameNotBetween(String value1, String value2) {
+            addCriterion("comp_name not between", value1, value2, "compName");
             return (Criteria) this;
         }
 
-        public Criteria andNewStatusIsNull() {
-            addCriterion("new_status is null");
+        public Criteria andNameIsNull() {
+            addCriterion("name is null");
             return (Criteria) this;
         }
 
-        public Criteria andNewStatusIsNotNull() {
-            addCriterion("new_status is not null");
+        public Criteria andNameIsNotNull() {
+            addCriterion("name is not null");
             return (Criteria) this;
         }
 
-        public Criteria andNewStatusEqualTo(Integer value) {
-            addCriterion("new_status =", value, "newStatus");
+        public Criteria andNameEqualTo(String value) {
+            addCriterion("name =", value, "name");
             return (Criteria) this;
         }
 
-        public Criteria andNewStatusNotEqualTo(Integer value) {
-            addCriterion("new_status <>", value, "newStatus");
+        public Criteria andNameNotEqualTo(String value) {
+            addCriterion("name <>", value, "name");
             return (Criteria) this;
         }
 
-        public Criteria andNewStatusGreaterThan(Integer value) {
-            addCriterion("new_status >", value, "newStatus");
+        public Criteria andNameGreaterThan(String value) {
+            addCriterion("name >", value, "name");
             return (Criteria) this;
         }
 
-        public Criteria andNewStatusGreaterThanOrEqualTo(Integer value) {
-            addCriterion("new_status >=", value, "newStatus");
+        public Criteria andNameGreaterThanOrEqualTo(String value) {
+            addCriterion("name >=", value, "name");
             return (Criteria) this;
         }
 
-        public Criteria andNewStatusLessThan(Integer value) {
-            addCriterion("new_status <", value, "newStatus");
+        public Criteria andNameLessThan(String value) {
+            addCriterion("name <", value, "name");
             return (Criteria) this;
         }
 
-        public Criteria andNewStatusLessThanOrEqualTo(Integer value) {
-            addCriterion("new_status <=", value, "newStatus");
+        public Criteria andNameLessThanOrEqualTo(String value) {
+            addCriterion("name <=", value, "name");
             return (Criteria) this;
         }
 
-        public Criteria andNewStatusIn(List<Integer> values) {
-            addCriterion("new_status in", values, "newStatus");
+        public Criteria andNameLike(String value) {
+            addCriterion("name like", value, "name");
             return (Criteria) this;
         }
 
-        public Criteria andNewStatusNotIn(List<Integer> values) {
-            addCriterion("new_status not in", values, "newStatus");
+        public Criteria andNameNotLike(String value) {
+            addCriterion("name not like", value, "name");
             return (Criteria) this;
         }
 
-        public Criteria andNewStatusBetween(Integer value1, Integer value2) {
-            addCriterion("new_status between", value1, value2, "newStatus");
+        public Criteria andNameIn(List<String> values) {
+            addCriterion("name in", values, "name");
             return (Criteria) this;
         }
 
-        public Criteria andNewStatusNotBetween(Integer value1, Integer value2) {
-            addCriterion("new_status not between", value1, value2, "newStatus");
+        public Criteria andNameNotIn(List<String> values) {
+            addCriterion("name not in", values, "name");
             return (Criteria) this;
         }
 
-        public Criteria andRecommandStatusIsNull() {
-            addCriterion("recommand_status is null");
+        public Criteria andNameBetween(String value1, String value2) {
+            addCriterion("name between", value1, value2, "name");
             return (Criteria) this;
         }
 
-        public Criteria andRecommandStatusIsNotNull() {
-            addCriterion("recommand_status is not null");
+        public Criteria andNameNotBetween(String value1, String value2) {
+            addCriterion("name not between", value1, value2, "name");
             return (Criteria) this;
         }
 
-        public Criteria andRecommandStatusEqualTo(Integer value) {
-            addCriterion("recommand_status =", value, "recommandStatus");
+        public Criteria andPicIsNull() {
+            addCriterion("pic is null");
             return (Criteria) this;
         }
 
-        public Criteria andRecommandStatusNotEqualTo(Integer value) {
-            addCriterion("recommand_status <>", value, "recommandStatus");
+        public Criteria andPicIsNotNull() {
+            addCriterion("pic is not null");
             return (Criteria) this;
         }
 
-        public Criteria andRecommandStatusGreaterThan(Integer value) {
-            addCriterion("recommand_status >", value, "recommandStatus");
+        public Criteria andPicEqualTo(String value) {
+            addCriterion("pic =", value, "pic");
             return (Criteria) this;
         }
 
-        public Criteria andRecommandStatusGreaterThanOrEqualTo(Integer value) {
-            addCriterion("recommand_status >=", value, "recommandStatus");
+        public Criteria andPicNotEqualTo(String value) {
+            addCriterion("pic <>", value, "pic");
             return (Criteria) this;
         }
 
-        public Criteria andRecommandStatusLessThan(Integer value) {
-            addCriterion("recommand_status <", value, "recommandStatus");
+        public Criteria andPicGreaterThan(String value) {
+            addCriterion("pic >", value, "pic");
             return (Criteria) this;
         }
 
-        public Criteria andRecommandStatusLessThanOrEqualTo(Integer value) {
-            addCriterion("recommand_status <=", value, "recommandStatus");
+        public Criteria andPicGreaterThanOrEqualTo(String value) {
+            addCriterion("pic >=", value, "pic");
             return (Criteria) this;
         }
 
-        public Criteria andRecommandStatusIn(List<Integer> values) {
-            addCriterion("recommand_status in", values, "recommandStatus");
+        public Criteria andPicLessThan(String value) {
+            addCriterion("pic <", value, "pic");
             return (Criteria) this;
         }
 
-        public Criteria andRecommandStatusNotIn(List<Integer> values) {
-            addCriterion("recommand_status not in", values, "recommandStatus");
+        public Criteria andPicLessThanOrEqualTo(String value) {
+            addCriterion("pic <=", value, "pic");
             return (Criteria) this;
         }
 
-        public Criteria andRecommandStatusBetween(Integer value1, Integer value2) {
-            addCriterion("recommand_status between", value1, value2, "recommandStatus");
+        public Criteria andPicLike(String value) {
+            addCriterion("pic like", value, "pic");
             return (Criteria) this;
         }
 
-        public Criteria andRecommandStatusNotBetween(Integer value1, Integer value2) {
-            addCriterion("recommand_status not between", value1, value2, "recommandStatus");
+        public Criteria andPicNotLike(String value) {
+            addCriterion("pic not like", value, "pic");
             return (Criteria) this;
         }
 
-        public Criteria andVerifyStatusIsNull() {
-            addCriterion("verify_status is null");
+        public Criteria andPicIn(List<String> values) {
+            addCriterion("pic in", values, "pic");
             return (Criteria) this;
         }
 
-        public Criteria andVerifyStatusIsNotNull() {
-            addCriterion("verify_status is not null");
+        public Criteria andPicNotIn(List<String> values) {
+            addCriterion("pic not in", values, "pic");
             return (Criteria) this;
         }
 
-        public Criteria andVerifyStatusEqualTo(Integer value) {
-            addCriterion("verify_status =", value, "verifyStatus");
+        public Criteria andPicBetween(String value1, String value2) {
+            addCriterion("pic between", value1, value2, "pic");
             return (Criteria) this;
         }
 
-        public Criteria andVerifyStatusNotEqualTo(Integer value) {
-            addCriterion("verify_status <>", value, "verifyStatus");
+        public Criteria andPicNotBetween(String value1, String value2) {
+            addCriterion("pic not between", value1, value2, "pic");
             return (Criteria) this;
         }
 
-        public Criteria andVerifyStatusGreaterThan(Integer value) {
-            addCriterion("verify_status >", value, "verifyStatus");
+        public Criteria andSpecIsNull() {
+            addCriterion("spec is null");
             return (Criteria) this;
         }
 
-        public Criteria andVerifyStatusGreaterThanOrEqualTo(Integer value) {
-            addCriterion("verify_status >=", value, "verifyStatus");
+        public Criteria andSpecIsNotNull() {
+            addCriterion("spec is not null");
             return (Criteria) this;
         }
 
-        public Criteria andVerifyStatusLessThan(Integer value) {
-            addCriterion("verify_status <", value, "verifyStatus");
+        public Criteria andSpecEqualTo(String value) {
+            addCriterion("spec =", value, "spec");
             return (Criteria) this;
         }
 
-        public Criteria andVerifyStatusLessThanOrEqualTo(Integer value) {
-            addCriterion("verify_status <=", value, "verifyStatus");
+        public Criteria andSpecNotEqualTo(String value) {
+            addCriterion("spec <>", value, "spec");
             return (Criteria) this;
         }
 
-        public Criteria andVerifyStatusIn(List<Integer> values) {
-            addCriterion("verify_status in", values, "verifyStatus");
+        public Criteria andSpecGreaterThan(String value) {
+            addCriterion("spec >", value, "spec");
             return (Criteria) this;
         }
 
-        public Criteria andVerifyStatusNotIn(List<Integer> values) {
-            addCriterion("verify_status not in", values, "verifyStatus");
+        public Criteria andSpecGreaterThanOrEqualTo(String value) {
+            addCriterion("spec >=", value, "spec");
             return (Criteria) this;
         }
 
-        public Criteria andVerifyStatusBetween(Integer value1, Integer value2) {
-            addCriterion("verify_status between", value1, value2, "verifyStatus");
+        public Criteria andSpecLessThan(String value) {
+            addCriterion("spec <", value, "spec");
             return (Criteria) this;
         }
 
-        public Criteria andVerifyStatusNotBetween(Integer value1, Integer value2) {
-            addCriterion("verify_status not between", value1, value2, "verifyStatus");
+        public Criteria andSpecLessThanOrEqualTo(String value) {
+            addCriterion("spec <=", value, "spec");
             return (Criteria) this;
         }
 
-        public Criteria andSortIsNull() {
-            addCriterion("sort is null");
+        public Criteria andSpecLike(String value) {
+            addCriterion("spec like", value, "spec");
             return (Criteria) this;
         }
 
-        public Criteria andSortIsNotNull() {
-            addCriterion("sort is not null");
+        public Criteria andSpecNotLike(String value) {
+            addCriterion("spec not like", value, "spec");
             return (Criteria) this;
         }
 
-        public Criteria andSortEqualTo(Integer value) {
-            addCriterion("sort =", value, "sort");
+        public Criteria andSpecIn(List<String> values) {
+            addCriterion("spec in", values, "spec");
             return (Criteria) this;
         }
 
-        public Criteria andSortNotEqualTo(Integer value) {
-            addCriterion("sort <>", value, "sort");
+        public Criteria andSpecNotIn(List<String> values) {
+            addCriterion("spec not in", values, "spec");
             return (Criteria) this;
         }
 
-        public Criteria andSortGreaterThan(Integer value) {
-            addCriterion("sort >", value, "sort");
+        public Criteria andSpecBetween(String value1, String value2) {
+            addCriterion("spec between", value1, value2, "spec");
             return (Criteria) this;
         }
 
-        public Criteria andSortGreaterThanOrEqualTo(Integer value) {
-            addCriterion("sort >=", value, "sort");
+        public Criteria andSpecNotBetween(String value1, String value2) {
+            addCriterion("spec not between", value1, value2, "spec");
             return (Criteria) this;
         }
 
-        public Criteria andSortLessThan(Integer value) {
-            addCriterion("sort <", value, "sort");
+        public Criteria andProductSnIsNull() {
+            addCriterion("product_sn is null");
             return (Criteria) this;
         }
 
-        public Criteria andSortLessThanOrEqualTo(Integer value) {
-            addCriterion("sort <=", value, "sort");
+        public Criteria andProductSnIsNotNull() {
+            addCriterion("product_sn is not null");
             return (Criteria) this;
         }
 
-        public Criteria andSortIn(List<Integer> values) {
-            addCriterion("sort in", values, "sort");
+        public Criteria andProductSnEqualTo(String value) {
+            addCriterion("product_sn =", value, "productSn");
             return (Criteria) this;
         }
 
-        public Criteria andSortNotIn(List<Integer> values) {
-            addCriterion("sort not in", values, "sort");
+        public Criteria andProductSnNotEqualTo(String value) {
+            addCriterion("product_sn <>", value, "productSn");
             return (Criteria) this;
         }
 
-        public Criteria andSortBetween(Integer value1, Integer value2) {
-            addCriterion("sort between", value1, value2, "sort");
+        public Criteria andProductSnGreaterThan(String value) {
+            addCriterion("product_sn >", value, "productSn");
             return (Criteria) this;
         }
 
-        public Criteria andSortNotBetween(Integer value1, Integer value2) {
-            addCriterion("sort not between", value1, value2, "sort");
+        public Criteria andProductSnGreaterThanOrEqualTo(String value) {
+            addCriterion("product_sn >=", value, "productSn");
             return (Criteria) this;
         }
 
-        public Criteria andSaleIsNull() {
-            addCriterion("sale is null");
+        public Criteria andProductSnLessThan(String value) {
+            addCriterion("product_sn <", value, "productSn");
             return (Criteria) this;
         }
 
-        public Criteria andSaleIsNotNull() {
-            addCriterion("sale is not null");
+        public Criteria andProductSnLessThanOrEqualTo(String value) {
+            addCriterion("product_sn <=", value, "productSn");
             return (Criteria) this;
         }
 
-        public Criteria andSaleEqualTo(Integer value) {
-            addCriterion("sale =", value, "sale");
+        public Criteria andProductSnLike(String value) {
+            addCriterion("product_sn like", value, "productSn");
             return (Criteria) this;
         }
 
-        public Criteria andSaleNotEqualTo(Integer value) {
-            addCriterion("sale <>", value, "sale");
+        public Criteria andProductSnNotLike(String value) {
+            addCriterion("product_sn not like", value, "productSn");
             return (Criteria) this;
         }
 
-        public Criteria andSaleGreaterThan(Integer value) {
-            addCriterion("sale >", value, "sale");
+        public Criteria andProductSnIn(List<String> values) {
+            addCriterion("product_sn in", values, "productSn");
             return (Criteria) this;
         }
 
-        public Criteria andSaleGreaterThanOrEqualTo(Integer value) {
-            addCriterion("sale >=", value, "sale");
+        public Criteria andProductSnNotIn(List<String> values) {
+            addCriterion("product_sn not in", values, "productSn");
             return (Criteria) this;
         }
 
-        public Criteria andSaleLessThan(Integer value) {
-            addCriterion("sale <", value, "sale");
+        public Criteria andProductSnBetween(String value1, String value2) {
+            addCriterion("product_sn between", value1, value2, "productSn");
             return (Criteria) this;
         }
 
-        public Criteria andSaleLessThanOrEqualTo(Integer value) {
-            addCriterion("sale <=", value, "sale");
+        public Criteria andProductSnNotBetween(String value1, String value2) {
+            addCriterion("product_sn not between", value1, value2, "productSn");
             return (Criteria) this;
         }
 
-        public Criteria andSaleIn(List<Integer> values) {
-            addCriterion("sale in", values, "sale");
+        public Criteria andDeleteStatusIsNull() {
+            addCriterion("delete_status is null");
             return (Criteria) this;
         }
 
-        public Criteria andSaleNotIn(List<Integer> values) {
-            addCriterion("sale not in", values, "sale");
+        public Criteria andDeleteStatusIsNotNull() {
+            addCriterion("delete_status is not null");
             return (Criteria) this;
         }
 
-        public Criteria andSaleBetween(Integer value1, Integer value2) {
-            addCriterion("sale between", value1, value2, "sale");
+        public Criteria andDeleteStatusEqualTo(Integer value) {
+            addCriterion("delete_status =", value, "deleteStatus");
             return (Criteria) this;
         }
 
-        public Criteria andSaleNotBetween(Integer value1, Integer value2) {
-            addCriterion("sale not between", value1, value2, "sale");
+        public Criteria andDeleteStatusNotEqualTo(Integer value) {
+            addCriterion("delete_status <>", value, "deleteStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPriceIsNull() {
-            addCriterion("price is null");
+        public Criteria andDeleteStatusGreaterThan(Integer value) {
+            addCriterion("delete_status >", value, "deleteStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPriceIsNotNull() {
-            addCriterion("price is not null");
+        public Criteria andDeleteStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("delete_status >=", value, "deleteStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPriceEqualTo(BigDecimal value) {
-            addCriterion("price =", value, "price");
+        public Criteria andDeleteStatusLessThan(Integer value) {
+            addCriterion("delete_status <", value, "deleteStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPriceNotEqualTo(BigDecimal value) {
-            addCriterion("price <>", value, "price");
+        public Criteria andDeleteStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("delete_status <=", value, "deleteStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPriceGreaterThan(BigDecimal value) {
-            addCriterion("price >", value, "price");
+        public Criteria andDeleteStatusIn(List<Integer> values) {
+            addCriterion("delete_status in", values, "deleteStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPriceGreaterThanOrEqualTo(BigDecimal value) {
-            addCriterion("price >=", value, "price");
+        public Criteria andDeleteStatusNotIn(List<Integer> values) {
+            addCriterion("delete_status not in", values, "deleteStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPriceLessThan(BigDecimal value) {
-            addCriterion("price <", value, "price");
+        public Criteria andDeleteStatusBetween(Integer value1, Integer value2) {
+            addCriterion("delete_status between", value1, value2, "deleteStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPriceLessThanOrEqualTo(BigDecimal value) {
-            addCriterion("price <=", value, "price");
+        public Criteria andDeleteStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("delete_status not between", value1, value2, "deleteStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPriceIn(List<BigDecimal> values) {
-            addCriterion("price in", values, "price");
+        public Criteria andPublishStatusIsNull() {
+            addCriterion("publish_status is null");
             return (Criteria) this;
         }
 
-        public Criteria andPriceNotIn(List<BigDecimal> values) {
-            addCriterion("price not in", values, "price");
+        public Criteria andPublishStatusIsNotNull() {
+            addCriterion("publish_status is not null");
             return (Criteria) this;
         }
 
-        public Criteria andPriceBetween(BigDecimal value1, BigDecimal value2) {
-            addCriterion("price between", value1, value2, "price");
+        public Criteria andPublishStatusEqualTo(Integer value) {
+            addCriterion("publish_status =", value, "publishStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPriceNotBetween(BigDecimal value1, BigDecimal value2) {
-            addCriterion("price not between", value1, value2, "price");
+        public Criteria andPublishStatusNotEqualTo(Integer value) {
+            addCriterion("publish_status <>", value, "publishStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPriceIsNull() {
-            addCriterion("promotion_price is null");
+        public Criteria andPublishStatusGreaterThan(Integer value) {
+            addCriterion("publish_status >", value, "publishStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPriceIsNotNull() {
-            addCriterion("promotion_price is not null");
+        public Criteria andPublishStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("publish_status >=", value, "publishStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPriceEqualTo(BigDecimal value) {
-            addCriterion("promotion_price =", value, "promotionPrice");
+        public Criteria andPublishStatusLessThan(Integer value) {
+            addCriterion("publish_status <", value, "publishStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPriceNotEqualTo(BigDecimal value) {
-            addCriterion("promotion_price <>", value, "promotionPrice");
+        public Criteria andPublishStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("publish_status <=", value, "publishStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPriceGreaterThan(BigDecimal value) {
-            addCriterion("promotion_price >", value, "promotionPrice");
+        public Criteria andPublishStatusIn(List<Integer> values) {
+            addCriterion("publish_status in", values, "publishStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPriceGreaterThanOrEqualTo(BigDecimal value) {
-            addCriterion("promotion_price >=", value, "promotionPrice");
+        public Criteria andPublishStatusNotIn(List<Integer> values) {
+            addCriterion("publish_status not in", values, "publishStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPriceLessThan(BigDecimal value) {
-            addCriterion("promotion_price <", value, "promotionPrice");
+        public Criteria andPublishStatusBetween(Integer value1, Integer value2) {
+            addCriterion("publish_status between", value1, value2, "publishStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPriceLessThanOrEqualTo(BigDecimal value) {
-            addCriterion("promotion_price <=", value, "promotionPrice");
+        public Criteria andPublishStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("publish_status not between", value1, value2, "publishStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPriceIn(List<BigDecimal> values) {
-            addCriterion("promotion_price in", values, "promotionPrice");
+        public Criteria andNewStatusIsNull() {
+            addCriterion("new_status is null");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPriceNotIn(List<BigDecimal> values) {
-            addCriterion("promotion_price not in", values, "promotionPrice");
+        public Criteria andNewStatusIsNotNull() {
+            addCriterion("new_status is not null");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPriceBetween(BigDecimal value1, BigDecimal value2) {
-            addCriterion("promotion_price between", value1, value2, "promotionPrice");
+        public Criteria andNewStatusEqualTo(Integer value) {
+            addCriterion("new_status =", value, "newStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPriceNotBetween(BigDecimal value1, BigDecimal value2) {
-            addCriterion("promotion_price not between", value1, value2, "promotionPrice");
+        public Criteria andNewStatusNotEqualTo(Integer value) {
+            addCriterion("new_status <>", value, "newStatus");
             return (Criteria) this;
         }
 
-        public Criteria andGiftGrowthIsNull() {
-            addCriterion("gift_growth is null");
+        public Criteria andNewStatusGreaterThan(Integer value) {
+            addCriterion("new_status >", value, "newStatus");
             return (Criteria) this;
         }
 
-        public Criteria andGiftGrowthIsNotNull() {
-            addCriterion("gift_growth is not null");
+        public Criteria andNewStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("new_status >=", value, "newStatus");
             return (Criteria) this;
         }
 
-        public Criteria andGiftGrowthEqualTo(Integer value) {
-            addCriterion("gift_growth =", value, "giftGrowth");
+        public Criteria andNewStatusLessThan(Integer value) {
+            addCriterion("new_status <", value, "newStatus");
             return (Criteria) this;
         }
 
-        public Criteria andGiftGrowthNotEqualTo(Integer value) {
-            addCriterion("gift_growth <>", value, "giftGrowth");
+        public Criteria andNewStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("new_status <=", value, "newStatus");
             return (Criteria) this;
         }
 
-        public Criteria andGiftGrowthGreaterThan(Integer value) {
-            addCriterion("gift_growth >", value, "giftGrowth");
+        public Criteria andNewStatusIn(List<Integer> values) {
+            addCriterion("new_status in", values, "newStatus");
             return (Criteria) this;
         }
 
-        public Criteria andGiftGrowthGreaterThanOrEqualTo(Integer value) {
-            addCriterion("gift_growth >=", value, "giftGrowth");
+        public Criteria andNewStatusNotIn(List<Integer> values) {
+            addCriterion("new_status not in", values, "newStatus");
             return (Criteria) this;
         }
 
-        public Criteria andGiftGrowthLessThan(Integer value) {
-            addCriterion("gift_growth <", value, "giftGrowth");
+        public Criteria andNewStatusBetween(Integer value1, Integer value2) {
+            addCriterion("new_status between", value1, value2, "newStatus");
             return (Criteria) this;
         }
 
-        public Criteria andGiftGrowthLessThanOrEqualTo(Integer value) {
-            addCriterion("gift_growth <=", value, "giftGrowth");
+        public Criteria andNewStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("new_status not between", value1, value2, "newStatus");
             return (Criteria) this;
         }
 
-        public Criteria andGiftGrowthIn(List<Integer> values) {
-            addCriterion("gift_growth in", values, "giftGrowth");
+        public Criteria andRecommandStatusIsNull() {
+            addCriterion("recommand_status is null");
             return (Criteria) this;
         }
 
-        public Criteria andGiftGrowthNotIn(List<Integer> values) {
-            addCriterion("gift_growth not in", values, "giftGrowth");
+        public Criteria andRecommandStatusIsNotNull() {
+            addCriterion("recommand_status is not null");
             return (Criteria) this;
         }
 
-        public Criteria andGiftGrowthBetween(Integer value1, Integer value2) {
-            addCriterion("gift_growth between", value1, value2, "giftGrowth");
+        public Criteria andRecommandStatusEqualTo(Integer value) {
+            addCriterion("recommand_status =", value, "recommandStatus");
             return (Criteria) this;
         }
 
-        public Criteria andGiftGrowthNotBetween(Integer value1, Integer value2) {
-            addCriterion("gift_growth not between", value1, value2, "giftGrowth");
+        public Criteria andRecommandStatusNotEqualTo(Integer value) {
+            addCriterion("recommand_status <>", value, "recommandStatus");
             return (Criteria) this;
         }
 
-        public Criteria andGiftPointIsNull() {
-            addCriterion("gift_point is null");
+        public Criteria andRecommandStatusGreaterThan(Integer value) {
+            addCriterion("recommand_status >", value, "recommandStatus");
             return (Criteria) this;
         }
 
-        public Criteria andGiftPointIsNotNull() {
-            addCriterion("gift_point is not null");
+        public Criteria andRecommandStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("recommand_status >=", value, "recommandStatus");
             return (Criteria) this;
         }
 
-        public Criteria andGiftPointEqualTo(Integer value) {
-            addCriterion("gift_point =", value, "giftPoint");
+        public Criteria andRecommandStatusLessThan(Integer value) {
+            addCriterion("recommand_status <", value, "recommandStatus");
             return (Criteria) this;
         }
 
-        public Criteria andGiftPointNotEqualTo(Integer value) {
-            addCriterion("gift_point <>", value, "giftPoint");
+        public Criteria andRecommandStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("recommand_status <=", value, "recommandStatus");
             return (Criteria) this;
         }
 
-        public Criteria andGiftPointGreaterThan(Integer value) {
-            addCriterion("gift_point >", value, "giftPoint");
+        public Criteria andRecommandStatusIn(List<Integer> values) {
+            addCriterion("recommand_status in", values, "recommandStatus");
             return (Criteria) this;
         }
 
-        public Criteria andGiftPointGreaterThanOrEqualTo(Integer value) {
-            addCriterion("gift_point >=", value, "giftPoint");
+        public Criteria andRecommandStatusNotIn(List<Integer> values) {
+            addCriterion("recommand_status not in", values, "recommandStatus");
             return (Criteria) this;
         }
 
-        public Criteria andGiftPointLessThan(Integer value) {
-            addCriterion("gift_point <", value, "giftPoint");
+        public Criteria andRecommandStatusBetween(Integer value1, Integer value2) {
+            addCriterion("recommand_status between", value1, value2, "recommandStatus");
             return (Criteria) this;
         }
 
-        public Criteria andGiftPointLessThanOrEqualTo(Integer value) {
-            addCriterion("gift_point <=", value, "giftPoint");
+        public Criteria andRecommandStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("recommand_status not between", value1, value2, "recommandStatus");
             return (Criteria) this;
         }
 
-        public Criteria andGiftPointIn(List<Integer> values) {
-            addCriterion("gift_point in", values, "giftPoint");
+        public Criteria andVerifyStatusIsNull() {
+            addCriterion("verify_status is null");
             return (Criteria) this;
         }
 
-        public Criteria andGiftPointNotIn(List<Integer> values) {
-            addCriterion("gift_point not in", values, "giftPoint");
+        public Criteria andVerifyStatusIsNotNull() {
+            addCriterion("verify_status is not null");
             return (Criteria) this;
         }
 
-        public Criteria andGiftPointBetween(Integer value1, Integer value2) {
-            addCriterion("gift_point between", value1, value2, "giftPoint");
+        public Criteria andVerifyStatusEqualTo(Integer value) {
+            addCriterion("verify_status =", value, "verifyStatus");
             return (Criteria) this;
         }
 
-        public Criteria andGiftPointNotBetween(Integer value1, Integer value2) {
-            addCriterion("gift_point not between", value1, value2, "giftPoint");
+        public Criteria andVerifyStatusNotEqualTo(Integer value) {
+            addCriterion("verify_status <>", value, "verifyStatus");
             return (Criteria) this;
         }
 
-        public Criteria andUsePointLimitIsNull() {
-            addCriterion("use_point_limit is null");
+        public Criteria andVerifyStatusGreaterThan(Integer value) {
+            addCriterion("verify_status >", value, "verifyStatus");
             return (Criteria) this;
         }
 
-        public Criteria andUsePointLimitIsNotNull() {
-            addCriterion("use_point_limit is not null");
+        public Criteria andVerifyStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("verify_status >=", value, "verifyStatus");
             return (Criteria) this;
         }
 
-        public Criteria andUsePointLimitEqualTo(Integer value) {
-            addCriterion("use_point_limit =", value, "usePointLimit");
+        public Criteria andVerifyStatusLessThan(Integer value) {
+            addCriterion("verify_status <", value, "verifyStatus");
             return (Criteria) this;
         }
 
-        public Criteria andUsePointLimitNotEqualTo(Integer value) {
-            addCriterion("use_point_limit <>", value, "usePointLimit");
+        public Criteria andVerifyStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("verify_status <=", value, "verifyStatus");
             return (Criteria) this;
         }
 
-        public Criteria andUsePointLimitGreaterThan(Integer value) {
-            addCriterion("use_point_limit >", value, "usePointLimit");
+        public Criteria andVerifyStatusIn(List<Integer> values) {
+            addCriterion("verify_status in", values, "verifyStatus");
             return (Criteria) this;
         }
 
-        public Criteria andUsePointLimitGreaterThanOrEqualTo(Integer value) {
-            addCriterion("use_point_limit >=", value, "usePointLimit");
+        public Criteria andVerifyStatusNotIn(List<Integer> values) {
+            addCriterion("verify_status not in", values, "verifyStatus");
             return (Criteria) this;
         }
 
-        public Criteria andUsePointLimitLessThan(Integer value) {
-            addCriterion("use_point_limit <", value, "usePointLimit");
+        public Criteria andVerifyStatusBetween(Integer value1, Integer value2) {
+            addCriterion("verify_status between", value1, value2, "verifyStatus");
             return (Criteria) this;
         }
 
-        public Criteria andUsePointLimitLessThanOrEqualTo(Integer value) {
-            addCriterion("use_point_limit <=", value, "usePointLimit");
+        public Criteria andVerifyStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("verify_status not between", value1, value2, "verifyStatus");
             return (Criteria) this;
         }
 
-        public Criteria andUsePointLimitIn(List<Integer> values) {
-            addCriterion("use_point_limit in", values, "usePointLimit");
+        public Criteria andSortIsNull() {
+            addCriterion("sort is null");
             return (Criteria) this;
         }
 
-        public Criteria andUsePointLimitNotIn(List<Integer> values) {
-            addCriterion("use_point_limit not in", values, "usePointLimit");
+        public Criteria andSortIsNotNull() {
+            addCriterion("sort is not null");
             return (Criteria) this;
         }
 
-        public Criteria andUsePointLimitBetween(Integer value1, Integer value2) {
-            addCriterion("use_point_limit between", value1, value2, "usePointLimit");
+        public Criteria andSortEqualTo(Integer value) {
+            addCriterion("sort =", value, "sort");
             return (Criteria) this;
         }
 
-        public Criteria andUsePointLimitNotBetween(Integer value1, Integer value2) {
-            addCriterion("use_point_limit not between", value1, value2, "usePointLimit");
+        public Criteria andSortNotEqualTo(Integer value) {
+            addCriterion("sort <>", value, "sort");
             return (Criteria) this;
         }
 
-        public Criteria andOriginalPriceIsNull() {
-            addCriterion("original_price is null");
+        public Criteria andSortGreaterThan(Integer value) {
+            addCriterion("sort >", value, "sort");
             return (Criteria) this;
         }
 
-        public Criteria andOriginalPriceIsNotNull() {
-            addCriterion("original_price is not null");
+        public Criteria andSortGreaterThanOrEqualTo(Integer value) {
+            addCriterion("sort >=", value, "sort");
             return (Criteria) this;
         }
 
-        public Criteria andOriginalPriceEqualTo(BigDecimal value) {
-            addCriterion("original_price =", value, "originalPrice");
+        public Criteria andSortLessThan(Integer value) {
+            addCriterion("sort <", value, "sort");
             return (Criteria) this;
         }
 
-        public Criteria andOriginalPriceNotEqualTo(BigDecimal value) {
-            addCriterion("original_price <>", value, "originalPrice");
+        public Criteria andSortLessThanOrEqualTo(Integer value) {
+            addCriterion("sort <=", value, "sort");
             return (Criteria) this;
         }
 
-        public Criteria andOriginalPriceGreaterThan(BigDecimal value) {
-            addCriterion("original_price >", value, "originalPrice");
+        public Criteria andSortIn(List<Integer> values) {
+            addCriterion("sort in", values, "sort");
             return (Criteria) this;
         }
 
-        public Criteria andOriginalPriceGreaterThanOrEqualTo(BigDecimal value) {
-            addCriterion("original_price >=", value, "originalPrice");
+        public Criteria andSortNotIn(List<Integer> values) {
+            addCriterion("sort not in", values, "sort");
             return (Criteria) this;
         }
 
-        public Criteria andOriginalPriceLessThan(BigDecimal value) {
-            addCriterion("original_price <", value, "originalPrice");
+        public Criteria andSortBetween(Integer value1, Integer value2) {
+            addCriterion("sort between", value1, value2, "sort");
             return (Criteria) this;
         }
 
-        public Criteria andOriginalPriceLessThanOrEqualTo(BigDecimal value) {
-            addCriterion("original_price <=", value, "originalPrice");
+        public Criteria andSortNotBetween(Integer value1, Integer value2) {
+            addCriterion("sort not between", value1, value2, "sort");
             return (Criteria) this;
         }
 
-        public Criteria andOriginalPriceIn(List<BigDecimal> values) {
-            addCriterion("original_price in", values, "originalPrice");
+        public Criteria andSaleIsNull() {
+            addCriterion("sale is null");
             return (Criteria) this;
         }
 
-        public Criteria andOriginalPriceNotIn(List<BigDecimal> values) {
-            addCriterion("original_price not in", values, "originalPrice");
+        public Criteria andSaleIsNotNull() {
+            addCriterion("sale is not null");
             return (Criteria) this;
         }
 
-        public Criteria andOriginalPriceBetween(BigDecimal value1, BigDecimal value2) {
-            addCriterion("original_price between", value1, value2, "originalPrice");
+        public Criteria andSaleEqualTo(Integer value) {
+            addCriterion("sale =", value, "sale");
             return (Criteria) this;
         }
 
-        public Criteria andOriginalPriceNotBetween(BigDecimal value1, BigDecimal value2) {
-            addCriterion("original_price not between", value1, value2, "originalPrice");
+        public Criteria andSaleNotEqualTo(Integer value) {
+            addCriterion("sale <>", value, "sale");
             return (Criteria) this;
         }
 
-        public Criteria andStockIsNull() {
-            addCriterion("stock is null");
+        public Criteria andSaleGreaterThan(Integer value) {
+            addCriterion("sale >", value, "sale");
             return (Criteria) this;
         }
 
-        public Criteria andStockIsNotNull() {
-            addCriterion("stock is not null");
+        public Criteria andSaleGreaterThanOrEqualTo(Integer value) {
+            addCriterion("sale >=", value, "sale");
             return (Criteria) this;
         }
 
-        public Criteria andStockEqualTo(Integer value) {
-            addCriterion("stock =", value, "stock");
+        public Criteria andSaleLessThan(Integer value) {
+            addCriterion("sale <", value, "sale");
             return (Criteria) this;
         }
 
-        public Criteria andStockNotEqualTo(Integer value) {
-            addCriterion("stock <>", value, "stock");
+        public Criteria andSaleLessThanOrEqualTo(Integer value) {
+            addCriterion("sale <=", value, "sale");
             return (Criteria) this;
         }
 
-        public Criteria andStockGreaterThan(Integer value) {
-            addCriterion("stock >", value, "stock");
+        public Criteria andSaleIn(List<Integer> values) {
+            addCriterion("sale in", values, "sale");
             return (Criteria) this;
         }
 
-        public Criteria andStockGreaterThanOrEqualTo(Integer value) {
-            addCriterion("stock >=", value, "stock");
+        public Criteria andSaleNotIn(List<Integer> values) {
+            addCriterion("sale not in", values, "sale");
             return (Criteria) this;
         }
 
-        public Criteria andStockLessThan(Integer value) {
-            addCriterion("stock <", value, "stock");
+        public Criteria andSaleBetween(Integer value1, Integer value2) {
+            addCriterion("sale between", value1, value2, "sale");
             return (Criteria) this;
         }
 
-        public Criteria andStockLessThanOrEqualTo(Integer value) {
-            addCriterion("stock <=", value, "stock");
+        public Criteria andSaleNotBetween(Integer value1, Integer value2) {
+            addCriterion("sale not between", value1, value2, "sale");
             return (Criteria) this;
         }
 
-        public Criteria andStockIn(List<Integer> values) {
-            addCriterion("stock in", values, "stock");
+        public Criteria andPriceIsNull() {
+            addCriterion("price is null");
             return (Criteria) this;
         }
 
-        public Criteria andStockNotIn(List<Integer> values) {
-            addCriterion("stock not in", values, "stock");
+        public Criteria andPriceIsNotNull() {
+            addCriterion("price is not null");
             return (Criteria) this;
         }
 
-        public Criteria andStockBetween(Integer value1, Integer value2) {
-            addCriterion("stock between", value1, value2, "stock");
+        public Criteria andPriceEqualTo(BigDecimal value) {
+            addCriterion("price =", value, "price");
             return (Criteria) this;
         }
 
-        public Criteria andStockNotBetween(Integer value1, Integer value2) {
-            addCriterion("stock not between", value1, value2, "stock");
+        public Criteria andPriceNotEqualTo(BigDecimal value) {
+            addCriterion("price <>", value, "price");
             return (Criteria) this;
         }
 
-        public Criteria andLowStockIsNull() {
-            addCriterion("low_stock is null");
+        public Criteria andPriceGreaterThan(BigDecimal value) {
+            addCriterion("price >", value, "price");
             return (Criteria) this;
         }
 
-        public Criteria andLowStockIsNotNull() {
-            addCriterion("low_stock is not null");
+        public Criteria andPriceGreaterThanOrEqualTo(BigDecimal value) {
+            addCriterion("price >=", value, "price");
             return (Criteria) this;
         }
 
-        public Criteria andLowStockEqualTo(Integer value) {
-            addCriterion("low_stock =", value, "lowStock");
+        public Criteria andPriceLessThan(BigDecimal value) {
+            addCriterion("price <", value, "price");
             return (Criteria) this;
         }
 
-        public Criteria andLowStockNotEqualTo(Integer value) {
-            addCriterion("low_stock <>", value, "lowStock");
+        public Criteria andPriceLessThanOrEqualTo(BigDecimal value) {
+            addCriterion("price <=", value, "price");
             return (Criteria) this;
         }
 
-        public Criteria andLowStockGreaterThan(Integer value) {
-            addCriterion("low_stock >", value, "lowStock");
+        public Criteria andPriceIn(List<BigDecimal> values) {
+            addCriterion("price in", values, "price");
             return (Criteria) this;
         }
 
-        public Criteria andLowStockGreaterThanOrEqualTo(Integer value) {
-            addCriterion("low_stock >=", value, "lowStock");
+        public Criteria andPriceNotIn(List<BigDecimal> values) {
+            addCriterion("price not in", values, "price");
             return (Criteria) this;
         }
 
-        public Criteria andLowStockLessThan(Integer value) {
-            addCriterion("low_stock <", value, "lowStock");
+        public Criteria andPriceBetween(BigDecimal value1, BigDecimal value2) {
+            addCriterion("price between", value1, value2, "price");
             return (Criteria) this;
         }
 
-        public Criteria andLowStockLessThanOrEqualTo(Integer value) {
-            addCriterion("low_stock <=", value, "lowStock");
+        public Criteria andPriceNotBetween(BigDecimal value1, BigDecimal value2) {
+            addCriterion("price not between", value1, value2, "price");
             return (Criteria) this;
         }
 
-        public Criteria andLowStockIn(List<Integer> values) {
-            addCriterion("low_stock in", values, "lowStock");
+        public Criteria andPromotionPriceIsNull() {
+            addCriterion("promotion_price is null");
             return (Criteria) this;
         }
 
-        public Criteria andLowStockNotIn(List<Integer> values) {
-            addCriterion("low_stock not in", values, "lowStock");
+        public Criteria andPromotionPriceIsNotNull() {
+            addCriterion("promotion_price is not null");
             return (Criteria) this;
         }
 
-        public Criteria andLowStockBetween(Integer value1, Integer value2) {
-            addCriterion("low_stock between", value1, value2, "lowStock");
+        public Criteria andPromotionPriceEqualTo(BigDecimal value) {
+            addCriterion("promotion_price =", value, "promotionPrice");
             return (Criteria) this;
         }
 
-        public Criteria andLowStockNotBetween(Integer value1, Integer value2) {
-            addCriterion("low_stock not between", value1, value2, "lowStock");
+        public Criteria andPromotionPriceNotEqualTo(BigDecimal value) {
+            addCriterion("promotion_price <>", value, "promotionPrice");
             return (Criteria) this;
         }
 
-        public Criteria andUnitIsNull() {
-            addCriterion("unit is null");
+        public Criteria andPromotionPriceGreaterThan(BigDecimal value) {
+            addCriterion("promotion_price >", value, "promotionPrice");
             return (Criteria) this;
         }
 
-        public Criteria andUnitIsNotNull() {
-            addCriterion("unit is not null");
+        public Criteria andPromotionPriceGreaterThanOrEqualTo(BigDecimal value) {
+            addCriterion("promotion_price >=", value, "promotionPrice");
             return (Criteria) this;
         }
 
-        public Criteria andUnitEqualTo(String value) {
-            addCriterion("unit =", value, "unit");
+        public Criteria andPromotionPriceLessThan(BigDecimal value) {
+            addCriterion("promotion_price <", value, "promotionPrice");
             return (Criteria) this;
         }
 
-        public Criteria andUnitNotEqualTo(String value) {
-            addCriterion("unit <>", value, "unit");
+        public Criteria andPromotionPriceLessThanOrEqualTo(BigDecimal value) {
+            addCriterion("promotion_price <=", value, "promotionPrice");
             return (Criteria) this;
         }
 
-        public Criteria andUnitGreaterThan(String value) {
-            addCriterion("unit >", value, "unit");
+        public Criteria andPromotionPriceIn(List<BigDecimal> values) {
+            addCriterion("promotion_price in", values, "promotionPrice");
             return (Criteria) this;
         }
 
-        public Criteria andUnitGreaterThanOrEqualTo(String value) {
-            addCriterion("unit >=", value, "unit");
+        public Criteria andPromotionPriceNotIn(List<BigDecimal> values) {
+            addCriterion("promotion_price not in", values, "promotionPrice");
             return (Criteria) this;
         }
 
-        public Criteria andUnitLessThan(String value) {
-            addCriterion("unit <", value, "unit");
+        public Criteria andPromotionPriceBetween(BigDecimal value1, BigDecimal value2) {
+            addCriterion("promotion_price between", value1, value2, "promotionPrice");
             return (Criteria) this;
         }
 
-        public Criteria andUnitLessThanOrEqualTo(String value) {
-            addCriterion("unit <=", value, "unit");
+        public Criteria andPromotionPriceNotBetween(BigDecimal value1, BigDecimal value2) {
+            addCriterion("promotion_price not between", value1, value2, "promotionPrice");
             return (Criteria) this;
         }
 
-        public Criteria andUnitLike(String value) {
-            addCriterion("unit like", value, "unit");
+        public Criteria andGiftGrowthIsNull() {
+            addCriterion("gift_growth is null");
             return (Criteria) this;
         }
 
-        public Criteria andUnitNotLike(String value) {
-            addCriterion("unit not like", value, "unit");
+        public Criteria andGiftGrowthIsNotNull() {
+            addCriterion("gift_growth is not null");
             return (Criteria) this;
         }
 
-        public Criteria andUnitIn(List<String> values) {
-            addCriterion("unit in", values, "unit");
+        public Criteria andGiftGrowthEqualTo(Integer value) {
+            addCriterion("gift_growth =", value, "giftGrowth");
             return (Criteria) this;
         }
 
-        public Criteria andUnitNotIn(List<String> values) {
-            addCriterion("unit not in", values, "unit");
+        public Criteria andGiftGrowthNotEqualTo(Integer value) {
+            addCriterion("gift_growth <>", value, "giftGrowth");
             return (Criteria) this;
         }
 
-        public Criteria andUnitBetween(String value1, String value2) {
-            addCriterion("unit between", value1, value2, "unit");
+        public Criteria andGiftGrowthGreaterThan(Integer value) {
+            addCriterion("gift_growth >", value, "giftGrowth");
             return (Criteria) this;
         }
 
-        public Criteria andUnitNotBetween(String value1, String value2) {
-            addCriterion("unit not between", value1, value2, "unit");
+        public Criteria andGiftGrowthGreaterThanOrEqualTo(Integer value) {
+            addCriterion("gift_growth >=", value, "giftGrowth");
             return (Criteria) this;
         }
 
-        public Criteria andWeightIsNull() {
-            addCriterion("weight is null");
+        public Criteria andGiftGrowthLessThan(Integer value) {
+            addCriterion("gift_growth <", value, "giftGrowth");
             return (Criteria) this;
         }
 
-        public Criteria andWeightIsNotNull() {
-            addCriterion("weight is not null");
+        public Criteria andGiftGrowthLessThanOrEqualTo(Integer value) {
+            addCriterion("gift_growth <=", value, "giftGrowth");
             return (Criteria) this;
         }
 
-        public Criteria andWeightEqualTo(BigDecimal value) {
-            addCriterion("weight =", value, "weight");
+        public Criteria andGiftGrowthIn(List<Integer> values) {
+            addCriterion("gift_growth in", values, "giftGrowth");
             return (Criteria) this;
         }
 
-        public Criteria andWeightNotEqualTo(BigDecimal value) {
-            addCriterion("weight <>", value, "weight");
+        public Criteria andGiftGrowthNotIn(List<Integer> values) {
+            addCriterion("gift_growth not in", values, "giftGrowth");
             return (Criteria) this;
         }
 
-        public Criteria andWeightGreaterThan(BigDecimal value) {
-            addCriterion("weight >", value, "weight");
+        public Criteria andGiftGrowthBetween(Integer value1, Integer value2) {
+            addCriterion("gift_growth between", value1, value2, "giftGrowth");
             return (Criteria) this;
         }
 
-        public Criteria andWeightGreaterThanOrEqualTo(BigDecimal value) {
-            addCriterion("weight >=", value, "weight");
+        public Criteria andGiftGrowthNotBetween(Integer value1, Integer value2) {
+            addCriterion("gift_growth not between", value1, value2, "giftGrowth");
             return (Criteria) this;
         }
 
-        public Criteria andWeightLessThan(BigDecimal value) {
-            addCriterion("weight <", value, "weight");
+        public Criteria andGiftPointIsNull() {
+            addCriterion("gift_point is null");
             return (Criteria) this;
         }
 
-        public Criteria andWeightLessThanOrEqualTo(BigDecimal value) {
-            addCriterion("weight <=", value, "weight");
+        public Criteria andGiftPointIsNotNull() {
+            addCriterion("gift_point is not null");
             return (Criteria) this;
         }
 
-        public Criteria andWeightIn(List<BigDecimal> values) {
-            addCriterion("weight in", values, "weight");
+        public Criteria andGiftPointEqualTo(Integer value) {
+            addCriterion("gift_point =", value, "giftPoint");
             return (Criteria) this;
         }
 
-        public Criteria andWeightNotIn(List<BigDecimal> values) {
-            addCriterion("weight not in", values, "weight");
+        public Criteria andGiftPointNotEqualTo(Integer value) {
+            addCriterion("gift_point <>", value, "giftPoint");
             return (Criteria) this;
         }
 
-        public Criteria andWeightBetween(BigDecimal value1, BigDecimal value2) {
-            addCriterion("weight between", value1, value2, "weight");
+        public Criteria andGiftPointGreaterThan(Integer value) {
+            addCriterion("gift_point >", value, "giftPoint");
             return (Criteria) this;
         }
 
-        public Criteria andWeightNotBetween(BigDecimal value1, BigDecimal value2) {
-            addCriterion("weight not between", value1, value2, "weight");
+        public Criteria andGiftPointGreaterThanOrEqualTo(Integer value) {
+            addCriterion("gift_point >=", value, "giftPoint");
             return (Criteria) this;
         }
 
-        public Criteria andPreviewStatusIsNull() {
-            addCriterion("preview_status is null");
+        public Criteria andGiftPointLessThan(Integer value) {
+            addCriterion("gift_point <", value, "giftPoint");
             return (Criteria) this;
         }
 
-        public Criteria andPreviewStatusIsNotNull() {
-            addCriterion("preview_status is not null");
+        public Criteria andGiftPointLessThanOrEqualTo(Integer value) {
+            addCriterion("gift_point <=", value, "giftPoint");
             return (Criteria) this;
         }
 
-        public Criteria andPreviewStatusEqualTo(Integer value) {
-            addCriterion("preview_status =", value, "previewStatus");
+        public Criteria andGiftPointIn(List<Integer> values) {
+            addCriterion("gift_point in", values, "giftPoint");
             return (Criteria) this;
         }
 
-        public Criteria andPreviewStatusNotEqualTo(Integer value) {
-            addCriterion("preview_status <>", value, "previewStatus");
+        public Criteria andGiftPointNotIn(List<Integer> values) {
+            addCriterion("gift_point not in", values, "giftPoint");
             return (Criteria) this;
         }
 
-        public Criteria andPreviewStatusGreaterThan(Integer value) {
-            addCriterion("preview_status >", value, "previewStatus");
+        public Criteria andGiftPointBetween(Integer value1, Integer value2) {
+            addCriterion("gift_point between", value1, value2, "giftPoint");
             return (Criteria) this;
         }
 
-        public Criteria andPreviewStatusGreaterThanOrEqualTo(Integer value) {
-            addCriterion("preview_status >=", value, "previewStatus");
+        public Criteria andGiftPointNotBetween(Integer value1, Integer value2) {
+            addCriterion("gift_point not between", value1, value2, "giftPoint");
             return (Criteria) this;
         }
 
-        public Criteria andPreviewStatusLessThan(Integer value) {
-            addCriterion("preview_status <", value, "previewStatus");
+        public Criteria andUsePointLimitIsNull() {
+            addCriterion("use_point_limit is null");
             return (Criteria) this;
         }
 
-        public Criteria andPreviewStatusLessThanOrEqualTo(Integer value) {
-            addCriterion("preview_status <=", value, "previewStatus");
+        public Criteria andUsePointLimitIsNotNull() {
+            addCriterion("use_point_limit is not null");
             return (Criteria) this;
         }
 
-        public Criteria andPreviewStatusIn(List<Integer> values) {
-            addCriterion("preview_status in", values, "previewStatus");
+        public Criteria andUsePointLimitEqualTo(Integer value) {
+            addCriterion("use_point_limit =", value, "usePointLimit");
             return (Criteria) this;
         }
 
-        public Criteria andPreviewStatusNotIn(List<Integer> values) {
-            addCriterion("preview_status not in", values, "previewStatus");
+        public Criteria andUsePointLimitNotEqualTo(Integer value) {
+            addCriterion("use_point_limit <>", value, "usePointLimit");
             return (Criteria) this;
         }
 
-        public Criteria andPreviewStatusBetween(Integer value1, Integer value2) {
-            addCriterion("preview_status between", value1, value2, "previewStatus");
+        public Criteria andUsePointLimitGreaterThan(Integer value) {
+            addCriterion("use_point_limit >", value, "usePointLimit");
             return (Criteria) this;
         }
 
-        public Criteria andPreviewStatusNotBetween(Integer value1, Integer value2) {
-            addCriterion("preview_status not between", value1, value2, "previewStatus");
+        public Criteria andUsePointLimitGreaterThanOrEqualTo(Integer value) {
+            addCriterion("use_point_limit >=", value, "usePointLimit");
             return (Criteria) this;
         }
 
-        public Criteria andServiceIdsIsNull() {
-            addCriterion("service_ids is null");
+        public Criteria andUsePointLimitLessThan(Integer value) {
+            addCriterion("use_point_limit <", value, "usePointLimit");
             return (Criteria) this;
         }
 
-        public Criteria andServiceIdsIsNotNull() {
-            addCriterion("service_ids is not null");
+        public Criteria andUsePointLimitLessThanOrEqualTo(Integer value) {
+            addCriterion("use_point_limit <=", value, "usePointLimit");
             return (Criteria) this;
         }
 
-        public Criteria andServiceIdsEqualTo(String value) {
-            addCriterion("service_ids =", value, "serviceIds");
+        public Criteria andUsePointLimitIn(List<Integer> values) {
+            addCriterion("use_point_limit in", values, "usePointLimit");
             return (Criteria) this;
         }
 
-        public Criteria andServiceIdsNotEqualTo(String value) {
-            addCriterion("service_ids <>", value, "serviceIds");
+        public Criteria andUsePointLimitNotIn(List<Integer> values) {
+            addCriterion("use_point_limit not in", values, "usePointLimit");
             return (Criteria) this;
         }
 
-        public Criteria andServiceIdsGreaterThan(String value) {
-            addCriterion("service_ids >", value, "serviceIds");
+        public Criteria andUsePointLimitBetween(Integer value1, Integer value2) {
+            addCriterion("use_point_limit between", value1, value2, "usePointLimit");
             return (Criteria) this;
         }
 
-        public Criteria andServiceIdsGreaterThanOrEqualTo(String value) {
-            addCriterion("service_ids >=", value, "serviceIds");
+        public Criteria andUsePointLimitNotBetween(Integer value1, Integer value2) {
+            addCriterion("use_point_limit not between", value1, value2, "usePointLimit");
             return (Criteria) this;
         }
 
-        public Criteria andServiceIdsLessThan(String value) {
-            addCriterion("service_ids <", value, "serviceIds");
+        public Criteria andOriginalPriceIsNull() {
+            addCriterion("original_price is null");
             return (Criteria) this;
         }
 
-        public Criteria andServiceIdsLessThanOrEqualTo(String value) {
-            addCriterion("service_ids <=", value, "serviceIds");
+        public Criteria andOriginalPriceIsNotNull() {
+            addCriterion("original_price is not null");
             return (Criteria) this;
         }
 
-        public Criteria andServiceIdsLike(String value) {
-            addCriterion("service_ids like", value, "serviceIds");
+        public Criteria andOriginalPriceEqualTo(BigDecimal value) {
+            addCriterion("original_price =", value, "originalPrice");
             return (Criteria) this;
         }
 
-        public Criteria andServiceIdsNotLike(String value) {
-            addCriterion("service_ids not like", value, "serviceIds");
+        public Criteria andOriginalPriceNotEqualTo(BigDecimal value) {
+            addCriterion("original_price <>", value, "originalPrice");
             return (Criteria) this;
         }
 
-        public Criteria andServiceIdsIn(List<String> values) {
-            addCriterion("service_ids in", values, "serviceIds");
+        public Criteria andOriginalPriceGreaterThan(BigDecimal value) {
+            addCriterion("original_price >", value, "originalPrice");
             return (Criteria) this;
         }
 
-        public Criteria andServiceIdsNotIn(List<String> values) {
-            addCriterion("service_ids not in", values, "serviceIds");
+        public Criteria andOriginalPriceGreaterThanOrEqualTo(BigDecimal value) {
+            addCriterion("original_price >=", value, "originalPrice");
             return (Criteria) this;
         }
 
-        public Criteria andServiceIdsBetween(String value1, String value2) {
-            addCriterion("service_ids between", value1, value2, "serviceIds");
+        public Criteria andOriginalPriceLessThan(BigDecimal value) {
+            addCriterion("original_price <", value, "originalPrice");
             return (Criteria) this;
         }
 
-        public Criteria andServiceIdsNotBetween(String value1, String value2) {
-            addCriterion("service_ids not between", value1, value2, "serviceIds");
+        public Criteria andOriginalPriceLessThanOrEqualTo(BigDecimal value) {
+            addCriterion("original_price <=", value, "originalPrice");
             return (Criteria) this;
         }
 
-        public Criteria andKeywordsIsNull() {
-            addCriterion("keywords is null");
+        public Criteria andOriginalPriceIn(List<BigDecimal> values) {
+            addCriterion("original_price in", values, "originalPrice");
             return (Criteria) this;
         }
 
-        public Criteria andKeywordsIsNotNull() {
-            addCriterion("keywords is not null");
+        public Criteria andOriginalPriceNotIn(List<BigDecimal> values) {
+            addCriterion("original_price not in", values, "originalPrice");
             return (Criteria) this;
         }
 
-        public Criteria andKeywordsEqualTo(String value) {
-            addCriterion("keywords =", value, "keywords");
+        public Criteria andOriginalPriceBetween(BigDecimal value1, BigDecimal value2) {
+            addCriterion("original_price between", value1, value2, "originalPrice");
             return (Criteria) this;
         }
 
-        public Criteria andKeywordsNotEqualTo(String value) {
-            addCriterion("keywords <>", value, "keywords");
+        public Criteria andOriginalPriceNotBetween(BigDecimal value1, BigDecimal value2) {
+            addCriterion("original_price not between", value1, value2, "originalPrice");
             return (Criteria) this;
         }
 
-        public Criteria andKeywordsGreaterThan(String value) {
-            addCriterion("keywords >", value, "keywords");
+        public Criteria andStockIsNull() {
+            addCriterion("stock is null");
             return (Criteria) this;
         }
 
-        public Criteria andKeywordsGreaterThanOrEqualTo(String value) {
-            addCriterion("keywords >=", value, "keywords");
+        public Criteria andStockIsNotNull() {
+            addCriterion("stock is not null");
             return (Criteria) this;
         }
 
-        public Criteria andKeywordsLessThan(String value) {
-            addCriterion("keywords <", value, "keywords");
+        public Criteria andStockEqualTo(Integer value) {
+            addCriterion("stock =", value, "stock");
             return (Criteria) this;
         }
 
-        public Criteria andKeywordsLessThanOrEqualTo(String value) {
-            addCriterion("keywords <=", value, "keywords");
+        public Criteria andStockNotEqualTo(Integer value) {
+            addCriterion("stock <>", value, "stock");
             return (Criteria) this;
         }
 
-        public Criteria andKeywordsLike(String value) {
-            addCriterion("keywords like", value, "keywords");
+        public Criteria andStockGreaterThan(Integer value) {
+            addCriterion("stock >", value, "stock");
             return (Criteria) this;
         }
 
-        public Criteria andKeywordsNotLike(String value) {
-            addCriterion("keywords not like", value, "keywords");
+        public Criteria andStockGreaterThanOrEqualTo(Integer value) {
+            addCriterion("stock >=", value, "stock");
             return (Criteria) this;
         }
 
-        public Criteria andKeywordsIn(List<String> values) {
-            addCriterion("keywords in", values, "keywords");
+        public Criteria andStockLessThan(Integer value) {
+            addCriterion("stock <", value, "stock");
             return (Criteria) this;
         }
 
-        public Criteria andKeywordsNotIn(List<String> values) {
-            addCriterion("keywords not in", values, "keywords");
+        public Criteria andStockLessThanOrEqualTo(Integer value) {
+            addCriterion("stock <=", value, "stock");
             return (Criteria) this;
         }
 
-        public Criteria andKeywordsBetween(String value1, String value2) {
-            addCriterion("keywords between", value1, value2, "keywords");
+        public Criteria andStockIn(List<Integer> values) {
+            addCriterion("stock in", values, "stock");
             return (Criteria) this;
         }
 
-        public Criteria andKeywordsNotBetween(String value1, String value2) {
-            addCriterion("keywords not between", value1, value2, "keywords");
+        public Criteria andStockNotIn(List<Integer> values) {
+            addCriterion("stock not in", values, "stock");
             return (Criteria) this;
         }
 
-        public Criteria andNoteIsNull() {
-            addCriterion("note is null");
+        public Criteria andStockBetween(Integer value1, Integer value2) {
+            addCriterion("stock between", value1, value2, "stock");
             return (Criteria) this;
         }
 
-        public Criteria andNoteIsNotNull() {
-            addCriterion("note is not null");
+        public Criteria andStockNotBetween(Integer value1, Integer value2) {
+            addCriterion("stock not between", value1, value2, "stock");
             return (Criteria) this;
         }
 
-        public Criteria andNoteEqualTo(String value) {
-            addCriterion("note =", value, "note");
+        public Criteria andLowStockIsNull() {
+            addCriterion("low_stock is null");
             return (Criteria) this;
         }
 
-        public Criteria andNoteNotEqualTo(String value) {
-            addCriterion("note <>", value, "note");
+        public Criteria andLowStockIsNotNull() {
+            addCriterion("low_stock is not null");
             return (Criteria) this;
         }
 
-        public Criteria andNoteGreaterThan(String value) {
-            addCriterion("note >", value, "note");
+        public Criteria andLowStockEqualTo(Integer value) {
+            addCriterion("low_stock =", value, "lowStock");
             return (Criteria) this;
         }
 
-        public Criteria andNoteGreaterThanOrEqualTo(String value) {
-            addCriterion("note >=", value, "note");
+        public Criteria andLowStockNotEqualTo(Integer value) {
+            addCriterion("low_stock <>", value, "lowStock");
             return (Criteria) this;
         }
 
-        public Criteria andNoteLessThan(String value) {
-            addCriterion("note <", value, "note");
+        public Criteria andLowStockGreaterThan(Integer value) {
+            addCriterion("low_stock >", value, "lowStock");
             return (Criteria) this;
         }
 
-        public Criteria andNoteLessThanOrEqualTo(String value) {
-            addCriterion("note <=", value, "note");
+        public Criteria andLowStockGreaterThanOrEqualTo(Integer value) {
+            addCriterion("low_stock >=", value, "lowStock");
             return (Criteria) this;
         }
 
-        public Criteria andNoteLike(String value) {
-            addCriterion("note like", value, "note");
+        public Criteria andLowStockLessThan(Integer value) {
+            addCriterion("low_stock <", value, "lowStock");
             return (Criteria) this;
         }
 
-        public Criteria andNoteNotLike(String value) {
-            addCriterion("note not like", value, "note");
+        public Criteria andLowStockLessThanOrEqualTo(Integer value) {
+            addCriterion("low_stock <=", value, "lowStock");
             return (Criteria) this;
         }
 
-        public Criteria andNoteIn(List<String> values) {
-            addCriterion("note in", values, "note");
+        public Criteria andLowStockIn(List<Integer> values) {
+            addCriterion("low_stock in", values, "lowStock");
             return (Criteria) this;
         }
 
-        public Criteria andNoteNotIn(List<String> values) {
-            addCriterion("note not in", values, "note");
+        public Criteria andLowStockNotIn(List<Integer> values) {
+            addCriterion("low_stock not in", values, "lowStock");
             return (Criteria) this;
         }
 
-        public Criteria andNoteBetween(String value1, String value2) {
-            addCriterion("note between", value1, value2, "note");
+        public Criteria andLowStockBetween(Integer value1, Integer value2) {
+            addCriterion("low_stock between", value1, value2, "lowStock");
             return (Criteria) this;
         }
 
-        public Criteria andNoteNotBetween(String value1, String value2) {
-            addCriterion("note not between", value1, value2, "note");
+        public Criteria andLowStockNotBetween(Integer value1, Integer value2) {
+            addCriterion("low_stock not between", value1, value2, "lowStock");
             return (Criteria) this;
         }
 
-        public Criteria andDetailTitleIsNull() {
-            addCriterion("detail_title is null");
+        public Criteria andUnitIsNull() {
+            addCriterion("unit is null");
             return (Criteria) this;
         }
 
-        public Criteria andDetailTitleIsNotNull() {
-            addCriterion("detail_title is not null");
+        public Criteria andUnitIsNotNull() {
+            addCriterion("unit is not null");
             return (Criteria) this;
         }
 
-        public Criteria andDetailTitleEqualTo(String value) {
-            addCriterion("detail_title =", value, "detailTitle");
+        public Criteria andUnitEqualTo(String value) {
+            addCriterion("unit =", value, "unit");
             return (Criteria) this;
         }
 
-        public Criteria andDetailTitleNotEqualTo(String value) {
-            addCriterion("detail_title <>", value, "detailTitle");
+        public Criteria andUnitNotEqualTo(String value) {
+            addCriterion("unit <>", value, "unit");
             return (Criteria) this;
         }
 
-        public Criteria andDetailTitleGreaterThan(String value) {
-            addCriterion("detail_title >", value, "detailTitle");
+        public Criteria andUnitGreaterThan(String value) {
+            addCriterion("unit >", value, "unit");
             return (Criteria) this;
         }
 
-        public Criteria andDetailTitleGreaterThanOrEqualTo(String value) {
-            addCriterion("detail_title >=", value, "detailTitle");
+        public Criteria andUnitGreaterThanOrEqualTo(String value) {
+            addCriterion("unit >=", value, "unit");
             return (Criteria) this;
         }
 
-        public Criteria andDetailTitleLessThan(String value) {
-            addCriterion("detail_title <", value, "detailTitle");
+        public Criteria andUnitLessThan(String value) {
+            addCriterion("unit <", value, "unit");
             return (Criteria) this;
         }
 
-        public Criteria andDetailTitleLessThanOrEqualTo(String value) {
-            addCriterion("detail_title <=", value, "detailTitle");
+        public Criteria andUnitLessThanOrEqualTo(String value) {
+            addCriterion("unit <=", value, "unit");
             return (Criteria) this;
         }
 
-        public Criteria andDetailTitleLike(String value) {
-            addCriterion("detail_title like", value, "detailTitle");
+        public Criteria andUnitLike(String value) {
+            addCriterion("unit like", value, "unit");
             return (Criteria) this;
         }
 
-        public Criteria andDetailTitleNotLike(String value) {
-            addCriterion("detail_title not like", value, "detailTitle");
+        public Criteria andUnitNotLike(String value) {
+            addCriterion("unit not like", value, "unit");
             return (Criteria) this;
         }
 
-        public Criteria andDetailTitleIn(List<String> values) {
-            addCriterion("detail_title in", values, "detailTitle");
+        public Criteria andUnitIn(List<String> values) {
+            addCriterion("unit in", values, "unit");
             return (Criteria) this;
         }
 
-        public Criteria andDetailTitleNotIn(List<String> values) {
-            addCriterion("detail_title not in", values, "detailTitle");
+        public Criteria andUnitNotIn(List<String> values) {
+            addCriterion("unit not in", values, "unit");
             return (Criteria) this;
         }
 
-        public Criteria andDetailTitleBetween(String value1, String value2) {
-            addCriterion("detail_title between", value1, value2, "detailTitle");
+        public Criteria andUnitBetween(String value1, String value2) {
+            addCriterion("unit between", value1, value2, "unit");
             return (Criteria) this;
         }
 
-        public Criteria andDetailTitleNotBetween(String value1, String value2) {
-            addCriterion("detail_title not between", value1, value2, "detailTitle");
+        public Criteria andUnitNotBetween(String value1, String value2) {
+            addCriterion("unit not between", value1, value2, "unit");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionStartTimeIsNull() {
-            addCriterion("promotion_start_time is null");
+        public Criteria andWeightIsNull() {
+            addCriterion("weight is null");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionStartTimeIsNotNull() {
-            addCriterion("promotion_start_time is not null");
+        public Criteria andWeightIsNotNull() {
+            addCriterion("weight is not null");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionStartTimeEqualTo(Date value) {
-            addCriterion("promotion_start_time =", value, "promotionStartTime");
+        public Criteria andWeightEqualTo(BigDecimal value) {
+            addCriterion("weight =", value, "weight");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionStartTimeNotEqualTo(Date value) {
-            addCriterion("promotion_start_time <>", value, "promotionStartTime");
+        public Criteria andWeightNotEqualTo(BigDecimal value) {
+            addCriterion("weight <>", value, "weight");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionStartTimeGreaterThan(Date value) {
-            addCriterion("promotion_start_time >", value, "promotionStartTime");
+        public Criteria andWeightGreaterThan(BigDecimal value) {
+            addCriterion("weight >", value, "weight");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionStartTimeGreaterThanOrEqualTo(Date value) {
-            addCriterion("promotion_start_time >=", value, "promotionStartTime");
+        public Criteria andWeightGreaterThanOrEqualTo(BigDecimal value) {
+            addCriterion("weight >=", value, "weight");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionStartTimeLessThan(Date value) {
-            addCriterion("promotion_start_time <", value, "promotionStartTime");
+        public Criteria andWeightLessThan(BigDecimal value) {
+            addCriterion("weight <", value, "weight");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionStartTimeLessThanOrEqualTo(Date value) {
-            addCriterion("promotion_start_time <=", value, "promotionStartTime");
+        public Criteria andWeightLessThanOrEqualTo(BigDecimal value) {
+            addCriterion("weight <=", value, "weight");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionStartTimeIn(List<Date> values) {
-            addCriterion("promotion_start_time in", values, "promotionStartTime");
+        public Criteria andWeightIn(List<BigDecimal> values) {
+            addCriterion("weight in", values, "weight");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionStartTimeNotIn(List<Date> values) {
-            addCriterion("promotion_start_time not in", values, "promotionStartTime");
+        public Criteria andWeightNotIn(List<BigDecimal> values) {
+            addCriterion("weight not in", values, "weight");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionStartTimeBetween(Date value1, Date value2) {
-            addCriterion("promotion_start_time between", value1, value2, "promotionStartTime");
+        public Criteria andWeightBetween(BigDecimal value1, BigDecimal value2) {
+            addCriterion("weight between", value1, value2, "weight");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionStartTimeNotBetween(Date value1, Date value2) {
-            addCriterion("promotion_start_time not between", value1, value2, "promotionStartTime");
+        public Criteria andWeightNotBetween(BigDecimal value1, BigDecimal value2) {
+            addCriterion("weight not between", value1, value2, "weight");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionEndTimeIsNull() {
-            addCriterion("promotion_end_time is null");
+        public Criteria andPreviewStatusIsNull() {
+            addCriterion("preview_status is null");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionEndTimeIsNotNull() {
-            addCriterion("promotion_end_time is not null");
+        public Criteria andPreviewStatusIsNotNull() {
+            addCriterion("preview_status is not null");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionEndTimeEqualTo(Date value) {
-            addCriterion("promotion_end_time =", value, "promotionEndTime");
+        public Criteria andPreviewStatusEqualTo(Integer value) {
+            addCriterion("preview_status =", value, "previewStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionEndTimeNotEqualTo(Date value) {
-            addCriterion("promotion_end_time <>", value, "promotionEndTime");
+        public Criteria andPreviewStatusNotEqualTo(Integer value) {
+            addCriterion("preview_status <>", value, "previewStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionEndTimeGreaterThan(Date value) {
-            addCriterion("promotion_end_time >", value, "promotionEndTime");
+        public Criteria andPreviewStatusGreaterThan(Integer value) {
+            addCriterion("preview_status >", value, "previewStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionEndTimeGreaterThanOrEqualTo(Date value) {
-            addCriterion("promotion_end_time >=", value, "promotionEndTime");
+        public Criteria andPreviewStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("preview_status >=", value, "previewStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionEndTimeLessThan(Date value) {
-            addCriterion("promotion_end_time <", value, "promotionEndTime");
+        public Criteria andPreviewStatusLessThan(Integer value) {
+            addCriterion("preview_status <", value, "previewStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionEndTimeLessThanOrEqualTo(Date value) {
-            addCriterion("promotion_end_time <=", value, "promotionEndTime");
+        public Criteria andPreviewStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("preview_status <=", value, "previewStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionEndTimeIn(List<Date> values) {
-            addCriterion("promotion_end_time in", values, "promotionEndTime");
+        public Criteria andPreviewStatusIn(List<Integer> values) {
+            addCriterion("preview_status in", values, "previewStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionEndTimeNotIn(List<Date> values) {
-            addCriterion("promotion_end_time not in", values, "promotionEndTime");
+        public Criteria andPreviewStatusNotIn(List<Integer> values) {
+            addCriterion("preview_status not in", values, "previewStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionEndTimeBetween(Date value1, Date value2) {
-            addCriterion("promotion_end_time between", value1, value2, "promotionEndTime");
+        public Criteria andPreviewStatusBetween(Integer value1, Integer value2) {
+            addCriterion("preview_status between", value1, value2, "previewStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionEndTimeNotBetween(Date value1, Date value2) {
-            addCriterion("promotion_end_time not between", value1, value2, "promotionEndTime");
+        public Criteria andPreviewStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("preview_status not between", value1, value2, "previewStatus");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPerLimitIsNull() {
-            addCriterion("promotion_per_limit is null");
+        public Criteria andServiceIdsIsNull() {
+            addCriterion("service_ids is null");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPerLimitIsNotNull() {
-            addCriterion("promotion_per_limit is not null");
+        public Criteria andServiceIdsIsNotNull() {
+            addCriterion("service_ids is not null");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPerLimitEqualTo(Integer value) {
-            addCriterion("promotion_per_limit =", value, "promotionPerLimit");
+        public Criteria andServiceIdsEqualTo(String value) {
+            addCriterion("service_ids =", value, "serviceIds");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPerLimitNotEqualTo(Integer value) {
-            addCriterion("promotion_per_limit <>", value, "promotionPerLimit");
+        public Criteria andServiceIdsNotEqualTo(String value) {
+            addCriterion("service_ids <>", value, "serviceIds");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPerLimitGreaterThan(Integer value) {
-            addCriterion("promotion_per_limit >", value, "promotionPerLimit");
+        public Criteria andServiceIdsGreaterThan(String value) {
+            addCriterion("service_ids >", value, "serviceIds");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPerLimitGreaterThanOrEqualTo(Integer value) {
-            addCriterion("promotion_per_limit >=", value, "promotionPerLimit");
+        public Criteria andServiceIdsGreaterThanOrEqualTo(String value) {
+            addCriterion("service_ids >=", value, "serviceIds");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPerLimitLessThan(Integer value) {
-            addCriterion("promotion_per_limit <", value, "promotionPerLimit");
+        public Criteria andServiceIdsLessThan(String value) {
+            addCriterion("service_ids <", value, "serviceIds");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPerLimitLessThanOrEqualTo(Integer value) {
-            addCriterion("promotion_per_limit <=", value, "promotionPerLimit");
+        public Criteria andServiceIdsLessThanOrEqualTo(String value) {
+            addCriterion("service_ids <=", value, "serviceIds");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPerLimitIn(List<Integer> values) {
-            addCriterion("promotion_per_limit in", values, "promotionPerLimit");
+        public Criteria andServiceIdsLike(String value) {
+            addCriterion("service_ids like", value, "serviceIds");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPerLimitNotIn(List<Integer> values) {
-            addCriterion("promotion_per_limit not in", values, "promotionPerLimit");
+        public Criteria andServiceIdsNotLike(String value) {
+            addCriterion("service_ids not like", value, "serviceIds");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPerLimitBetween(Integer value1, Integer value2) {
-            addCriterion("promotion_per_limit between", value1, value2, "promotionPerLimit");
+        public Criteria andServiceIdsIn(List<String> values) {
+            addCriterion("service_ids in", values, "serviceIds");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionPerLimitNotBetween(Integer value1, Integer value2) {
-            addCriterion("promotion_per_limit not between", value1, value2, "promotionPerLimit");
+        public Criteria andServiceIdsNotIn(List<String> values) {
+            addCriterion("service_ids not in", values, "serviceIds");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionTypeIsNull() {
-            addCriterion("promotion_type is null");
+        public Criteria andServiceIdsBetween(String value1, String value2) {
+            addCriterion("service_ids between", value1, value2, "serviceIds");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionTypeIsNotNull() {
-            addCriterion("promotion_type is not null");
+        public Criteria andServiceIdsNotBetween(String value1, String value2) {
+            addCriterion("service_ids not between", value1, value2, "serviceIds");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionTypeEqualTo(Integer value) {
-            addCriterion("promotion_type =", value, "promotionType");
+        public Criteria andKeywordsIsNull() {
+            addCriterion("keywords is null");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionTypeNotEqualTo(Integer value) {
-            addCriterion("promotion_type <>", value, "promotionType");
+        public Criteria andKeywordsIsNotNull() {
+            addCriterion("keywords is not null");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionTypeGreaterThan(Integer value) {
-            addCriterion("promotion_type >", value, "promotionType");
+        public Criteria andKeywordsEqualTo(String value) {
+            addCriterion("keywords =", value, "keywords");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionTypeGreaterThanOrEqualTo(Integer value) {
-            addCriterion("promotion_type >=", value, "promotionType");
+        public Criteria andKeywordsNotEqualTo(String value) {
+            addCriterion("keywords <>", value, "keywords");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionTypeLessThan(Integer value) {
-            addCriterion("promotion_type <", value, "promotionType");
+        public Criteria andKeywordsGreaterThan(String value) {
+            addCriterion("keywords >", value, "keywords");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionTypeLessThanOrEqualTo(Integer value) {
-            addCriterion("promotion_type <=", value, "promotionType");
+        public Criteria andKeywordsGreaterThanOrEqualTo(String value) {
+            addCriterion("keywords >=", value, "keywords");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionTypeIn(List<Integer> values) {
-            addCriterion("promotion_type in", values, "promotionType");
+        public Criteria andKeywordsLessThan(String value) {
+            addCriterion("keywords <", value, "keywords");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionTypeNotIn(List<Integer> values) {
-            addCriterion("promotion_type not in", values, "promotionType");
+        public Criteria andKeywordsLessThanOrEqualTo(String value) {
+            addCriterion("keywords <=", value, "keywords");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionTypeBetween(Integer value1, Integer value2) {
-            addCriterion("promotion_type between", value1, value2, "promotionType");
+        public Criteria andKeywordsLike(String value) {
+            addCriterion("keywords like", value, "keywords");
             return (Criteria) this;
         }
 
-        public Criteria andPromotionTypeNotBetween(Integer value1, Integer value2) {
-            addCriterion("promotion_type not between", value1, value2, "promotionType");
+        public Criteria andKeywordsNotLike(String value) {
+            addCriterion("keywords not like", value, "keywords");
             return (Criteria) this;
         }
 
-        public Criteria andBrandNameIsNull() {
-            addCriterion("brand_name is null");
+        public Criteria andKeywordsIn(List<String> values) {
+            addCriterion("keywords in", values, "keywords");
             return (Criteria) this;
         }
 
-        public Criteria andBrandNameIsNotNull() {
-            addCriterion("brand_name is not null");
+        public Criteria andKeywordsNotIn(List<String> values) {
+            addCriterion("keywords not in", values, "keywords");
             return (Criteria) this;
         }
 
-        public Criteria andBrandNameEqualTo(String value) {
-            addCriterion("brand_name =", value, "brandName");
+        public Criteria andKeywordsBetween(String value1, String value2) {
+            addCriterion("keywords between", value1, value2, "keywords");
             return (Criteria) this;
         }
 
-        public Criteria andBrandNameNotEqualTo(String value) {
-            addCriterion("brand_name <>", value, "brandName");
+        public Criteria andKeywordsNotBetween(String value1, String value2) {
+            addCriterion("keywords not between", value1, value2, "keywords");
             return (Criteria) this;
         }
 
-        public Criteria andBrandNameGreaterThan(String value) {
-            addCriterion("brand_name >", value, "brandName");
+        public Criteria andNoteIsNull() {
+            addCriterion("note is null");
             return (Criteria) this;
         }
 
-        public Criteria andBrandNameGreaterThanOrEqualTo(String value) {
-            addCriterion("brand_name >=", value, "brandName");
+        public Criteria andNoteIsNotNull() {
+            addCriterion("note is not null");
             return (Criteria) this;
         }
 
-        public Criteria andBrandNameLessThan(String value) {
-            addCriterion("brand_name <", value, "brandName");
+        public Criteria andNoteEqualTo(String value) {
+            addCriterion("note =", value, "note");
             return (Criteria) this;
         }
 
-        public Criteria andBrandNameLessThanOrEqualTo(String value) {
-            addCriterion("brand_name <=", value, "brandName");
+        public Criteria andNoteNotEqualTo(String value) {
+            addCriterion("note <>", value, "note");
             return (Criteria) this;
         }
 
-        public Criteria andBrandNameLike(String value) {
-            addCriterion("brand_name like", value, "brandName");
+        public Criteria andNoteGreaterThan(String value) {
+            addCriterion("note >", value, "note");
             return (Criteria) this;
         }
 
-        public Criteria andBrandNameNotLike(String value) {
-            addCriterion("brand_name not like", value, "brandName");
+        public Criteria andNoteGreaterThanOrEqualTo(String value) {
+            addCriterion("note >=", value, "note");
             return (Criteria) this;
         }
 
-        public Criteria andBrandNameIn(List<String> values) {
-            addCriterion("brand_name in", values, "brandName");
+        public Criteria andNoteLessThan(String value) {
+            addCriterion("note <", value, "note");
             return (Criteria) this;
         }
 
-        public Criteria andBrandNameNotIn(List<String> values) {
-            addCriterion("brand_name not in", values, "brandName");
+        public Criteria andNoteLessThanOrEqualTo(String value) {
+            addCriterion("note <=", value, "note");
             return (Criteria) this;
         }
 
-        public Criteria andBrandNameBetween(String value1, String value2) {
-            addCriterion("brand_name between", value1, value2, "brandName");
+        public Criteria andNoteLike(String value) {
+            addCriterion("note like", value, "note");
             return (Criteria) this;
         }
 
-        public Criteria andBrandNameNotBetween(String value1, String value2) {
-            addCriterion("brand_name not between", value1, value2, "brandName");
+        public Criteria andNoteNotLike(String value) {
+            addCriterion("note not like", value, "note");
             return (Criteria) this;
         }
 
-        public Criteria andCompIdIsNull() {
-            addCriterion("comp_id is null");
+        public Criteria andNoteIn(List<String> values) {
+            addCriterion("note in", values, "note");
             return (Criteria) this;
         }
 
-        public Criteria andCompIdIsNotNull() {
-            addCriterion("comp_id is not null");
+        public Criteria andNoteNotIn(List<String> values) {
+            addCriterion("note not in", values, "note");
             return (Criteria) this;
         }
 
-        public Criteria andCompIdEqualTo(Long value) {
-            addCriterion("comp_id =", value, "compId");
+        public Criteria andNoteBetween(String value1, String value2) {
+            addCriterion("note between", value1, value2, "note");
             return (Criteria) this;
         }
 
-        public Criteria andCompIdNotEqualTo(Long value) {
-            addCriterion("comp_id <>", value, "compId");
+        public Criteria andNoteNotBetween(String value1, String value2) {
+            addCriterion("note not between", value1, value2, "note");
             return (Criteria) this;
         }
 
-        public Criteria andCompIdGreaterThan(Long value) {
-            addCriterion("comp_id >", value, "compId");
+        public Criteria andDetailTitleIsNull() {
+            addCriterion("detail_title is null");
             return (Criteria) this;
         }
 
-        public Criteria andCompIdGreaterThanOrEqualTo(Long value) {
-            addCriterion("comp_id >=", value, "compId");
+        public Criteria andDetailTitleIsNotNull() {
+            addCriterion("detail_title is not null");
             return (Criteria) this;
         }
 
-        public Criteria andCompIdLessThan(Long value) {
-            addCriterion("comp_id <", value, "compId");
+        public Criteria andDetailTitleEqualTo(String value) {
+            addCriterion("detail_title =", value, "detailTitle");
             return (Criteria) this;
         }
 
-        public Criteria andCompIdLessThanOrEqualTo(Long value) {
-            addCriterion("comp_id <=", value, "compId");
+        public Criteria andDetailTitleNotEqualTo(String value) {
+            addCriterion("detail_title <>", value, "detailTitle");
             return (Criteria) this;
         }
 
-        public Criteria andCompIdIn(List<Long> values) {
-            addCriterion("comp_id in", values, "compId");
+        public Criteria andDetailTitleGreaterThan(String value) {
+            addCriterion("detail_title >", value, "detailTitle");
             return (Criteria) this;
         }
 
-        public Criteria andCompIdNotIn(List<Long> values) {
-            addCriterion("comp_id not in", values, "compId");
+        public Criteria andDetailTitleGreaterThanOrEqualTo(String value) {
+            addCriterion("detail_title >=", value, "detailTitle");
             return (Criteria) this;
         }
 
-        public Criteria andCompIdBetween(Long value1, Long value2) {
-            addCriterion("comp_id between", value1, value2, "compId");
+        public Criteria andDetailTitleLessThan(String value) {
+            addCriterion("detail_title <", value, "detailTitle");
             return (Criteria) this;
         }
 
-        public Criteria andCompIdNotBetween(Long value1, Long value2) {
-            addCriterion("comp_id not between", value1, value2, "compId");
+        public Criteria andDetailTitleLessThanOrEqualTo(String value) {
+            addCriterion("detail_title <=", value, "detailTitle");
             return (Criteria) this;
         }
 
-        public Criteria andCompNameIsNull() {
-            addCriterion("comp_name is null");
+        public Criteria andDetailTitleLike(String value) {
+            addCriterion("detail_title like", value, "detailTitle");
             return (Criteria) this;
         }
 
-        public Criteria andCompNameIsNotNull() {
-            addCriterion("comp_name is not null");
+        public Criteria andDetailTitleNotLike(String value) {
+            addCriterion("detail_title not like", value, "detailTitle");
             return (Criteria) this;
         }
 
-        public Criteria andCompNameEqualTo(String value) {
-            addCriterion("comp_name =", value, "compName");
+        public Criteria andDetailTitleIn(List<String> values) {
+            addCriterion("detail_title in", values, "detailTitle");
             return (Criteria) this;
         }
 
-        public Criteria andCompNameNotEqualTo(String value) {
-            addCriterion("comp_name <>", value, "compName");
+        public Criteria andDetailTitleNotIn(List<String> values) {
+            addCriterion("detail_title not in", values, "detailTitle");
             return (Criteria) this;
         }
 
-        public Criteria andCompNameGreaterThan(String value) {
-            addCriterion("comp_name >", value, "compName");
+        public Criteria andDetailTitleBetween(String value1, String value2) {
+            addCriterion("detail_title between", value1, value2, "detailTitle");
             return (Criteria) this;
         }
 
-        public Criteria andCompNameGreaterThanOrEqualTo(String value) {
-            addCriterion("comp_name >=", value, "compName");
+        public Criteria andDetailTitleNotBetween(String value1, String value2) {
+            addCriterion("detail_title not between", value1, value2, "detailTitle");
             return (Criteria) this;
         }
 
-        public Criteria andCompNameLessThan(String value) {
-            addCriterion("comp_name <", value, "compName");
+        public Criteria andPromotionStartTimeIsNull() {
+            addCriterion("promotion_start_time is null");
             return (Criteria) this;
         }
 
-        public Criteria andCompNameLessThanOrEqualTo(String value) {
-            addCriterion("comp_name <=", value, "compName");
+        public Criteria andPromotionStartTimeIsNotNull() {
+            addCriterion("promotion_start_time is not null");
             return (Criteria) this;
         }
 
-        public Criteria andCompNameLike(String value) {
-            addCriterion("comp_name like", value, "compName");
+        public Criteria andPromotionStartTimeEqualTo(Date value) {
+            addCriterion("promotion_start_time =", value, "promotionStartTime");
             return (Criteria) this;
         }
 
-        public Criteria andCompNameNotLike(String value) {
-            addCriterion("comp_name not like", value, "compName");
+        public Criteria andPromotionStartTimeNotEqualTo(Date value) {
+            addCriterion("promotion_start_time <>", value, "promotionStartTime");
             return (Criteria) this;
         }
 
-        public Criteria andCompNameIn(List<String> values) {
-            addCriterion("comp_name in", values, "compName");
+        public Criteria andPromotionStartTimeGreaterThan(Date value) {
+            addCriterion("promotion_start_time >", value, "promotionStartTime");
             return (Criteria) this;
         }
 
-        public Criteria andCompNameNotIn(List<String> values) {
-            addCriterion("comp_name not in", values, "compName");
+        public Criteria andPromotionStartTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("promotion_start_time >=", value, "promotionStartTime");
             return (Criteria) this;
         }
 
-        public Criteria andCompNameBetween(String value1, String value2) {
-            addCriterion("comp_name between", value1, value2, "compName");
+        public Criteria andPromotionStartTimeLessThan(Date value) {
+            addCriterion("promotion_start_time <", value, "promotionStartTime");
             return (Criteria) this;
         }
 
-        public Criteria andCompNameNotBetween(String value1, String value2) {
-            addCriterion("comp_name not between", value1, value2, "compName");
+        public Criteria andPromotionStartTimeLessThanOrEqualTo(Date value) {
+            addCriterion("promotion_start_time <=", value, "promotionStartTime");
             return (Criteria) this;
         }
 
-        public Criteria andTradePriceIsNull() {
-            addCriterion("trade_price is null");
+        public Criteria andPromotionStartTimeIn(List<Date> values) {
+            addCriterion("promotion_start_time in", values, "promotionStartTime");
             return (Criteria) this;
         }
 
-        public Criteria andTradePriceIsNotNull() {
-            addCriterion("trade_price is not null");
+        public Criteria andPromotionStartTimeNotIn(List<Date> values) {
+            addCriterion("promotion_start_time not in", values, "promotionStartTime");
             return (Criteria) this;
         }
 
-        public Criteria andTradePriceEqualTo(BigDecimal value) {
-            addCriterion("trade_price =", value, "tradePrice");
+        public Criteria andPromotionStartTimeBetween(Date value1, Date value2) {
+            addCriterion("promotion_start_time between", value1, value2, "promotionStartTime");
             return (Criteria) this;
         }
 
-        public Criteria andTradePriceNotEqualTo(BigDecimal value) {
-            addCriterion("trade_price <>", value, "tradePrice");
+        public Criteria andPromotionStartTimeNotBetween(Date value1, Date value2) {
+            addCriterion("promotion_start_time not between", value1, value2, "promotionStartTime");
             return (Criteria) this;
         }
 
-        public Criteria andTradePriceGreaterThan(BigDecimal value) {
-            addCriterion("trade_price >", value, "tradePrice");
+        public Criteria andPromotionEndTimeIsNull() {
+            addCriterion("promotion_end_time is null");
             return (Criteria) this;
         }
 
-        public Criteria andTradePriceGreaterThanOrEqualTo(BigDecimal value) {
-            addCriterion("trade_price >=", value, "tradePrice");
+        public Criteria andPromotionEndTimeIsNotNull() {
+            addCriterion("promotion_end_time is not null");
             return (Criteria) this;
         }
 
-        public Criteria andTradePriceLessThan(BigDecimal value) {
-            addCriterion("trade_price <", value, "tradePrice");
+        public Criteria andPromotionEndTimeEqualTo(Date value) {
+            addCriterion("promotion_end_time =", value, "promotionEndTime");
             return (Criteria) this;
         }
 
-        public Criteria andTradePriceLessThanOrEqualTo(BigDecimal value) {
-            addCriterion("trade_price <=", value, "tradePrice");
+        public Criteria andPromotionEndTimeNotEqualTo(Date value) {
+            addCriterion("promotion_end_time <>", value, "promotionEndTime");
             return (Criteria) this;
         }
 
-        public Criteria andTradePriceIn(List<BigDecimal> values) {
-            addCriterion("trade_price in", values, "tradePrice");
+        public Criteria andPromotionEndTimeGreaterThan(Date value) {
+            addCriterion("promotion_end_time >", value, "promotionEndTime");
             return (Criteria) this;
         }
 
-        public Criteria andTradePriceNotIn(List<BigDecimal> values) {
-            addCriterion("trade_price not in", values, "tradePrice");
+        public Criteria andPromotionEndTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("promotion_end_time >=", value, "promotionEndTime");
             return (Criteria) this;
         }
 
-        public Criteria andTradePriceBetween(BigDecimal value1, BigDecimal value2) {
-            addCriterion("trade_price between", value1, value2, "tradePrice");
+        public Criteria andPromotionEndTimeLessThan(Date value) {
+            addCriterion("promotion_end_time <", value, "promotionEndTime");
             return (Criteria) this;
         }
 
-        public Criteria andTradePriceNotBetween(BigDecimal value1, BigDecimal value2) {
-            addCriterion("trade_price not between", value1, value2, "tradePrice");
+        public Criteria andPromotionEndTimeLessThanOrEqualTo(Date value) {
+            addCriterion("promotion_end_time <=", value, "promotionEndTime");
             return (Criteria) this;
         }
 
-        public Criteria andSpecIsNull() {
-            addCriterion("spec is null");
+        public Criteria andPromotionEndTimeIn(List<Date> values) {
+            addCriterion("promotion_end_time in", values, "promotionEndTime");
             return (Criteria) this;
         }
 
-        public Criteria andSpecIsNotNull() {
-            addCriterion("spec is not null");
+        public Criteria andPromotionEndTimeNotIn(List<Date> values) {
+            addCriterion("promotion_end_time not in", values, "promotionEndTime");
             return (Criteria) this;
         }
 
-        public Criteria andSpecEqualTo(String value) {
-            addCriterion("spec =", value, "spec");
+        public Criteria andPromotionEndTimeBetween(Date value1, Date value2) {
+            addCriterion("promotion_end_time between", value1, value2, "promotionEndTime");
             return (Criteria) this;
         }
 
-        public Criteria andSpecNotEqualTo(String value) {
-            addCriterion("spec <>", value, "spec");
+        public Criteria andPromotionEndTimeNotBetween(Date value1, Date value2) {
+            addCriterion("promotion_end_time not between", value1, value2, "promotionEndTime");
             return (Criteria) this;
         }
 
-        public Criteria andSpecGreaterThan(String value) {
-            addCriterion("spec >", value, "spec");
+        public Criteria andPromotionPerLimitIsNull() {
+            addCriterion("promotion_per_limit is null");
             return (Criteria) this;
         }
 
-        public Criteria andSpecGreaterThanOrEqualTo(String value) {
-            addCriterion("spec >=", value, "spec");
+        public Criteria andPromotionPerLimitIsNotNull() {
+            addCriterion("promotion_per_limit is not null");
             return (Criteria) this;
         }
 
-        public Criteria andSpecLessThan(String value) {
-            addCriterion("spec <", value, "spec");
+        public Criteria andPromotionPerLimitEqualTo(Integer value) {
+            addCriterion("promotion_per_limit =", value, "promotionPerLimit");
             return (Criteria) this;
         }
 
-        public Criteria andSpecLessThanOrEqualTo(String value) {
-            addCriterion("spec <=", value, "spec");
+        public Criteria andPromotionPerLimitNotEqualTo(Integer value) {
+            addCriterion("promotion_per_limit <>", value, "promotionPerLimit");
             return (Criteria) this;
         }
 
-        public Criteria andSpecLike(String value) {
-            addCriterion("spec like", value, "spec");
+        public Criteria andPromotionPerLimitGreaterThan(Integer value) {
+            addCriterion("promotion_per_limit >", value, "promotionPerLimit");
             return (Criteria) this;
         }
 
-        public Criteria andSpecNotLike(String value) {
-            addCriterion("spec not like", value, "spec");
+        public Criteria andPromotionPerLimitGreaterThanOrEqualTo(Integer value) {
+            addCriterion("promotion_per_limit >=", value, "promotionPerLimit");
             return (Criteria) this;
         }
 
-        public Criteria andSpecIn(List<String> values) {
-            addCriterion("spec in", values, "spec");
+        public Criteria andPromotionPerLimitLessThan(Integer value) {
+            addCriterion("promotion_per_limit <", value, "promotionPerLimit");
             return (Criteria) this;
         }
 
-        public Criteria andSpecNotIn(List<String> values) {
-            addCriterion("spec not in", values, "spec");
+        public Criteria andPromotionPerLimitLessThanOrEqualTo(Integer value) {
+            addCriterion("promotion_per_limit <=", value, "promotionPerLimit");
             return (Criteria) this;
         }
 
-        public Criteria andSpecBetween(String value1, String value2) {
-            addCriterion("spec between", value1, value2, "spec");
+        public Criteria andPromotionPerLimitIn(List<Integer> values) {
+            addCriterion("promotion_per_limit in", values, "promotionPerLimit");
             return (Criteria) this;
         }
 
-        public Criteria andSpecNotBetween(String value1, String value2) {
-            addCriterion("spec not between", value1, value2, "spec");
+        public Criteria andPromotionPerLimitNotIn(List<Integer> values) {
+            addCriterion("promotion_per_limit not in", values, "promotionPerLimit");
             return (Criteria) this;
         }
 
-        public Criteria andDateOfManufactureIsNull() {
-            addCriterion("date_of_manufacture is null");
+        public Criteria andPromotionPerLimitBetween(Integer value1, Integer value2) {
+            addCriterion("promotion_per_limit between", value1, value2, "promotionPerLimit");
             return (Criteria) this;
         }
 
-        public Criteria andDateOfManufactureIsNotNull() {
-            addCriterion("date_of_manufacture is not null");
+        public Criteria andPromotionPerLimitNotBetween(Integer value1, Integer value2) {
+            addCriterion("promotion_per_limit not between", value1, value2, "promotionPerLimit");
             return (Criteria) this;
         }
 
-        public Criteria andDateOfManufactureEqualTo(String value) {
-            addCriterion("date_of_manufacture =", value, "dateOfManufacture");
+        public Criteria andPromotionTypeIsNull() {
+            addCriterion("promotion_type is null");
             return (Criteria) this;
         }
 
-        public Criteria andDateOfManufactureNotEqualTo(String value) {
-            addCriterion("date_of_manufacture <>", value, "dateOfManufacture");
+        public Criteria andPromotionTypeIsNotNull() {
+            addCriterion("promotion_type is not null");
             return (Criteria) this;
         }
 
-        public Criteria andDateOfManufactureGreaterThan(String value) {
-            addCriterion("date_of_manufacture >", value, "dateOfManufacture");
+        public Criteria andPromotionTypeEqualTo(Integer value) {
+            addCriterion("promotion_type =", value, "promotionType");
             return (Criteria) this;
         }
 
-        public Criteria andDateOfManufactureGreaterThanOrEqualTo(String value) {
-            addCriterion("date_of_manufacture >=", value, "dateOfManufacture");
+        public Criteria andPromotionTypeNotEqualTo(Integer value) {
+            addCriterion("promotion_type <>", value, "promotionType");
             return (Criteria) this;
         }
 
-        public Criteria andDateOfManufactureLessThan(String value) {
-            addCriterion("date_of_manufacture <", value, "dateOfManufacture");
+        public Criteria andPromotionTypeGreaterThan(Integer value) {
+            addCriterion("promotion_type >", value, "promotionType");
             return (Criteria) this;
         }
 
-        public Criteria andDateOfManufactureLessThanOrEqualTo(String value) {
-            addCriterion("date_of_manufacture <=", value, "dateOfManufacture");
+        public Criteria andPromotionTypeGreaterThanOrEqualTo(Integer value) {
+            addCriterion("promotion_type >=", value, "promotionType");
             return (Criteria) this;
         }
 
-        public Criteria andDateOfManufactureLike(String value) {
-            addCriterion("date_of_manufacture like", value, "dateOfManufacture");
+        public Criteria andPromotionTypeLessThan(Integer value) {
+            addCriterion("promotion_type <", value, "promotionType");
             return (Criteria) this;
         }
 
-        public Criteria andDateOfManufactureNotLike(String value) {
-            addCriterion("date_of_manufacture not like", value, "dateOfManufacture");
+        public Criteria andPromotionTypeLessThanOrEqualTo(Integer value) {
+            addCriterion("promotion_type <=", value, "promotionType");
             return (Criteria) this;
         }
 
-        public Criteria andDateOfManufactureIn(List<String> values) {
-            addCriterion("date_of_manufacture in", values, "dateOfManufacture");
+        public Criteria andPromotionTypeIn(List<Integer> values) {
+            addCriterion("promotion_type in", values, "promotionType");
             return (Criteria) this;
         }
 
-        public Criteria andDateOfManufactureNotIn(List<String> values) {
-            addCriterion("date_of_manufacture not in", values, "dateOfManufacture");
+        public Criteria andPromotionTypeNotIn(List<Integer> values) {
+            addCriterion("promotion_type not in", values, "promotionType");
             return (Criteria) this;
         }
 
-        public Criteria andDateOfManufactureBetween(String value1, String value2) {
-            addCriterion("date_of_manufacture between", value1, value2, "dateOfManufacture");
+        public Criteria andPromotionTypeBetween(Integer value1, Integer value2) {
+            addCriterion("promotion_type between", value1, value2, "promotionType");
             return (Criteria) this;
         }
 
-        public Criteria andDateOfManufactureNotBetween(String value1, String value2) {
-            addCriterion("date_of_manufacture not between", value1, value2, "dateOfManufacture");
+        public Criteria andPromotionTypeNotBetween(Integer value1, Integer value2) {
+            addCriterion("promotion_type not between", value1, value2, "promotionType");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionIdIsNull() {
-            addCriterion("place_of_production_id is null");
+        public Criteria andTradePriceIsNull() {
+            addCriterion("trade_price is null");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionIdIsNotNull() {
-            addCriterion("place_of_production_id is not null");
+        public Criteria andTradePriceIsNotNull() {
+            addCriterion("trade_price is not null");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionIdEqualTo(Long value) {
-            addCriterion("place_of_production_id =", value, "placeOfProductionId");
+        public Criteria andTradePriceEqualTo(BigDecimal value) {
+            addCriterion("trade_price =", value, "tradePrice");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionIdNotEqualTo(Long value) {
-            addCriterion("place_of_production_id <>", value, "placeOfProductionId");
+        public Criteria andTradePriceNotEqualTo(BigDecimal value) {
+            addCriterion("trade_price <>", value, "tradePrice");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionIdGreaterThan(Long value) {
-            addCriterion("place_of_production_id >", value, "placeOfProductionId");
+        public Criteria andTradePriceGreaterThan(BigDecimal value) {
+            addCriterion("trade_price >", value, "tradePrice");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionIdGreaterThanOrEqualTo(Long value) {
-            addCriterion("place_of_production_id >=", value, "placeOfProductionId");
+        public Criteria andTradePriceGreaterThanOrEqualTo(BigDecimal value) {
+            addCriterion("trade_price >=", value, "tradePrice");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionIdLessThan(Long value) {
-            addCriterion("place_of_production_id <", value, "placeOfProductionId");
+        public Criteria andTradePriceLessThan(BigDecimal value) {
+            addCriterion("trade_price <", value, "tradePrice");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionIdLessThanOrEqualTo(Long value) {
-            addCriterion("place_of_production_id <=", value, "placeOfProductionId");
+        public Criteria andTradePriceLessThanOrEqualTo(BigDecimal value) {
+            addCriterion("trade_price <=", value, "tradePrice");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionIdIn(List<Long> values) {
-            addCriterion("place_of_production_id in", values, "placeOfProductionId");
+        public Criteria andTradePriceIn(List<BigDecimal> values) {
+            addCriterion("trade_price in", values, "tradePrice");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionIdNotIn(List<Long> values) {
-            addCriterion("place_of_production_id not in", values, "placeOfProductionId");
+        public Criteria andTradePriceNotIn(List<BigDecimal> values) {
+            addCriterion("trade_price not in", values, "tradePrice");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionIdBetween(Long value1, Long value2) {
-            addCriterion("place_of_production_id between", value1, value2, "placeOfProductionId");
+        public Criteria andTradePriceBetween(BigDecimal value1, BigDecimal value2) {
+            addCriterion("trade_price between", value1, value2, "tradePrice");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionIdNotBetween(Long value1, Long value2) {
-            addCriterion("place_of_production_id not between", value1, value2, "placeOfProductionId");
+        public Criteria andTradePriceNotBetween(BigDecimal value1, BigDecimal value2) {
+            addCriterion("trade_price not between", value1, value2, "tradePrice");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionIsNull() {
-            addCriterion("place_of_production is null");
+        public Criteria andDateOfManufactureIsNull() {
+            addCriterion("date_of_manufacture is null");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionIsNotNull() {
-            addCriterion("place_of_production is not null");
+        public Criteria andDateOfManufactureIsNotNull() {
+            addCriterion("date_of_manufacture is not null");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionEqualTo(String value) {
-            addCriterion("place_of_production =", value, "placeOfProduction");
+        public Criteria andDateOfManufactureEqualTo(String value) {
+            addCriterion("date_of_manufacture =", value, "dateOfManufacture");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionNotEqualTo(String value) {
-            addCriterion("place_of_production <>", value, "placeOfProduction");
+        public Criteria andDateOfManufactureNotEqualTo(String value) {
+            addCriterion("date_of_manufacture <>", value, "dateOfManufacture");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionGreaterThan(String value) {
-            addCriterion("place_of_production >", value, "placeOfProduction");
+        public Criteria andDateOfManufactureGreaterThan(String value) {
+            addCriterion("date_of_manufacture >", value, "dateOfManufacture");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionGreaterThanOrEqualTo(String value) {
-            addCriterion("place_of_production >=", value, "placeOfProduction");
+        public Criteria andDateOfManufactureGreaterThanOrEqualTo(String value) {
+            addCriterion("date_of_manufacture >=", value, "dateOfManufacture");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionLessThan(String value) {
-            addCriterion("place_of_production <", value, "placeOfProduction");
+        public Criteria andDateOfManufactureLessThan(String value) {
+            addCriterion("date_of_manufacture <", value, "dateOfManufacture");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionLessThanOrEqualTo(String value) {
-            addCriterion("place_of_production <=", value, "placeOfProduction");
+        public Criteria andDateOfManufactureLessThanOrEqualTo(String value) {
+            addCriterion("date_of_manufacture <=", value, "dateOfManufacture");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionLike(String value) {
-            addCriterion("place_of_production like", value, "placeOfProduction");
+        public Criteria andDateOfManufactureLike(String value) {
+            addCriterion("date_of_manufacture like", value, "dateOfManufacture");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionNotLike(String value) {
-            addCriterion("place_of_production not like", value, "placeOfProduction");
+        public Criteria andDateOfManufactureNotLike(String value) {
+            addCriterion("date_of_manufacture not like", value, "dateOfManufacture");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionIn(List<String> values) {
-            addCriterion("place_of_production in", values, "placeOfProduction");
+        public Criteria andDateOfManufactureIn(List<String> values) {
+            addCriterion("date_of_manufacture in", values, "dateOfManufacture");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionNotIn(List<String> values) {
-            addCriterion("place_of_production not in", values, "placeOfProduction");
+        public Criteria andDateOfManufactureNotIn(List<String> values) {
+            addCriterion("date_of_manufacture not in", values, "dateOfManufacture");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionBetween(String value1, String value2) {
-            addCriterion("place_of_production between", value1, value2, "placeOfProduction");
+        public Criteria andDateOfManufactureBetween(String value1, String value2) {
+            addCriterion("date_of_manufacture between", value1, value2, "dateOfManufacture");
             return (Criteria) this;
         }
 
-        public Criteria andPlaceOfProductionNotBetween(String value1, String value2) {
-            addCriterion("place_of_production not between", value1, value2, "placeOfProduction");
+        public Criteria andDateOfManufactureNotBetween(String value1, String value2) {
+            addCriterion("date_of_manufacture not between", value1, value2, "dateOfManufacture");
             return (Criteria) this;
         }
 

+ 127 - 127
forest-admin/admin-mbg/src/main/resources/com/hwrj/cloud/admin/mapper/PmsProductMapper.xml

@@ -4,14 +4,20 @@
   <resultMap id="BaseResultMap" type="com.hwrj.cloud.admin.model.PmsProduct">
     <id column="id" jdbcType="BIGINT" property="id" />
     <result column="brand_id" jdbcType="BIGINT" property="brandId" />
+    <result column="brand_name" jdbcType="VARCHAR" property="brandName" />
     <result column="product_big_category_id" jdbcType="BIGINT" property="productBigCategoryId" />
     <result column="product_big_category_name" jdbcType="VARCHAR" property="productBigCategoryName" />
     <result column="product_category_id" jdbcType="BIGINT" property="productCategoryId" />
     <result column="product_category_name" jdbcType="VARCHAR" property="productCategoryName" />
     <result column="feight_template_id" jdbcType="BIGINT" property="feightTemplateId" />
     <result column="product_attribute_category_id" jdbcType="BIGINT" property="productAttributeCategoryId" />
+    <result column="place_of_production_id" jdbcType="BIGINT" property="placeOfProductionId" />
+    <result column="place_of_production" jdbcType="VARCHAR" property="placeOfProduction" />
+    <result column="comp_id" jdbcType="BIGINT" property="compId" />
+    <result column="comp_name" jdbcType="VARCHAR" property="compName" />
     <result column="name" jdbcType="VARCHAR" property="name" />
     <result column="pic" jdbcType="VARCHAR" property="pic" />
+    <result column="spec" jdbcType="VARCHAR" property="spec" />
     <result column="product_sn" jdbcType="VARCHAR" property="productSn" />
     <result column="delete_status" jdbcType="INTEGER" property="deleteStatus" />
     <result column="publish_status" jdbcType="INTEGER" property="publishStatus" />
@@ -39,14 +45,8 @@
     <result column="promotion_end_time" jdbcType="TIMESTAMP" property="promotionEndTime" />
     <result column="promotion_per_limit" jdbcType="INTEGER" property="promotionPerLimit" />
     <result column="promotion_type" jdbcType="INTEGER" property="promotionType" />
-    <result column="brand_name" jdbcType="VARCHAR" property="brandName" />
-    <result column="comp_id" jdbcType="BIGINT" property="compId" />
-    <result column="comp_name" jdbcType="VARCHAR" property="compName" />
     <result column="trade_price" jdbcType="DECIMAL" property="tradePrice" />
-    <result column="spec" jdbcType="VARCHAR" property="spec" />
     <result column="date_of_manufacture" jdbcType="VARCHAR" property="dateOfManufacture" />
-    <result column="place_of_production_id" jdbcType="BIGINT" property="placeOfProductionId" />
-    <result column="place_of_production" jdbcType="VARCHAR" property="placeOfProduction" />
     <result column="quality_guarantee_period" jdbcType="VARCHAR" property="qualityGuaranteePeriod" />
     <result column="points_for_attention" jdbcType="VARCHAR" property="pointsForAttention" />
     <result column="create_id" jdbcType="BIGINT" property="createId" />
@@ -123,15 +123,15 @@
     </where>
   </sql>
   <sql id="Base_Column_List">
-    id, brand_id, product_big_category_id, product_big_category_name, product_category_id, 
-    product_category_name, feight_template_id, product_attribute_category_id, name, pic, 
-    product_sn, delete_status, publish_status, new_status, recommand_status, verify_status, 
-    sort, sale, price, promotion_price, gift_growth, gift_point, use_point_limit, original_price, 
-    stock, low_stock, unit, weight, preview_status, service_ids, keywords, note, detail_title, 
-    promotion_start_time, promotion_end_time, promotion_per_limit, promotion_type, brand_name, 
-    comp_id, comp_name, trade_price, spec, date_of_manufacture, place_of_production_id, 
-    place_of_production, quality_guarantee_period, points_for_attention, create_id, create_time, 
-    update_id, update_time, create_type
+    id, brand_id, brand_name, product_big_category_id, product_big_category_name, product_category_id, 
+    product_category_name, feight_template_id, product_attribute_category_id, place_of_production_id, 
+    place_of_production, comp_id, comp_name, name, pic, spec, product_sn, delete_status, 
+    publish_status, new_status, recommand_status, verify_status, sort, sale, price, promotion_price, 
+    gift_growth, gift_point, use_point_limit, original_price, stock, low_stock, unit, 
+    weight, preview_status, service_ids, keywords, note, detail_title, promotion_start_time, 
+    promotion_end_time, promotion_per_limit, promotion_type, trade_price, date_of_manufacture, 
+    quality_guarantee_period, points_for_attention, create_id, create_time, update_id, 
+    update_time, create_type
   </sql>
   <sql id="Blob_Column_List">
     sub_title, description, album_pics, detail_desc, detail_html, detail_mobile_html, 
@@ -189,10 +189,12 @@
     <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
       SELECT LAST_INSERT_ID()
     </selectKey>
-    insert into pms_product (brand_id, product_big_category_id, product_big_category_name, 
-      product_category_id, product_category_name, 
-      feight_template_id, product_attribute_category_id, 
-      name, pic, product_sn, 
+    insert into pms_product (brand_id, brand_name, product_big_category_id, 
+      product_big_category_name, product_category_id, 
+      product_category_name, feight_template_id, product_attribute_category_id, 
+      place_of_production_id, place_of_production, 
+      comp_id, comp_name, name, 
+      pic, spec, product_sn, 
       delete_status, publish_status, new_status, 
       recommand_status, verify_status, sort, 
       sale, price, promotion_price, 
@@ -201,19 +203,19 @@
       unit, weight, preview_status, 
       service_ids, keywords, note, 
       detail_title, promotion_start_time, promotion_end_time, 
-      promotion_per_limit, promotion_type, brand_name, 
-      comp_id, comp_name, trade_price, 
-      spec, date_of_manufacture, place_of_production_id, 
-      place_of_production, quality_guarantee_period, 
+      promotion_per_limit, promotion_type, trade_price, 
+      date_of_manufacture, quality_guarantee_period, 
       points_for_attention, create_id, create_time, 
       update_id, update_time, create_type, 
       sub_title, description, album_pics, 
       detail_desc, detail_html, detail_mobile_html, 
       instructions)
-    values (#{brandId,jdbcType=BIGINT}, #{productBigCategoryId,jdbcType=BIGINT}, #{productBigCategoryName,jdbcType=VARCHAR}, 
-      #{productCategoryId,jdbcType=BIGINT}, #{productCategoryName,jdbcType=VARCHAR}, 
-      #{feightTemplateId,jdbcType=BIGINT}, #{productAttributeCategoryId,jdbcType=BIGINT}, 
-      #{name,jdbcType=VARCHAR}, #{pic,jdbcType=VARCHAR}, #{productSn,jdbcType=VARCHAR}, 
+    values (#{brandId,jdbcType=BIGINT}, #{brandName,jdbcType=VARCHAR}, #{productBigCategoryId,jdbcType=BIGINT}, 
+      #{productBigCategoryName,jdbcType=VARCHAR}, #{productCategoryId,jdbcType=BIGINT}, 
+      #{productCategoryName,jdbcType=VARCHAR}, #{feightTemplateId,jdbcType=BIGINT}, #{productAttributeCategoryId,jdbcType=BIGINT}, 
+      #{placeOfProductionId,jdbcType=BIGINT}, #{placeOfProduction,jdbcType=VARCHAR}, 
+      #{compId,jdbcType=BIGINT}, #{compName,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, 
+      #{pic,jdbcType=VARCHAR}, #{spec,jdbcType=VARCHAR}, #{productSn,jdbcType=VARCHAR}, 
       #{deleteStatus,jdbcType=INTEGER}, #{publishStatus,jdbcType=INTEGER}, #{newStatus,jdbcType=INTEGER}, 
       #{recommandStatus,jdbcType=INTEGER}, #{verifyStatus,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER}, 
       #{sale,jdbcType=INTEGER}, #{price,jdbcType=DECIMAL}, #{promotionPrice,jdbcType=DECIMAL}, 
@@ -222,10 +224,8 @@
       #{unit,jdbcType=VARCHAR}, #{weight,jdbcType=DECIMAL}, #{previewStatus,jdbcType=INTEGER}, 
       #{serviceIds,jdbcType=VARCHAR}, #{keywords,jdbcType=VARCHAR}, #{note,jdbcType=VARCHAR}, 
       #{detailTitle,jdbcType=VARCHAR}, #{promotionStartTime,jdbcType=TIMESTAMP}, #{promotionEndTime,jdbcType=TIMESTAMP}, 
-      #{promotionPerLimit,jdbcType=INTEGER}, #{promotionType,jdbcType=INTEGER}, #{brandName,jdbcType=VARCHAR}, 
-      #{compId,jdbcType=BIGINT}, #{compName,jdbcType=VARCHAR}, #{tradePrice,jdbcType=DECIMAL}, 
-      #{spec,jdbcType=VARCHAR}, #{dateOfManufacture,jdbcType=VARCHAR}, #{placeOfProductionId,jdbcType=BIGINT}, 
-      #{placeOfProduction,jdbcType=VARCHAR}, #{qualityGuaranteePeriod,jdbcType=VARCHAR}, 
+      #{promotionPerLimit,jdbcType=INTEGER}, #{promotionType,jdbcType=INTEGER}, #{tradePrice,jdbcType=DECIMAL}, 
+      #{dateOfManufacture,jdbcType=VARCHAR}, #{qualityGuaranteePeriod,jdbcType=VARCHAR}, 
       #{pointsForAttention,jdbcType=VARCHAR}, #{createId,jdbcType=BIGINT}, #{createTime,jdbcType=TIMESTAMP}, 
       #{updateId,jdbcType=BIGINT}, #{updateTime,jdbcType=TIMESTAMP}, #{createType,jdbcType=INTEGER}, 
       #{subTitle,jdbcType=LONGVARCHAR}, #{description,jdbcType=LONGVARCHAR}, #{albumPics,jdbcType=LONGVARCHAR}, 
@@ -241,6 +241,9 @@
       <if test="brandId != null">
         brand_id,
       </if>
+      <if test="brandName != null">
+        brand_name,
+      </if>
       <if test="productBigCategoryId != null">
         product_big_category_id,
       </if>
@@ -259,12 +262,27 @@
       <if test="productAttributeCategoryId != null">
         product_attribute_category_id,
       </if>
+      <if test="placeOfProductionId != null">
+        place_of_production_id,
+      </if>
+      <if test="placeOfProduction != null">
+        place_of_production,
+      </if>
+      <if test="compId != null">
+        comp_id,
+      </if>
+      <if test="compName != null">
+        comp_name,
+      </if>
       <if test="name != null">
         name,
       </if>
       <if test="pic != null">
         pic,
       </if>
+      <if test="spec != null">
+        spec,
+      </if>
       <if test="productSn != null">
         product_sn,
       </if>
@@ -346,30 +364,12 @@
       <if test="promotionType != null">
         promotion_type,
       </if>
-      <if test="brandName != null">
-        brand_name,
-      </if>
-      <if test="compId != null">
-        comp_id,
-      </if>
-      <if test="compName != null">
-        comp_name,
-      </if>
       <if test="tradePrice != null">
         trade_price,
       </if>
-      <if test="spec != null">
-        spec,
-      </if>
       <if test="dateOfManufacture != null">
         date_of_manufacture,
       </if>
-      <if test="placeOfProductionId != null">
-        place_of_production_id,
-      </if>
-      <if test="placeOfProduction != null">
-        place_of_production,
-      </if>
       <if test="qualityGuaranteePeriod != null">
         quality_guarantee_period,
       </if>
@@ -417,6 +417,9 @@
       <if test="brandId != null">
         #{brandId,jdbcType=BIGINT},
       </if>
+      <if test="brandName != null">
+        #{brandName,jdbcType=VARCHAR},
+      </if>
       <if test="productBigCategoryId != null">
         #{productBigCategoryId,jdbcType=BIGINT},
       </if>
@@ -435,12 +438,27 @@
       <if test="productAttributeCategoryId != null">
         #{productAttributeCategoryId,jdbcType=BIGINT},
       </if>
+      <if test="placeOfProductionId != null">
+        #{placeOfProductionId,jdbcType=BIGINT},
+      </if>
+      <if test="placeOfProduction != null">
+        #{placeOfProduction,jdbcType=VARCHAR},
+      </if>
+      <if test="compId != null">
+        #{compId,jdbcType=BIGINT},
+      </if>
+      <if test="compName != null">
+        #{compName,jdbcType=VARCHAR},
+      </if>
       <if test="name != null">
         #{name,jdbcType=VARCHAR},
       </if>
       <if test="pic != null">
         #{pic,jdbcType=VARCHAR},
       </if>
+      <if test="spec != null">
+        #{spec,jdbcType=VARCHAR},
+      </if>
       <if test="productSn != null">
         #{productSn,jdbcType=VARCHAR},
       </if>
@@ -522,30 +540,12 @@
       <if test="promotionType != null">
         #{promotionType,jdbcType=INTEGER},
       </if>
-      <if test="brandName != null">
-        #{brandName,jdbcType=VARCHAR},
-      </if>
-      <if test="compId != null">
-        #{compId,jdbcType=BIGINT},
-      </if>
-      <if test="compName != null">
-        #{compName,jdbcType=VARCHAR},
-      </if>
       <if test="tradePrice != null">
         #{tradePrice,jdbcType=DECIMAL},
       </if>
-      <if test="spec != null">
-        #{spec,jdbcType=VARCHAR},
-      </if>
       <if test="dateOfManufacture != null">
         #{dateOfManufacture,jdbcType=VARCHAR},
       </if>
-      <if test="placeOfProductionId != null">
-        #{placeOfProductionId,jdbcType=BIGINT},
-      </if>
-      <if test="placeOfProduction != null">
-        #{placeOfProduction,jdbcType=VARCHAR},
-      </if>
       <if test="qualityGuaranteePeriod != null">
         #{qualityGuaranteePeriod,jdbcType=VARCHAR},
       </if>
@@ -605,6 +605,9 @@
       <if test="record.brandId != null">
         brand_id = #{record.brandId,jdbcType=BIGINT},
       </if>
+      <if test="record.brandName != null">
+        brand_name = #{record.brandName,jdbcType=VARCHAR},
+      </if>
       <if test="record.productBigCategoryId != null">
         product_big_category_id = #{record.productBigCategoryId,jdbcType=BIGINT},
       </if>
@@ -623,12 +626,27 @@
       <if test="record.productAttributeCategoryId != null">
         product_attribute_category_id = #{record.productAttributeCategoryId,jdbcType=BIGINT},
       </if>
+      <if test="record.placeOfProductionId != null">
+        place_of_production_id = #{record.placeOfProductionId,jdbcType=BIGINT},
+      </if>
+      <if test="record.placeOfProduction != null">
+        place_of_production = #{record.placeOfProduction,jdbcType=VARCHAR},
+      </if>
+      <if test="record.compId != null">
+        comp_id = #{record.compId,jdbcType=BIGINT},
+      </if>
+      <if test="record.compName != null">
+        comp_name = #{record.compName,jdbcType=VARCHAR},
+      </if>
       <if test="record.name != null">
         name = #{record.name,jdbcType=VARCHAR},
       </if>
       <if test="record.pic != null">
         pic = #{record.pic,jdbcType=VARCHAR},
       </if>
+      <if test="record.spec != null">
+        spec = #{record.spec,jdbcType=VARCHAR},
+      </if>
       <if test="record.productSn != null">
         product_sn = #{record.productSn,jdbcType=VARCHAR},
       </if>
@@ -710,30 +728,12 @@
       <if test="record.promotionType != null">
         promotion_type = #{record.promotionType,jdbcType=INTEGER},
       </if>
-      <if test="record.brandName != null">
-        brand_name = #{record.brandName,jdbcType=VARCHAR},
-      </if>
-      <if test="record.compId != null">
-        comp_id = #{record.compId,jdbcType=BIGINT},
-      </if>
-      <if test="record.compName != null">
-        comp_name = #{record.compName,jdbcType=VARCHAR},
-      </if>
       <if test="record.tradePrice != null">
         trade_price = #{record.tradePrice,jdbcType=DECIMAL},
       </if>
-      <if test="record.spec != null">
-        spec = #{record.spec,jdbcType=VARCHAR},
-      </if>
       <if test="record.dateOfManufacture != null">
         date_of_manufacture = #{record.dateOfManufacture,jdbcType=VARCHAR},
       </if>
-      <if test="record.placeOfProductionId != null">
-        place_of_production_id = #{record.placeOfProductionId,jdbcType=BIGINT},
-      </if>
-      <if test="record.placeOfProduction != null">
-        place_of_production = #{record.placeOfProduction,jdbcType=VARCHAR},
-      </if>
       <if test="record.qualityGuaranteePeriod != null">
         quality_guarantee_period = #{record.qualityGuaranteePeriod,jdbcType=VARCHAR},
       </if>
@@ -785,14 +785,20 @@
     update pms_product
     set id = #{record.id,jdbcType=BIGINT},
       brand_id = #{record.brandId,jdbcType=BIGINT},
+      brand_name = #{record.brandName,jdbcType=VARCHAR},
       product_big_category_id = #{record.productBigCategoryId,jdbcType=BIGINT},
       product_big_category_name = #{record.productBigCategoryName,jdbcType=VARCHAR},
       product_category_id = #{record.productCategoryId,jdbcType=BIGINT},
       product_category_name = #{record.productCategoryName,jdbcType=VARCHAR},
       feight_template_id = #{record.feightTemplateId,jdbcType=BIGINT},
       product_attribute_category_id = #{record.productAttributeCategoryId,jdbcType=BIGINT},
+      place_of_production_id = #{record.placeOfProductionId,jdbcType=BIGINT},
+      place_of_production = #{record.placeOfProduction,jdbcType=VARCHAR},
+      comp_id = #{record.compId,jdbcType=BIGINT},
+      comp_name = #{record.compName,jdbcType=VARCHAR},
       name = #{record.name,jdbcType=VARCHAR},
       pic = #{record.pic,jdbcType=VARCHAR},
+      spec = #{record.spec,jdbcType=VARCHAR},
       product_sn = #{record.productSn,jdbcType=VARCHAR},
       delete_status = #{record.deleteStatus,jdbcType=INTEGER},
       publish_status = #{record.publishStatus,jdbcType=INTEGER},
@@ -820,14 +826,8 @@
       promotion_end_time = #{record.promotionEndTime,jdbcType=TIMESTAMP},
       promotion_per_limit = #{record.promotionPerLimit,jdbcType=INTEGER},
       promotion_type = #{record.promotionType,jdbcType=INTEGER},
-      brand_name = #{record.brandName,jdbcType=VARCHAR},
-      comp_id = #{record.compId,jdbcType=BIGINT},
-      comp_name = #{record.compName,jdbcType=VARCHAR},
       trade_price = #{record.tradePrice,jdbcType=DECIMAL},
-      spec = #{record.spec,jdbcType=VARCHAR},
       date_of_manufacture = #{record.dateOfManufacture,jdbcType=VARCHAR},
-      place_of_production_id = #{record.placeOfProductionId,jdbcType=BIGINT},
-      place_of_production = #{record.placeOfProduction,jdbcType=VARCHAR},
       quality_guarantee_period = #{record.qualityGuaranteePeriod,jdbcType=VARCHAR},
       points_for_attention = #{record.pointsForAttention,jdbcType=VARCHAR},
       create_id = #{record.createId,jdbcType=BIGINT},
@@ -850,14 +850,20 @@
     update pms_product
     set id = #{record.id,jdbcType=BIGINT},
       brand_id = #{record.brandId,jdbcType=BIGINT},
+      brand_name = #{record.brandName,jdbcType=VARCHAR},
       product_big_category_id = #{record.productBigCategoryId,jdbcType=BIGINT},
       product_big_category_name = #{record.productBigCategoryName,jdbcType=VARCHAR},
       product_category_id = #{record.productCategoryId,jdbcType=BIGINT},
       product_category_name = #{record.productCategoryName,jdbcType=VARCHAR},
       feight_template_id = #{record.feightTemplateId,jdbcType=BIGINT},
       product_attribute_category_id = #{record.productAttributeCategoryId,jdbcType=BIGINT},
+      place_of_production_id = #{record.placeOfProductionId,jdbcType=BIGINT},
+      place_of_production = #{record.placeOfProduction,jdbcType=VARCHAR},
+      comp_id = #{record.compId,jdbcType=BIGINT},
+      comp_name = #{record.compName,jdbcType=VARCHAR},
       name = #{record.name,jdbcType=VARCHAR},
       pic = #{record.pic,jdbcType=VARCHAR},
+      spec = #{record.spec,jdbcType=VARCHAR},
       product_sn = #{record.productSn,jdbcType=VARCHAR},
       delete_status = #{record.deleteStatus,jdbcType=INTEGER},
       publish_status = #{record.publishStatus,jdbcType=INTEGER},
@@ -885,14 +891,8 @@
       promotion_end_time = #{record.promotionEndTime,jdbcType=TIMESTAMP},
       promotion_per_limit = #{record.promotionPerLimit,jdbcType=INTEGER},
       promotion_type = #{record.promotionType,jdbcType=INTEGER},
-      brand_name = #{record.brandName,jdbcType=VARCHAR},
-      comp_id = #{record.compId,jdbcType=BIGINT},
-      comp_name = #{record.compName,jdbcType=VARCHAR},
       trade_price = #{record.tradePrice,jdbcType=DECIMAL},
-      spec = #{record.spec,jdbcType=VARCHAR},
       date_of_manufacture = #{record.dateOfManufacture,jdbcType=VARCHAR},
-      place_of_production_id = #{record.placeOfProductionId,jdbcType=BIGINT},
-      place_of_production = #{record.placeOfProduction,jdbcType=VARCHAR},
       quality_guarantee_period = #{record.qualityGuaranteePeriod,jdbcType=VARCHAR},
       points_for_attention = #{record.pointsForAttention,jdbcType=VARCHAR},
       create_id = #{record.createId,jdbcType=BIGINT},
@@ -910,6 +910,9 @@
       <if test="brandId != null">
         brand_id = #{brandId,jdbcType=BIGINT},
       </if>
+      <if test="brandName != null">
+        brand_name = #{brandName,jdbcType=VARCHAR},
+      </if>
       <if test="productBigCategoryId != null">
         product_big_category_id = #{productBigCategoryId,jdbcType=BIGINT},
       </if>
@@ -928,12 +931,27 @@
       <if test="productAttributeCategoryId != null">
         product_attribute_category_id = #{productAttributeCategoryId,jdbcType=BIGINT},
       </if>
+      <if test="placeOfProductionId != null">
+        place_of_production_id = #{placeOfProductionId,jdbcType=BIGINT},
+      </if>
+      <if test="placeOfProduction != null">
+        place_of_production = #{placeOfProduction,jdbcType=VARCHAR},
+      </if>
+      <if test="compId != null">
+        comp_id = #{compId,jdbcType=BIGINT},
+      </if>
+      <if test="compName != null">
+        comp_name = #{compName,jdbcType=VARCHAR},
+      </if>
       <if test="name != null">
         name = #{name,jdbcType=VARCHAR},
       </if>
       <if test="pic != null">
         pic = #{pic,jdbcType=VARCHAR},
       </if>
+      <if test="spec != null">
+        spec = #{spec,jdbcType=VARCHAR},
+      </if>
       <if test="productSn != null">
         product_sn = #{productSn,jdbcType=VARCHAR},
       </if>
@@ -1015,30 +1033,12 @@
       <if test="promotionType != null">
         promotion_type = #{promotionType,jdbcType=INTEGER},
       </if>
-      <if test="brandName != null">
-        brand_name = #{brandName,jdbcType=VARCHAR},
-      </if>
-      <if test="compId != null">
-        comp_id = #{compId,jdbcType=BIGINT},
-      </if>
-      <if test="compName != null">
-        comp_name = #{compName,jdbcType=VARCHAR},
-      </if>
       <if test="tradePrice != null">
         trade_price = #{tradePrice,jdbcType=DECIMAL},
       </if>
-      <if test="spec != null">
-        spec = #{spec,jdbcType=VARCHAR},
-      </if>
       <if test="dateOfManufacture != null">
         date_of_manufacture = #{dateOfManufacture,jdbcType=VARCHAR},
       </if>
-      <if test="placeOfProductionId != null">
-        place_of_production_id = #{placeOfProductionId,jdbcType=BIGINT},
-      </if>
-      <if test="placeOfProduction != null">
-        place_of_production = #{placeOfProduction,jdbcType=VARCHAR},
-      </if>
       <if test="qualityGuaranteePeriod != null">
         quality_guarantee_period = #{qualityGuaranteePeriod,jdbcType=VARCHAR},
       </if>
@@ -1087,14 +1087,20 @@
   <update id="updateByPrimaryKeyWithBLOBs" parameterType="com.hwrj.cloud.admin.model.PmsProduct">
     update pms_product
     set brand_id = #{brandId,jdbcType=BIGINT},
+      brand_name = #{brandName,jdbcType=VARCHAR},
       product_big_category_id = #{productBigCategoryId,jdbcType=BIGINT},
       product_big_category_name = #{productBigCategoryName,jdbcType=VARCHAR},
       product_category_id = #{productCategoryId,jdbcType=BIGINT},
       product_category_name = #{productCategoryName,jdbcType=VARCHAR},
       feight_template_id = #{feightTemplateId,jdbcType=BIGINT},
       product_attribute_category_id = #{productAttributeCategoryId,jdbcType=BIGINT},
+      place_of_production_id = #{placeOfProductionId,jdbcType=BIGINT},
+      place_of_production = #{placeOfProduction,jdbcType=VARCHAR},
+      comp_id = #{compId,jdbcType=BIGINT},
+      comp_name = #{compName,jdbcType=VARCHAR},
       name = #{name,jdbcType=VARCHAR},
       pic = #{pic,jdbcType=VARCHAR},
+      spec = #{spec,jdbcType=VARCHAR},
       product_sn = #{productSn,jdbcType=VARCHAR},
       delete_status = #{deleteStatus,jdbcType=INTEGER},
       publish_status = #{publishStatus,jdbcType=INTEGER},
@@ -1122,14 +1128,8 @@
       promotion_end_time = #{promotionEndTime,jdbcType=TIMESTAMP},
       promotion_per_limit = #{promotionPerLimit,jdbcType=INTEGER},
       promotion_type = #{promotionType,jdbcType=INTEGER},
-      brand_name = #{brandName,jdbcType=VARCHAR},
-      comp_id = #{compId,jdbcType=BIGINT},
-      comp_name = #{compName,jdbcType=VARCHAR},
       trade_price = #{tradePrice,jdbcType=DECIMAL},
-      spec = #{spec,jdbcType=VARCHAR},
       date_of_manufacture = #{dateOfManufacture,jdbcType=VARCHAR},
-      place_of_production_id = #{placeOfProductionId,jdbcType=BIGINT},
-      place_of_production = #{placeOfProduction,jdbcType=VARCHAR},
       quality_guarantee_period = #{qualityGuaranteePeriod,jdbcType=VARCHAR},
       points_for_attention = #{pointsForAttention,jdbcType=VARCHAR},
       create_id = #{createId,jdbcType=BIGINT},
@@ -1149,14 +1149,20 @@
   <update id="updateByPrimaryKey" parameterType="com.hwrj.cloud.admin.model.PmsProduct">
     update pms_product
     set brand_id = #{brandId,jdbcType=BIGINT},
+      brand_name = #{brandName,jdbcType=VARCHAR},
       product_big_category_id = #{productBigCategoryId,jdbcType=BIGINT},
       product_big_category_name = #{productBigCategoryName,jdbcType=VARCHAR},
       product_category_id = #{productCategoryId,jdbcType=BIGINT},
       product_category_name = #{productCategoryName,jdbcType=VARCHAR},
       feight_template_id = #{feightTemplateId,jdbcType=BIGINT},
       product_attribute_category_id = #{productAttributeCategoryId,jdbcType=BIGINT},
+      place_of_production_id = #{placeOfProductionId,jdbcType=BIGINT},
+      place_of_production = #{placeOfProduction,jdbcType=VARCHAR},
+      comp_id = #{compId,jdbcType=BIGINT},
+      comp_name = #{compName,jdbcType=VARCHAR},
       name = #{name,jdbcType=VARCHAR},
       pic = #{pic,jdbcType=VARCHAR},
+      spec = #{spec,jdbcType=VARCHAR},
       product_sn = #{productSn,jdbcType=VARCHAR},
       delete_status = #{deleteStatus,jdbcType=INTEGER},
       publish_status = #{publishStatus,jdbcType=INTEGER},
@@ -1184,14 +1190,8 @@
       promotion_end_time = #{promotionEndTime,jdbcType=TIMESTAMP},
       promotion_per_limit = #{promotionPerLimit,jdbcType=INTEGER},
       promotion_type = #{promotionType,jdbcType=INTEGER},
-      brand_name = #{brandName,jdbcType=VARCHAR},
-      comp_id = #{compId,jdbcType=BIGINT},
-      comp_name = #{compName,jdbcType=VARCHAR},
       trade_price = #{tradePrice,jdbcType=DECIMAL},
-      spec = #{spec,jdbcType=VARCHAR},
       date_of_manufacture = #{dateOfManufacture,jdbcType=VARCHAR},
-      place_of_production_id = #{placeOfProductionId,jdbcType=BIGINT},
-      place_of_production = #{placeOfProduction,jdbcType=VARCHAR},
       quality_guarantee_period = #{qualityGuaranteePeriod,jdbcType=VARCHAR},
       points_for_attention = #{pointsForAttention,jdbcType=VARCHAR},
       create_id = #{createId,jdbcType=BIGINT},

+ 1 - 1
forest-admin/admin-mbg/src/main/resources/generatorConfig.xml

@@ -37,7 +37,7 @@
         <javaClientGenerator type="XMLMAPPER" targetPackage="com.hwrj.cloud.admin.mapper"
                              targetProject="forest-admin\admin-mbg\src\main\java"/>
         <!--生成全部表tableName设为%-->
-        <table tableName="oms_pre_item">
+        <table tableName="pms_product">
             <generatedKey column="id" sqlStatement="MySql" identity="true"/>
         </table>
     </context>

+ 4 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsCompanyController.java

@@ -9,6 +9,7 @@ import com.hwrj.cloud.admin.excelEntity.UmsCompanyInfoExcel;
 import com.hwrj.cloud.admin.model.UmsAdmin;
 import com.hwrj.cloud.admin.service.UmsAdminService;
 import com.hwrj.cloud.admin.service.UmsCompanyService;
+import com.hwrj.cloud.admin.util.CurrUserUtil;
 import com.hwrj.cloud.admin.util.EasyExcelUtil;
 import com.hwrj.cloud.common.api.CommonPage;
 import com.hwrj.cloud.common.api.CommonResult;
@@ -142,6 +143,7 @@ public class UmsCompanyController {
         return CommonResult.success(listAll);
     }
 
+
     public Long getUserId(Principal principal){
         Long userId = null;
         try {
@@ -162,4 +164,6 @@ public class UmsCompanyController {
         return CommonResult.success();
     }
 
+
+
 }

+ 69 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsCompanyShareController.java

@@ -0,0 +1,69 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.admin.model.UmsCompanyShare;
+import com.hwrj.cloud.admin.service.UmsCompanyShareService;
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@Slf4j
+@Api(tags = "UmsCompanyShareController",description = "供应商分享码id")
+@RestController
+@RequestMapping("/comp/share")
+public class UmsCompanyShareController {
+    @Autowired
+    private UmsCompanyShareService umsCompanyShareService;
+
+    @ApiOperation(value = "分享码生成")
+    @GetMapping("/add")
+    public CommonResult shareCodeAdd(@RequestParam(required = true,value = "compId")Long compId, @RequestParam(required = false,value = "compName")String compName){
+        String s = umsCompanyShareService.addShare(compId, compName);
+        if (StringUtils.isEmpty(s)){
+            return CommonResult.failed("邀请码生成失败");
+        }
+        return CommonResult.success();
+    }
+
+    @ApiOperation(value = "获取供应商的分享码列表")
+    @GetMapping("/list")
+    public CommonResult shareCodeList(@RequestParam("compId")Long compId,
+                                      @RequestParam(required = false,value = "status",defaultValue = "8")int status,
+                                      @RequestParam(required = false,value = "pageNo",defaultValue = "0")int pageNo,
+                                      @RequestParam(required = false,value = "pageSize",defaultValue = "10")int pageSize){
+        List<UmsCompanyShare> shares = umsCompanyShareService.shareList(compId, status, pageNo, pageSize);
+        if (shares == null||shares.size()<1){
+            return CommonResult.success();
+        }
+        return CommonResult.success(CommonPage.restPage(shares));
+    }
+
+    @ApiOperation(value = "获取供应商的分享码列表")
+    @GetMapping("/detail")
+    public CommonResult shareCodeList(@RequestParam("id")Long id){
+        UmsCompanyShare share = umsCompanyShareService.shareDetail(id);
+        if (share == null){
+            return CommonResult.failed("获取详情失败");
+        }
+        return CommonResult.success(share);
+    }
+
+
+    @ApiOperation(value = "删除供应商分享码")
+    @GetMapping("/delete")
+    public CommonResult shareCodeDelete(@RequestParam("id")Long id){
+        umsCompanyShareService.shareUpdate(id,2);
+        return CommonResult.success();
+    }
+
+
+}

+ 1 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/service/UmsCompanyService.java

@@ -119,6 +119,7 @@ public interface UmsCompanyService {
     public List<UmsCompanyInfo>  searchCompanyInfo(String key, int pageNo, int pageSize, Long compId);
 
 
+
     List<SelectNewVo> selectList();
 
     List<SelectVo> alllist();

+ 41 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/service/UmsCompanyShareService.java

@@ -0,0 +1,41 @@
+package com.hwrj.cloud.admin.service;
+
+import com.hwrj.cloud.admin.model.UmsCompanyShare;
+
+import java.util.List;
+
+public interface UmsCompanyShareService {
+
+    /**
+     * 获取邀请码
+     * @param compId
+     * @param compName
+     * @return
+     */
+    public String addShare(Long compId,String compName);
+
+    /**
+     * 分页获取邀请码
+     * @param compId
+     * @param pageNo
+     * @param pageSize
+     * @return
+     */
+    public List<UmsCompanyShare> shareList(Long compId,int status,int pageNo,int pageSize);
+
+    /**
+     * 获取邀请码的详细信息
+     * @param id
+     * @return
+     */
+    public UmsCompanyShare shareDetail(Long id);
+
+    /**
+     * 修改邀请码状态
+     * @param id
+     * @param status
+     * @return
+     */
+    public void shareUpdate(Long id,int status);
+
+}

+ 8 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/service/impl/UmsCompanyInfoServiceImpl.java

@@ -13,6 +13,7 @@ import com.hwrj.cloud.admin.dto.param.SelectVo;
 import com.hwrj.cloud.admin.excelEntity.UmsCompanyInfoExcel;
 import com.hwrj.cloud.admin.mapper.UmsCompanyFileMapper;
 import com.hwrj.cloud.admin.mapper.UmsCompanyInfoMapper;
+import com.hwrj.cloud.admin.mapper.UmsCompanyShareMapper;
 import com.hwrj.cloud.admin.mapper.UmsCompanyShopMapper;
 import com.hwrj.cloud.admin.model.*;
 import com.hwrj.cloud.admin.service.UmsCompanyService;
@@ -20,6 +21,7 @@ import com.hwrj.cloud.admin.util.CurrUserUtil;
 import com.hwrj.cloud.common.api.CommonPage;
 import com.hwrj.cloud.common.exception.GlobalException;
 
+import com.hwrj.cloud.common.util.ShareCodeUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -43,6 +45,9 @@ public class UmsCompanyInfoServiceImpl implements UmsCompanyService {
     @Autowired
     private UmsCompanyShopDao umsCompanyShopDao;
 
+    @Autowired
+    private UmsCompanyShareMapper umsCompanyShareMapper;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void add(UmsCompanyDto dto) {
@@ -271,6 +276,7 @@ public class UmsCompanyInfoServiceImpl implements UmsCompanyService {
         return files;
     }
 
+    @Override
     public List<UmsCompanyShop> getCompanyShop(Long compId) {
         UmsCompanyShopExample example = new UmsCompanyShopExample();
         UmsCompanyShopExample.Criteria criteria = example.createCriteria();
@@ -365,6 +371,8 @@ public class UmsCompanyInfoServiceImpl implements UmsCompanyService {
 
     }
 
+
+
     @Override
     public List<SelectNewVo> selectList(){
         Long compIdInfo = CurrUserUtil.getCompIdInfo();

+ 86 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/service/impl/UmsCompanyShareServiceImpl.java

@@ -0,0 +1,86 @@
+package com.hwrj.cloud.admin.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.hwrj.cloud.admin.mapper.UmsCompanyShareMapper;
+import com.hwrj.cloud.admin.model.UmsAdmin;
+import com.hwrj.cloud.admin.model.UmsCompanyShare;
+import com.hwrj.cloud.admin.model.UmsCompanyShareExample;
+import com.hwrj.cloud.admin.service.UmsCompanyShareService;
+import com.hwrj.cloud.admin.util.CurrUserUtil;
+import com.hwrj.cloud.common.util.ShareCodeUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+@Slf4j
+public class UmsCompanyShareServiceImpl implements UmsCompanyShareService {
+
+    @Autowired
+    private UmsCompanyShareMapper umsCompanyShareMapper;
+
+    @Override
+    public String addShare(Long compId, String compName) {
+        if (compId == null){
+            return null;
+        }
+        UmsAdmin umsAdmin = CurrUserUtil.getUmsAdmin();
+        if (umsAdmin == null){
+            return null;
+        }
+
+        //封装实体插入实体
+        String code = ShareCodeUtil.toSerialCode(compId);
+        UmsCompanyShare umsCompanyShare = new UmsCompanyShare();
+        umsCompanyShare.setCompId(compId);
+        umsCompanyShare.setCompName(compName);
+        umsCompanyShare.setCreateId(umsAdmin.getId());
+        umsCompanyShare.setCreateName(umsAdmin.getUsername());
+        umsCompanyShare.setCreateTime(new Date());
+        umsCompanyShare.setShareCode(code);
+        umsCompanyShare.setStatus(0);
+        umsCompanyShare.setUpdateTime(new Date());
+        //插入实体表
+        int insert = umsCompanyShareMapper.insert(umsCompanyShare);
+        return code;
+    }
+
+    @Override
+    public List<UmsCompanyShare> shareList(Long compId,int status, int pageNo, int pageSize) {
+        if (compId == null){
+            return null;
+        }
+        UmsCompanyShareExample umsCompanyShareExample = new UmsCompanyShareExample();
+        UmsCompanyShareExample.Criteria criteria = umsCompanyShareExample.createCriteria();
+        criteria.andCompIdEqualTo(compId);
+        if (status == 0||status == 1){
+            criteria.andStatusEqualTo(status);
+        }
+        criteria.andStatusNotEqualTo(2);
+        PageHelper.startPage(pageNo,pageSize);
+        List<UmsCompanyShare> shares = umsCompanyShareMapper.selectByExample(umsCompanyShareExample);
+        return shares;
+    }
+
+    @Override
+    public UmsCompanyShare shareDetail(Long id) {
+        if (id == null){
+            return null;
+        }
+        return umsCompanyShareMapper.selectByPrimaryKey(id);
+    }
+
+    @Override
+    public void shareUpdate(Long id, int status) {
+        if (id  == null){
+            throw  new RuntimeException("非法操作");
+        }
+        UmsCompanyShare us = new UmsCompanyShare();
+        us.setId(id);
+        us.setStatus(status);
+        int i = umsCompanyShareMapper.updateByPrimaryKeySelective(us);
+    }
+}

+ 12 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/util/CurrUserUtil.java

@@ -63,6 +63,18 @@ public class CurrUserUtil {
         return (int) userId;
     }
 
+    /**
+     * 获取用户id
+     */
+    public static Long getLongUserId() {
+        UmsAdmin umsAdmin = getUmsAdmin();
+        if (StringUtils.isEmpty(umsAdmin.getId())) {
+            throw new GlobalException(1, "请登录!");
+        }
+        long userId = umsAdmin.getId();
+        return  userId;
+    }
+
     /**
      * 获取用户绑定供应商id
      */

+ 2 - 2
forest-admin/admin-server/src/main/resources/bootstrap.yml

@@ -13,8 +13,8 @@ spring:
   cloud:
     nacos:
       discovery:
-        server-addr: 172.16.90.3:8898
+        server-addr: 172.16.90.102:8898
       config:
-        server-addr: 172.16.90.3:8898
+        server-addr: 172.16.90.102:8898
         prefix: forest-admin
         file-extension: yaml

+ 83 - 0
forest-common/src/main/java/com/hwrj/cloud/common/util/ShareCodeUtil.java

@@ -0,0 +1,83 @@
+package com.hwrj.cloud.common.util;
+
+import java.util.Random;
+
+/**
+ * 邀请码生成器,算法原理:<br/>
+ * 1) 获取id: 1127738 <br/>
+ * 2) 使用自定义进制转为:gpm6 <br/>
+ * 3) 转为字符串,并在后面加'o'字符:gpm6o <br/>
+ * 4)在后面随机产生若干个随机数字字符:gpm6o7 <br/>
+ * 转为自定义进制后就不会出现o这个字符,然后在后面加个'o',这样就能确定唯一性。最后在后面产生一些随机字符进行补全。<br/>
+ * @author jiayu.qiu
+ */
+public class ShareCodeUtil {
+
+    /** 自定义进制(0,1没有加入,容易与o,l混淆) */
+    private static final char[] r=new char[]{'q', 'w', 'e', '8', 'a', 's', '2', 'd', 'z', 'x', '9', 'c', '7', 'p', '5', 'i', 'k', '3', 'm', 'j', 'u', 'f', 'r', '4', 'v', 'y', 'l', 't', 'n', '6', 'b', 'g', 'h'};
+
+    /** (不能与自定义进制有重复) */
+    private static final char b='o';
+
+    /** 进制长度 */
+    private static final int binLen=r.length;
+
+    /** 序列最小长度 */
+    private static final int s=10;
+
+    /**
+     * 根据ID生成六位随机码
+     * @param id ID
+     * @return 随机码
+     */
+    public static String toSerialCode(long id) {
+        char[] buf=new char[32];
+        int charPos=32;
+
+        while((id / binLen) > 0) {
+            int ind=(int)(id % binLen);
+            // System.out.println(num + "-->" + ind);
+            buf[--charPos]=r[ind];
+            id /= binLen;
+        }
+        buf[--charPos]=r[(int)(id % binLen)];
+        // System.out.println(num + "-->" + num % binLen);
+        String str=new String(buf, charPos, (32 - charPos));
+        // 不够长度的自动随机补全
+        if(str.length() < s) {
+            StringBuilder sb=new StringBuilder();
+            sb.append(b);
+            Random rnd=new Random();
+            for(int i=1; i < s - str.length(); i++) {
+                sb.append(r[rnd.nextInt(binLen)]);
+            }
+            str+=sb.toString();
+        }
+        return str;
+    }
+
+    public static long codeToId(String code) {
+        char chs[]=code.toCharArray();
+        long res=0L;
+        for(int i=0; i < chs.length; i++) {
+            int ind=0;
+            for(int j=0; j < binLen; j++) {
+                if(chs[i] == r[j]) {
+                    ind=j;
+                    break;
+                }
+            }
+            if(chs[i] == b) {
+                break;
+            }
+            if(i > 0) {
+                res=res * binLen + ind;
+            } else {
+                res=ind;
+            }
+            // System.out.println(ind + "-->" + res);
+        }
+        return res;
+    }
+
+}

+ 22 - 0
forest-portal/portal-common/src/main/java/com/hwrj/cloud/portal/model/CmsPrefrenceAreaProductRelationInput.java

@@ -0,0 +1,22 @@
+package com.hwrj.cloud.portal.model;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @author mtcarpenter
+ * @github https://github.com/mtcarpenter/mall-cloud-alibaba
+ * @desc 微信公众号:山间木匠
+ */
+@Setter
+@Getter
+public class CmsPrefrenceAreaProductRelationInput implements Serializable {
+    private static final long serialVersionUID = -8635290899991174718L;
+    private Long id;
+
+    private Long prefrenceAreaId;
+
+    private Long productId;
+}

+ 26 - 0
forest-portal/portal-common/src/main/java/com/hwrj/cloud/portal/model/CmsSubjectProductRelationInput.java

@@ -0,0 +1,26 @@
+package com.hwrj.cloud.portal.model;
+
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @author mtcarpenter
+ * @github https://github.com/mtcarpenter/mall-cloud-alibaba
+ * @desc 微信公众号:山间木匠
+ */
+@Getter
+@Setter
+public class CmsSubjectProductRelationInput implements Serializable {
+
+    private static final long serialVersionUID = -4079484815593829058L;
+    private Long id;
+
+    private Long subjectId;
+
+    private Long productId;
+
+
+}

+ 1 - 1
forest-portal/portal-mbg/src/main/resources/generator.properties

@@ -1,4 +1,4 @@
 jdbc.driverClass=com.mysql.cj.jdbc.Driver
-jdbc.connectionURL=jdbc:mysql://172.16.90.64:3306/carbon-mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
+jdbc.connectionURL=jdbc:mysql://172.16.90.253:3306/forest-cloud-mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
 jdbc.userId=root
 jdbc.password=123456

+ 1 - 1
forest-portal/portal-mbg/src/main/resources/generatorConfig.xml

@@ -37,7 +37,7 @@
         <javaClientGenerator type="XMLMAPPER" targetPackage="com.hwrj.cloud.portal.mapper"
                              targetProject="forest-portal\portal-mbg\src\main\java"/>
         <!--生成全部表tableName设为%-->
-        <table tableName="pms_product">
+        <table tableName="ums_company_share">
             <generatedKey column="id" sqlStatement="MySql" identity="true"/>
         </table>
     </context>

+ 73 - 0
forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/controller/PortalProductPublishController.java

@@ -0,0 +1,73 @@
+package com.hwrj.cloud.portal.controller;
+
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.portal.domain.PmsProductVo;
+import com.hwrj.cloud.portal.model.PmsProduct;
+import com.hwrj.cloud.portal.service.PortalProductPulishService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Slf4j
+@Api(tags = "PortalProductPublishController",description = "h5端产品发布接口")
+@RestController
+@RequestMapping("/prod/pub")
+public class PortalProductPublishController {
+
+    @Autowired
+    private PortalProductPulishService portalProductPulishService;
+
+
+    @ApiOperation("发布产品")
+    @PostMapping("add")
+    public CommonResult addProd(@RequestBody PmsProductVo productVo){
+
+        int i = portalProductPulishService.create(productVo);
+        if (i==0){
+            return CommonResult.failed("发布失败");
+        }
+
+        return CommonResult.success();
+    }
+
+
+    @ApiOperation("修改产品")
+    @PostMapping("update")
+    public CommonResult updateProd(@RequestBody PmsProductVo productVo){
+        Long id = productVo.getId();
+        if (id==null){
+            return CommonResult.failed("修改失败");
+        }
+        int i = portalProductPulishService.update(id,productVo);
+        if (i==0){
+            return CommonResult.failed("发布失败");
+        }
+
+        return CommonResult.success();
+    }
+
+    @ApiOperation("修改产品")
+    @GetMapping("list")
+    public CommonResult listProd(@RequestParam(value = "pageNo",required = false,defaultValue = "0")int pageNo,@RequestParam(value = "pageSize",required = false,defaultValue = "10")int pageSize){
+
+        List<PmsProduct> list = portalProductPulishService.list(pageSize, pageNo);
+
+        return CommonResult.success(CommonPage.restPage(list));
+    }
+
+
+    @ApiOperation("修改产品")
+    @GetMapping("detail")
+    public CommonResult detailProd(@RequestParam(value = "id",required = true,defaultValue = "0")Long id){
+
+        PmsProduct detail = portalProductPulishService.detail(id);
+
+        return CommonResult.success(detail);
+    }
+
+}

+ 18 - 0
forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/dao/PmsMemberPriceDao.java

@@ -0,0 +1,18 @@
+package com.hwrj.cloud.portal.dao;
+
+
+import com.hwrj.cloud.portal.model.PmsMemberPrice;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义会员价格Dao
+ * Created by macro on 2018/4/26.
+ */
+public interface PmsMemberPriceDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<PmsMemberPrice> memberPriceList);
+}

+ 18 - 0
forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/dao/PmsProductAttributeValueDao.java

@@ -0,0 +1,18 @@
+package com.hwrj.cloud.portal.dao;
+
+
+import com.hwrj.cloud.portal.model.PmsProductAttributeValue;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 商品参数,商品自定义规格属性Dao
+ * Created by macro on 2018/4/26.
+ */
+public interface PmsProductAttributeValueDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<PmsProductAttributeValue> productAttributeValueList);
+}

+ 17 - 0
forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/dao/PmsProductFullReductionDao.java

@@ -0,0 +1,17 @@
+package com.hwrj.cloud.portal.dao;
+
+import com.hwrj.cloud.portal.model.PmsProductFullReduction;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义商品满减Dao
+ * Created by macro on 2018/4/26.
+ */
+public interface PmsProductFullReductionDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<PmsProductFullReduction> productFullReductionList);
+}

+ 17 - 0
forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/dao/PmsProductLadderDao.java

@@ -0,0 +1,17 @@
+package com.hwrj.cloud.portal.dao;
+
+import com.hwrj.cloud.portal.model.PmsProductLadder;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义会员阶梯价格Dao
+ * Created by macro on 2018/4/26.
+ */
+public interface PmsProductLadderDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<PmsProductLadder> productLadderList);
+}

+ 17 - 0
forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/dao/PmsProductVertifyRecordDao.java

@@ -0,0 +1,17 @@
+package com.hwrj.cloud.portal.dao;
+
+import com.hwrj.cloud.portal.model.PmsProductVertifyRecord;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义商品审核日志管理Dao
+ * Created by macro on 2018/4/27.
+ */
+public interface PmsProductVertifyRecordDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<PmsProductVertifyRecord> list);
+}

+ 23 - 0
forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/dao/PmsSkuStockDao.java

@@ -0,0 +1,23 @@
+package com.hwrj.cloud.portal.dao;
+
+
+import com.hwrj.cloud.portal.model.PmsSkuStock;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义商品SKU管理Dao
+ * Created by macro on 2018/4/26.
+ */
+public interface PmsSkuStockDao {
+    /**
+     * 批量插入操作
+     */
+    int insertList(@Param("list") List<PmsSkuStock> skuStockList);
+
+    /**
+     * 批量插入或替换操作
+     */
+    int replaceList(@Param("list") List<PmsSkuStock> skuStockList);
+}

+ 34 - 0
forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/domain/PmsProductVo.java

@@ -0,0 +1,34 @@
+package com.hwrj.cloud.portal.domain;
+
+import com.hwrj.cloud.portal.model.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * 创建和修改商品时使用的参数
+ * Created by macro on 2018/4/26.
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class PmsProductVo extends PmsProduct {
+    @ApiModelProperty("商品阶梯价格设置")
+    private List<PmsProductLadder> productLadderList;
+    @ApiModelProperty("商品满减价格设置")
+    private List<PmsProductFullReduction> productFullReductionList;
+    @ApiModelProperty("商品会员价格设置")
+    private List<PmsMemberPrice> memberPriceList;
+    @ApiModelProperty("商品的sku库存信息")
+    private List<PmsSkuStock> skuStockList;
+    @ApiModelProperty("商品参数及自定义规格属性")
+    private List<PmsProductAttributeValue> productAttributeValueList;
+
+    @ApiModelProperty("专题和商品关系")
+    private List<CmsSubjectProductRelationInput> subjectProductRelationList;
+    @ApiModelProperty("优选专区和商品的关系")
+    private List<CmsPrefrenceAreaProductRelationInput> prefrenceAreaProductRelationList;
+
+
+}

+ 38 - 0
forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/service/PortalProductPulishService.java

@@ -0,0 +1,38 @@
+package com.hwrj.cloud.portal.service;
+
+import com.hwrj.cloud.portal.domain.PmsProductVo;
+import com.hwrj.cloud.portal.model.PmsProduct;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+public interface PortalProductPulishService {
+    /**
+     * 创建商品
+     */
+    @Transactional(isolation = Isolation.DEFAULT,propagation = Propagation.REQUIRED)
+    int create(PmsProductVo productVo);
+
+
+
+    /**
+     * 更新商品
+     */
+    @Transactional
+    int update(Long id, PmsProductVo productVo);
+
+    /**
+     * 分页查询商品
+     */
+    List<PmsProduct> list(Integer pageSize, Integer pageNo);
+
+
+    /**
+     * 获取商品详情
+     * @param id
+     * @return
+     */
+     PmsProduct detail(Long id);
+ }

+ 273 - 0
forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/service/impl/PortalProductPulishServiceImpl.java

@@ -0,0 +1,273 @@
+package com.hwrj.cloud.portal.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import com.github.pagehelper.PageHelper;
+import com.hwrj.cloud.common.exception.Asserts;
+import com.hwrj.cloud.portal.dao.*;
+import com.hwrj.cloud.portal.domain.PmsProductVo;
+import com.hwrj.cloud.portal.mapper.*;
+import com.hwrj.cloud.portal.model.*;
+import com.hwrj.cloud.portal.service.PortalProductPulishService;
+import com.hwrj.cloud.portal.service.UmsMemberService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+
+import java.lang.reflect.Method;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Slf4j
+@Service
+public class PortalProductPulishServiceImpl implements PortalProductPulishService {
+
+
+    @Autowired
+    private PmsProductMapper productMapper;
+    @Autowired
+    private PmsMemberPriceDao memberPriceDao;
+    @Autowired
+    private PmsMemberPriceMapper memberPriceMapper;
+    @Autowired
+    private PmsProductLadderDao productLadderDao;
+    @Autowired
+    private PmsProductLadderMapper productLadderMapper;
+    @Autowired
+    private PmsProductFullReductionDao productFullReductionDao;
+    @Autowired
+    private PmsProductFullReductionMapper productFullReductionMapper;
+    @Autowired
+    private PmsSkuStockDao skuStockDao;
+    @Autowired
+    private PmsSkuStockMapper skuStockMapper;
+    @Autowired
+    private PmsProductAttributeValueDao productAttributeValueDao;
+    @Autowired
+    private PmsProductAttributeValueMapper productAttributeValueMapper;
+
+    @Autowired
+    private UmsMemberService memberService;
+
+
+    @Override
+    public int create(PmsProductVo productVo) {
+        int count;
+        //创建商品
+//        long compId = CurrUserUtil.getCompId();
+//        if(StringUtils.isEmpty(compId)){
+//            throw new RuntimeException("没有绑定供应商无法新增!");
+//        }
+//        productParam.setCompId(compId);
+
+        UmsMember currentMember = memberService.getCurrentMember();
+        if (currentMember == null){
+            Asserts.fail("登录异常");
+        }
+        String type = currentMember.getType();
+        if (!"供应商".equals(type)){
+            Asserts.fail("没有进行供应商认证");
+        }
+        productVo.setCompId(currentMember.getCompId());
+        productVo.setCompName(currentMember.getCompanyInfo());
+        productVo.setCreateId((long) currentMember.getId());
+        productVo.setCreateType(1);
+        productVo.setCreateTime(new Date());
+        PmsProduct product = productVo;
+        product.setId(null);
+        productMapper.insertSelective(product);
+        //根据促销类型设置价格:会员价格、阶梯价格、满减价格
+        Long productId = product.getId();
+        //会员价格
+        relateAndInsertList(memberPriceDao, productVo.getMemberPriceList(), productId);
+        //阶梯价格
+        relateAndInsertList(productLadderDao, productVo.getProductLadderList(), productId);
+        //满减价格
+        relateAndInsertList(productFullReductionDao, productVo.getProductFullReductionList(), productId);
+        //处理sku的编码
+        handleSkuStockCode(productVo.getSkuStockList(), productId);
+        //添加sku库存信息
+        relateAndInsertList(skuStockDao, productVo.getSkuStockList(), productId);
+        //添加商品参数,添加自定义商品规格
+        relateAndInsertList(productAttributeValueDao, productVo.getProductAttributeValueList(), productId);
+//        //关联专题
+//        subjectService.relateAndInsertList(productParam.getSubjectProductRelationList(), productId);
+//        //关联优选
+//        prefrenceAreaService.relateAndInsertList(productParam.getPrefrenceAreaProductRelationList(), productId);
+        count = 1;
+        return count;
+    }
+
+    @Override
+    public int update(Long id, PmsProductVo productParam) {
+        //检验供应商
+        //check(productParam);
+        int count;
+        //更新商品信息
+        PmsProduct product = productParam;
+        product.setId(id);
+//        product.setCompId(CurrUserUtil.getCompId());
+        productMapper.updateByPrimaryKeySelective(product);
+        //会员价格
+        PmsMemberPriceExample pmsMemberPriceExample = new PmsMemberPriceExample();
+        pmsMemberPriceExample.createCriteria().andProductIdEqualTo(id);
+        memberPriceMapper.deleteByExample(pmsMemberPriceExample);
+        relateAndInsertList(memberPriceDao, productParam.getMemberPriceList(), id);
+        //阶梯价格
+        PmsProductLadderExample ladderExample = new PmsProductLadderExample();
+        ladderExample.createCriteria().andProductIdEqualTo(id);
+        productLadderMapper.deleteByExample(ladderExample);
+        relateAndInsertList(productLadderDao, productParam.getProductLadderList(), id);
+        //满减价格
+        PmsProductFullReductionExample fullReductionExample = new PmsProductFullReductionExample();
+        fullReductionExample.createCriteria().andProductIdEqualTo(id);
+        productFullReductionMapper.deleteByExample(fullReductionExample);
+        relateAndInsertList(productFullReductionDao, productParam.getProductFullReductionList(), id);
+        //修改sku库存信息
+        handleUpdateSkuStockList(id, productParam);
+        //修改商品参数,添加自定义商品规格
+        PmsProductAttributeValueExample productAttributeValueExample = new PmsProductAttributeValueExample();
+        productAttributeValueExample.createCriteria().andProductIdEqualTo(id);
+        productAttributeValueMapper.deleteByExample(productAttributeValueExample);
+        relateAndInsertList(productAttributeValueDao, productParam.getProductAttributeValueList(), id);
+//        //关联专题
+//        subjectService.relateAndUpdateList(productParam.getSubjectProductRelationList(), id);
+//        //关联优选
+//        prefrenceAreaService.relateAndUpdateList(productParam.getPrefrenceAreaProductRelationList(), id);
+        count = 1;
+        return count;
+    }
+
+    @Override
+    public List<PmsProduct> list( Integer pageSize, Integer pageNo) {
+        Long memberId = memberService.getMemberId();
+        if (memberId == null){
+            Asserts.fail("请先登录");
+        }
+        PmsProductExample example = new PmsProductExample();
+        PmsProductExample.Criteria criteria = example.createCriteria();
+        criteria.andCreateIdEqualTo(memberId);
+        criteria.andCreateTypeEqualTo(1);
+        PageHelper.startPage(pageNo,pageSize);
+        List<PmsProduct> pmsProducts = productMapper.selectByExample(example);
+        return pmsProducts;
+
+    }
+
+    @Override
+    public PmsProduct detail(Long id) {
+        if (id  == null){
+            Asserts.fail("获取详情失败");
+        }
+        Long memberId = memberService.getMemberId();
+        if (memberId== null){
+            Asserts.fail("获取详情失败");
+        }
+        PmsProductExample example = new PmsProductExample();
+        PmsProductExample.Criteria criteria = example.createCriteria();
+        criteria.andCreateIdEqualTo(id);
+        criteria.andCreateTypeEqualTo(1);
+        criteria.andIdEqualTo(id);
+        List<PmsProduct> pmsProducts = productMapper.selectByExample(example);
+        if (pmsProducts != null&&pmsProducts.size()>0){
+            return pmsProducts.get(0);
+        }
+
+        return null;
+    }
+
+
+    /**
+     * 建立和插入关系表操作
+     *
+     * @param dao       可以操作的dao
+     * @param dataList  要插入的数据
+     * @param productId 建立关系的id
+     */
+    private void relateAndInsertList(Object dao, List dataList, Long productId) {
+        try {
+            if (CollectionUtils.isEmpty(dataList)) return;
+            for (Object item : dataList) {
+                Method setId = item.getClass().getMethod("setId", Long.class);
+                setId.invoke(item, (Long) null);
+                Method setProductId = item.getClass().getMethod("setProductId", Long.class);
+                setProductId.invoke(item, productId);
+            }
+            Method insertList = dao.getClass().getMethod("insertList", List.class);
+            insertList.invoke(dao, dataList);
+        } catch (Exception e) {
+            log.warn("创建产品出错:{}", e.getMessage());
+            throw new RuntimeException(e.getMessage());
+        }
+    }
+
+    /**
+     * 处理sku编码
+     * @param skuStockList
+     * @param productId
+     */
+    private void handleSkuStockCode(List<PmsSkuStock> skuStockList, Long productId) {
+        if (CollectionUtils.isEmpty(skuStockList)) return;
+        for (int i = 0; i < skuStockList.size(); i++) {
+            PmsSkuStock skuStock = skuStockList.get(i);
+            if (StringUtils.isEmpty(skuStock.getSkuCode())) {
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+                StringBuilder sb = new StringBuilder();
+                //日期
+                sb.append(sdf.format(new Date()));
+                //四位商品id
+                sb.append(String.format("%04d", productId));
+                //三位索引id
+                sb.append(String.format("%03d", i + 1));
+                skuStock.setSkuCode(sb.toString());
+            }
+        }
+    }
+
+
+    private void handleUpdateSkuStockList(Long id, PmsProductVo productParam) {
+        //当前的sku信息
+        List<PmsSkuStock> currSkuList = productParam.getSkuStockList();
+        //当前没有sku直接删除
+        if (CollUtil.isEmpty(currSkuList)) {
+            PmsSkuStockExample skuStockExample = new PmsSkuStockExample();
+            skuStockExample.createCriteria().andProductIdEqualTo(id);
+            skuStockMapper.deleteByExample(skuStockExample);
+            return;
+        }
+        //获取初始sku信息
+        PmsSkuStockExample skuStockExample = new PmsSkuStockExample();
+        skuStockExample.createCriteria().andProductIdEqualTo(id);
+        List<PmsSkuStock> oriStuList = skuStockMapper.selectByExample(skuStockExample);
+        //获取新增sku信息
+        List<PmsSkuStock> insertSkuList = currSkuList.stream().filter(item -> item.getId() == null).collect(Collectors.toList());
+        //获取需要更新的sku信息
+        List<PmsSkuStock> updateSkuList = currSkuList.stream().filter(item -> item.getId() != null).collect(Collectors.toList());
+        List<Long> updateSkuIds = updateSkuList.stream().map(PmsSkuStock::getId).collect(Collectors.toList());
+        //获取需要删除的sku信息
+        List<PmsSkuStock> removeSkuList = oriStuList.stream().filter(item -> !updateSkuIds.contains(item.getId())).collect(Collectors.toList());
+        handleSkuStockCode(insertSkuList, id);
+        handleSkuStockCode(updateSkuList, id);
+        //新增sku
+        if (CollUtil.isNotEmpty(insertSkuList)) {
+            relateAndInsertList(skuStockDao, insertSkuList, id);
+        }
+        //删除sku
+        if (CollUtil.isNotEmpty(removeSkuList)) {
+            List<Long> removeSkuIds = removeSkuList.stream().map(PmsSkuStock::getId).collect(Collectors.toList());
+            PmsSkuStockExample removeExample = new PmsSkuStockExample();
+            removeExample.createCriteria().andIdIn(removeSkuIds);
+            skuStockMapper.deleteByExample(removeExample);
+        }
+        //修改sku
+        if (CollUtil.isNotEmpty(updateSkuList)) {
+            for (PmsSkuStock pmsSkuStock : updateSkuList) {
+                skuStockMapper.updateByPrimaryKeySelective(pmsSkuStock);
+            }
+        }
+
+    }
+}

+ 62 - 23
forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/service/impl/UmsMemberPlatformServiceImpl.java

@@ -5,6 +5,7 @@ import com.hwrj.cloud.portal.domain.MemberDetails;
 import com.hwrj.cloud.portal.domain.UmsMemberCert;
 import com.hwrj.cloud.portal.domain.UmsMemberPlaformDo;
 import com.hwrj.cloud.portal.mapper.UmsCompanyInfoMapper;
+import com.hwrj.cloud.portal.mapper.UmsCompanyShareMapper;
 import com.hwrj.cloud.portal.mapper.UmsMemberMapper;
 import com.hwrj.cloud.portal.mapper.UmsMemberPlatformMapper;
 import com.hwrj.cloud.portal.model.*;
@@ -22,6 +23,7 @@ import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 
@@ -47,6 +49,9 @@ public class UmsMemberPlatformServiceImpl implements UmsMemberPlatformService {
     @Autowired
     private JwtTokenUtil jwtTokenUtil;
 
+    @Autowired
+    private UmsCompanyShareMapper umsCompanyShareMapper;
+
     @Autowired
     private UmsMemberService umsMemberService;
     @Override
@@ -103,32 +108,25 @@ public class UmsMemberPlatformServiceImpl implements UmsMemberPlatformService {
         if("供应商".equals(cert.getType())){
             String companyName = cert.getCompanyName();
             String certNo = cert.getCertNo();
-            if (!StringUtils.isEmpty(companyName)){
-                UmsCompanyInfoExample companyInfoExample = new UmsCompanyInfoExample();
-                UmsCompanyInfoExample.Criteria criteria = companyInfoExample.createCriteria();
-                criteria.andCompNameEqualTo(companyName);
-                if (!StringUtils.isEmpty(certNo)){
-                    criteria.andCompManageLicenseNumEqualTo(certNo);
-                }
-                List<UmsCompanyInfo> umsCompanyInfos = umsCompanyInfoMapper.selectByExample(companyInfoExample);
-                if (umsCompanyInfos != null&&umsCompanyInfos.size()>0){
-                    UmsCompanyInfo info = umsCompanyInfos.get(0);
-                    Long id = info.getId();
-                    umsMember.setCompId(id);
-
-                }
-
-                umsMember.setCompanyInfo(companyName);
-                umsMember.setCert(2);
-                umsMember.setType(companyName);
-                umsMember.setWay("供应商");
-
-
-            }else {
+            UmsCompanyShare share = getCompanyShareByShareCode(certNo, companyName);
+            if (share == null){
+                throw new RuntimeException("供应商认证失败");
+            }
+            int days = numDays(share.getCreateTime());
+            if (days>7){
                 throw new RuntimeException("认证失败");
             }
+            share.setMemberId(cert.getId());
+            share.setMember(cert.getNickname());
+            umsMember.setCompId(share.getCompId());
+            umsMember.setCompanyInfo(companyName);
+            umsMember.setCert(2);
+            umsMember.setType(companyName);
+            umsMember.setWay("供应商");
+            updateShare(share);
         }else{
-            umsMember.setWay(umsMember.getWay());
+            umsMember.setWay(cert.getWay());
+            umsMember.setType(cert.getType());
         }
         umsMemberMapper.updateByPrimaryKeySelective(umsMember);
 
@@ -141,6 +139,47 @@ public class UmsMemberPlatformServiceImpl implements UmsMemberPlatformService {
         throw new UsernameNotFoundException("微信登录失败");
     }
 
+    /**
+     * 根据分享code和供应商名称来获取分享信息
+     * @param shareCode
+     * @param compName
+     * @return
+     */
+    public UmsCompanyShare getCompanyShareByShareCode(String shareCode,String compName){
+        if (StringUtils.isEmpty(shareCode)){
+            return null;
+        }
+        UmsCompanyShareExample example = new UmsCompanyShareExample();
+        UmsCompanyShareExample.Criteria criteria = example.createCriteria();
+        criteria.andShareCodeEqualTo(shareCode);
+        if (!StringUtils.isEmpty(compName)){
+            criteria.andCompNameLike("%"+compName+"%");
+        }
+        criteria.andStatusEqualTo(0);
+        List<UmsCompanyShare> shares = umsCompanyShareMapper.selectByExample(example);
+        if (shares != null && shares.size()>0){
+            return shares.get(0);
+        }
+        return  null;
+    }
+    public void updateShare(UmsCompanyShare share){
+        UmsCompanyShare ums = new UmsCompanyShare();
+        ums.setId(share.getId());
+        ums.setUpdateTime(new Date());
+        ums.setStatus(1);
+        ums.setMemberId(share.getMemberId());
+        ums.setMember(share.getMember());
+        umsCompanyShareMapper.updateByPrimaryKeySelective(share);
+    }
+
+    public  int numDays(Date fromDate){
+        Date toDate1 = new Date();
+        long from1 = fromDate.getTime();
+        long to1 = toDate1.getTime();
+        int days = (int) ((to1 - from1) / (1000 * 60 * 60 * 24));
+        return days;
+    }
+
     /**
      * 添加用户并获取返回id
      * @param umsMemberPlatform

+ 14 - 0
forest-portal/portal-server/src/main/resources/dao/PmsMemberPriceDao.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.hwrj.cloud.portal.dao.PmsMemberPriceDao">
+    <!--批量新增回写主键支持-->
+    <insert id="insertList">
+        INSERT INTO pms_member_price (product_id, member_level_id, member_price,member_level_name) VALUES
+        <foreach collection="list" separator="," item="item" index="index">
+            (#{item.productId,jdbcType=BIGINT},
+            #{item.memberLevelId,jdbcType=BIGINT},
+            #{item.memberPrice,jdbcType=DECIMAL},
+            #{item.memberLevelName,jdbcType=VARCHAR})
+        </foreach>
+    </insert>
+</mapper>

+ 12 - 0
forest-portal/portal-server/src/main/resources/dao/PmsProductAttributeValueDao.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.hwrj.cloud.portal.dao.PmsProductAttributeValueDao">
+    <insert id="insertList">
+        insert into pms_product_attribute_value (product_id,product_attribute_id,value) values
+        <foreach collection="list" item="item" index="index" separator=",">
+            (#{item.productId,jdbcType=BIGINT},
+            #{item.productAttributeId,jdbcType=BIGINT},
+            #{item.value,jdbcType=VARCHAR})
+        </foreach>
+    </insert>
+</mapper>

+ 12 - 0
forest-portal/portal-server/src/main/resources/dao/PmsProductFullReductionDao.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.hwrj.cloud.portal.dao.PmsProductFullReductionDao">
+    <insert id="insertList">
+        INSERT INTO pms_product_full_reduction (product_id, full_price, reduce_price) VALUES
+        <foreach collection="list" separator="," item="item" index="index">
+            (#{item.productId,jdbcType=BIGINT},
+            #{item.fullPrice,jdbcType=DECIMAL},
+            #{item.reducePrice,jdbcType=DECIMAL})
+        </foreach>
+    </insert>
+</mapper>

+ 13 - 0
forest-portal/portal-server/src/main/resources/dao/PmsProductLadderDao.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.hwrj.cloud.portal.dao.PmsProductLadderDao">
+    <insert id="insertList">
+        INSERT INTO pms_product_ladder (product_id, count, discount, price) VALUES
+        <foreach collection="list" item="item" index="index" separator=",">
+            (#{item.productId,jdbcType=BIGINT},
+            #{item.count,jdbcType=INTEGER},
+            #{item.discount,jdbcType=DECIMAL},
+            #{item.price,jdbcType=DECIMAL})
+        </foreach>
+    </insert>
+</mapper>

+ 15 - 0
forest-portal/portal-server/src/main/resources/dao/PmsProductVertifyRecordDao.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.hwrj.cloud.portal.dao.PmsProductVertifyRecordDao">
+    <!--批量新增回写主键支持-->
+    <insert id="insertList">
+        insert into pms_product_vertify_record (product_id, create_time, vertify_man,status, detail) values
+        <foreach collection="list" separator="," item="item" index="index">
+            (#{item.productId,jdbcType=BIGINT},
+            #{item.createTime,jdbcType=TIMESTAMP},
+            #{item.vertifyMan,jdbcType=VARCHAR},
+            #{item.status,jdbcType=INTEGER},
+            #{item.detail,jdbcType=VARCHAR})
+        </foreach>
+    </insert>
+</mapper>

+ 31 - 0
forest-portal/portal-server/src/main/resources/dao/PmsSkuStockDao.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.hwrj.cloud.portal.dao.PmsSkuStockDao">
+    <insert id="insertList">
+        INSERT INTO pms_sku_stock (product_id, sku_code, price, stock, low_stock, pic, sale, sp_data) VALUES
+        <foreach collection="list" item="item" index="index" separator=",">
+            (#{item.productId,jdbcType=BIGINT},
+            #{item.skuCode,jdbcType=VARCHAR},
+            #{item.price,jdbcType=DECIMAL},
+            #{item.stock,jdbcType=INTEGER},
+            #{item.lowStock,jdbcType=INTEGER},
+            #{item.pic,jdbcType=VARCHAR},
+            #{item.sale,jdbcType=INTEGER},
+            #{item.spData,jdbcType=VARCHAR})
+        </foreach>
+    </insert>
+    <insert id="replaceList">
+        REPLACE INTO pms_sku_stock (id,product_id, sku_code, price, stock, low_stock,pic, sale, sp_data) VALUES
+        <foreach collection="list" item="item" index="index" separator=",">
+            (#{item.id,jdbcType=BIGINT},
+            #{item.productId,jdbcType=BIGINT},
+            #{item.skuCode,jdbcType=VARCHAR},
+            #{item.price,jdbcType=DECIMAL},
+            #{item.stock,jdbcType=INTEGER},
+            #{item.lowStock,jdbcType=INTEGER},
+            #{item.pic,jdbcType=VARCHAR},
+            #{item.sale,jdbcType=INTEGER},
+            #{item.spData,jdbcType=VARCHAR})
+        </foreach>
+    </insert>
+</mapper>

+ 12 - 33
nacos/data/config-data/DEFAULT_GROUP/forest-admin

@@ -4,32 +4,20 @@ spring:
     username: root
     password: 123456
     druid:
-      #连接池初始化大小
-      initial-size: 5 
-      #最小空闲连接数
+      initial-size: 5
       min-idle: 10
-      #最大连接数
-      max-active: 20 
+      max-active: 20
       web-stat-filter:
-        #不统计这些请求数据
-        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" 
-        #访问监控网页的登录用户名和密码
-      stat-view-servlet: 
+        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
+      stat-view-servlet:
         login-username: druid
         login-password: druid
-  servlet:
-    multipart:
-      enabled: true
-      file-size-threshold: 0
-      max-file-size: 100000000
-      max-request-size: 100000000
   redis:
-    host: 172.16.90.64 # Redis服务器地址
-    database: 0 # Redis数据库索引(默认为0)
-    port: 6379 # Redis服务器连接端口
-    # Redis服务器连接密码(默认为空)
-    password: 
-    timeout: 300ms # 连接超时时间(毫秒)
+    host: 172.16.90.253
+    database: 0
+    port: 6379
+    password: 123456
+    timeout: 300ms
   zipkin:
     base-url: http://localhost:9411
     locator:
@@ -37,12 +25,10 @@ spring:
         enabled: true
   sleuth:
     sampler:
-      # zipkin 抽样比例 在默认情况下,该值为0.1
       probability: 1.0
   boot:
     admin:
       client:
-        # admin 服务端的地址
         url: http://localhost:8095
 
 management:
@@ -52,7 +38,6 @@ management:
         include: '*'
   endpoint:
     health:
-      # 展示详情
       show-details: always
 mybatis:
   mapper-locations:
@@ -60,26 +45,20 @@ mybatis:
     - classpath*:com/**/mapper/*.xml
 logging:
   level:
-    #日志配置DEBUG,INFO,WARN,ERROR
     root: info 
     com.hwrj.cloud: debug
 
   sleuth:
     sampler:
-      # zipkin 抽样比例 在默认情况下,该值为0.1
       probability: 1.0
   boot:
     admin:
       client:
-        # admin 服务端的地址
         url: http://localhost:9091
-
-# 过滤不需要认证路径条件         
 secure:
   ignored:
     urls:
       - /swagger-ui.html
-      - /doc.html
       - /swagger-resources/**
       - /swagger/**
       - /**/v2/api-docs
@@ -98,7 +77,8 @@ secure:
       - /product/import
       - /big/**
       - /bigData/**
-      - /upload/**
+      - /first/upload
+      - /doc.html
 jwt:
   tokenHeader: Authorization
   secret: forest-admin-secret
@@ -112,8 +92,7 @@ redis:
     token: 'ums:token'
     resourceList: 'ums:resourceList'
   expire:
-    common: 86400 # 24小时
-
+    common: 86400
 qiniu:
   accessKey: FLWUJxiZY1_N-5d6J_jsdgbqyjVDUg86ghZHsaQW
   bucket: forestcloud

+ 5 - 10
nacos/data/config-data/DEFAULT_GROUP/forest-gateway

@@ -1,16 +1,14 @@
 spring:
   redis:
-    host: 172.16.90.64
+    host: 172.16.90.253
     database: 0
     port: 6379
-    password:
+    password: 123456
     timeout: 300ms
   boot:
     admin:
       client:
-        # admin 服务端的地址
         url: http://localhost:9091
-
 management:
   endpoints:
     web:
@@ -18,12 +16,10 @@ management:
         include: '*'
   endpoint:
     health:
-      # 展示详情
       show-details: always
-# 过滤不需要认证路径条件
 secure:
   ignored:
-    urls: #安全路径白名单
+    urls:
       - /swagger-ui.html
       - /swagger-resources/**
       - /swagger/**
@@ -52,7 +48,7 @@ secure:
       - /product/import
       - /big/**
       - /bigData/**
-      - /upload/**
+      - /first/upload
 jwt:
   tokenHeader: Authorization
   secret: forest-admin-secret
@@ -65,5 +61,4 @@ redis:
     token: 'ums:token'
     resourceList: 'ums:resourceList'
   expire:
-    #24小时
-    common: 86400 
+    common: 86400

+ 24 - 46
nacos/data/config-data/DEFAULT_GROUP/forest-portal

@@ -4,35 +4,29 @@ spring:
     username: root
     password: 123456
     druid:
-      initial-size: 5 #连接池初始化大小
-      min-idle: 10 #最小空闲连接数
-      max-active: 20 #最大连接数
+      initial-size: 5
+      min-idle: 10
+      max-active: 20
       web-stat-filter:
-        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" #不统计这些请求数据
-      stat-view-servlet: #访问监控网页的登录用户名和密码
+        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
+      stat-view-servlet:
         login-username: druid
         login-password: druid
   boot:
     admin:
       client:
-        # admin 服务端的地址
         url: http://localhost:9091
-
-
   data:
     mongodb:
-      host: 172.16.90.64
+      host: 172.16.90.253
       port: 27017
-      database: mall-port-test
+      database: mall-port
   redis:
-    # Redis服务器地址
-    host: 172.16.90.64 
-    # Redis数据库索引(默认为0)
-    database: 0 
-    # Redis服务器连接端口
-    port: 6379 
-    password: # Redis服务器连接密码(默认为空)
-    timeout: 300ms # 连接超时时间(毫秒)
+    host: 172.16.90.253
+    database: 0
+    port: 6379
+    password: 123456
+    timeout: 300ms
 
   rabbitmq:
     host: 172.16.90.64
@@ -40,32 +34,25 @@ spring:
     virtual-host: /forest
     username: forest
     password: 123456
-    #如果对异步消息需要回调必须设置为true
-    publisher-confirms: true 
+    publisher-confirms: true
 
-# 日志配置
 logging:
   level:
     org.springframework.data.mongodb.core: debug
     com.hwrj.cloud.portal.mapper: debug
     com.hwrj.cloud.portal.dao: debug
-
 mybatis:
   mapper-locations:
     - classpath:dao/*.xml
     - classpath*:com/**/mapper/*.xml
-
 jwt:
-  tokenHeader: Authorization #JWT存储的请求头
-  secret: forest-admin-secret #JWT加解密使用的密钥
-  expiration: 604800 #JWT的超期限时间(60*60*24*7)
-  tokenHead: Bearer  #JWT负载中拿到开头
-
-
-
+  tokenHeader: Authorization
+  secret: forest-admin-secret
+  expiration: 604800
+  tokenHead: Bearer
 secure:
   ignored:
-    urls: #安全路径白名单
+    urls:
       - /swagger-ui.html
       - /swagger-resources/**
       - /swagger/**
@@ -82,14 +69,10 @@ secure:
       - /home/**
       - /product/**
       - /brand/**
-
-
-# 消息队列定义
 rabbitmq:
   queue:
     name:
       cancelOrder: cancelOrderQueue
-# 自定义redis key
 redis:
   database: forest
   key:
@@ -99,9 +82,9 @@ redis:
     member: 'ums:member'
     token: 'ums:token'
   expire:
-    authCode: 90 # 验证码超期时间
-    authLoginCode: 240 # 验证码超期时间
-    common: 86400 # 24小时
+    authCode: 90
+    authLoginCode: 240
+    common: 86400
 
 forest:
   wx: 
@@ -110,17 +93,12 @@ forest:
 sms:
   accessKeyId: LTAICB9TH0OAN3yJ
   accessKeySecret: lCuyL3MUQRLfoVw39W0NqWdVGoLV60
-  signName: 慧云网安
+  signName: hywa
 wx:
   mp:
     aesKey: 123
     appId: wxbe90cc7c5233dd84
     secret: ec4a18ce1a7bcf17cf592c3d57cec68a
     token: 123
-    url: http://tanhui.hongweisoft.com/forest-portal/wechat/h5/userInfo
-    before: http://172.16.90.25:8080
-
-
-
-
-
+    url: http://wx.hw.hongweisoft.com/zddapi/forest-portal/wechat/h5/userInfo
+    before: http://172.16.90.25:8080