瀏覽代碼

商品发布part2

chao 4 年之前
父節點
當前提交
a505e348db

+ 18 - 0
src/main/java/com/caimei365/commodity/mapper/ShopMapper.java

@@ -1,6 +1,8 @@
 package com.caimei365.commodity.mapper;
 
+import com.caimei365.commodity.model.po.ProductDetailInfoPo;
 import com.caimei365.commodity.model.po.ProductImagePo;
+import com.caimei365.commodity.model.po.ProductParameterPo;
 import com.caimei365.commodity.model.po.ProductPo;
 import com.caimei365.commodity.model.search.ProductListVo;
 import com.caimei365.commodity.model.vo.ProductItemVo;
@@ -65,4 +67,20 @@ public interface ShopMapper {
      * 删除商品图片
      */
     void deleteProductImage(Integer id);
+    /**
+     * 删除相关参数
+     */
+    void deleteProductParameters(Integer productId);
+    /**
+     * 保存相关参数
+     */
+    void insertProductParameters(ProductParameterPo parameters);
+    /**
+     * 保存商品详情
+     */
+    void insertProductDetailInfo(ProductDetailInfoPo productDetail);
+    /**
+     * 修改商品详情
+     */
+    void updateProductDetailInfo(ProductDetailInfoPo productDetail);
 }

+ 46 - 0
src/main/java/com/caimei365/commodity/model/po/ProductDetailInfoPo.java

@@ -0,0 +1,46 @@
+package com.caimei365.commodity.model.po;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2021/4/22
+ */
+@Data
+public class ProductDetailInfoPo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private Integer productDetailInfoId;
+    /**
+     * 商品Id
+     */
+    private Integer productId;
+    /**
+     * 商品详情信息
+     */
+    private String detailInfo;
+    /**
+     * 服务详情
+     */
+    private String serviceInfo;
+    /**
+     * 订购方案
+     */
+    private String orderInfo;
+
+    private String propValueAlias;
+
+    private String propValueImages;
+
+    private String detailInfoTxt;
+
+    private String seoTitle;
+
+    private String seoKeyword;
+
+    private String seoDes;
+}

+ 37 - 0
src/main/java/com/caimei365/commodity/model/po/ProductParameterPo.java

@@ -0,0 +1,37 @@
+package com.caimei365.commodity.model.po;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2021/4/22
+ */
+@Data
+public class ProductParameterPo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private Integer id;
+    /**
+     * 商品ID
+     */
+    private Integer productId;
+
+    /**
+     * 参数名称
+     */
+    private String paramsName;
+
+    /**
+     * 参数内容
+     */
+    private String paramsContent;
+
+    /**
+     * 删除标记 0否 其余是
+     */
+    private Integer delFlag;
+}

+ 1 - 1
src/main/java/com/caimei365/commodity/service/impl/SecondHandServiceImpl.java

@@ -378,7 +378,7 @@ public class SecondHandServiceImpl implements SecondHandService {
      * @return str
      */
     private String priceFormatStr(Double number) {
-        number = (number == null && number > 0d) ? number : 0d;
+        number = (number != null && number > 0d) ? number : 0d;
         DecimalFormat df = new DecimalFormat("##,##0.00");
         return df.format(number);
     }

+ 29 - 30
src/main/java/com/caimei365/commodity/service/impl/ShopServiceImpl.java

@@ -6,7 +6,9 @@ import com.caimei365.commodity.components.PriceUtilService;
 import com.caimei365.commodity.mapper.ShopMapper;
 import com.caimei365.commodity.model.ResponseJson;
 import com.caimei365.commodity.model.dto.ProductDto;
+import com.caimei365.commodity.model.po.ProductDetailInfoPo;
 import com.caimei365.commodity.model.po.ProductImagePo;
+import com.caimei365.commodity.model.po.ProductParameterPo;
 import com.caimei365.commodity.model.po.ProductPo;
 import com.caimei365.commodity.model.search.ProductListVo;
 import com.caimei365.commodity.model.vo.PaginationVo;
@@ -210,7 +212,6 @@ public class ShopServiceImpl implements ShopService {
         String current = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
         //保存或修改商品
         ProductPo product = new ProductPo();
-        product.setProductId(productDto.getProductId());
         product.setShopId(productDto.getShopId());
         product.setName(productDto.getName());
         product.setAliasName(productDto.getAliasName());
@@ -259,6 +260,7 @@ public class ShopServiceImpl implements ShopService {
             }
             shopMapper.insertProduct(product);
         } else {
+            product.setProductId(productDto.getProductId());
             shopMapper.updateProduct(product);
         }
         //保存或修改商品图片
@@ -286,34 +288,31 @@ public class ShopServiceImpl implements ShopService {
                 shopMapper.deleteProductImage(imageItem.getId());
             }
         }
