Pārlūkot izejas kodu

Merge branch 'master' of http://git.ds-bay.com/project/kmall-haikong

Scott 2 gadi atpakaļ
vecāks
revīzija
1015db91bb
19 mainītis faili ar 450 papildinājumiem un 215 dzēšanām
  1. 8 4
      kmall-admin/src/main/java/com/kmall/admin/controller/order/OrderController.java
  2. 3 5
      kmall-admin/src/main/java/com/kmall/admin/controller/vip/Mall2PointsRulesController.java
  3. 10 0
      kmall-admin/src/main/java/com/kmall/admin/dao/mk/MkActivitiesScoreDao.java
  4. 25 5
      kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsServiceImpl.java
  5. 176 137
      kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java
  6. 14 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/MkActivitiesScoreServiceImpl.java
  7. 34 16
      kmall-admin/src/main/java/com/kmall/admin/service/impl/vip/Mall2PointsRulesServiceImpl.java
  8. 10 0
      kmall-admin/src/main/java/com/kmall/admin/service/mk/MkActivitiesScoreService.java
  9. 12 1
      kmall-admin/src/main/resources/mybatis/mapper/mk/MkActivitiesScoreDao.xml
  10. 2 2
      kmall-admin/src/main/resources/mybatis/mapper/vip/Mall2PointsRulesDao.xml
  11. 2 2
      kmall-admin/src/main/webapp/WEB-INF/page/mk/mall2RulesDetil.html
  12. 66 23
      kmall-admin/src/main/webapp/WEB-INF/page/sale/sale.html
  13. 4 1
      kmall-admin/src/main/webapp/WEB-INF/page/shop/offilineOrderList.html
  14. 11 3
      kmall-admin/src/main/webapp/js/mk/mkactivitiesscore.js
  15. 21 5
      kmall-admin/src/main/webapp/js/sale/sale.js
  16. 12 2
      kmall-admin/src/main/webapp/js/shop/offilineOrderList.js
  17. 2 2
      kmall-admin/src/main/webapp/js/vip/mall2pointsrules.js
  18. 31 0
      kmall-common/src/main/java/com/kmall/common/utils/DateUtils.java
  19. 7 7
      kmall-manager/src/main/resources/conf/haikong.properties

+ 8 - 4
kmall-admin/src/main/java/com/kmall/admin/controller/order/OrderController.java

