Bladeren bron

优惠券,满减活动逻辑修改,门店商品逻辑修改

hyq 5 jaren geleden
bovenliggende
commit
e7ffcd72a9

+ 10 - 0
kmall-admin/src/main/resources/mybatis/mapper/GoodsDao.xml

@@ -241,6 +241,16 @@
             store_id = #{storeId}
             )
         </if>
+        <if test="storeIdBySupplier != null and storeIdBySupplier != ''">
+            AND mall_goods.id NOT IN (
+            SELECT
+            goods_id
+            FROM
+            mall_product_store_rela pp
+            WHERE
+            store_id = #{storeIdBySupplier} and supplier_third_id = #{thirdMerchSn}
+            )
+        </if>
 
         <choose>
             <when test="sidx != null and sidx.trim() != ''">

+ 1 - 1
kmall-admin/src/main/webapp/WEB-INF/page/shop/storeProductStock.html

@@ -269,7 +269,7 @@
                     <i-option v-for="goods in goodss" :value="goods.id" :key="goods.id">{{goods.name}}({{goods.goodsBizType=='00'?'保税备货':''}}{{goods.goodsBizType=='02'?'保税展示补货':''}}{{goods.goodsBizType=='10'?'门店店提':''}}{{goods.goodsBizType=='11'?'普通货物':''}})</i-option>
                 </i-select>
             </Form-item>
-            <div v-show="isStockShare"><span style="margin-left: 80px;color: red;font-size: 12px;">* 该门店商品所选供应商第三方商户是共享库存,门店库存则为商户商品总库存,不需要编辑</span></div>
+            <div v-show="isSupplierStockShare"><span style="margin-left: 80px;color: red;font-size: 12px;">* 该门店商品所选供应商第三方商户是共享库存,门店库存则为商户商品总库存,不需要编辑</span></div>
             <Form-item label="库存" prop="stockNum" v-show="isSupplierStockShare"><!--共享-->
                 <Input-number :min="0" :step="1" v-model="productStoreRela.stockNum" placeholder="总库存"
                               style="width: 268px;" disabled/>

+ 12 - 3
kmall-admin/src/main/webapp/js/shop/storeProductStock.js