-//        //保存相关参数
-//        supplierProductDao.deleteParameters(productDto.getProductId());
-//        if (null != paramList && paramList.size() > 0) {
-//            for (Map<String, String> map : paramList) {
-//                String paramsName = map.get("paramsName");
-//                String paramsContent = map.get("paramsContent");
-//                if (StringUtils.isNotBlank(paramsName) && StringUtils.isNotBlank(paramsContent)) {
-//                    RelatedParametersVo parameters = new RelatedParametersVo();
-//                    parameters.setParamsName(paramsName);
-//                    parameters.setParamsContent(paramsContent);
-//                    parameters.setProductId(productDto.getProductId());
-//                    parameters.setDelFlag("0");
-//                    supplierProductDao.insertParameters(parameters);
-//                }
-//            }
-//        }
-//        //保存修改商品详情
-//        product.setDetailInfo(productDto.getDetailInfo());
-//        if (null == productDetail.getProductDetailInfoId()) {
-//            productDetail.setProductId(productDto.getProductId());
-//            supplierProductDao.insertProductDetail(productDetail);
-//        } else {
-//            supplierProductDao.updateProductDetail(productDetail);
-//        }
-//        return JsonModel.newInstance().success();
-
-
-
-        return null;
+        //保存相关参数
+        shopMapper.deleteProductParameters(productDto.getProductId());
+        if (null != paramList && paramList.size() > 0) {
+            for (Map<String, String> map : paramList) {
+                String paramsName = map.get("paramsName");
+                String paramsContent = map.get("paramsContent");
+                if (StringUtils.isNotBlank(paramsName) && StringUtils.isNotBlank(paramsContent)) {
+                    ProductParameterPo parameters = new ProductParameterPo();
+                    parameters.setParamsName(paramsName);
+                    parameters.setParamsContent(paramsContent);
+                    parameters.setProductId(productDto.getProductId());
+                    parameters.setDelFlag(0);
+                    shopMapper.insertProductParameters(parameters);
+                }
+            }
+        }
+        //保存修改商品详情
+        ProductDetailInfoPo productDetail = new ProductDetailInfoPo();
+        productDetail.setProductId(product.getProductId());
+        productDetail.setDetailInfo(productDto.getDetailInfo());
+        if (null == productDetail.getProductDetailInfoId()) {
+            shopMapper.insertProductDetailInfo(productDetail);
+        } else {
+            shopMapper.updateProductDetailInfo(productDetail);
+        }
+        return ResponseJson.success();
     }
 }

+ 3 - 3
src/main/java/com/caimei365/commodity/utils/Json2PojoUtil.java

