zhijiezhao 2 yıl önce
ebeveyn
işleme
78aab718ba

+ 4 - 0
src/main/java/com/caimei/modules/product/dao/ProductDao.java

@@ -207,4 +207,8 @@ public interface ProductDao extends CrudDao<Product> {
     Product getBySku(String skuId);
 
     List<CmSku> findHeHeSku(Integer productId);
+
+    Integer findSkuId(Integer productID);
+
+    void updateCmSku(CmSku cmSku);
 }

+ 9 - 9
src/main/java/com/caimei/modules/product/entity/CmSku.java

@@ -20,7 +20,7 @@ public class CmSku extends DataEntity<CmSku> {
     private Double normalPrice;        // 市场价
     private String stock;        // 库存
     private Integer costCheckFlag;        // 成本价选中标志:1固定成本 2比例成本
-    private Integer costProportional;        // 比例成本百分比
+    private Double costProportional;        // 比例成本百分比
     private Double costPrice;        // 成本价
     private Double price;        // 机构价
     private Integer ladderPriceFlag;        // 启用阶梯价格标识 0否 1是
@@ -85,20 +85,20 @@ public class CmSku extends DataEntity<CmSku> {
         this.stock = stock;
     }
 
-    public Integer getCostCheckFlag() {
-        return costCheckFlag;
+    public Double getCostProportional() {
+        return costProportional;
     }
 
-    public void setCostCheckFlag(Integer costCheckFlag) {
-        this.costCheckFlag = costCheckFlag;
+    public void setCostProportional(Double costProportional) {
+        this.costProportional = costProportional;
     }
 
-    public Integer getCostProportional() {
-        return costProportional;
+    public Integer getCostCheckFlag() {
+        return costCheckFlag;
     }
 
-    public void setCostProportional(Integer costProportional) {
-        this.costProportional = costProportional;
+    public void setCostCheckFlag(Integer costCheckFlag) {
+        this.costCheckFlag = costCheckFlag;
     }
 
     public Double getCostPrice() {

+ 11 - 9
src/main/java/com/caimei/modules/product/service/ProductService.java

@@ -460,15 +460,17 @@ public class ProductService extends CrudService<ProductDao, Product> {
         if (null != skuList && skuList.size() > 0) {
             productDao.deleteLadderPriceById(product.getProductID());
             skuList.forEach(s -> {
-                s.productId(product.getProductID());
-                productDao.insertSku(s);
-                if (null != s.ladderPriceFlag() && 1 == s.ladderPriceFlag()) {
-                    List<CmLadderPrice> cmLadderPrices = s.ladderPriceList();
-                    for (int i = 0; i < cmLadderPrices.size(); i++) {
-                        if (0 == i || "0".equals(cmLadderPrices.get(i).delFlag())) {
-                            cmLadderPrices.get(i).setProductId(product.getProductID());
-                            cmLadderPrices.get(i).setSkuId(s.getSkuId());
-                            productDao.insertCmLadderPrice(cmLadderPrices.get(i));
+                if (null != s.getPrice()) {
+                    s.productId(product.getProductID());
+                    productDao.insertSku(s);
+                    if (null != s.ladderPriceFlag() && 1 == s.ladderPriceFlag()) {
+                        List<CmLadderPrice> cmLadderPrices = s.ladderPriceList();
+                        for (int i = 0; i < cmLadderPrices.size(); i++) {
+                            if (0 == i || "0".equals(cmLadderPrices.get(i).delFlag())) {
+                                cmLadderPrices.get(i).setProductId(product.getProductID());
+                                cmLadderPrices.get(i).setSkuId(s.getSkuId());
+                                productDao.insertCmLadderPrice(cmLadderPrices.get(i));
+                            }
                         }
                     }
                 }

+ 30 - 17
src/main/java/com/caimei/modules/product/web/CmSecondHandDetailController.java

@@ -8,9 +8,11 @@ import com.caimei.modules.cibe.entity.Shop;
 import com.caimei.modules.common.utils.UploadUtils;
 import com.caimei.modules.opensearch.GenerateUtils;
 import com.caimei.modules.oss.utils.OSSUtils;
+import com.caimei.modules.product.dao.ProductDao;
 import com.caimei.modules.product.dao.ProductNewDao;
 import com.caimei.modules.product.entity.BigType;
 import com.caimei.modules.product.entity.CmSecondHandDetail;
+import com.caimei.modules.product.entity.CmSku;
 import com.caimei.modules.product.entity.Product;
 import com.caimei.modules.product.service.CmSecondHandDetailService;
 import com.caimei.modules.product.service.CmSecondHandTransactionService;
@@ -66,6 +68,8 @@ public class CmSecondHandDetailController extends BaseController {
     private RedisService redisService;
     @Resource
     private GenerateUtils generateUtils;
+    @Resource
+    private ProductDao productDao;
 
     @ModelAttribute
     public CmSecondHandDetail get(@RequestParam(required = false) String id) {
@@ -353,21 +357,6 @@ public class CmSecondHandDetailController extends BaseController {
         product.setName(cmSecondHandDetail.getName());
         product.setAliasName(cmSecondHandDetail.getName());
         product.setVisibility(cmSecondHandDetail.getVisibility());
-        String normalPrice = cmSecondHandDetail.getNormalPrice();
-        if (StringUtils.isNotEmpty(normalPrice)) {
-            product.setNormalPrice(Double.parseDouble(normalPrice));
-        }
-        product.setPrice(cmSecondHandDetail.getPrice());
-        product.setCostCheckFlag(cmSecondHandDetail.getCostCheckFlag());
-        if ("1".equals(product.getCostCheckFlag())) {
-            product.setCostPrice(String.valueOf(cmSecondHandDetail.getCostPrice()));
-        } else {
-            product.setCostProportional(String.valueOf(cmSecondHandDetail.getCostProportional()));
-        }
-        Integer stock = cmSecondHandDetail.getStock();
-        if (null != stock && stock > 0) {
-            product.setStock(String.valueOf(stock));
-        }
         product.setHasSkuFlag("1");
         product.setUpdateTime(dateStr);
         product.setSellNumber(String.valueOf(cmSecondHandDetail.getStock()));
@@ -382,7 +371,6 @@ public class CmSecondHandDetailController extends BaseController {
 
         }
         product.setSplitCode(cmSecondHandDetail.getSplitCode());
-        product.setLadderPriceFlag("0");
         product.setSortIndex("1");
         product.setFeaturedFlag("0");
         product.setByFlag("0");
@@ -415,7 +403,32 @@ public class CmSecondHandDetailController extends BaseController {
             product.setMainImage(imageUrl);
         }
         cmSecondHandDetailService.saveProduct(product);
-        String payType = cmSecondHandDetail.getPayType();
+        //保存sku
+        CmSku cmSku = new CmSku();
+        cmSku.setProductId(product.getProductID());
+        cmSku.setLadderPriceFlag(0);
+        Integer stock = cmSecondHandDetail.getStock();
+        if (null != stock && stock > 0) {
+            cmSku.setStock(String.valueOf(stock));
+        }
+        String normalPrice = cmSecondHandDetail.getNormalPrice();
+        if (StringUtils.isNotEmpty(normalPrice)) {
+            cmSku.setNormalPrice(Double.parseDouble(normalPrice));
+        }
+        cmSku.setPrice(cmSecondHandDetail.getPrice());
+        cmSku.setCostCheckFlag(Integer.valueOf(cmSecondHandDetail.getCostCheckFlag()));
+        if ("1".equals(cmSecondHandDetail.getCostCheckFlag())) {
+            cmSku.setCostPrice(cmSecondHandDetail.getCostPrice());
+        } else {
+            cmSku.setCostProportional(cmSecondHandDetail.getCostProportional());
+        }
+        Integer skuId=productDao.findSkuId(product.getProductID());
+        if(null!=skuId){
+            cmSku.setSkuId(skuId);
+            productDao.updateCmSku(cmSku);
+        }else{
+            productDao.insertSku(cmSku);
+        }
         cmSecondHandDetail.setProductID(product.getProductID());
         // 地址优化
         Integer townId = cmSecondHandDetail.getTownId();

+ 1 - 1
src/main/resources/mappings/modules/order/OrderProductMapper.xml

@@ -562,7 +562,7 @@
         select cop.name                    AS name,
                cop.orderProductID          AS orderProductID,
                cop.productID               AS productID,
-               cs.unit                     AS unit,
+               cop.productUnit             AS unit,
                cop.num                     AS num,
                cop.presentNum              AS presentNum,
                cop.discountPrice           AS discountPrice,

+ 7 - 6
src/main/resources/mappings/modules/product/CmSecondHandDetailMapper.xml

@@ -42,19 +42,20 @@
 		p.validFlag AS "validFlag",
 		p.productCategory AS "productCategory",
 		p.name AS "name",
-		p.normalPrice AS "normalPrice",
-		p.price AS "price",
-		p.stock AS "stock",
+		cs.normalPrice AS "normalPrice",
+		cs.price AS "price",
+		cs.stock AS "stock",
 		p.brandID AS "brandID",
-		p.costPrice as "costPrice",
-		p.costCheckFlag AS "costCheckFlag",
-		p.costProportional AS "costProportional",
+		cs.costPrice as "costPrice",
+		cs.costCheckFlag AS "costCheckFlag",
+		cs.costProportional AS "costProportional",
 		p.visibility AS "visibility",
 		p.splitCode AS "splitCode"
 	</sql>
 
 	<sql id="cmSecondHandDetailJoins">
         left join product p on p.productID = a.productID
+		left join cm_sku cs on p.productId=cs.productId
 	</sql>
 
 	<select id="get" resultType="CmSecondHandDetail">

+ 22 - 40
src/main/resources/mappings/modules/product/ProductMapper.xml

@@ -363,7 +363,6 @@
         allAreaFlag,
         provinceIDs,
         serviceNumber,
-        maxBuyNumber,
         packageCount,
         byFlag,
         normalProductFlag,
@@ -443,7 +442,6 @@
         #{allAreaFlag},
         #{provinceIDs},
         #{serviceNumber},
-        #{maxBuyNumber},
         #{packageCount},
         #{byFlag},
         #{normalProductFlag},
@@ -502,12 +500,8 @@
             shopID               = #{shopID},
             name                 = #{name},
             searchKey            = #{searchKey},
-            normalPrice          = #{normalPrice},
-            price                = #{price},
             priceFlag            = #{priceFlag},
             beautyActFlag        = #{beautyActFlag},
-            ladderPriceFlag      = #{ladderPriceFlag},
-            stock                = #{stock},
             hasSkuFlag           = #{hasSkuFlag},
             mainImage            = #{mainImage},
             propertiesInfo       = #{propertiesInfo},
@@ -526,13 +520,10 @@
             featuredFlag         = #{featuredFlag},
             featuredSortIndex    = #{featuredSortIndex},
             productCode          = #{productCode},
-            unit                 = #{unit},
             synToERPFlag         = #{synToERPFlag},
             allAreaFlag          = #{allAreaFlag},
             provinceIDs          = #{provinceIDs},
             serviceNumber        = #{serviceNumber},
-            maxBuyNumber         = #{maxBuyNumber},
-            minBuyNumber         = #{minBuyNumber},
             packageCount         = #{packageCount},
             byFlag               = #{byFlag},
             normalProductFlag    = #{normalProductFlag},
@@ -545,9 +536,6 @@
             onlineTime           = #{onlineTime},
             downlineTime         = #{downlineTime},
             freePostFlag         = #{freePostFlag},
-            costPrice            = #{costPrice},
-            costProportional     = #{costProportional},
-            costCheckFlag        = #{costCheckFlag},
             precisehKey          = #{precisehKey},
             actSort              = #{actSort},
             newProductType=#{newProductType}
@@ -923,14 +911,8 @@
         `aliasName`,
         `searchKey`,
         `productRemarks`,
-        `normalPrice`,
-        `price`,
         `priceFlag`,
         `beautyActFlag`,
-        `ladderPriceFlag`,
-        <if test="stock != null and  stock != '' ">
-            `stock`,
-        </if>
         `hasSkuFlag`,
         `mainImage`,
         `propertiesInfo`,
@@ -948,13 +930,10 @@
         `featuredFlag`,
         `featuredSortIndex`,
         `productCode`,
-        `unit`,
         `synToERPFlag`,
         `allAreaFlag`,
         `provinceIDs`,
         `serviceNumber`,
-        `maxBuyNumber`,
-        `minBuyNumber`,
         `packageCount`,
         `byFlag`,
         `normalProductFlag`,
@@ -970,9 +949,6 @@
         `onlineTime`,
         `downlineTime`,
         `freePostFlag`,
-        `costPrice`,
-        `costProportional`,
-        `costCheckFlag`,
         `precisehKey`,
         `tags`,
         `productType`,
@@ -1000,14 +976,8 @@
         #{aliasName},
         #{searchKey},
         #{productRemarks},
-        #{normalPrice},
-        #{price},
         #{priceFlag},
         #{beautyActFlag},
-        #{ladderPriceFlag},
-        <if test="stock != null and  stock != '' ">
-            #{stock},
-        </if>
         #{hasSkuFlag},
         #{mainImage},
         #{propertiesInfo},
@@ -1025,13 +995,10 @@
         #{featuredFlag},
         #{featuredSortIndex},
         #{productCode},
-        #{unit},
         #{synToERPFlag},
         #{allAreaFlag},
         #{provinceIDs},
         #{serviceNumber},
-        #{maxBuyNumber},
-        #{minBuyNumber},
         #{packageCount},
         #{byFlag},
         #{normalProductFlag},
@@ -1047,9 +1014,6 @@
         #{onlineTime},
         #{downlineTime},
         #{freePostFlag},
-        #{costPrice},
-        #{costProportional},
-        #{costCheckFlag},
         #{precisehKey},
         #{tags},
         #{productType},
@@ -1106,15 +1070,17 @@
          costCheckFlag,
          costprice,
          stock,
+         costProportional,
          minBuyNumber,
          unit)
         values (#{productId},
                 #{normalPrice},
                 #{price},
                 #{ladderPriceFlag},
-                1,
+                #{costCheckFlag},
                 #{costPrice},
                 #{stock},
+                #{costProportional},
                 #{minBuyNumber},
                 #{unit})
     </insert>
@@ -1629,9 +1595,6 @@
             <if test="serviceNumber != null and serviceNumber !=''">
                 serviceNumber = #{serviceNumber},
             </if>
-            <if test="maxBuyNumber != null and maxBuyNumber !=''">
-                maxBuyNumber = #{maxBuyNumber},
-            </if>
             <if test="packageCount != null and packageCount !=''">
                 packageCount = #{packageCount},
             </if>
@@ -1795,12 +1758,28 @@
             delFlag    = #{delFlag}
         where id = #{id}
     </update>
+
     <update id="updateMainImage">
         update product
         set mainImage =#{mainImage}
         where productID = #{productID}
     </update>
 
+    <update id="updateCmSku">
+        update cm_sku
+        set productId=#{productId},
+            ladderPriceFlag=#{ladderPriceFlag},
+            normalPrice=#{normalPrice},
+            price=#{price},
+            costProportional=#{costProportional},
+            costPrice=#{costPrice},
+            costCheckFlag=#{costCheckFlag},
+            stock=#{stock},
+            unit=#{unit},
+            minBuyNumber=#{minBuyNumber}
+        where skuId=#{skuId}
+    </update>
+
     <select id="getProductByTypeName" resultType="com.caimei.modules.brand.entity.BrandAndProductType">
         select b.name   AS "bigTypeName",
                b.bigTypeID,
@@ -2068,4 +2047,7 @@
         left join cm_hehe_sku chs on cs.skuId=chs.skuId
         where cs.productId = #{productID}
     </select>
+    <select id="findSkuId" resultType="java.lang.Integer">
+        select skuId from cm_sku where productId=#{productId}
+    </select>
 </mapper>

+ 3 - 6
src/main/webapp/WEB-INF/views/modules/product-new/productEdit.jsp

@@ -860,7 +860,7 @@
             <span class="red">*</span>起订量:
             <input style="width: 40px" type="number" name="minBuyNumber" maxlength="11" class="short"/>
         </div>
-        <div><span><button class="deleteSku" onclick="deleteDiv()">删除SKU</button></span></div>
+        <div><span><button class="deleteSku" onclick="deleteDiv(this)">删除SKU</button></span></div>
         <div class="ladderPriceBox" style="display: none;">
             <div class="ladderPrice">
                 起订量:
@@ -1801,11 +1801,8 @@
         skuEventBind(current, product);
     })
 
-    function deleteDiv(){
-        var skus=document.getElementsByClassName('sku');
-        for (let i = 0; i < skus.length; i++) {
-            $(".skus").removeChild(skus[i]);
-        }
+    function deleteDiv(el){
+        el.parentNode.parentNode.parentNode.parentNode.removeChild(el.parentNode.parentNode.parentNode);
     }
 
     function insertDefaultSkuRow() {