@@ -261,6 +261,7 @@ var vm = new Vue({
             vm.storeId = storeId;
             if(storeId){
                 $.get("../store/info/"+storeId, function (r) {
+                    vm.storeId = storeId;
                     vm.thirdPartyMerchCode =  r.store.thirdPartyMerchCode;
                 });
                 vm.categories = [];
@@ -271,9 +272,16 @@ var vm = new Vue({
         },
         getGoodsByThirdMerchSn: function (opt) {
             var thirdMerchSn = opt.value;
-            $.get("../goods/queryAll?thirdMerchSn=" +thirdMerchSn, function (r) {
-                vm.goodss = r.list;
-            });
+            if(vm.isOperator == 'add'){
+                $.get("../goods/queryAll?thirdMerchSn=" +thirdMerchSn+'&storeIdBySupplier='+vm.storeId, function (r) {
+                    vm.goodss = r.list;
+                });
+            }else{
+                var goodsId = vm.goodsId;
+                $.get("../goods/queryAll?thirdMerchSn="+thirdMerchSn+"&id="+goodsId, function (r) {
+                    vm.goodss = r.list;
+                });
+            }
         },
         add: function (event) {
             vm.stockNum = '';
@@ -283,6 +291,7 @@ var vm = new Vue({
             vm.title = "新增";
             vm.isOperator = 'add';
             vm.isOperatorShow = false;
+            vm.isStockShare = false;
             vm.freights = [];
             vm.brands = [];
             vm.categories = [];

+ 2 - 0
kmall-api/src/main/java/com/kmall/api/api/ApiFootprintController.java

@@ -65,6 +65,8 @@ public class ApiFootprintController extends ApiBaseAction {
         params.put("store_id", storeId);
         params.put("maxFoot", true);
         params.put("order", "desc");
+        params.put("bizType", true);
+        params.put("checkCart", "20");
         Query query = new Query(params);
         List<FootprintVo> footprintVos = footprintService.queryList(query);
         int total = footprintService.queryTotal(query);

+ 8 - 6
kmall-api/src/main/java/com/kmall/api/service/ApiUserCouponService.java

@@ -155,12 +155,14 @@ public class ApiUserCouponService {
                     }
                 }
             }
-            UserCouponVo userCouponVo = new UserCouponVo();
-            userCouponVo.setId(0L);
-            userCouponVo.setCouponName("不参与优惠券");
-            userCouponVo.setTypeMoney(Constant.ZERO);
-            userCouponVo.setGoodsBizType(userCouponDto.getBizType());
-            result.add(userCouponVo);
+            if(result != null && result.size() > 0) {
+                UserCouponVo userCouponVo = new UserCouponVo();
+                userCouponVo.setId(0L);
+                userCouponVo.setCouponName("不参与优惠券");
+                userCouponVo.setTypeMoney(Constant.ZERO);
+                userCouponVo.setGoodsBizType(userCouponDto.getBizType());
+                result.add(userCouponVo);
+            }
         }
         return result;
     }

+ 48 - 20
kmall-api/src/main/java/com/kmall/api/service/mk/ApiMkStoreCampMinusService.java

@@ -275,28 +275,56 @@ public class ApiMkStoreCampMinusService {
      */
     private void getResultByCheckPieceConf(MkStoreCampMinusVo minusVo,List<CartVo> cartVoList,
                                            Integer pieceConf, BigDecimal money, List<CampMinusDto> result,List<MkStoreCampMinusVo> switchList){
-        if(minusVo.getApplyType().equalsIgnoreCase(Dict.applyType.item_00.getItem())){//全部商品参与
-            //计算购物车中满足部分商品的销售价
-            BigDecimal totalByGoodsId = getTotalByGoodsId(cartVoList, minusVo);
-            //计算购物车中满足部分商品的件数
-            Integer pieceByGoodsId = getPieceByGoodsId(cartVoList, minusVo);
-            //购物车中件数>满减件,去重
-            if (pieceByGoodsId.compareTo(pieceConf) >= 0 && totalByGoodsId.compareTo(money) > 0 && containsList(switchList,minusVo)) {
-                CampMinusDto campMinusDto = setCampMinus(minusVo, money);
-                result.add(campMinusDto);
-                switchList.add(minusVo);
+        if(minusVo.getCampMinusType().equalsIgnoreCase(Dict.campMinusType.item_01.getItem())) {
+            if (minusVo.getApplyType().equalsIgnoreCase(Dict.applyType.item_00.getItem())) {//全部商品参与
+                //计算购物车中满足部分商品的销售价
+                BigDecimal totalByGoodsId = getTotalByGoodsId(cartVoList, minusVo);
+                //计算购物车中满足部分商品的件数
+                Integer pieceByGoodsId = getPieceByGoodsId(cartVoList, minusVo);
+                //购物车中件数>满减件,去重
+                if (pieceByGoodsId.compareTo(pieceConf) >= 0 && totalByGoodsId.compareTo(money) > 0 && containsList(switchList, minusVo)) {
+                    CampMinusDto campMinusDto = setCampMinus(minusVo, money);
+                    result.add(campMinusDto);
+                    switchList.add(minusVo);
+                }
+            }
+            if (!minusVo.getApplyType().equalsIgnoreCase(Dict.applyType.item_00.getItem())) {//部分商品参与
+                //计算购物车中满足部分商品的销售价
+                BigDecimal totalByGoodsId = getTotalByGoodsId(cartVoList, minusVo);
+                //计算购物车中满足部分商品的件数
+                Integer pieceByGoodsId = getPieceByGoodsId(cartVoList, minusVo);
+                //购物车中件数>满减件,去重
+                if (pieceByGoodsId.compareTo(pieceConf) >= 0 && totalByGoodsId.compareTo(money) > 0 && containsList(switchList, minusVo)) {
+                    CampMinusDto campMinusDto = setCampMinus(minusVo, money);
+                    result.add(campMinusDto);
+                    switchList.add(minusVo);
+                }
             }
         }
-        if(!minusVo.getApplyType().equalsIgnoreCase(Dict.applyType.item_00.getItem())) {//部分商品参与
-            //计算购物车中满足部分商品的销售价
-            BigDecimal totalByGoodsId = getTotalByGoodsId(cartVoList, minusVo);
-            //计算购物车中满足部分商品的件数
-            Integer pieceByGoodsId = getPieceByGoodsId(cartVoList, minusVo);
-            //购物车中件数>满减件,去重
-            if(pieceByGoodsId.compareTo(pieceConf) >= 0 && totalByGoodsId.compareTo(money) > 0 && containsList(switchList,minusVo)){
-                CampMinusDto campMinusDto = setCampMinus(minusVo, money);
-                result.add(campMinusDto);
-                switchList.add(minusVo);
+        if(minusVo.getCampMinusType().equalsIgnoreCase(Dict.campMinusType.item_11.getItem())){
+            if (minusVo.getApplyType().equalsIgnoreCase(Dict.applyType.item_00.getItem())) {//全部商品参与
+//                //计算购物车中满足部分商品的销售价
+//                BigDecimal totalByGoodsId = getTotalByGoodsId(cartVoList, minusVo);
+                //计算购物车中满足部分商品的件数
+                Integer pieceByGoodsId = getPieceByGoodsId(cartVoList, minusVo);
+                //购物车中件数>满减件,去重
+                if (pieceByGoodsId.compareTo(pieceConf) >= 0 && containsList(switchList, minusVo)) {
+                    CampMinusDto campMinusDto = setCampMinus(minusVo, money);
+                    result.add(campMinusDto);
+                    switchList.add(minusVo);
+                }
+            }
+            if (!minusVo.getApplyType().equalsIgnoreCase(Dict.applyType.item_00.getItem())) {//部分商品参与
+//                //计算购物车中满足部分商品的销售价
+//                BigDecimal totalByGoodsId = getTotalByGoodsId(cartVoList, minusVo);
+                //计算购物车中满足部分商品的件数
+                Integer pieceByGoodsId = getPieceByGoodsId(cartVoList, minusVo);
+                //购物车中件数>满减件,去重
+                if (pieceByGoodsId.compareTo(pieceConf) >= 0 && containsList(switchList, minusVo)) {
+                    CampMinusDto campMinusDto = setCampMinus(minusVo, money);
+                    result.add(campMinusDto);
+                    switchList.add(minusVo);
+                }
             }
         }
     }

+ 3 - 0
kmall-api/src/main/resources/mybatis/mapper/ApiFootprintMapper.xml

@@ -61,6 +61,9 @@
                 <if test="checkCart != null and checkCart == '11'">
                     and g.goods_biz_type = '11'
                 </if>
+                <if test="checkCart != null and checkCart == '20'">
+                    and g.goods_biz_type not in ('02','10')
+                </if>
             </if>
             <if test="store_id != null and store_id != ''">
                 and psr.store_id = #{store_id}