@@ -64,8 +64,8 @@ public class Json2PojoUtil {
      */
     public static List<ShopListVo> toShopList(JSONArray jsonArray) {
         List<ShopListVo> shopList = new ArrayList<>();
-        ShopListVo shop = new ShopListVo();
         for (int i=0; i<jsonArray.length(); i++) {
+            ShopListVo shop = new ShopListVo();
             JSONObject json = jsonArray.getJSONObject(i);
             /* 主键Id */
             shop.setMainId(json.getInt("id"));
@@ -99,8 +99,8 @@ public class Json2PojoUtil {
      */
     public static List<EquipmentListVo> toEquipmentList(JSONArray jsonArray) {
         List<EquipmentListVo> equipmentList = new ArrayList<>();
-        EquipmentListVo equipment = new EquipmentListVo();
         for (int i=0; i<jsonArray.length(); i++) {
+            EquipmentListVo equipment = new EquipmentListVo();
             JSONObject json = jsonArray.getJSONObject(i);
             /* 阿里云索引Id */
             equipment.setMainId(json.getInt("id"));
@@ -123,8 +123,8 @@ public class Json2PojoUtil {
      */
     public static List<ArticleListVo> toArticleList(JSONArray jsonArray) {
         List<ArticleListVo> articleList = new ArrayList<>();
-        ArticleListVo article = new ArticleListVo();
         for (int i=0; i<jsonArray.length(); i++) {
+            ArticleListVo article = new ArticleListVo();
             JSONObject json = jsonArray.getJSONObject(i);
             /* 阿里云索引Id */
             article.setMainId(json.getInt("id"));

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

@@ -32,7 +32,7 @@
                pr.endTime,
                pr.status,
                prp.productId,
-               prp.supplierId
+               prp.supplierId as shopId
         from cm_promotions pr
                  left join cm_promotions_product prp on pr.id = prp.promotionsId
         where (prp.productId = #{productId} or

+ 37 - 2
src/main/resources/mapper/ShopMapper.xml

@@ -160,17 +160,52 @@
         insert into productimage (productID, shopID, addTime, image, mainFlag, sortIndex)
         values (#{productId}, #{shopId}, #{addTime}, #{image}, #{mainFlag}, #{sortIndex})
     </insert>
+    <insert id="insertProductParameters" parameterType="com.caimei365.commodity.model.po.ProductParameterPo">
+        insert into cm_product_related_parameters (productId, paramsName, paramsContent, delFlag)
+        values (#{productId}, #{paramsName}, #{paramsContent}, #{delFlag})
+    </insert>
+    <insert id="insertProductDetailInfo">
+        insert into productdetailinfo (
+          productID, propValueAlias, propValueImages,
+          detailInfo, detailInfoTxt, seoTitle,
+          seoKeyword, seoDes, serviceInfo,
+          orderInfo
+        ) values (
+            #{productId}, #{propValueAlias}, #{propValueImages},
+            #{detailInfo}, #{detailInfoTxt}, #{seoTitle},
+            #{seoKeyword}, #{seoDes}, #{serviceInfo},
+            #{orderInfo}
+          )
+    </insert>
     <update id="updateProductImage">
         update productimage set productID = #{productId}, shopID = #{shopId}, addTime = #{addTime},
                                 image = #{image}, mainFlag = #{mainFlag}, sortIndex = #{sortIndex}
         where productImageId = #{id}
     </update>
+    <update id="updateProductDetailInfo">
+        update productdetailinfo set
+          propValueAlias = #{propValueAlias},
+          propValueImages = #{propValueImages},
+          detailInfo = #{detailInfo},
+          detailInfoTxt = #{detailInfoTxt},
+          seoTitle = #{seoTitle},
+          seoKeyword = #{seoKeyword},
+          seoDes = #{seoDes},
+          serviceInfo = #{serviceInfo},
+          orderInfo = #{orderInfo}
+        where
+          productDetailInfoID = #{productDetailInfoId}
+    </update>
     <delete id="deleteProductImage">
         delete from productimage where productImageID = #{id}
     </delete>
+    <delete id="deleteProductParameters">
+        delete from cm_product_related_parameters where productId = #{productId}
+    </delete>
     <select id="getMainProducts" resultType="com.caimei365.commodity.model.search.ProductListVo">
 		select
-			p.productID as id,
+			p.productID as productId,
+			p.shopID as shopId,
 			p.`name` as `name`,
 			p.mainImage as image,
 			p.price1 as price,
@@ -189,7 +224,7 @@
     </select>
     <select id="getShopProductsSelect" resultType="com.caimei365.commodity.model.vo.ProductItemVo">
         select
-            p.productID as productId, p.name, p.aliasName, p.price, p.normalPrice, p.mainImage,
+            p.productID as productId, p.name, p.aliasName, p.price, p.normalPrice, p.mainImage, p.ladderPriceFlag as ladderPriceFlag,
             p.validFlag, p.featuredFlag, p.productCode, p.commodityType as commodityType,
             p.bigTypeID as bigTypeId, p.smallTypeID as smallTypeId, p.tinyTypeID as tinyTypeId
         from product p