zhijiezhao 1 год назад
Родитель
Сommit
5c1e4c319f

+ 2 - 1
src/main/java/com/caimei/modules/product/service/CmPromotionService.java

@@ -203,7 +203,8 @@ public class CmPromotionService extends CrudService<CmPromotionDao, CmPromotion>
         if ("1".equals(product.getPromotionType())) {
             // 单品满赠
             if (null != product.getPromotionMode() && 3 == product.getPromotionMode()) {
-                product.setShopID(cmPromotionDao.findShopId(product.getProductID()));
+                Integer shopId = null != product.getShopID() ? product.getShopID() : (cmPromotionDao.findShopId(product.getProductID()));
+                product.setShopID(shopId);
                 product.setProductID(null);
             }
         } else if ("2".equals(product.getPromotionType())) {

+ 7 - 20
src/main/java/com/caimei/modules/product/web/CmPromotionController.java

@@ -183,18 +183,18 @@ public class CmPromotionController extends BaseController {
                     String[] split = cmPromotion.getProductIds().split(",");
                     for (String productId : split) {
                         if (StringUtil.isNotBlank(productId)) {
-                            if(StringUtils.isNotBlank(cmPromotion.getType()) && "2".equals(cmPromotion.getType())){
+                            if (StringUtils.isNotBlank(cmPromotion.getType()) && "2".equals(cmPromotion.getType())) {
                                 //凑单促销的时候取的是skuId
-                                productId=productService.getProductIdBySku(productId);
+                                productId = productService.getProductIdBySku(productId);
                             }
                             Product product = productService.get(productId);
                             promotionProducts.add(product);
                         }
                     }
                 } else {
-                    if(StringUtils.isNotBlank(cmPromotion.getType()) && "2".equals(cmPromotion.getType())){
+                    if (StringUtils.isNotBlank(cmPromotion.getType()) && "2".equals(cmPromotion.getType())) {
                         //凑单促销的时候取的是skuId
-                        String productId=productService.getProductIdBySku(cmPromotion.getProductIds());
+                        String productId = productService.getProductIdBySku(cmPromotion.getProductIds());
                         cmPromotion.setProductIds(productId);
                     }
                     Product product = productService.get(cmPromotion.getProductIds());
@@ -207,29 +207,13 @@ public class CmPromotionController extends BaseController {
                     String[] split = cmPromotion.getGiftIds().split(",");
                     for (String skuId : split) {
                         if (StringUtil.isNotBlank(skuId)) {
-                            if ("1".equals(cmPromotion.getType()) && "3".equals(cmPromotion.getMode())) {
-                                List<CmSku> skuList = productService.findSkuList(Integer.valueOf(skuId));
-                                Product product = productService.get(skuId);
-                                product.setSkuId(skuList.get(0).getSkuId());
-                                product.setUnit(skuList.get(0).getUnit());
-                                giftProducts.add(product);
-                            } else {
                                 Product product = productService.getBySku(skuId);
                                 giftProducts.add(product);
-                            }
                         }
                     }
                 } else {
-                    if ("1".equals(cmPromotion.getType()) && "3".equals(cmPromotion.getMode())) {
-                        Product product = productService.get(cmPromotion.getGiftIds());
-                        List<CmSku> skuList = productService.findSkuList(Integer.valueOf(cmPromotion.getGiftIds()));
-                        product.setSkuId(skuList.get(0).getSkuId());
-                        product.setUnit(skuList.get(0).getUnit());
-                        giftProducts.add(product);
-                    } else {
                         Product product = productService.getBySku(cmPromotion.getGiftIds());
                         giftProducts.add(product);
-                    }
                 }
             }
             if (StringUtil.isNotBlank(cmPromotion.getShopIds())) {
@@ -441,6 +425,9 @@ public class CmPromotionController extends BaseController {
         model.addAttribute("ids", product.getIds());
         model.addAttribute("delProductIds", product.getDelProductIds());
         if ("1".equals(product.getPromotionType())) {
+            if (null != product.getPromotionMode() && 3 == product.getPromotionMode()) {
+                return "modules/product-new/promotionSelectProducts";
+            }
             return "modules/product-new/promotionSelectSingleProduct";
         } else {
             return "modules/product-new/promotionSelectProducts";

+ 1 - 1
src/main/resources/mappings/modules/product/CmPromotionMapper.xml

@@ -128,7 +128,7 @@
                  LEFT JOIN shop s ON s.shopID = p.shopID
         WHERE cp.id = #{id} and cs.organizeId=(SELECT SUBSTRING(groundMall, 1, 1)FROM product WHERE productID=cs.productId)
           and p.productCategory = 1
-        group by p.productID
+        group by cpg.skuId
     </select>
 
     <select id="findGiftPurchaseProduct" resultType="com.caimei.modules.bulkpurchase.entity.PurchaseProduct">

+ 14 - 15
src/main/webapp/WEB-INF/views/modules/product-new/multiPromotionForm.jsp

@@ -229,6 +229,7 @@
         }
 
         function deleteProduct(obj, type) {
+            debugger;
             //将该行数据取消勾选,若存在数据库中则将其存入delProductIds中
             $(".check-item[value=" + obj + "]").prop("checked", false);
             var delProductIds = $("#delProductIds").val();
@@ -242,15 +243,20 @@
                 $("#delProductIds").val(delProductIds);
                 var product = $('#product' + obj);
                 $(product).remove();
-                var productIds = '';
-                $('#contentTbody tr').each(function (index, item) {
-                    var $this = $(this);
-                    var $itemProductID = $this.find('input[name="info"]').val();
-                    productIds += $itemProductID + ',';
-                });
-                $("#productIds").val(productIds);
-                if ($('#contentTbody tr').size < 1) {
+                if ($('#contentTbody tr').size() < 1) {
                     $("#productIds").val('');
+                    $("#giftIds").val('');
+                    var showSelectProductID = '';
+                    $('#contentTbody1 tr').each(function (index, item) {
+                        var $this = $(this);
+                        var $itemProductID = $this.find('input[name="gift"]').val();
+                        showSelectProductID += $itemProductID + ',';
+                    });
+                    $("#delGiftIds").val(showSelectProductID);
+                    var tbody = document.getElementById("contentTbody1");
+                    while (tbody.firstChild) {
+                        tbody.removeChild(tbody.firstChild);
+                    }
                 }
             }
             if (2 === type) {
@@ -262,13 +268,6 @@
                 $("#delGiftIds").val(delGiftIds);
                 var gift = $('#gift' + obj);
                 $(gift).remove();
-                var showSelectProductID = '';
-                $('#contentTbody1 tr').each(function (index, item) {
-                    var $this = $(this);
-                    var $itemProductID = $this.find('input[name="gift"]').val();
-                    showSelectProductID += $itemProductID + ',';
-                });
-                $("#giftIds").val(showSelectProductID);
                 if ($('#contentTbody1 tr').size < 1) {
                     $("#giftIds").val('');
                 }

+ 9 - 4
src/main/webapp/WEB-INF/views/modules/product-new/promotionSelectProducts.jsp

@@ -36,14 +36,16 @@
         });
 
         function checkSkuValue(index) {
-            var skus = JSON.parse($("#hideSku").val());
+            var sku = "#hideSku" + index;
+            var skus = JSON.parse($(sku).val());
             var price = "price" + index;//单价
             var chose = "#ints" + index;//选中的sku
             var skuStr = $(chose).val();
             var skuIndex = skuStr.split("/")[1];
             var skuId = skuStr.split("/")[0];
             document.getElementById(price).innerHTML = skus[skuIndex].price;
-            $("#skuId").val(skuId);
+            var checkSkuId = "#skuId" + index;
+            $(checkSkuId).val(skuId);
         }
     </script>
 </head>
@@ -54,6 +56,8 @@
     <input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
     <form:hidden path="productIds"/>
     <form:hidden path="promotionType"/>
+    <form:hidden path="promotionMode"/>
+    <form:hidden path="shopID"/>
     <form:hidden path="ids"/>
     <form:hidden path="delProductIds"/>
     <div class="ul-form">
@@ -84,13 +88,14 @@
         <c:forEach items="${page.list}" var="item" varStatus="state">
             <tr id="${item.productID}" class="itemtr">
                 <th>
-                    <input id="skuId" class="check-item" type="checkbox" name="info" value='${item.skuList[0].skuId}'/>
+                    <input id="skuId${state.index}" class="check-item" type="checkbox" name="info"
+                           value='${item.skuList[0].skuId}'/>
                 </th>
                 <td>${item.productID}</td>
                 <td><img src="${item.mainImage}" width="50px" height="50px"></td>
                 <td>${item.name}</td>
                 <td>
-                    <input id="hideSku" value='${fns:toJson(item.skuList)}' hidden>
+                    <input id="hideSku${state.index}" value='${fns:toJson(item.skuList)}' hidden>
                     <select id="ints${state.index}" onchange="checkSkuValue(${state.index});">
                         <c:forEach items="${item.skuList}" var="skus" varStatus="ind">
                             <option value="${skus.skuId}/${ind.index}">${skus.unit}</option>

+ 15 - 20
src/main/webapp/WEB-INF/views/modules/product-new/shopPromotionForm.jsp

@@ -229,27 +229,29 @@
 
         function deleteProduct(obj, type) {
             //将该行数据取消勾选,若存在数据库中则将其删除
-            var delProductIds = $("#delShopIds").val();
-            var delGiftIds = $("#delGiftIds").val();
             $(".check-item[value=" + obj + "]").prop("checked", false);
             if (3 === type) {
-                if (delShopIds != '') {
-                    delShopIds = delShopIds + "," + obj;
-                } else {
-                    delShopIds = obj;
-                }
-                $("#delProductIds").val(delProductIds);
-                var shop = $('#shop' + obj);
-                $(shop).remove();
                 var shopIds = '';
                 $('#contentTbody tr').each(function (index, item) {
                     var $this = $(this);
                     var $itemProductID = $this.find('input[name="info"]').val();
                     shopIds += $itemProductID + ',';
                 });
-                $("#shopIds").val(shopIds);
-                if ($('#contentTbody tr').size < 1) {
-                    $("#shopIds").val('');
+                $("#delShopIds").val(shopIds);
+                var shop = $('#shop' + obj);
+                $(shop).remove();
+                var showSelectProductID = '';
+                $('#contentTbody1 tr').each(function (index, item) {
+                    var $this = $(this);
+                    var $itemProductID = $this.find('input[name="gift"]').val();
+                    showSelectProductID += $itemProductID + ',';
+                });
+                $("#delGiftIds").val(showSelectProductID);
+                $("#shopIds").val('');
+                $("#giftIds").val('');
+                var tbody = document.getElementById("contentTbody1");
+                while (tbody.firstChild) {
+                    tbody.removeChild(tbody.firstChild);
                 }
             }
             if (2 === type) {
@@ -261,13 +263,6 @@
                 $("#delGiftIds").val(delGiftIds);
                 var gift = $('#gift' + obj);
                 $(gift).remove();
-                $('#contentTbody1 tr').each(function (index, item) {
-                    var $this = $(this);
-                    var $itemProductID = $this.find('input[name="gift"]').val();
-                    showSelectProductID += $itemProductID + ',';
-                });
-                $("#giftIds").val(showSelectProductID);
-                var showSelectProductID = '';
                 if ($('#contentTbody1 tr').size < 1) {
                     $("#giftIds").val('');
                 }

+ 16 - 15
src/main/webapp/WEB-INF/views/modules/product-new/singlePromotionForm.jsp

@@ -280,15 +280,23 @@
                 $("#delProductIds").val(delProductIds);
                 var product = $('#product' + obj);
                 $(product).remove();
-                var productIds = '';
-                $('#contentTbody tr').each(function (index, item) {
-                    var $this = $(this);
-                    var $itemProductID = $this.find('input[name="info"]').val();
-                    productIds += $itemProductID + ',';
-                });
-                $("#productIds").val(productIds);
-                if ($('#contentTbody tr').size < 1) {
+                if ($('#contentTbody tr').size() < 1) {
                     $("#productIds").val('');
+                    $("#giftIds").val('');
+                    window.setTimeout(function () {
+                        var mode = $("input[name='mode']:checked").val();
+                        var reducedPrice = $("#reducedPrice").val();
+                        var touchPrice2 = $("#touchPrice2").val();
+                        var touchPrice3 = $("#touchPrice3").val();
+                        var status = $("input[name='status']:checked").val();
+                        var beginTime = $("#beginTime").val();
+                        var endTime = $("#endTime").val();
+                        var delFlag1 = $("input[name='delFlag1']:checked").val();
+                        window.location.href = "${ctx}/product/cmPromotions/form?type=1&mode=" + mode +
+                            "&reducedPrice=" + reducedPrice + "&touchPrice2=" + touchPrice2 + "&touchPrice3=" + touchPrice3 +
+                            "&status=" + status + "&beginTime=" + beginTime + "&endTime=" + endTime + "&delFlag1=" + delFlag1 + "&id=${cmPromotion.id}" +
+                            "&searchDbFlag=0";
+                    }, 100)
                 }
             } else if (2 === type) {
                 if (delGiftIds != '') {
@@ -299,13 +307,6 @@
                 $("#delGiftIds").val(delGiftIds);
                 var gift = $('#gift' + obj);
                 $(gift).remove();
-                var showSelectProductID = '';
-                $('#contentTbody1 tr').each(function (index, item) {
-                    var $this = $(this);
-                    var $itemProductID = $this.find('input[name="gift"]').val();
-                    showSelectProductID += $itemProductID + ',';
-                });
-                $("#giftIds").val(showSelectProductID);
                 if ($('#contentTbody1 tr').size < 1) {
                     $("#giftIds").val('');
                 }