Jelajahi Sumber

Merge remote-tracking branch 'origin/developer' into developerC

zhijiezhao 2 tahun lalu
induk
melakukan
a229abc359

+ 27 - 0
src/main/java/com/caimei365/commodity/model/dto/ProductDto.java

@@ -6,6 +6,7 @@ import lombok.Data;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.util.Date;
 
 /**
  * Description
@@ -202,6 +203,32 @@ public class ProductDto implements Serializable {
      */
     @ApiModelProperty("新品参与状态:1.参与2.未参与")
     private Integer newProductType;
+    /**
+     * 证书编号
+     * @return
+     */
+    @ApiModelProperty("证书编号")
+    public String qualificationNo;
+
+    /**
+     *产品名称
+     * @return
+     */
+    @ApiModelProperty("产品名称")
+    public String productName;
+    /**
+     *证书有效日期
+     * @return
+     */
+    @ApiModelProperty("证书有效日期")
+    public String qualificationTime;
+
+    /**
+     *证书有效链接
+     * @return
+     */
+    @ApiModelProperty("证书有效链接")
+    public String qualificationLink;
 
 
 }

+ 20 - 0
src/main/java/com/caimei365/commodity/model/po/ProductPo.java

@@ -262,4 +262,24 @@ public class ProductPo implements Serializable {
 
     private String BrandName;
 
+    /**
+     * 证书编号
+     * @return
+     */
+    public String qualificationNo;
+
+    /**
+     *产品名称
+     */
+    public String productName;
+    /*
+     *证书有效日期
+     */
+    public String qualificationTime;
+
+    /**
+     *证书有效链接
+     */
+    public String qualificationLink;
+
 }

+ 22 - 0
src/main/java/com/caimei365/commodity/model/vo/ProductDetailVo.java

@@ -3,11 +3,13 @@ package com.caimei365.commodity.model.vo;
 import com.caimei365.commodity.model.po.ProductDetailInfoPo;
 import com.caimei365.commodity.model.po.ProductImagePo;
 import com.caimei365.commodity.model.po.ProductParameterPo;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import lombok.Data;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -331,4 +333,24 @@ public class ProductDetailVo implements Serializable {
      * 普通机构商品详情 1同资质机构商品详情,2用普通机构商品详情
      */
     private Integer productDetailChose;
+    /**
+     * 证书编号
+     * @return
+     */
+    public String qualificationNo;
+
+    /**
+     *产品名称
+     */
+    public String productName;
+    /*
+     *证书有效日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    public Date qualificationTime;
+
+    /**
+     *证书有效链接
+     */
+    public String qualificationLink;
 }

+ 22 - 0
src/main/java/com/caimei365/commodity/model/vo/ProductFormVo.java

@@ -3,11 +3,13 @@ package com.caimei365.commodity.model.vo;
 import com.caimei365.commodity.model.po.ProductDetailInfoPo;
 import com.caimei365.commodity.model.po.ProductImagePo;
 import com.caimei365.commodity.model.po.ProductParameterPo;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import lombok.Data;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -264,4 +266,24 @@ public class ProductFormVo implements Serializable {
 
 //新品审核状态 1,审核通过2,审核未通过3,待审核
     private Integer newvalidFlag;
+    /**
+     * 证书编号
+     * @return
+     */
+    public String qualificationNo;
+
+    /**
+     *产品名称
+     */
+    public String productName;
+    /*
+     *证书有效日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    public Date qualificationTime;
+
+    /**
+     *证书有效链接
+     */
+    public String qualificationLink;
 }

+ 9 - 5
src/main/java/com/caimei365/commodity/service/impl/SearchIndexServiceImpl.java

@@ -185,7 +185,7 @@ public class SearchIndexServiceImpl implements SearchIndexService {
         // 获取推送记录数
         Integer articleRecord = setAllArticleData(mainId, articleCount, false);
         if (articleCount > articleRecord) {
-            log.warn("批量添加文章文档异常,部分文章未添加。");
+            log.warn("批量添加文章文档异常,部分文章未添加。应加数量:" + articleCount + ",实加数量:" + articleRecord);
         }
         return ResponseJson.success(articleRecord);
     }