@@ -615,8 +615,10 @@ public class OrderController {
             BigDecimal allDiscountedPrice = new BigDecimal(0);
             for (OrderGoodsEntity orderGoodsEntity : goodsList) {
                 GoodsEntity goodsEntity = goodsService.queryObject(orderGoodsEntity.getGoodsId());
-                BigDecimal goodsTax = CalculateTax.calculateFinalTax(goodsEntity,orderGoodsEntity.getMarketPrice(),goodsService).setScale(3,RoundingMode.HALF_UP);
-                goodsTax = goodsTax.multiply(new BigDecimal(orderGoodsEntity.getNumber())).setScale(2,RoundingMode.HALF_UP);
+                // 计算算税金额 实际支付价 + 积分抵扣金额
+                BigDecimal price = orderGoodsEntity.getDeductionPrice().add(orderGoodsEntity.getActualPaymentAmount());
+                BigDecimal goodsTax = CalculateTax.calculateFinalTax(goodsEntity,price,goodsService).setScale(3,RoundingMode.HALF_UP);
+                // goodsTax = goodsTax.multiply(new BigDecimal(orderGoodsEntity.getNumber())).setScale(2,RoundingMode.HALF_UP);
                 orderGoodsEntity.setTax(goodsTax);
                 tax = tax.add(goodsTax).setScale(2,RoundingMode.HALF_UP);
 //                BigDecimal goodsTax = orderGoodsEntity.getMarketPrice().divide(new BigDecimal(1).add(orderGoodsEntity.getGoodsRate()),2,RoundingMode.HALF_DOWN).multiply(orderGoodsEntity.getGoodsRate())
@@ -671,8 +673,10 @@ public class OrderController {
         BigDecimal allDiscountedPrice = new BigDecimal(0);
         for (OrderGoodsEntity orderGoodsEntity : goodsList) {
             GoodsEntity goodsEntity = goodsService.queryObject(orderGoodsEntity.getGoodsId());
-            BigDecimal goodsTax = CalculateTax.calculateFinalTax(goodsEntity,orderGoodsEntity.getMarketPrice(),goodsService).setScale(3,RoundingMode.HALF_UP);
-            goodsTax = goodsTax.multiply(new BigDecimal(orderGoodsEntity.getNumber())).setScale(2,RoundingMode.HALF_UP);
+            // 计算算税金额 实际支付价 + 积分抵扣金额
+            BigDecimal price = orderGoodsEntity.getDeductionPrice().add(orderGoodsEntity.getActualPaymentAmount());
+            BigDecimal goodsTax = CalculateTax.calculateFinalTax(goodsEntity,price,goodsService).setScale(3,RoundingMode.HALF_UP);
+            // goodsTax = goodsTax.multiply(new BigDecimal(orderGoodsEntity.getNumber())).setScale(2,RoundingMode.HALF_UP);
             orderGoodsEntity.setTax(goodsTax);
             tax = tax.add(goodsTax).setScale(2,RoundingMode.HALF_UP);
             // 计算其他优惠 = 总优惠减去积分抵扣优惠

+ 3 - 5
kmall-admin/src/main/java/com/kmall/admin/controller/vip/Mall2PointsRulesController.java

@@ -1,9 +1,6 @@
 package com.kmall.admin.controller.vip;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import com.kmall.admin.dto.Mall2RulesDto;
 import com.kmall.admin.entity.vip.Mall2DetilEntity;
@@ -150,7 +147,8 @@ public class Mall2PointsRulesController {
     public R detilList(@RequestParam Map<String, Object> params) {
         //查询列表数据
         Query query = new Query(params);
-
+        query.put("pointsDetilName", Objects.isNull(query.get("pointsDetilName")) ? null:query.get("pointsDetilName").toString().trim()) ;
+        query.put("pointsDetilNameId",Objects.isNull(query.get("pointsDetilNameId")) ? null:query.get("pointsDetilNameId").toString().trim());
         List<Mall2RulesDto> mall2PointsRulesList = mall2PointsRulesService.queryDetilList(query);
         int total = mall2PointsRulesService.querymall2PointsRulesDetilTotal(query);
         PageUtils pageUtil = new PageUtils(mall2PointsRulesList, total, query.getLimit(), query.getPage());

+ 10 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/mk/MkActivitiesScoreDao.java

@@ -1,6 +1,7 @@
 package com.kmall.admin.dao.mk;
 
 
+import com.kmall.admin.entity.mk.MkActivitiesPresentIntegralEntity;
 import com.kmall.admin.entity.mk.MkActivitiesScoreEntity;
 import com.kmall.manager.dao.BaseDao;
 import org.apache.ibatis.annotations.Param;
@@ -30,4 +31,13 @@ public interface MkActivitiesScoreDao extends BaseDao<MkActivitiesScoreEntity> {
     List<MkActivitiesScoreEntity> queryActivityInfoByMkaIdList(List<Long> mkaIdList);
 
     void deleteBatchByMkaId(@Param("mkaId") int mkaId);
+
+    /**
+     * 根据门店id和当前时间和活动类型查询有那些sku参加了积分抵扣活动
+     * @param storeId
+     * @param currentTime
+     * @param mkaTopic
+     * @return
+     */
+    List<MkActivitiesScoreEntity> querySkuByNow(@Param("storeId") String storeId, @Param("currentTime")String currentTime, @Param("mkaTopic")String mkaTopic);
 }

+ 25 - 5
kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsServiceImpl.java

@@ -1594,7 +1594,11 @@ public class GoodsServiceImpl implements GoodsService {
 
         // 计算税费
         GoodsEntity goodsEntity = goodsDao.queryByBarcodeAndSku(prodBarcode, goods.getGoodsSn());
-        BigDecimal tax = CalculateTax.calculateFinalTax(goodsEntity, goods.getActualPaymentAmount(),this).setScale(3,RoundingMode.HALF_UP);
+        // 计算算税金额 实际支付价 + 积分抵扣金额
+        BigDecimal deductionPrice = Objects.isNull(goods.getDeductionPrice()) ? new BigDecimal("0") : goods.getDeductionPrice();
+        BigDecimal actualPaymentAmount = Objects.isNull(goods.getActualPaymentAmount()) ? new BigDecimal("0") : goods.getActualPaymentAmount();
+        BigDecimal price = deductionPrice.add(actualPaymentAmount);
+        BigDecimal tax = CalculateTax.calculateFinalTax(goodsEntity, price,this).setScale(3,RoundingMode.HALF_UP);
         goods.setGoodstaxes(tax.toString());
         goods.setSellVolume(1);
 
@@ -1712,7 +1716,11 @@ public class GoodsServiceImpl implements GoodsService {
         Map<String,Object> skuActivitiesMap = new HashMap<>();
         // 计算税费
         GoodsEntity goodsEntity = goodsDao.queryByBarcodeAndSku(prodBarcode, goods.getGoodsSn());
-        BigDecimal tax = CalculateTax.calculateFinalTax(goodsEntity,goods.getActualPaymentAmount(),this).setScale(3,RoundingMode.HALF_UP);
+        // 计算算税金额 实际支付价 + 积分抵扣金额
+        BigDecimal deductionPrice = Objects.isNull(goods.getDeductionPrice()) ? new BigDecimal("0") : goods.getDeductionPrice();
+        BigDecimal actualPaymentAmount = Objects.isNull(goods.getActualPaymentAmount()) ? new BigDecimal("0") : goods.getActualPaymentAmount();
+        BigDecimal price = deductionPrice.add(actualPaymentAmount);
+        BigDecimal tax = CalculateTax.calculateFinalTax(goodsEntity,price,this).setScale(3,RoundingMode.HALF_UP);
         goods.setGoodstaxes(tax.toString());
 
 
@@ -2019,7 +2027,11 @@ public class GoodsServiceImpl implements GoodsService {
         goods.setRetailPrice(promotionEntity.getActivityPrice());
         goods.setActivity("临时促销");
         try {
-            CalculateTax.calculateFinalTax(goods,goods.getActualPaymentAmount(),this).setScale(3,RoundingMode.HALF_UP);
+            // 计算算税金额 实际支付价 + 积分抵扣金额
+            BigDecimal deductionPrice = Objects.isNull(goods.getDeductionPrice()) ? new BigDecimal("0") : goods.getDeductionPrice();
+            BigDecimal actualPaymentAmount = Objects.isNull(goods.getActualPaymentAmount()) ? new BigDecimal("0") : goods.getActualPaymentAmount();
+            BigDecimal price = deductionPrice.add(actualPaymentAmount);
+            CalculateTax.calculateFinalTax(goods,price,this).setScale(3,RoundingMode.HALF_UP);
         } catch (Exception e) {
             ShopErrorPriceRecordEntity shopErrorPriceRecordEntity = new ShopErrorPriceRecordEntity();
             shopErrorPriceRecordEntity.setMerchSn(goods.getMerchSn());
@@ -2068,7 +2080,11 @@ public class GoodsServiceImpl implements GoodsService {
         goods.setActivity("日常活动");
         // 计算税费
         try {
-            CalculateTax.calculateFinalTax(goods,goods.getActualPaymentAmount(),this).setScale(3,RoundingMode.HALF_UP);
+            // 计算算税金额 实际支付价 + 积分抵扣金额
+            BigDecimal deductionPrice = Objects.isNull(goods.getDeductionPrice()) ? new BigDecimal("0") : goods.getDeductionPrice();
+            BigDecimal actualPaymentAmount = Objects.isNull(goods.getActualPaymentAmount()) ? new BigDecimal("0") : goods.getActualPaymentAmount();
+            BigDecimal price = deductionPrice.add(actualPaymentAmount);
+            CalculateTax.calculateFinalTax(goods,price,this).setScale(3,RoundingMode.HALF_UP);
         } catch (Exception e) {
             // 记录有异常的sku
             ShopErrorPriceRecordEntity shopErrorPriceRecordEntity = new ShopErrorPriceRecordEntity();
@@ -2106,7 +2122,11 @@ public class GoodsServiceImpl implements GoodsService {
 
         // 计算税费
         try {
-            CalculateTax.calculateFinalTax(goods,goods.getActualPaymentAmount(),this).setScale(3,RoundingMode.HALF_UP);
+            // 计算算税金额 实际支付价 + 积分抵扣金额
+            BigDecimal deductionPrice = Objects.isNull(goods.getDeductionPrice()) ? new BigDecimal("0") : goods.getDeductionPrice();
+            BigDecimal actualPaymentAmount = Objects.isNull(goods.getActualPaymentAmount()) ? new BigDecimal("0") : goods.getActualPaymentAmount();
+            BigDecimal price = deductionPrice.add(actualPaymentAmount);
+            CalculateTax.calculateFinalTax(goods,price,this).setScale(3,RoundingMode.HALF_UP);
         } catch (Exception e) {
             // 记录有异常的sku
             ShopErrorPriceRecordEntity shopErrorPriceRecordEntity = new ShopErrorPriceRecordEntity();

+ 176 - 137
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -562,8 +562,10 @@ public class OrderServiceImpl implements OrderService {
 
 
             GoodsEntity goodsEntity = goodsService.queryObject(orderGoods.getGoodsId());
-            BigDecimal goodsTax = CalculateTax.calculateFinalTax(goodsEntity, orderGoods.getRetailPrice(), goodsService).setScale(3, RoundingMode.HALF_UP);
-            goodsTax = goodsTax.multiply(new BigDecimal(orderGoods.getNumber())).setScale(2, RoundingMode.HALF_UP);
+            // 计算算税金额 实际支付价 + 积分抵扣金额
+            BigDecimal price = orderGoods.getDeductionPrice().add(orderGoods.getActualPaymentAmount());
+            BigDecimal goodsTax = CalculateTax.calculateFinalTax(goodsEntity, price, goodsService).setScale(3, RoundingMode.HALF_UP);
+            //goodsTax = goodsTax.multiply(new BigDecimal(orderGoods.getNumber())).setScale(2, RoundingMode.HALF_UP);
             taxTotal = taxTotal.add(goodsTax).setScale(2, RoundingMode.HALF_UP);
 
             Goods goods = new Goods(orderGoods.getGoodsName(),
@@ -574,7 +576,7 @@ public class OrderServiceImpl implements OrderService {
                     new BigDecimal(orderGoods.getNumber()).multiply(orderGoods.getRetailPrice()).setScale(2, RoundingMode.HALF_UP).toString(),
                     orderGoods.getDiscountedPrice().toString(),
                     orderGoods.getRetailPrice().subtract(orderGoods.getDiscountedPrice()).setScale(2, RoundingMode.HALF_UP).toString()
-                    );
+            );
             goodsList.add(goods);
         }
 
@@ -1059,7 +1061,7 @@ public class OrderServiceImpl implements OrderService {
      * @param user
      */
     private void resetGoodsStockHkMall(OrderEntity order,Integer stockNum, ProductStoreRelaEntity storeRelaEntity,
-                                 OrderGoodsEntity orderGoodsEntity,SysUserEntity user) {
+                                       OrderGoodsEntity orderGoodsEntity,SysUserEntity user) {
         GoodsEntity goodsEntity = goodsDao.queryObject(storeRelaEntity.getGoodsId());
         if (goodsEntity != null) {
             //商品数量 + 待退款数量
@@ -1141,7 +1143,7 @@ public class OrderServiceImpl implements OrderService {
      * @param user
      */
     private void resetStoreGoodsStockMall(OrderEntity order,Integer stockNum, ProductStoreRelaEntity storeRelaEntity,
-                                      OrderGoodsEntity orderGoodsEntity, BigDecimal sellVolume,SysUserEntity user) {
+                                          OrderGoodsEntity orderGoodsEntity, BigDecimal sellVolume,SysUserEntity user) {
         storeRelaEntity.setSellVolume(Integer.parseInt(sellVolume.toString())); // 减退库存
         //库存数量 + 商品数量
         storeRelaEntity.setStockNum(stockNum + orderGoodsEntity.getNumber());//库存数量
@@ -2645,6 +2647,8 @@ public class OrderServiceImpl implements OrderService {
                  * 根据门店id 和时间查询积分赠送规则
                  */
                 List<PointsRulesAndDetailVO> pointsRulesAndDetailVOList= mall2PointsRulesService.queryListByTime(new Date(), store.getId().toString());
+                // 将此商品列表信息分组  key:sku 值:购买数量
+                Map<String, Integer> queryGoodsVOListMap = queryGoodsVOList.stream().collect(Collectors.toMap(QueryGoodsVO::getSku, QueryGoodsVO::getSellVolume, (k1, k2) -> k2));
 
                 // 商品map,key===>sku value===>金额
                 Map<String, BigDecimal> goodsMap = goodsEntities.stream().collect(Collectors.toMap(GoodsEntity::getSku, GoodsEntity::getActualPaymentAmount, (k1, k2) -> k2));
@@ -2652,14 +2656,30 @@ public class OrderServiceImpl implements OrderService {
                 Map<String, GoodsEntity> goodsDataMap = goodsEntities.stream().collect(Collectors.toMap(GoodsEntity::getSku, goodsEntity -> goodsEntity, (k1, k2) -> k2));
                 // 根据门店、时间和活动类型 查询参加积分赠送活动的sku,转换为map
                 //  ,sku为key,对象为值,判断sku是否在此之中,在则计算赠送积分算完
-                List<MkActivitiesPresentIntegralEntity> mkActivitiesEntityList = mkActivitiesPresentIntegralService.querySkuByNow(store.getId().toString(), DateUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"), Constants.ActivityTopicEnum.ZSJF.getTopicCode());
-                Map<String, MkActivitiesPresentIntegralEntity> mkActivitiesEntityMap = new HashMap<>();
+                List<MkActivitiesPresentIntegralEntity> mkActivitiesEntityList = mkActivitiesPresentIntegralService.querySkuByNow(store.getId().toString(), DateUtils.format(new Date()
+                        , "yyyy-MM-dd HH:mm:ss")
+                        , Constants.ActivityTopicEnum.ZSJF.getTopicCode());
+                // ZSJF活动
+                Map<String, MkActivitiesPresentIntegralEntity> zsjfActivitiesEntityMap = new HashMap<>();
+
                 if(!CollectionUtils.isEmpty(mkActivitiesEntityList) && mkActivitiesEntityList.size() > 0){
                     // 不为空 则处理
-                    mkActivitiesEntityMap = mkActivitiesEntityList.stream()
+                    zsjfActivitiesEntityMap = mkActivitiesEntityList.stream()
                             .collect(Collectors.toMap(MkActivitiesPresentIntegralEntity::getSku
                                     , mkActivitiesPresentIntegralEntity -> mkActivitiesPresentIntegralEntity, (k1, k2) -> k2));
                 }
+                // JFDK活动
+                Map<String, MkActivitiesScoreEntity> jfdkActivitiesEntityMap = new HashMap<>();
+                // 查询积分抵扣活动  用于判断是否与赠送积分活动互斥
+                List<MkActivitiesScoreEntity> jfdkActivitiesEntityList = mkActivitiesScoreService.querySkuByNow(store.getId().toString(), DateUtils.format(new Date()
+                        , "yyyy-MM-dd HH:mm:ss")
+                        , Constants.ActivityTopicEnum.JFDK.getTopicCode());
+                if(!CollectionUtils.isEmpty(jfdkActivitiesEntityList) && jfdkActivitiesEntityList.size() > 0){
+                    // 不为空 则处理
+                    jfdkActivitiesEntityMap = jfdkActivitiesEntityList.stream()
+                            .collect(Collectors.toMap(MkActivitiesScoreEntity::getSku
+                                    , mkActivitiesScoreEntity -> mkActivitiesScoreEntity, (k1, k2) -> k2));
+                }
 
                 // 订单全部的sku
                 Set<String> goodsSkuList = goodsMap.keySet();
@@ -2677,6 +2697,7 @@ public class OrderServiceImpl implements OrderService {
                             // 商品积分生成规则包含这个sku
                             // 订单中该sku的总金额
                             BigDecimal money = goodsMap.get(pointsDetailNameId);
+                            Integer number = queryGoodsVOListMap.get(pointsDetailNameId);
                             OrderGiftScoreRulesVo orderGiftScoreRulesVo = new OrderGiftScoreRulesVo();
                             orderGiftScoreRulesVo.setGenerateType(Constants.MemberScoreRulesEnum.TWO.getCode());
                             BigDecimal bigDecimal = new BigDecimal(0);
@@ -2695,7 +2716,7 @@ public class OrderServiceImpl implements OrderService {
                             }
                             // 在这里计算赠送积分,并放入
                             // 判断此sku是否参加活动 并计算活动积分
-                            getGiftScore(activityGiftScore, bigDecimal, mkActivitiesEntityMap, pointsDetailNameId, orderGiftScoreRulesVo);
+                            getGiftScore(activityGiftScore, bigDecimal, zsjfActivitiesEntityMap, jfdkActivitiesEntityMap, pointsDetailNameId, orderGiftScoreRulesVo,number);
                             giftGoodsScoreDetailMap.put(pointsDetailNameId, orderGiftScoreRulesVo);
                             goodsDataMap.remove(pointsDetailNameId);
                         }
@@ -2708,6 +2729,7 @@ public class OrderServiceImpl implements OrderService {
                             // 商品类别
                             Integer categoryId = goodsEntity.getCategoryId();
                             String sku = goodsEntity.getSku();
+                            Integer number = queryGoodsVOListMap.get(sku);
                             OrderGiftScoreRulesVo orderGiftScoreRulesVo = new OrderGiftScoreRulesVo();
                             orderGiftScoreRulesVo.setGenerateType(Constants.MemberScoreRulesEnum.ONE.getCode());
                             if (categorySet.contains(categoryId)) {
@@ -2729,7 +2751,7 @@ public class OrderServiceImpl implements OrderService {
                                         orderGiftScoreRulesVo.setGenerateRatio(BigDecimal.ZERO);
                                     }
                                     // 判断此sku是否参加活动 并计算活动积分
-                                    getGiftScore(activityGiftScore, bigDecimal, mkActivitiesEntityMap, sku, orderGiftScoreRulesVo);
+                                    getGiftScore(activityGiftScore, bigDecimal, zsjfActivitiesEntityMap, jfdkActivitiesEntityMap, sku, orderGiftScoreRulesVo, number);
                                     giftGoodsScoreDetailMap.put(sku, orderGiftScoreRulesVo);
                                     goodsDataMap.remove(sku);
                                 }
@@ -2743,6 +2765,7 @@ public class OrderServiceImpl implements OrderService {
                         for(GoodsEntity goodsEntity : goodsEntityCollection){
                             Integer storeId1 = goodsEntity.getStoreId();
                             String sku = goodsEntity.getSku();
+                            Integer number = queryGoodsVOListMap.get(sku);
                             OrderGiftScoreRulesVo orderGiftScoreRulesVo = new OrderGiftScoreRulesVo();
                             orderGiftScoreRulesVo.setGenerateType(Constants.MemberScoreRulesEnum.ZERO.getCode());
                             BigDecimal bigDecimal = new BigDecimal(0);
@@ -2765,7 +2788,7 @@ public class OrderServiceImpl implements OrderService {
                             }
 
                             // 判断此sku是否参加活动 并计算活动积分
-                            getGiftScore(activityGiftScore, bigDecimal, mkActivitiesEntityMap, sku, orderGiftScoreRulesVo);
+                            getGiftScore(activityGiftScore, bigDecimal, zsjfActivitiesEntityMap, jfdkActivitiesEntityMap, sku, orderGiftScoreRulesVo,number);
                             giftGoodsScoreDetailMap.put(sku, orderGiftScoreRulesVo);
                         }
 
@@ -2816,14 +2839,14 @@ public class OrderServiceImpl implements OrderService {
             Integer beforeScoreInteger = (Integer) param.get("beforeScore");
             Integer afterScoreStrInteger = (Integer) param.get("afterScore");
             int deductionScore = org.springframework.util.StringUtils.isEmpty((String) param.get("deductionScore")) ? 0 : Integer.parseInt((String) param.get("deductionScore"));
-            String memberPhone = String.valueOf(param.get("memberPhone"));
+            String consigneePhone = String.valueOf(param.get("consigneePhone"));
             BigDecimal scoreDeductionPrice = new BigDecimal(org.springframework.util.StringUtils.isEmpty(param.get("scoreDeductionPrice").toString()) ? "0" : param.get("scoreDeductionPrice").toString());
             consumptionRecords.setBeforeScore(beforeScoreInteger);
             consumptionRecords.setAfterScore(afterScoreStrInteger);
             consumptionRecords.setOrderTotalPrice(order.getActual_price());
             consumptionRecords.setScoreDeductionPrice(scoreDeductionPrice);
             consumptionRecords.setMemberCode(memberCode);
-            consumptionRecords.setMemberPhone(memberPhone);
+            consumptionRecords.setMemberPhone(consigneePhone);
             consumptionRecords.setOrderGiftScore(memberScore.get());
             consumptionRecords.setActivityGiftScore(activityGiftScore.get());
             consumptionRecords.setDeductionScore(deductionScore);
@@ -2833,7 +2856,7 @@ public class OrderServiceImpl implements OrderService {
 
             if (!org.springframework.util.StringUtils.isEmpty(memberCode)) {
                 // 同步会员订单消费记录
-                syncMemberConsumeRecord(memberPhone, order, deductionScore);
+                syncMemberConsumeRecord(consigneePhone, order, deductionScore);
                 if (deductionScore > 0) {
                     // 积分变动接口,下单扣减
                     syncMemberScoreChangeRecord(openId, order, deductionScore,null, "下单扣减", queryGoodsVOList, giftGoodsScoreDetailMap, HaiKongMemberScoreChangeEventEnum.SUBTRACT.getEvent());
@@ -2888,18 +2911,32 @@ public class OrderServiceImpl implements OrderService {
      * 计算sku实际赠送积分 和 订单总赠送积分
      * @param activityGiftScore
      * @param baseScore
-     * @param mkActivitiesEntityMap
+     * @param zsjfActivitiesEntityMap
+     * @param jfdkActivitiesEntityMap
      * @param sku
      */
     private void getGiftScore(AtomicReference<Integer> activityGiftScore, BigDecimal baseScore
-            , Map<String, MkActivitiesPresentIntegralEntity> mkActivitiesEntityMap, String sku, OrderGiftScoreRulesVo orderGiftScoreRulesVo) {
-        if(mkActivitiesEntityMap.containsKey(sku)){
+            , Map<String, MkActivitiesPresentIntegralEntity> zsjfActivitiesEntityMap , Map<String, MkActivitiesScoreEntity> jfdkActivitiesEntityMap, String sku, OrderGiftScoreRulesVo orderGiftScoreRulesVo,Integer number) {
+        if(zsjfActivitiesEntityMap.containsKey(sku)){
+
             // 存在表示它参加赠送积分活动
-            MkActivitiesPresentIntegralEntity mkActivitiesPresentIntegralEntity = mkActivitiesEntityMap.get(sku);
+            MkActivitiesPresentIntegralEntity mkActivitiesPresentIntegralEntity = zsjfActivitiesEntityMap.get(sku);
+
+            // 首先判断是否与积分抵扣互斥
+            // 如果互斥 判断是否参与积分抵扣活动 若参与则不赠送积分
+            if(Constants.PromotionActivityRejectEnum.REJECT.getCode()
+                    .equals(mkActivitiesPresentIntegralEntity.getRejectScore())){
+                // 设置为互斥 则要查询这个sku是否有参与积分抵扣活动  如果有 则直接返回不赠送积分 如果没有
+                MkActivitiesScoreEntity jfdkActivities = jfdkActivitiesEntityMap.get(sku);
+                if(!Objects.isNull(jfdkActivities)){
+                    // 不为空表示参与了积分抵扣 又互斥 则不进行积分赠送
+                    return;
+                }
+            }
             // 计算活动积分
             if(ActivityGiveTypeEnum.FIXED_VALUE.getCode().equals(mkActivitiesPresentIntegralEntity.getActivityGiveType())){
                 // 固定值  那赠送积分就是固定值
-                BigDecimal giftScoreTmp = mkActivitiesPresentIntegralEntity.getActivityGiveNum();
+                BigDecimal giftScoreTmp = mkActivitiesPresentIntegralEntity.getActivityGiveNum().multiply(new BigDecimal(number));
                 // 此sku赠送的积分加上之前赠送的积分 算出来订单赠送总分
                 int giftScore = giftScoreTmp.add(new BigDecimal(activityGiftScore.get())).intValue();
                 activityGiftScore.set(giftScore);
@@ -3683,7 +3720,7 @@ public class OrderServiceImpl implements OrderService {
 //        CountDownLatch cdl = new CountDownLatch(1);
 //        service.submit(()-> {
 //            try {
-                orderDao.updateOrderRefunding(order.getId());
+        orderDao.updateOrderRefunding(order.getId());
 //            } finally {
 //                cdl.countDown();
 //            }
@@ -3834,7 +3871,7 @@ public class OrderServiceImpl implements OrderService {
     private void vipIntegralGoBack(OrderEntity order) throws Exception{
         List<IntegralGoBackEntity> changeRecordEntityList = haiKongMemberScoreChangeRecordService.queryIntegralGoBack(order.getOrderSn());
         for(IntegralGoBackEntity integralGoBackEntity:changeRecordEntityList) {
-           String integralGoBackEntityMsg = JSON.toJSONString(integralGoBackEntity);
+            String integralGoBackEntityMsg = JSON.toJSONString(integralGoBackEntity);
             String responseMsg = haiKongMemberTemplate.rollbackMemberScore(integralGoBackEntityMsg);
             Map<String, Object> res = JSON.parseObject(responseMsg, Map.class);
             LOGGER.info("=======> [vipIntegralGoBack-----调用会员系统积分全量回退接口数据]" + responseMsg);
@@ -4309,86 +4346,86 @@ public class OrderServiceImpl implements OrderService {
 
     @Override
     public Ticket printMsgEwb(long id, String sessionId) {
-            OrderEntity orderEntity = queryInfos(id);
-
-            List<OrderGoodsEntity> orderGoodsEntityList = orderEntity.getOrderGoodsEntityList();
-            // 获取门店
-            StoreEntity storeEntity = storeDao.queryObject(orderEntity.getStoreId());
-            // 获取清关信息
-            OrderProcessRecordEntity orderProcessRecordEntity =
-                    orderProcessRecordDao.queryObjectByOrderSn(orderEntity.getOrderSn());
-
-            // 小票头
-            TicketHead head = new TicketHead();
-            head.setTitle(storeEntity.getStoreName());
-            //门店地址
-            head.setStoreAddress(storeEntity.getStoreAddress());
-            //        head.setMemberId(orderEntity.getUserName().toString());
-            head.setOrderId(orderEntity.getOrderSn());
-            head.setTradeTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EEE").format(orderEntity.getPayTime()));
-
-            // 商品信息
-            Integer goodsTotal = 0; // 商品总个数
-            BigDecimal total = Constant.ZERO; // 商品总计
-            BigDecimal taxTotal = Constant.ZERO; //税费总计
-            List<Goods> goodsList = new ArrayList<>();
-            BigDecimal discountedPrice = Constant.ZERO; // 优惠金额
-            for (OrderGoodsEntity orderGoods : orderGoodsEntityList) {
-                goodsTotal += orderGoods.getNumber();
-                total = total.add(orderGoods.getRetailPrice().multiply(new BigDecimal(orderGoods.getNumber())))
-                        .setScale(2, BigDecimal.ROUND_HALF_UP);
-                discountedPrice = discountedPrice.add(orderGoods.getDiscountedPrice());
-
-                GoodsEntity goodsEntity = goodsService.queryObject(orderGoods.getGoodsId());
-                BigDecimal goodsTax = CalculateTax.calculateFinalTax(goodsEntity, orderGoods.getRetailPrice(), goodsService).setScale(3, RoundingMode.HALF_UP);
-                goodsTax = goodsTax.multiply(new BigDecimal(orderGoods.getNumber())).setScale(2, RoundingMode.HALF_UP);
-                taxTotal = taxTotal.add(goodsTax).setScale(2, RoundingMode.HALF_UP);
-
-                Goods goods = new Goods(orderGoods.getGoodsName(),
-                        orderGoods.getRetailPrice().toString(), // 含税价
+        OrderEntity orderEntity = queryInfos(id);
+
+        List<OrderGoodsEntity> orderGoodsEntityList = orderEntity.getOrderGoodsEntityList();
+        // 获取门店
+        StoreEntity storeEntity = storeDao.queryObject(orderEntity.getStoreId());
+        // 获取清关信息
+        OrderProcessRecordEntity orderProcessRecordEntity =
+                orderProcessRecordDao.queryObjectByOrderSn(orderEntity.getOrderSn());
+
+        // 小票头
+        TicketHead head = new TicketHead();
+        head.setTitle(storeEntity.getStoreName());
+        //门店地址
+        head.setStoreAddress(storeEntity.getStoreAddress());
+        //        head.setMemberId(orderEntity.getUserName().toString());
+        head.setOrderId(orderEntity.getOrderSn());
+        head.setTradeTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EEE").format(orderEntity.getPayTime()));
+
+        // 商品信息
+        Integer goodsTotal = 0; // 商品总个数
+        BigDecimal total = Constant.ZERO; // 商品总计
+        BigDecimal taxTotal = Constant.ZERO; //税费总计
+        List<Goods> goodsList = new ArrayList<>();
+        BigDecimal discountedPrice = Constant.ZERO; // 优惠金额
+        for (OrderGoodsEntity orderGoods : orderGoodsEntityList) {
+            goodsTotal += orderGoods.getNumber();
+            total = total.add(orderGoods.getRetailPrice().multiply(new BigDecimal(orderGoods.getNumber())))
+                    .setScale(2, BigDecimal.ROUND_HALF_UP);
+            discountedPrice = discountedPrice.add(orderGoods.getDiscountedPrice());
+
+            GoodsEntity goodsEntity = goodsService.queryObject(orderGoods.getGoodsId());
+            BigDecimal goodsTax = CalculateTax.calculateFinalTax(goodsEntity, orderGoods.getRetailPrice(), goodsService).setScale(3, RoundingMode.HALF_UP);
+            goodsTax = goodsTax.multiply(new BigDecimal(orderGoods.getNumber())).setScale(2, RoundingMode.HALF_UP);
+            taxTotal = taxTotal.add(goodsTax).setScale(2, RoundingMode.HALF_UP);
+
+            Goods goods = new Goods(orderGoods.getGoodsName(),
+                    orderGoods.getRetailPrice().toString(), // 含税价
 //                    beforeTaxPrice.toString(),// 税前价
-                        goodsTax.toString(),
-                        orderGoods.getNumber().toString(),
-                        new BigDecimal(orderGoods.getNumber()).multiply(orderGoods.getRetailPrice()).setScale(2, RoundingMode.HALF_UP).toString(),
-                        orderGoods.getDiscountedPrice().toString());
-                goodsList.add(goods);
-            }
+                    goodsTax.toString(),
+                    orderGoods.getNumber().toString(),
+                    new BigDecimal(orderGoods.getNumber()).multiply(orderGoods.getRetailPrice()).setScale(2, RoundingMode.HALF_UP).toString(),
+                    orderGoods.getDiscountedPrice().toString());
+            goodsList.add(goods);
+        }
 
-            // 收银信息
-            CashInfo cashInfo = new CashInfo();
-            cashInfo.setGoodsTotal(goodsTotal.toString());
-            cashInfo.setTotal(total.setScale(2, BigDecimal.ROUND_HALF_UP).toString());
-            cashInfo.setTaxTotal(taxTotal.setScale(2, BigDecimal.ROUND_HALF_UP).toString());
-            cashInfo.setReceipts(orderEntity.getActualPrice().setScale(2, BigDecimal.ROUND_HALF_UP).toString());
-            cashInfo.setOddChange(discountedPrice.toString());
-            cashInfo.setCoupon(orderEntity.getCouponPrice().setScale(2, BigDecimal.ROUND_HALF_UP).toString());
-            cashInfo.setFreight(
-                    new BigDecimal(orderEntity.getFreightPrice()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
-            if ("alipay".equals(orderEntity.getPayFlag())) {
-                cashInfo.setPaymentMode("支付宝支付");
-            } else {
-                cashInfo.setPaymentMode("微信支付");
+        // 收银信息
+        CashInfo cashInfo = new CashInfo();
+        cashInfo.setGoodsTotal(goodsTotal.toString());
+        cashInfo.setTotal(total.setScale(2, BigDecimal.ROUND_HALF_UP).toString());
+        cashInfo.setTaxTotal(taxTotal.setScale(2, BigDecimal.ROUND_HALF_UP).toString());
+        cashInfo.setReceipts(orderEntity.getActualPrice().setScale(2, BigDecimal.ROUND_HALF_UP).toString());
+        cashInfo.setOddChange(discountedPrice.toString());
+        cashInfo.setCoupon(orderEntity.getCouponPrice().setScale(2, BigDecimal.ROUND_HALF_UP).toString());
+        cashInfo.setFreight(
+                new BigDecimal(orderEntity.getFreightPrice()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
+        if ("alipay".equals(orderEntity.getPayFlag())) {
+            cashInfo.setPaymentMode("支付宝支付");
+        } else {
+            cashInfo.setPaymentMode("微信支付");
+        }
+        // 海关清单
+        CusListing cusListing = new CusListing();
+        cusListing.setOrderId(orderEntity.getOrderSn());
+        if (!orderEntity.getOrderBizType().equalsIgnoreCase(Dict.orderBizType.item_11.getItem())) {
+            cusListing.setWaybillId(orderProcessRecordEntity.getLogisticsNo());
+            cusListing.setInvtNo(orderProcessRecordEntity.getInvtNo()==null?"":orderProcessRecordEntity.getInvtNo());
+
+            cusListing.setConsignee(orderEntity.getConsignee());
+            // 脱敏设置
+            if (StringUtils.isNotEmpty(cusListing.getConsignee()) && cusListing.getConsignee().length() > 1) {
+                cusListing.setConsignee(new StringBuilder(cusListing.getConsignee()).replace(1, 2, "*").toString());
             }
-            // 海关清单
-            CusListing cusListing = new CusListing();
-            cusListing.setOrderId(orderEntity.getOrderSn());
-            if (!orderEntity.getOrderBizType().equalsIgnoreCase(Dict.orderBizType.item_11.getItem())) {
-                cusListing.setWaybillId(orderProcessRecordEntity.getLogisticsNo());
-                cusListing.setInvtNo(orderProcessRecordEntity.getInvtNo()==null?"":orderProcessRecordEntity.getInvtNo());
-
-                cusListing.setConsignee(orderEntity.getConsignee());
-                // 脱敏设置
-                if (StringUtils.isNotEmpty(cusListing.getConsignee()) && cusListing.getConsignee().length() > 1) {
-                    cusListing.setConsignee(new StringBuilder(cusListing.getConsignee()).replace(1, 2, "*").toString());
-                }
-                cusListing.setConsigneeTel(orderEntity.getMobile());
-                if (StringUtils.isNotEmpty(cusListing.getConsigneeTel())) {
-                    cusListing.setConsigneeTel(new StringBuilder(cusListing.getConsigneeTel()).replace(3, 7, "****").toString());
-                }
+            cusListing.setConsigneeTel(orderEntity.getMobile());
+            if (StringUtils.isNotEmpty(cusListing.getConsigneeTel())) {
+                cusListing.setConsigneeTel(new StringBuilder(cusListing.getConsigneeTel()).replace(3, 7, "****").toString());
             }
-            cusListing.setOriginAddress(PrintTicketPropertiesBuilder.instance().getAddress());
-            cusListing.setDeliveryAddress(storeEntity.getStoreAddress());
-            // 尝试在取货码表中查询数据,如果有的话就改变状态
+        }
+        cusListing.setOriginAddress(PrintTicketPropertiesBuilder.instance().getAddress());
+        cusListing.setDeliveryAddress(storeEntity.getStoreAddress());
+        // 尝试在取货码表中查询数据,如果有的话就改变状态
 //            String orderSn = orderEntity.getOrderSn();
 //            PickUpCodeEntity pickUpCodeEntity = pickUpCodeService.queryObject(orderSn);
 //            if (pickUpCodeEntity != null) {
@@ -4396,48 +4433,48 @@ public class OrderServiceImpl implements OrderService {
 //                pickUpCodeService.update(pickUpCodeEntity);
 //
 //            }
-            TicketMailInfo mailInfo = new TicketMailInfo();
-            String exprNo = orderProcessRecordEntity.getLogisticsNo();
-            if (StringUtils.isNullOrEmpty(exprNo)) {
-                throw new RRException("快递面单为空,请联系客服");
-            }
-            //图片地址
-            mailInfo.setStoreImgUrl(storeEntity.getStoreImgUrl()==null?"/statics/img/cw_qrcode.png":storeEntity.getStoreImgUrl().trim());
-            mailInfo.setExprNo(exprNo);
-            String logoUrl = "/statics/img/sf_img.jpg";
+        TicketMailInfo mailInfo = new TicketMailInfo();
+        String exprNo = orderProcessRecordEntity.getLogisticsNo();
+        if (StringUtils.isNullOrEmpty(exprNo)) {
+            throw new RRException("快递面单为空,请联系客服");
+        }
+        //图片地址
+        mailInfo.setStoreImgUrl(storeEntity.getStoreImgUrl()==null?"/statics/img/cw_qrcode.png":storeEntity.getStoreImgUrl().trim());
+        mailInfo.setExprNo(exprNo);
+        String logoUrl = "/statics/img/sf_img.jpg";
 
-            Map<String, String> logoMap = new HashMap<>();
-            logoMap.put("yto", "/statics/img/yto_logo.jpg");
-            logoMap.put("best", "/statics/img/bestex_logo3.png");
-            logoMap.put("sf", "/statics/img/sf_img.jpg");
-            if (StringUtils.isNotEmpty(orderEntity.getShippingCode()) && logoMap.containsKey(orderEntity.getShippingCode())) {
-                logoUrl = logoMap.get(orderEntity.getShippingCode());
-            }
+        Map<String, String> logoMap = new HashMap<>();
+        logoMap.put("yto", "/statics/img/yto_logo.jpg");
+        logoMap.put("best", "/statics/img/bestex_logo3.png");
+        logoMap.put("sf", "/statics/img/sf_img.jpg");
+        if (StringUtils.isNotEmpty(orderEntity.getShippingCode()) && logoMap.containsKey(orderEntity.getShippingCode())) {
+            logoUrl = logoMap.get(orderEntity.getShippingCode());
+        }
 
-            mailInfo.setExprLogoUrl(logoUrl);
-            byte[] barCode128 = BarcodeUtil.generateBarCode128(exprNo, 6.0D, null, true, false);
-            String exprNoBase64Img = new String(Base64.getEncoder().encode(barCode128));
-            mailInfo.setShopTel(storeEntity.getTelephoneNumber());
-
-            AddressEntity addressEntity = addressDao.queryStoreAddress(storeEntity.getId(),Dict.addressStatus.item_1.getItem());
-            // 发货人
-            mailInfo.setSenderTel(addressEntity.getTelNumber());
-            mailInfo.setSenderName("CW澳洲大药房");
-            mailInfo.setSenderProvince(addressEntity.getProvinceName());
-            mailInfo.setSenderCity(addressEntity.getCityName());
-            mailInfo.setSenderDistrict(addressEntity.getCountyName());
-            mailInfo.setSenderAddress(addressEntity.getDetailInfo());
-
-            // 收货人
-            mailInfo.setConsigneeMob(new StringBuilder(orderEntity.getMobile()).replace(3, 7, "****").toString());
-            mailInfo.setConsigneeName(new StringBuilder(orderEntity.getConsignee()).replace(1, 2, "*").toString());
-            mailInfo.setConsigneeProvince(orderEntity.getProvince());
-            mailInfo.setConsigneeCity(orderEntity.getCity());
-            mailInfo.setConsigneeDistrict(orderEntity.getDistrict());
-            mailInfo.setConsigneeAddress(orderEntity.getAddress());
+        mailInfo.setExprLogoUrl(logoUrl);
+        byte[] barCode128 = BarcodeUtil.generateBarCode128(exprNo, 6.0D, null, true, false);
+        String exprNoBase64Img = new String(Base64.getEncoder().encode(barCode128));
+        mailInfo.setShopTel(storeEntity.getTelephoneNumber());
 
-            mailInfo.setExprNoBase64Img(exprNoBase64Img);
-            return TicketPrintUtil.print(head, goodsList, cashInfo, cusListing, mailInfo);
+        AddressEntity addressEntity = addressDao.queryStoreAddress(storeEntity.getId(),Dict.addressStatus.item_1.getItem());
+        // 发货人
+        mailInfo.setSenderTel(addressEntity.getTelNumber());
+        mailInfo.setSenderName("CW澳洲大药房");
+        mailInfo.setSenderProvince(addressEntity.getProvinceName());
+        mailInfo.setSenderCity(addressEntity.getCityName());
+        mailInfo.setSenderDistrict(addressEntity.getCountyName());
+        mailInfo.setSenderAddress(addressEntity.getDetailInfo());
+
+        // 收货人
+        mailInfo.setConsigneeMob(new StringBuilder(orderEntity.getMobile()).replace(3, 7, "****").toString());
+        mailInfo.setConsigneeName(new StringBuilder(orderEntity.getConsignee()).replace(1, 2, "*").toString());
+        mailInfo.setConsigneeProvince(orderEntity.getProvince());
+        mailInfo.setConsigneeCity(orderEntity.getCity());
+        mailInfo.setConsigneeDistrict(orderEntity.getDistrict());
+        mailInfo.setConsigneeAddress(orderEntity.getAddress());
+
+        mailInfo.setExprNoBase64Img(exprNoBase64Img);
+        return TicketPrintUtil.print(head, goodsList, cashInfo, cusListing, mailInfo);
     }
 
     /**
@@ -5494,7 +5531,9 @@ public class OrderServiceImpl implements OrderService {
         /*GoodsEntity goodsEntity = goodsService.queryObject(goodsDto.getId().intValue());
         BigDecimal goodsTax = CalculateTax.calculateFinalTax(goodsEntity, goodsDto.getStoreRetailPrice(), goodsService).setScale(3, RoundingMode.HALF_UP);
         goodsTax = goodsTax.multiply(number).setScale(2, RoundingMode.HALF_UP);*/
-        orderGoodsVo.setTaxPrice(goodsDto.getGoodsTaxes().divide(BigDecimal.valueOf(goodsDto.getSellVolume()), 3, BigDecimal.ROUND_HALF_UP));
+        // wcq注解: 原先在数据入库的时候  预估税费除以了数量  现在不除以数量了
+        // 注释代码:.divide(BigDecimal.valueOf(goodsDto.getSellVolume()), 3, BigDecimal.ROUND_HALF_UP)
+        orderGoodsVo.setTaxPrice(goodsDto.getGoodsTaxes());
 
         return orderGoodsVo;
     }

+ 14 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/MkActivitiesScoreServiceImpl.java

@@ -183,4 +183,18 @@ public class MkActivitiesScoreServiceImpl implements MkActivitiesScoreService {
     public List<MkActivitiesScoreEntity> queryActivityInfoByMkaIdList(List<Long> mkaIdList) {
         return mkActivitiesScoreDao.queryActivityInfoByMkaIdList(mkaIdList);
     }
+
+    /**
+     * 根据门店id和当前时间和活动类型查询有那些sku参加了积分抵扣活动
+     *
+     * @param storeId
+     * @param currentTime
+     * @param mkaTopic
+     * @return
+     */
+    @Override
+    public List<MkActivitiesScoreEntity> querySkuByNow(String storeId, String currentTime, String mkaTopic) {
+
+        return mkActivitiesScoreDao.querySkuByNow(storeId,currentTime,mkaTopic);
+    }
 }

+ 34 - 16
kmall-admin/src/main/java/com/kmall/admin/service/impl/vip/Mall2PointsRulesServiceImpl.java

@@ -64,14 +64,6 @@ public class Mall2PointsRulesServiceImpl implements Mall2PointsRulesService {
 
     @Override
     public R save(Mall2PointsRulesEntity mall2PointsRules) {
-        //校验 积分类型和是否启用 查询出不让增加
-        HashMap<String, Object> map = new HashMap<>();
-        map.put("pointsType",mall2PointsRules.getPointsType());
-        map.put("isValid", Dict.isValid.item_0.getItem());
-        List<Mall2PointsRulesEntity> mall2PointsRulesEntities = mall2PointsRulesDao.queryList(map);
-        if ((!mall2PointsRulesEntities.isEmpty()) && Dict.isValid.item_0.getItem().equals(mall2PointsRules.getIsValid())){
-            return R.error("已存在该积分类型有效数据,请确认再进行操作");
-        }
         //积分规则适用开始时间
         Date pointsBeginTime = mall2PointsRules.getPointsBeginTime();
         //积分规则适用结束时间
@@ -80,7 +72,22 @@ public class Mall2PointsRulesServiceImpl implements Mall2PointsRulesService {
         if (pointsBeginTime.getTime() > pointsEndTime.getTime()){
             return R.error("设置的开始时间和结束时间冲突");
         }
+        //校验 积分类型和是否启用 查询出不让增加
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("pointsType",mall2PointsRules.getPointsType());
+        map.put("isValid", Dict.isValid.item_0.getItem());
+        List<Mall2PointsRulesEntity> mall2PointsRulesEntities = mall2PointsRulesDao.queryList(map);
+        for (Mall2PointsRulesEntity mall2PointsRulesEntity : mall2PointsRulesEntities) {
+            if (Dict.isValid.item_0.getItem().equals(mall2PointsRules.getIsValid())){
+                //  之前结束时间要小于新增得开始时间
+                Boolean aBoolean = DateUtils.IsInterSection(mall2PointsRules.getPointsBeginTime(),mall2PointsRules.getPointsEndTime(),mall2PointsRulesEntity.getPointsBeginTime(),mall2PointsRulesEntity.getPointsEndTime());
+                if (aBoolean){
+                    return R.error("设置时间存在交集,请确认");
+                }
+                //不存在交集
+            }
 
+        }
         log.debug("积分规则添加数据:{}",JacksonUtil.toJson(mall2PointsRules));
         mall2PointsRulesDao.save(mall2PointsRules);
 
@@ -89,14 +96,6 @@ public class Mall2PointsRulesServiceImpl implements Mall2PointsRulesService {
 
     @Override
     public R update(Mall2PointsRulesEntity mall2PointsRules) {
-        //校验 积分类型和是否启用 查询出不让增加
-        HashMap<String, Object> map = new HashMap<>();
-        map.put("pointsType",mall2PointsRules.getPointsType());
-        map.put("isValid", Dict.isValid.item_0.getItem());
-        List<Mall2PointsRulesEntity> mall2PointsRulesEntities = mall2PointsRulesDao.queryList(map);
-        if ((!mall2PointsRulesEntities.isEmpty()) && Dict.isValid.item_0.getItem().equals(mall2PointsRules.getIsValid())){
-            return R.error("已存在该积分类型有效数据,请确认再进行操作");
-        }
         //积分规则适用开始时间
         Date pointsBeginTime = mall2PointsRules.getPointsBeginTime();
         //积分规则适用结束时间
@@ -105,6 +104,25 @@ public class Mall2PointsRulesServiceImpl implements Mall2PointsRulesService {
         if (pointsBeginTime.getTime() > pointsEndTime.getTime()){
             return R.error("设置的开始时间和结束时间冲突");
         }
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("pointsType",mall2PointsRules.getPointsType());
+        map.put("isValid", Dict.isValid.item_0.getItem());
+        List<Mall2PointsRulesEntity> mall2PointsRulesEntities = mall2PointsRulesDao.queryList(map);
+        for (Mall2PointsRulesEntity mall2PointsRulesEntity : mall2PointsRulesEntities) {
+            if (mall2PointsRules.getMprId().equals(mall2PointsRulesEntity.getMprId())){
+                continue;
+            }
+
+            if (Dict.isValid.item_0.getItem().equals(mall2PointsRules.getIsValid())){
+                //  之前结束时间要小于新增得开始时间
+                Boolean aBoolean = DateUtils.IsInterSection(mall2PointsRules.getPointsBeginTime(),mall2PointsRules.getPointsEndTime(),mall2PointsRulesEntity.getPointsBeginTime(),mall2PointsRulesEntity.getPointsEndTime());
+                if (aBoolean){
+                    return R.error("设置时间存在交集,请确认");
+                }
+                //不存在交集
+            }
+
+        }
         log.debug("积分规则修改数据:{}",JacksonUtil.toJson(mall2PointsRules));
         mall2PointsRulesDao.update(mall2PointsRules);
         return R.ok("修改成功");

+ 10 - 0
kmall-admin/src/main/java/com/kmall/admin/service/mk/MkActivitiesScoreService.java

@@ -2,6 +2,7 @@ package com.kmall.admin.service.mk;
 
 
 import com.kmall.admin.dto.ScoreReductionDTO;
+import com.kmall.admin.entity.mk.MkActivitiesPresentIntegralEntity;
 import com.kmall.admin.entity.mk.MkActivitiesScoreEntity;
 
 import java.util.Date;
@@ -104,4 +105,13 @@ public interface MkActivitiesScoreService {
      * @return          活动
      */
     List<MkActivitiesScoreEntity> queryActivityInfoByMkaIdList(List<Long> mkaIdList);
+
+    /**
+     * 根据门店id和当前时间和活动类型查询有那些sku参加了积分抵扣活动
+     * @param storeId
+     * @param currentTime
+     * @param mkaTopic
+     * @return
+     */
+    List<MkActivitiesScoreEntity> querySkuByNow(String storeId, String currentTime, String mkaTopic);
 }

+ 12 - 1
kmall-admin/src/main/resources/mybatis/mapper/mk/MkActivitiesScoreDao.xml

@@ -188,5 +188,16 @@
     <delete id="deleteBatchByMkaId">
 		delete from mk_activities_score where mka_id = #{mkaId}
 	</delete>
-
+	<select id="querySkuByNow" resultMap="mkActivitiesScoreMap">
+		select
+			mapi.*
+		from mk_activities_score mapi
+		left join mk_activities ma on ma.mka_id = mapi.mka_id
+		where
+			ma.mka_store_id = #{storeId}
+			and ma.mka_start_time &lt; #{currentTime}
+			and ma.mkd_end_time &gt; #{currentTime}
+			and ma.mka_status = 1
+			and ma.mka_topic = #{mkaTopic}
+	</select>
 </mapper>

+ 2 - 2
kmall-admin/src/main/resources/mybatis/mapper/vip/Mall2PointsRulesDao.xml

@@ -52,10 +52,10 @@
 		<if test="name != null and name.trim() != ''">
 			AND points_type = #{name}
 		</if>
-		<if test="isValid != null and isValid != ''">
+		<if test="isValid != null">
 			AND is_valid = #{isValid}
 		</if>
-		<if test="pointsType != null and pointsType != ''">
+		<if test="pointsType != null">
 			AND points_type = #{pointsType}
 		</if>
         <choose>

+ 2 - 2
kmall-admin/src/main/webapp/WEB-INF/page/mk/mall2RulesDetil.html

@@ -77,8 +77,8 @@
                 </Form-item>
             </div>
             <div v-show="pointsType==2">
-                <Form-item label="商品条码" prop="pointsRulesName">
-                    <i-input v-model="mall2PointsRulesDetil.pointsRulesName" placeholder="商品条码"/>
+                <Form-item label="SKU" prop="pointsRulesName">
+                    <i-input v-model="mall2PointsRulesDetil.pointsRulesName" placeholder="SKU"/>
                 </Form-item>
 <!--                <Form-item label="对应的商品门店" prop="storeName">-->
 <!--                    <i-input v-model="mall2PointsRulesDetil.storeName" placeholder="门店名称"/>-->

+ 66 - 23
kmall-admin/src/main/webapp/WEB-INF/page/sale/sale.html

@@ -14,22 +14,49 @@
             #goodsImg{
                 width: 50%;
             }
+            #logoImg{
+                width: 100%;
+            }
+            #tableLi{
+                min-height: 295px;
+            }
+            #codediv{
+                min-height: 455px;
+            }
         }
         @media screen and (min-width: 1396px) and (max-width: 1536px) {
             #rrapp {
-                font-size: 0.2rem;
+                font-size: 0.1rem;
             }
             #goodsImg{
                 width: 50%;
             }
+            #logoImg{
+                width: 90%;
+            }
+            #tableLi{
+                min-height: 350px;
+            }
+            #codediv{
+                min-height: 520px;
+            }
         }
         @media screen and (min-width: 1536px) and (max-width: 1920px) {
             #rrapp {
-                font-size: 0.5rem;
+                font-size: 0.1rem;
             /*//我这里是按1920的屏幕宽度设置的,所以1rem相当于100px*/
             }
             #goodsImg{
-                width: 75%;
+                width: 50%;
+            }
+            #logoImg{
+                width: 80%;
+            }
+            #tableLi{
+                min-height: 380px;
+            }
+            #codediv{
+                min-height: 555px;
             }
         }
         @media screen and (min-width: 1920px) {
@@ -37,7 +64,16 @@
                 font-size: 0.1rem;
             }
             #goodsImg{
-                width: 100%;
+                width: 40%;
+            }
+            #logoImg{
+                width: 75%;
+            }
+            #tableLi{
+                min-height: 513px;
+            }
+            #codediv{
+                min-height: 712px;
             }
         }
 
@@ -143,13 +179,13 @@
             <div class="row" style="border:0;margin-bottom:10px">
                 <div class="col-md-3 col-sm-6 logodiv">
                     <!--center-block-->
-                    <img src="${rc.contextPath}/statics/img/logotest2.jpg" class="img-rounded img-responsive" style="height: 70px;">
+                    <img id="logoImg" src="${rc.contextPath}/statics/img/logotest2.jpg" class="img-rounded img-responsive" style="height: 70px;">
                 </div>
                 <div class="col-md-9 col-sm-6" style="background-color: #f0f0f0;margin:0px;padding: 0px" >
                     <div v-show="showList">
 
                         <Row :gutter="16">
-                            <ul class="nav navbar-top-links navbar-right" style="font-size: 1.3em;">
+                            <ul class="nav navbar-top-links navbar-right">
 
                                 <!--<li>
                                     <i-input v-model="orderSn1" @on-enter="queryInveResponse" placeholder="输入要查询回执的订单号" id="queryInveResponse" />
@@ -162,7 +198,7 @@
                                 </li>
                                 <li><span style="margin-right: 35px"><i class="fa fa-user-circle" ></i> &nbsp;收银员:<b>{{sysUserInfo.username}}</b></span></li>
                                 <li><a href="javascript:;" @click="updatePasswordOpen"><i class="fa fa-lock"></i> &nbsp;修改密码</a></li>
-                                <li><a @click="logout" style="font-size: 1em"><i class="fa fa fa-sign-out"></i> 退出</a></li>
+                                <li><a @click="logout"><i class="fa fa fa-sign-out"></i> 退出</a></li>
                             </ul>
                         </Row>
                     </div>
@@ -190,7 +226,7 @@
                         <i-input v-model="prodBarcode" @on-enter="query" placeholder="输入或扫码商品条形码" id="saomiao"  />
                     </li>-->
                     <li style="margin-top: 50px;" >
-                        <div v-show="goodsDetail" style="font-size: 1.2em">
+                        <div v-show="goodsDetail">
                             <img id="goodsImg" :src="goods.primaryPicUrl" class="img-rounded"/>
                             <h1 style="margin: 8px;font-size: 20px;"><strong>{{goods.name}}</strong></h1>
                             <p style="margin: 8px;">单价: <strong>{{goods.retailPrice}}</strong> /元</p>
@@ -210,9 +246,9 @@
             </div>
             <div class="col-md-6 col-sm-8" style="padding: 0px;background-color: #f0f0f0">
                 <ul class="list-unstyled; ">
-                    <li ref="overflowLi" style="height: 310px;overflow:auto">
+                    <li ref="overflowLi" id="tableLi" style="overflow:auto">
                         <table id="cbec" class="table .table-striped">
-                            <tr style="border: white;background-color: #F5DCB3;font-size: 1.3em" >
+                            <tr style="border: white;background-color: #F5DCB3;" >
                                 <th style="width: 26%;">跨境商品名称</th>
                                 <th style="width: 9%;">单价</th>
                                 <th style="width: 11%;">积分优惠</th>
@@ -223,7 +259,7 @@
                                 <th style="width: 13%;">参与活动</th>
                                 <th>&nbsp;</th>
                             </tr>
-                            <tr v-for="(item,i) in goodsList" v-if="item.name" style="font-size: 1em">
+                            <tr v-for="(item,i) in goodsList" v-if="item.name">
                                 <td> {{item.name}}</td>
                                 <td> {{item.retailPrice}}</td>
                                 <td> {{item.deductionPrice}}</td>
@@ -231,9 +267,9 @@
                                 <td> {{item.goodstaxes}}</td>
                                 <td> {{item.actualPaymentAmount}}</td>
                                 <td>
-                                    <i class="glyphicon glyphicon-minus" aria-hidden="true" @click="minus(item.id)"></i>
+                                    <i class="glyphicon glyphicon-minus" name="minusButton" aria-hidden="true" @click="minus(item.id)"></i>
                                     {{item.sellVolume}}
-                                    <i class="glyphicon glyphicon-plus" aria-hidden="true" @click="add(item.id)"></i>
+                                    <i class="glyphicon glyphicon-plus" name="addButton" aria-hidden="true" @click="add(item.id)"></i>
                                 </td>
                                 <td>
                                     {{item.activity}}
@@ -423,7 +459,7 @@
                                     </div>
                                     <div class="modal-body">
                                         <div style="margin-bottom: 10PX">
-                                            <h3 style="border: white;padding: 8px">会员手机号:{{userInfo.customPhone}}</h3>
+                                            <h3 style="border: white;padding: 8px">会员手机号:{{userInfo.consigneePhone}}</h3>
                                         </div>
                                         <div style="margin-bottom: 30px">
                                             <ul style="display: inline-block">
@@ -457,7 +493,7 @@
             </div>
             <div class="col-md-3 col-sm-1">
                 <h2 class="text-center" style="border: white;background-color: #F5DCB3;padding: 8px" >小票码 <span v-show="delayResponse"> 海关卡回执导致单量堆积</span></h2><br/>
-                <div class="row" style="border: white;background-color: #f0f0f0;overflow:auto;min-height: 420px;">
+                <div id="codediv" class="row" style="border: white;background-color: #f0f0f0;overflow:auto;">
                     <div class="col-xs-4 col-sm-4" v-for="(item,i) in pickUpCodeList" style="margin-bottom: 8px;">
                         <i-button data-toggle="modal" data-target="#orderDetail" style="width: 110px;font-family: 微软雅黑" @click="queryOrderDetail(item.orderSn,item.pickUpCodeSn)" v-if="item.pickUpCodeStatus == 0"  >&nbsp;{{item.pickUpCodeSn}}</i-button>
                         <i-button data-toggle="modal" data-target="#orderDetail" style="background-color:#83e7b4;width: 110px;font-family: 微软雅黑" @click="queryOrderDetail(item.orderSn,item.pickUpCodeSn)" v-if="item.pickUpCodeStatus == 1" >{{item.pickUpCodeSn}}</i-button>
@@ -562,17 +598,17 @@
 
                         </div>
                         <div class="modal-footer">
-                            <button v-if="canRefund" type="button" style="margin:0 30px 0 20px;font-size: 20px;float: left" class="btn ivu-btn-error" @click="refundOrder()" id="refundOrder" data-dismiss="modal">退款</button>
-                            <button v-else disabled type="button" style="margin:0 30px 0 25px;font-size: 20px;float: left" class="btn ivu-btn-error" @click="refundOrder()"  data-dismiss="modal">退款</button>
+                            <button v-if="canRefund" type="button" style="margin:0 30px 0 20px;float: left" class="btn ivu-btn-error" @click="refundOrder()" id="refundOrder" data-dismiss="modal">退款</button>
+                            <button v-else disabled type="button" style="margin:0 30px 0 25px;float: left" class="btn ivu-btn-error" @click="refundOrder()"  data-dismiss="modal">退款</button>
 <!--                            <button type="button" style="margin:0 30px 0 20px;font-size: 25px;" class="btn btn-warning" @click="confirmDelivery" id="confirmDelivery" data-dismiss="modal">确定提货</button>-->
 <!--                            <button type="button" style="margin:0 30px 0 20px;font-size: 25px;" class="btn btn-primary" @click="resendNotice" id="resendNotice" data-dismiss="modal">重发通知</button>-->
 <!--                            <button type="button" style="margin:0 30px 0 20px;font-size: 25px;" class="btn btn-primary" @click="resendWaybill" id="resendWaybill" data-dismiss="modal">重发运单</button>-->
-                            <button type="button" style="margin:0 30px 0 20px;font-size: 25px;" class="btn btn-primary" @click="resendorderinfo" id="resendorderinfo" data-dismiss="modal">重推订单信息</button>
-                            <button type="button" style="margin:0 30px 0 20px;font-size: 25px;" class="btn btn-primary" @click="resendorder" id="resendorder" data-dismiss="modal">重发订单</button>
-                            <button type="button" style="margin:0 30px 0 20px;font-size: 25px;" class="btn btn-primary" @click="resendPayment" id="resendPayment" data-dismiss="modal">重发支付单</button>
+                            <button type="button" style="margin:0 30px 0 20px;" class="btn btn-primary" @click="resendorderinfo" id="resendorderinfo" data-dismiss="modal">重推订单信息</button>
+                            <button type="button" style="margin:0 30px 0 20px;" class="btn btn-primary" @click="resendorder" id="resendorder" data-dismiss="modal">重发订单</button>
+                            <button type="button" style="margin:0 30px 0 20px;" class="btn btn-primary" @click="resendPayment" id="resendPayment" data-dismiss="modal">重发支付单</button>
 <!--                            <button type="button" style="margin:0 30px 0 20px;font-size: 25px;" class="btn btn-primary" @click="resendOrder" id="resendOrder" data-dismiss="modal">重发订单</button>-->
 <!--                            <button type="button" style="margin:0 30px 0 20px;font-size: 25px;" class="btn btn-primary" @click="forceSendToOms" id="forceSendToOms" data-dismiss="modal">强推清关</button>-->
-                            <button type="button" style="margin:0 30px 0 20px;font-size: 25px;" class="btn btn-primary" @click="verification" id="verification" data-dismiss="modal">核销</button>
+                            <button type="button" style="margin:0 30px 0 20px;" class="btn btn-primary" @click="verification" id="verification" data-dismiss="modal">核销</button>
 <!--                            <button type="button" style="margin:0 30px 0 20px;font-size: 25px;" class="btn btn-primary" @click="verEwbtion" id="verEwbtion" data-dismiss="modal">打印快递单</button>-->
                         </div>
                     </div>
@@ -612,8 +648,15 @@
                 </div>
 
             </div>
-
-
+            <!--遮罩-->
+            <div class="fade" id="loadingModal" style="opacity: 0">
+                <div style="width: 200px;height:20px;opacity: 0; z-index: 20000; position: absolute; text-align: center; left: 50%; top: 50%;margin-left:-100px;margin-top:-10px">
+<!--                    <div class="progress progress-striped active" style="margin-bottom: 0;">-->
+<!--&lt;!&ndash;                        <div class="progress-bar" style="width: 100%;"></div>&ndash;&gt;-->
+<!--                    </div>-->
+                    <h5>loading...</h5>
+                </div>
+            </div>
         </div>
     </div>
 </div>

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

@@ -16,7 +16,10 @@
                     <i-input v-model="q.goodsSn" @on-enter="query" placeholder="sku"/>
                 </i-col>
                 <i-col span="3">
-                    <i-input v-model="q.storeName" @on-enter="query" placeholder="门店名称"/>
+<!--                    <i-input v-model="q.storeName" @on-enter="query" placeholder="门店名称"/>-->
+                    <i-select v-model="q.storeName" filterable placeholder="门店名称" label-in-value>
+                        <i-option v-for="store in storeSelects" :value="store.storeName" :key="store.storeName">{{store.storeName}}</i-option>
+                    </i-select>
                 </i-col>
                 <i-col span="3">
                     <i-select v-model="q.orderStatus" placeholder="订单状态">

+ 11 - 3
kmall-admin/src/main/webapp/js/mk/mkactivitiesscore.js

@@ -26,9 +26,17 @@ $(function () {
 			{label: 'id', name: 'id', index: 'id', key: true, hidden: true},
 			{label: '商品条码', name: 'prodBarcode', index: 'prod_barcode', width: 150},
 			{label: 'sku', name: 'sku', index: 'sku', width: 150},
-			{label: '门店id', name: 'storeId', index: 'store_id', width: 80},
-			{label: '是否参与', name: 'reject', index: 'reject', width: 80},
-			{label: '营销活动编号', name: 'mkaId', index: 'mka_id', width: 100}
+			// {label: '门店id', name: 'storeId', index: 'store_id', width: 80},
+			{label: '是否参与', name: 'reject', index: 'reject', width: 80,formatter: function (value) {
+					if (value == '0') {
+						return '参与';
+					} else if (value == '1') {
+						return '不参与';
+					}
+					return '-';
+				}
+			},
+			// {label: '营销活动编号', name: 'mkaId', index: 'mka_id', width: 100}
 			// {label: '截止日期', name: 'deadline', index: 'deadline', width: 200,
 			// 	formatter: function (value) {
 			// 		return transDate(value, 'yyyy-MM-dd hh:mm:ss');

+ 21 - 5
kmall-admin/src/main/webapp/js/sale/sale.js

@@ -799,7 +799,7 @@ let vm = new Vue({
                     calculateGoodsByMysy(goodsDetails,"add");
                     calculateGoodsByHalfPrice(goodsDetails,"add");*/
                     // calculateGoodsByMz(goodsDetails,"add");
-                    handleSellVolume(goodsDetails, "add");
+                    handleSellVolume(goodsDetails, "add",i);
                     // handle(goodsDetails,"add");
                     break;
                 }
@@ -808,6 +808,7 @@ let vm = new Vue({
             vm.calActivityFlag = false;
         },
         minus:function(value){
+
             // 减少数量
             for(var i = 0 ; i < this.goodsList.length ; i++){
                 if(this.goodsList[i].id == value){
@@ -839,7 +840,7 @@ let vm = new Vue({
                         goodsDetails.goodstaxes = - goodsDetails.goodstaxes;
                         goodsDetails.retailPrice = - goodsDetails.retailPrice;
                     }*/
-                    handleSellVolume(goodsDetails, "minus");
+                    handleSellVolume(goodsDetails, "minus",i);
                     // handle(goodsDetails,"minus");
                     break;
                 }
@@ -2240,6 +2241,7 @@ function toPayOrder(payCode){
                  'cmbArea':cmbArea,
                  'addrUser':addrUser,
                  'status':status,
+                 'consigneePhone':vm.userInfo.consigneePhone,
                 };
     // console.log(JSON.stringify(param));
     vm.parCode = "";
@@ -2387,7 +2389,10 @@ calculateOrderPrice = function() {
  * @param currentGoodsDetail    当前操作的商品详情
  * @param type                  类型,add:加 minus:减
  */
-handleSellVolume = function (currentGoodsDetail, type) {
+handleSellVolume = function (currentGoodsDetail, type,index) {
+    //$("#loadingModal").modal('show');
+    document.getElementsByName("minusButton")[index].style.pointerEvents = "none";
+    document.getElementsByName("addButton")[index].style.pointerEvents = "none";
     // console.log("处理前商品详情=====>" + JSON.stringify(currentGoodsDetail));
     // 当前未被处理的商品数量
     let number = currentGoodsDetail.sellVolume;
@@ -2410,18 +2415,27 @@ handleSellVolume = function (currentGoodsDetail, type) {
     let sku = currentGoodsDetail.sku;
     let prodBarcode = currentGoodsDetail.prodBarcode;
     if ('add' === type) {
-        number = number + 1;
         $.get("../goods/number/add/"+ storeId +"/" + sku + "/" + prodBarcode + "/" + number, function (res) {
             if (res.code === 0) {
+                number = number + 1;
                 currentGoodsDetail.sellVolume += 1;
                 currentGoodsDetail.goodstaxes = currentGoodsTax.add(singleTax).toString();
                 currentGoodsDetail.actualPaymentAmount = currentActualPaymentAmount.add(singleActualPaymentAmount).toString();
                 vm.totalCount += 1;
                 vm.totalPrice = currentTotalPrice.add(retailPrice).toString();
                 vm.actualPrice = currentActualPrice.add(singleActualPaymentAmount).toString();
+                $("#loadingModal").modal('hide');
+                document.getElementsByName("addButton")[index].style.pointerEvents = "auto";
+                document.getElementsByName("minusButton")[index].style.pointerEvents = "auto";
             } else if (res.code === 500) {
+                $("#loadingModal").modal('hide');
+                document.getElementsByName("addButton")[index].style.pointerEvents = "auto";
+                document.getElementsByName("minusButton")[index].style.pointerEvents = "auto";
                 alert(res.msg);
             } else {
+                $("#loadingModal").modal('hide');
+                document.getElementsByName("addButton")[index].style.pointerEvents = "auto";
+                document.getElementsByName("minusButton")[index].style.pointerEvents = "auto";
                 alert("未知异常!请联系管理员!");
             }
         });
@@ -2432,6 +2446,9 @@ handleSellVolume = function (currentGoodsDetail, type) {
         vm.totalCount -= 1;
         vm.totalPrice = currentTotalPrice.subtract(retailPrice).toString();
         vm.actualPrice = currentActualPrice.subtract(singleActualPaymentAmount).toString();
+        $("#loadingModal").modal('hide');
+        document.getElementsByName("minusButton")[index].style.pointerEvents = "auto";
+        document.getElementsByName("addButton")[index].style.pointerEvents = "auto";
     }
 
     for (let i = 0; i < vm.goodsList.length; i++) {
@@ -2441,7 +2458,6 @@ handleSellVolume = function (currentGoodsDetail, type) {
             // console.log("被删除的元素====>" + JSON.stringify(splice));
         }
     }
-
     // console.log("处理后商品详情=====>" + JSON.stringify(currentGoodsDetail));
 }
 

+ 12 - 2
kmall-admin/src/main/webapp/js/shop/offilineOrderList.js

@@ -230,7 +230,8 @@ let vm = new Vue({
         macros: [],
         orderProcessRecordEntity: {},
         orderGoodsList: [],
-        payRecordList:[]
+        payRecordList:[],
+        storeSelects:{}
     },
     methods: {
         query: function () {
@@ -641,12 +642,21 @@ let vm = new Vue({
             exportFile('#rrapp', '../exportExcel/exportSalesExcel', params);
             setTimeout(msg, 1000);
 
-        }
+        },
+        storeSelect:function (){
+            $.get("../store/list", function (r) {
+                vm.storeSelects = r.page.list;
+            });
+
+        },
     },
     created: function () {
         $.get("../shipping/queryAll", function (r) {
             vm.shippings = r.list;
         });
+    },
+    mounted:function (){
+        this.storeSelect();
     }
 });
     function getPrintContent(ticket) {

+ 2 - 2
kmall-admin/src/main/webapp/js/vip/mall2pointsrules.js

@@ -155,8 +155,8 @@ let vm = new Vue({
 			});
 			//修改会出现问题
 			if (vm.mall2PointsRules.mprId != null){
-				vm.mall2PointsRules.pointsBeginTime=pointsBeginTime.replaceAll(" ","T");
-				vm.mall2PointsRules.pointsEndTime=pointsEndTime.replaceAll(" ","T");
+				vm.mall2PointsRules.pointsBeginTime=pointsBeginTime;
+				vm.mall2PointsRules.pointsEndTime=pointsEndTime;
 			}
 
 		},

+ 31 - 0
kmall-common/src/main/java/com/kmall/common/utils/DateUtils.java

@@ -324,4 +324,35 @@ public class DateUtils {
         return add(Calendar.DATE,date,value);
     }
 
+    /**
+     * 判断时间是否存在交集
+     * @param startDateOne 第一个时间段的开始时间
+     * @param endDateOne 第一个时间段的结束时间
+     * @param startDateTwo 第二个时间段的开始时间
+     * @param endDateTwo 第二个时间段的结束时间
+     * @return
+     * true 代表存在
+     * false 不存在
+     */
+    public static Boolean IsInterSection(Date startDateOne,Date endDateOne,Date startDateTwo,Date endDateTwo)
+    {
+        Date maxStartDate = startDateOne;
+        if(maxStartDate.before(startDateTwo))
+        {
+            maxStartDate = startDateTwo;
+        }
+
+        Date minEndDate = endDateOne;
+        if(endDateTwo.before(minEndDate))
+        {
+            minEndDate = endDateTwo;
+        }
+        if(maxStartDate.before(minEndDate) || (maxStartDate.getTime() == minEndDate.getTime()))
+        {
+            return true;
+        }
+        else {
+            return  false;
+        }
+    }
 }

+ 7 - 7
kmall-manager/src/main/resources/conf/haikong.properties

@@ -1,7 +1,7 @@
 # \u683C\u529B\u5730\u4EA7\u4F1A\u5458\u7CFB\u7EDF
 
 # \u73AF\u5883\uFF1A[test, prod]
-haikong.env=prod
+haikong.env=test
 haikong.retry=3
 
 #### \u4F1A\u5458\u7CFB\u7EDF\u6D4B\u8BD5\u73AF\u5883
@@ -16,12 +16,12 @@ haikong.prod.member.appSecret=wkbgreedchaiKongkuajingprodP
 
 #### \u4ED3\u5E93\u751F\u4EA7\u7CFB\u7EDF\uFF0C\u53EA\u6709\u751F\u4EA7
 haikong.prod.ware.url=http://yjapi.highstore.cn:8202/esbcenter/api/esb
-haikong.prod.ware.appId=GREE
-haikong.prod.ware.appSecret=GREE1001
-haikong.prod.ware.customerId=GREE1001
-haikong.prod.ware.shopCode=wxe186e23f5a8f0dbf
-haikong.prod.ware.companyCode=44048600Y8
-haikong.prod.ware.code=20
+haikong.prod.ware.appId=GREE-1
+haikong.prod.ware.appSecret=GREE1001-1
+haikong.prod.ware.customerId=GREE1001-1
+haikong.prod.ware.shopCode=HK9
+haikong.prod.ware.companyCode=44048600Y89H
+haikong.prod.ware.code=18009
 haikong.prod.ware.signMethod=md5
 
 #### \u514D\u7A0Emall\u6D4B\u8BD5\u73AF\u5883