@@ -1003,10 +1003,11 @@ public class SearchIndexServiceImpl implements SearchIndexService {
      * @return int
      */
     private Integer setAllArticleData(Integer mainId, Integer articleCount, boolean initFlag) {
-        // 批量推送,每100条推送一次
-        int loop = (int) Math.ceil(articleCount.doubleValue() / 100);
+        // 批量推送,每50条推送一次
+        int loop = (int) Math.ceil(articleCount.doubleValue() / 50);
         Map<Integer, Integer> idsMap = Maps.newLinkedHashMap();
         if (!initFlag) {
+            // 获取阿里云已存在的文章文档id
             Integer record = searchQueryService.getRecordByDocType("article");
             int l = (int) Math.ceil(record.doubleValue() / 500);
             for (int i = 1; i <= l; i++) {
@@ -1017,7 +1018,7 @@ public class SearchIndexServiceImpl implements SearchIndexService {
         // 定义返回结果
         int articleRecord = 0;
         for (int i = 1; i <= loop; i++) {
-            PageHelper.startPage(i, 100);
+            PageHelper.startPage(i, 50);
             // 获取数据库文章列表的分页数据
             List<ArticleDO> dbList = searchMapper.searchArticleList();
             // 定义文章文档数据
@@ -1054,7 +1055,10 @@ public class SearchIndexServiceImpl implements SearchIndexService {
                 pushArticleDocument(mainList, articleList);
                 // 添加到返回结果
                 articleRecord += mainList.size();
-            } catch (OpenSearchClientException | OpenSearchException | JSONException e) {
+                log.info("批量更新第" + i + "页文章文档,数据库条数:" + dbList.size() + ",本次更新条数:" + mainList.size() + ",总更新条数:" + articleRecord);
+                // 降低推送频率,防止触发推送频率限制导致推送失败
+                Thread.sleep(1000);
+            } catch (OpenSearchClientException | OpenSearchException | JSONException | InterruptedException e) {
                 log.error("批量添加文章文档异常:" + e);
                 articleRecord += 0;
             }

+ 5 - 0
src/main/java/com/caimei365/commodity/service/impl/ShopServiceImpl.java

@@ -267,6 +267,9 @@ public class ShopServiceImpl implements ShopService {
         product.setUpdateTime(current);
         product.setValidFlag(1);
         product.setProductCategory(1);
+        product.setQualificationNo(productDto.getQualificationNo());
+        product.setProductName(productDto.getProductName());
+        product.setQualificationTime(productDto.getQualificationTime());
         //设置主图
         for (Map<String, String> map : imageList) {
             String mainFlag = map.get("mainFlag");
@@ -287,6 +290,7 @@ public class ShopServiceImpl implements ShopService {
             product.setActFlag(0);
             product.setLadderPriceFlag(0);
             product.setVisibility(3);
+            log.info("+++++++++++++++++++++++++"+product);
             shopMapper.insertProduct(product);
             if (StringUtils.isBlank(productDto.getProductCode())) {
                 String productCode = shopMapper.getCodeByTypeId(productDto.getBigTypeId(), productDto.getSmallTypeId(), productDto.getTinyTypeId());
@@ -295,6 +299,7 @@ public class ShopServiceImpl implements ShopService {
                 shopMapper.updateProductCode(productCode, product.getProductId());
             }
         } else {
+            log.info(">>>>>>>>>>>>>>>>>>"+product);
             shopMapper.updateProduct(product);
         }
         //保存或修改商品图片

+ 1 - 1
src/main/resources/mapper/PageMapper.xml

@@ -195,7 +195,7 @@
                p.addTime, p.hasSkuFlag, p.sellNumber, p.sortIndex, p.featuredFlag, p.costCheckFlag, p.recommendType, p.machineType,
                p.productCode, p.updateTime, p.validFlag, p.searchKey, p.allAreaFlag, p.step, p.costPrice, p.provinceIds, p.qualificationImg,
                p.trainingMethod, p.trainingType ,p.trainingFee, p.productRemarks,p.productDetail as productDetailChose,
-               s.shopType as shopType
+               s.shopType as shopType,p.qualificationNo as qualificationNo,p.productName as productName,p.qualificationTime as qualificationTime,p.qualificationLink as qualificationLink
         from product p
         left join shop s on s.shopId= p.shopId
         where p.productID = #{productId}

+ 1 - 1
src/main/resources/mapper/SearchMapper.xml

@@ -251,7 +251,7 @@
         from info as a
         <include refid="Article_Joins"/>
         where a.enabledStatus = 1 and a.auditStatus = 2 and a.onlineStatus = 2
-        order by a.priorityIndex desc
+        order by a.id desc
     </select>
     <select id="searchArticleById" resultType="com.caimei365.commodity.model.search.ArticleDO">
         select

+ 47 - 10
src/main/resources/mapper/ShopMapper.xml

@@ -6,7 +6,6 @@
         insert into product (
         shopID, name, aliasName, commodityType, bigTypeID, smallTypeID, tinyTypeID, mainImage,
         brandID, productType, tags, unit, normalPrice, price, includedTax, minBuyNumber, stock,
-
         <if test="productCategory != null and  productCategory != '' ">
             productCategory,
         </if>
@@ -76,6 +75,16 @@
         <if test="invoiceType != null and  invoiceType != ''">
             invoiceType,
         </if>
+        <if test="qualificationNo != null and  qualificationNo != ''">
+            qualificationNo,
+        </if>
+        <if test="productName != null and  productName != ''">
+            productName,
+        </if>
+        <if test="qualificationTime != null and  qualificationTime != ''">
+            qualificationTime,
+        </if>
+
         updateTime,validFlag,newProductType,showFlag
         ) values (
         #{shopId}, #{name}, #{aliasName}, #{commodityType}, #{bigTypeId}, #{smallTypeId}, #{tinyTypeId}, #{mainImage},
@@ -150,6 +159,15 @@
         <if test="invoiceType != null and  invoiceType != ''">
             #{invoiceType},
         </if>
+        <if test="qualificationNo != null and  qualificationNo != ''">
+            #{qualificationNo},
+        </if>
+        <if test="productName != null and  productName != ''">
+            #{productName},
+        </if>
+        <if test="qualificationTime != null and  qualificationTime != ''">
+            #{qualificationTime},
+        </if>
         #{updateTime}, #{validFlag},#{newProductType},#{showFlag}
         )
     </insert>
@@ -157,9 +175,24 @@
         update product set
         shopID = #{shopId}, name = #{name}, aliasName = #{aliasName}, commodityType = #{commodityType},
         bigTypeId = #{bigTypeId}, smallTypeId = #{smallTypeId}, tinyTypeId = #{tinyTypeId}, mainImage = #{mainImage},
-        brandId = #{brandId}, productType = #{productType}, tags = #{tags}, unit = #{unit}, normalPrice = #{normalPrice},
-        price = #{price}, price = #{price}, includedTax = #{includedTax}, minBuyNumber = #{minBuyNumber}, stock =#{stock},
+        brandId = #{brandId}, productType = #{productType}, tags = #{tags}, unit = #{unit}, normalPrice =
+        #{normalPrice},
+        price = #{price}, price = #{price}, includedTax = #{includedTax}, minBuyNumber = #{minBuyNumber}, stock
+        =#{stock},
         newProductType=#{newProductType},
+        <if test="qualificationNo !=null and qualificationNo != ''">
+            qualificationNo=#{qualificationNo},
+        </if>
+        <if test="productName !=null and productName != ''">
+            productName=#{productName},
+        </if>
+        <if test="qualificationTime !=null and qualificationTime != ''">
+            qualificationTime=#{qualificationTime},
+        </if>
+        <if test="qualificationLink !=null and qualificationLink != ''">
+            qualificationLink=#{qualificationLink},
+        </if>
+
         <if test="productCategory != null and  productCategory != ''">
             productCategory = #{productCategory},
         </if>
@@ -470,20 +503,20 @@
         order by mainFlag DESC
     </select>
     <select id="getProductForm" resultType="com.caimei365.commodity.model.vo.ProductFormVo">
-        select productID   as productId,
-               shopID      as shopId,
+        select productID                 as productId,
+               shopID                    as shopId,
                name,
                aliasName,
                commodityType,
                mainImage,
                stock,
                invoiceType,
-               bigTypeID   as bigTypeId,
-               smallTypeID as smallTypeId,
-               tinyTypeID  as tinyTypeId,
+               bigTypeID                 as bigTypeId,
+               smallTypeID               as smallTypeId,
+               tinyTypeID                as tinyTypeId,
                searchKey,
                visibility,
-               brandID     as brandId,
+               brandID                   as brandId,
                productType,
                tags,
                unit,
@@ -517,7 +550,11 @@
                trainingMethod,
                trainingType,
                trainingFee,
-               ifnull(newProductType,2) as newProductType
+               ifnull(newProductType, 2) as newProductType,
+                qualificationNo as qualificationNo,
+                productName as productName,
+               qualificationTime as qualificationTime,
+               qualificationLink as qualificationLink
         from product
         where productID = #{productId}
     </select>