1
0
Quellcode durchsuchen

CW项目活动前端后端的代码

zcb vor 4 Jahren
Ursprung
Commit
3f58eb2335
97 geänderte Dateien mit 3945 neuen und 590 gelöschten Zeilen
  1. 14 7
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsController.java
  2. 47 6
      kmall-admin/src/main/java/com/kmall/admin/controller/MkActivitiesCombinationPriceController.java
  3. 48 6
      kmall-admin/src/main/java/com/kmall/admin/controller/MkActivitiesCouponController.java
  4. 47 6
      kmall-admin/src/main/java/com/kmall/admin/controller/MkActivitiesDiscountController.java
  5. 47 6
      kmall-admin/src/main/java/com/kmall/admin/controller/MkActivitiesFullGiftController.java
  6. 47 6
      kmall-admin/src/main/java/com/kmall/admin/controller/MkActivitiesFullReductionController.java
  7. 48 6
      kmall-admin/src/main/java/com/kmall/admin/controller/MkActivitiesGetOneFreeGoodsController.java
  8. 47 6
      kmall-admin/src/main/java/com/kmall/admin/controller/MkActivitiesPromotionController.java
  9. 57 5
      kmall-admin/src/main/java/com/kmall/admin/controller/MkDailyActivitiesController.java
  10. 8 0
      kmall-admin/src/main/java/com/kmall/admin/dao/BrandDao.java
  11. 9 0
      kmall-admin/src/main/java/com/kmall/admin/dao/MkActivitiesCouponDao.java
  12. 9 0
      kmall-admin/src/main/java/com/kmall/admin/dao/MkActivitiesDiscountDao.java
  13. 13 0
      kmall-admin/src/main/java/com/kmall/admin/dao/MkActivitiesFullGiftDao.java
  14. 12 0
      kmall-admin/src/main/java/com/kmall/admin/dao/MkActivitiesFullReductionDao.java
  15. 11 0
      kmall-admin/src/main/java/com/kmall/admin/dao/MkActivitiesGetOneFreeGoodsDao.java
  16. 9 0
      kmall-admin/src/main/java/com/kmall/admin/dao/MkActivitiesPromotionDao.java
  17. 9 0
      kmall-admin/src/main/java/com/kmall/admin/dao/MkDailyActivitiesDao.java
  18. 10 0
      kmall-admin/src/main/java/com/kmall/admin/dao/mk/MkActivitiesDao.java
  19. 64 0
      kmall-admin/src/main/java/com/kmall/admin/dto/BuyOneGetOneFreeDto.java
  20. 60 0
      kmall-admin/src/main/java/com/kmall/admin/dto/CombinationPriceGoodsDto.java
  21. 68 0
      kmall-admin/src/main/java/com/kmall/admin/dto/CouponMerchandiseDto.java
  22. 87 0
      kmall-admin/src/main/java/com/kmall/admin/dto/DailyPriceGoodsDto.java
  23. 77 0
      kmall-admin/src/main/java/com/kmall/admin/dto/DiscountedProductsDto.java
  24. 86 0
      kmall-admin/src/main/java/com/kmall/admin/dto/FreeGoodsDto.java
  25. 84 0
      kmall-admin/src/main/java/com/kmall/admin/dto/FullReductionDto.java
  26. 29 0
      kmall-admin/src/main/java/com/kmall/admin/dto/GoodsDetailsDto.java
  27. 88 0
      kmall-admin/src/main/java/com/kmall/admin/dto/TemporaryPromotionalItemsDto.java
  28. 11 0
      kmall-admin/src/main/java/com/kmall/admin/entity/GoodsEntity.java
  29. 11 0
      kmall-admin/src/main/java/com/kmall/admin/entity/MkActivitiesCombinationPriceEntity.java
  30. 10 0
      kmall-admin/src/main/java/com/kmall/admin/entity/MkActivitiesFullGiftEntity.java
  31. 10 0
      kmall-admin/src/main/java/com/kmall/admin/entity/MkDailyActivitiesEntity.java
  32. 13 3
      kmall-admin/src/main/java/com/kmall/admin/entity/OrderGoodsEntity.java
  33. 8 1
      kmall-admin/src/main/java/com/kmall/admin/service/BrandService.java
  34. 8 0
      kmall-admin/src/main/java/com/kmall/admin/service/GoodsService.java
  35. 10 0
      kmall-admin/src/main/java/com/kmall/admin/service/MkActivitiesCombinationPriceService.java
  36. 18 0
      kmall-admin/src/main/java/com/kmall/admin/service/MkActivitiesCouponService.java
  37. 18 0
      kmall-admin/src/main/java/com/kmall/admin/service/MkActivitiesDiscountService.java
  38. 21 0
      kmall-admin/src/main/java/com/kmall/admin/service/MkActivitiesFullGiftService.java
  39. 20 0
      kmall-admin/src/main/java/com/kmall/admin/service/MkActivitiesFullReductionService.java
  40. 19 0
      kmall-admin/src/main/java/com/kmall/admin/service/MkActivitiesGetOneFreeGoodsService.java
  41. 17 0
      kmall-admin/src/main/java/com/kmall/admin/service/MkActivitiesPromotionService.java
  42. 18 0
      kmall-admin/src/main/java/com/kmall/admin/service/MkDailyActivitiesService.java
  43. 12 1
      kmall-admin/src/main/java/com/kmall/admin/service/impl/BrandServiceImpl.java
  44. 277 1
      kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsServiceImpl.java
  45. 71 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/MkActivitiesCombinationPriceServiceImpl.java
  46. 70 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/MkActivitiesCouponServiceImpl.java
  47. 69 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/MkActivitiesDiscountServiceImpl.java
  48. 78 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/MkActivitiesFullGiftServiceImpl.java
  49. 75 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/MkActivitiesFullReductionServiceImpl.java
  50. 71 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/MkActivitiesGetOneFreeGoodsServiceImpl.java
  51. 68 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/MkActivitiesPromotionServiceImpl.java
  52. 72 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/MkDailyActivitiesServiceImpl.java
  53. 140 163
      kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java
  54. 12 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/MkActivitiesServiceImpl.java
  55. 7 0
      kmall-admin/src/main/java/com/kmall/admin/service/mk/MkActivitiesService.java
  56. 1 0
      kmall-admin/src/main/java/com/kmall/admin/service/mk/MkActivityFormService.java
  57. 21 0
      kmall-admin/src/main/resources/XmlTemplate/BuyOneGetOneFreeDtoList.xml
  58. 21 0
      kmall-admin/src/main/resources/XmlTemplate/CombinationPriceGoodsDtoList.xml
  59. 22 0
      kmall-admin/src/main/resources/XmlTemplate/CouponMerchandiseDtoList.xml
  60. 24 0
      kmall-admin/src/main/resources/XmlTemplate/DailyPriceGoodsDtoList.xml
  61. 22 0
      kmall-admin/src/main/resources/XmlTemplate/DiscountedProductsDtoList.xml
  62. 24 0
      kmall-admin/src/main/resources/XmlTemplate/FreeGoodsDtoList.xml
  63. 23 0
      kmall-admin/src/main/resources/XmlTemplate/FullReductionDtoList.xml
  64. 23 0
      kmall-admin/src/main/resources/XmlTemplate/TemporaryPromotionalItemsDtoList.xml
  65. 11 0
      kmall-admin/src/main/resources/mybatis/mapper/BrandDao.xml
  66. 52 0
      kmall-admin/src/main/resources/mybatis/mapper/MkActivitiesCombinationPriceDao.xml
  67. 31 0
      kmall-admin/src/main/resources/mybatis/mapper/MkActivitiesCouponDao.xml
  68. 34 0
      kmall-admin/src/main/resources/mybatis/mapper/MkActivitiesDiscountDao.xml
  69. 101 58
      kmall-admin/src/main/resources/mybatis/mapper/MkActivitiesFullGiftDao.xml
  70. 37 0
      kmall-admin/src/main/resources/mybatis/mapper/MkActivitiesFullReductionDao.xml
  71. 37 0
      kmall-admin/src/main/resources/mybatis/mapper/MkActivitiesGetOneFreeGoodsDao.xml
  72. 33 0
      kmall-admin/src/main/resources/mybatis/mapper/MkActivitiesPromotionDao.xml
  73. 45 4
      kmall-admin/src/main/resources/mybatis/mapper/MkDailyActivitiesDao.xml
  74. 8 1
      kmall-admin/src/main/resources/mybatis/mapper/OrderGoodsDao.xml
  75. 30 7
      kmall-admin/src/main/resources/mybatis/mapper/mk/MkActivitiesDao.xml
  76. 9 8
      kmall-admin/src/main/resources/mybatis/mapper/mk/MkActivityFormDao.xml
  77. 8 8
      kmall-admin/src/main/webapp/WEB-INF/page/mk/mkactivitiescombinationprice.html
  78. 8 8
      kmall-admin/src/main/webapp/WEB-INF/page/mk/mkactivitiescoupon.html
  79. 8 8
      kmall-admin/src/main/webapp/WEB-INF/page/mk/mkactivitiesdiscount.html
  80. 8 8
      kmall-admin/src/main/webapp/WEB-INF/page/mk/mkactivitiesfullgift.html
  81. 8 8
      kmall-admin/src/main/webapp/WEB-INF/page/mk/mkactivitiesfullreduction.html
  82. 8 32
      kmall-admin/src/main/webapp/WEB-INF/page/mk/mkactivitiesgetonefreegoods.html
  83. 8 8
      kmall-admin/src/main/webapp/WEB-INF/page/mk/mkactivitiespromotion.html
  84. 8 8
      kmall-admin/src/main/webapp/WEB-INF/page/mk/mkdailyactivities.html
  85. 31 21
      kmall-admin/src/main/webapp/WEB-INF/page/sale/sale.html
  86. 62 16
      kmall-admin/src/main/webapp/js/mk/mkactivitiescombinationprice.js
  87. 60 16
      kmall-admin/src/main/webapp/js/mk/mkactivitiescoupon.js
  88. 60 16
      kmall-admin/src/main/webapp/js/mk/mkactivitiesdiscount.js
  89. 59 17
      kmall-admin/src/main/webapp/js/mk/mkactivitiesfullgift.js
  90. 61 16
      kmall-admin/src/main/webapp/js/mk/mkactivitiesfullreduction.js
  91. 60 20
      kmall-admin/src/main/webapp/js/mk/mkactivitiesgetonefreegoods.js
  92. 62 16
      kmall-admin/src/main/webapp/js/mk/mkactivitiespromotion.js
  93. 10 9
      kmall-admin/src/main/webapp/js/mk/mkactivityform.js
  94. 60 18
      kmall-admin/src/main/webapp/js/mk/mkdailyactivities.js
  95. 349 35
      kmall-admin/src/main/webapp/js/sale/sale.js
  96. 10 1
      kmall-api/src/main/java/com/kmall/api/entity/OrderGoodsVo.java
  97. 19 0
      kmall-common/src/main/java/com/kmall/common/constant/JxlsXmlTemplateName.java

+ 14 - 7
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsController.java

@@ -5,10 +5,11 @@ import com.kmall.admin.dto.GoodsDto;
 import com.kmall.admin.dto.GoodsPanoramaDto;
 import com.kmall.admin.entity.GoodsEntity;
 import com.kmall.admin.entity.GoodsGalleryEntity;
-import com.kmall.admin.service.GoodsGalleryService;
-import com.kmall.admin.service.GoodsService;
-import com.kmall.admin.service.OfflineCartService;
-import com.kmall.admin.service.StoreService;
+import com.kmall.admin.entity.mk.MkActivitiesEntity;
+import com.kmall.admin.entity.mk.MkActivityFormEntity;
+import com.kmall.admin.service.*;
+import com.kmall.admin.service.mk.MkActivitiesService;
+import com.kmall.admin.service.mk.MkActivityFormService;
 import com.kmall.admin.utils.ParamUtils;
 import com.kmall.admin.utils.ShiroUtils;
 import com.kmall.common.constant.Dict;
@@ -26,6 +27,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -49,6 +51,9 @@ public class GoodsController {
     @Autowired
     private StoreService storeService;
 
+
+
+
     /**
      * 查看列表
      */
@@ -332,11 +337,13 @@ public class GoodsController {
         if (!user.getRoleType().equalsIgnoreCase("2")) {
             return R.error("该操作只允许店员账户操作");
         }
-        GoodsDetailsDto goods = goodsService.queryGoodsDetailsByProdBarcode(prodBarcode,storeId);
-        if(goods == null) {
+
+
+        Map<String,Object> map = goodsService.calculateGoodsDetail(prodBarcode,storeId);
+        if(map == null){
             return R.error("商品信息不存在");
         }
-        return R.ok().put("goodsDetails", goods);
+        return R.ok().put("goodsDetails", map.get("goods")).put("map",map);
     }
 
 

+ 47 - 6
kmall-admin/src/main/java/com/kmall/admin/controller/MkActivitiesCombinationPriceController.java

@@ -1,17 +1,25 @@
 package com.kmall.admin.controller;
 
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import com.kmall.admin.dto.CombinationPriceGoodsDto;
+import com.kmall.admin.dto.DailyPriceGoodsDto;
 import com.kmall.admin.entity.MkActivitiesCombinationPriceEntity;
 import com.kmall.admin.service.MkActivitiesCombinationPriceService;
+import com.kmall.common.constant.JxlsXmlTemplateName;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
 import com.kmall.common.utils.R;
+import com.kmall.common.utils.excel.ExcelUtil;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 
 /**
@@ -26,12 +34,13 @@ import org.springframework.web.bind.annotation.*;
 public class MkActivitiesCombinationPriceController {
     @Autowired
     private MkActivitiesCombinationPriceService mkActivitiesCombinationPriceService;
-
+    @Autowired
+    private ExcelUtil excelUtil;
     /**
      * 查看列表
      */
     @RequestMapping("/list")
-    @RequiresPermissions("mkactivitiescombinationprice:list")
+//    @RequiresPermissions("mkactivitiescombinationprice:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
         //查询列表数据
@@ -49,7 +58,7 @@ public class MkActivitiesCombinationPriceController {
      * 查看信息
      */
     @RequestMapping("/info/{macpId}")
-    @RequiresPermissions("mkactivitiescombinationprice:info")
+//    @RequiresPermissions("mkactivitiescombinationprice:info")
     @ResponseBody
     public R info(@PathVariable("macpId") Long macpId) {
         MkActivitiesCombinationPriceEntity mkActivitiesCombinationPrice = mkActivitiesCombinationPriceService.queryObject(macpId);
@@ -61,7 +70,7 @@ public class MkActivitiesCombinationPriceController {
      * 保存
      */
     @RequestMapping("/save")
-    @RequiresPermissions("mkactivitiescombinationprice:save")
+//    @RequiresPermissions("mkactivitiescombinationprice:save")
     @ResponseBody
     public R save(@RequestBody MkActivitiesCombinationPriceEntity mkActivitiesCombinationPrice) {
         mkActivitiesCombinationPriceService.save(mkActivitiesCombinationPrice);
@@ -73,7 +82,7 @@ public class MkActivitiesCombinationPriceController {
      * 修改
      */
     @RequestMapping("/update")
-    @RequiresPermissions("mkactivitiescombinationprice:update")
+//    @RequiresPermissions("mkactivitiescombinationprice:update")
     @ResponseBody
     public R update(@RequestBody MkActivitiesCombinationPriceEntity mkActivitiesCombinationPrice) {
         mkActivitiesCombinationPriceService.update(mkActivitiesCombinationPrice);
@@ -85,7 +94,7 @@ public class MkActivitiesCombinationPriceController {
      * 删除
      */
     @RequestMapping("/delete")
-    @RequiresPermissions("mkactivitiescombinationprice:delete")
+//    @RequiresPermissions("mkactivitiescombinationprice:delete")
     @ResponseBody
     public R delete(@RequestBody Long[]macpIds) {
         mkActivitiesCombinationPriceService.deleteBatch(macpIds);
@@ -104,4 +113,36 @@ public class MkActivitiesCombinationPriceController {
 
         return R.ok().put("list", list);
     }
+
+    /**
+     * 导入excel
+     */
+    @PostMapping("/upload")
+    @ResponseBody
+    public R storeUpload(@RequestParam("file") MultipartFile file, String storeId, String mkaId) {
+        List<CombinationPriceGoodsDto> combinationPriceGoodsDtoList = new ArrayList<>();//信息
+        try {
+
+            CombinationPriceGoodsDto combinationPriceGoodsDto= new CombinationPriceGoodsDto();
+            Map<String, Object> beans = new HashMap<String, Object>();
+            beans.put("CombinationPriceGoodsDto", combinationPriceGoodsDto);
+            beans.put("CombinationPriceGoodsDtoList", combinationPriceGoodsDtoList);
+            if (file.isEmpty()) {
+                return R.error("文件不能为空!");
+            }
+            excelUtil.readExcel(JxlsXmlTemplateName.COMBINATION_PRICE_GOODS_DTO_LIST, beans, file.getInputStream());
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error("导入失败!");
+        }
+        try {
+            mkActivitiesCombinationPriceService.uploadExcel(combinationPriceGoodsDtoList,storeId,mkaId);
+        }  catch (RuntimeException e){
+            e.printStackTrace();
+            return R.error(e.getMessage());
+        }
+        //上传文件
+        return R.ok("导入成功!");
+    }
+
 }

+ 48 - 6
kmall-admin/src/main/java/com/kmall/admin/controller/MkActivitiesCouponController.java

@@ -1,8 +1,15 @@
 package com.kmall.admin.controller;
 
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import com.kmall.admin.dto.CouponMerchandiseDto;
+import com.kmall.admin.dto.DailyPriceGoodsDto;
+import com.kmall.common.constant.JxlsXmlTemplateName;
+import com.kmall.common.utils.excel.ExcelUtil;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -13,6 +20,8 @@ import com.kmall.admin.service.MkActivitiesCouponService;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
 import com.kmall.common.utils.R;
+import org.springframework.web.multipart.MultipartFile;
+
 /**
  * 营销活动-优惠券Controller
  *
@@ -25,12 +34,13 @@ import com.kmall.common.utils.R;
 public class MkActivitiesCouponController {
     @Autowired
     private MkActivitiesCouponService mkActivitiesCouponService;
-
+    @Autowired
+    private ExcelUtil excelUtil;
     /**
      * 查看列表
      */
     @RequestMapping("/list")
-    @RequiresPermissions("mkactivitiescoupon:list")
+//    @RequiresPermissions("mkactivitiescoupon:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
         //查询列表数据
@@ -48,7 +58,7 @@ public class MkActivitiesCouponController {
      * 查看信息
      */
     @RequestMapping("/info/{macId}")
-    @RequiresPermissions("mkactivitiescoupon:info")
+//    @RequiresPermissions("mkactivitiescoupon:info")
     @ResponseBody
     public R info(@PathVariable("macId") Long macId) {
         MkActivitiesCouponEntity mkActivitiesCoupon = mkActivitiesCouponService.queryObject(macId);
@@ -60,7 +70,7 @@ public class MkActivitiesCouponController {
      * 保存
      */
     @RequestMapping("/save")
-    @RequiresPermissions("mkactivitiescoupon:save")
+//    @RequiresPermissions("mkactivitiescoupon:save")
     @ResponseBody
     public R save(@RequestBody MkActivitiesCouponEntity mkActivitiesCoupon) {
         mkActivitiesCouponService.save(mkActivitiesCoupon);
@@ -72,7 +82,7 @@ public class MkActivitiesCouponController {
      * 修改
      */
     @RequestMapping("/update")
-    @RequiresPermissions("mkactivitiescoupon:update")
+//    @RequiresPermissions("mkactivitiescoupon:update")
     @ResponseBody
     public R update(@RequestBody MkActivitiesCouponEntity mkActivitiesCoupon) {
         mkActivitiesCouponService.update(mkActivitiesCoupon);
@@ -84,7 +94,7 @@ public class MkActivitiesCouponController {
      * 删除
      */
     @RequestMapping("/delete")
-    @RequiresPermissions("mkactivitiescoupon:delete")
+//    @RequiresPermissions("mkactivitiescoupon:delete")
     @ResponseBody
     public R delete(@RequestBody Long[]macIds) {
         mkActivitiesCouponService.deleteBatch(macIds);
@@ -103,4 +113,36 @@ public class MkActivitiesCouponController {
 
         return R.ok().put("list", list);
     }
+
+    /**
+     * 导入excel
+     */
+    @PostMapping("/upload")
+    @ResponseBody
+    public R storeUpload(@RequestParam("file") MultipartFile file, String storeId, String mkaId) {
+        List<CouponMerchandiseDto> couponMerchandiseDtoList = new ArrayList<>();//信息
+        try {
+
+            CouponMerchandiseDto couponMerchandiseDto= new CouponMerchandiseDto();
+            Map<String, Object> beans = new HashMap<String, Object>();
+            beans.put("CouponMerchandiseDto", couponMerchandiseDto);
+            beans.put("CouponMerchandiseDtoList", couponMerchandiseDtoList);
+            if (file.isEmpty()) {
+                return R.error("文件不能为空!");
+            }
+            excelUtil.readExcel(JxlsXmlTemplateName.COUPON_MERCHANDISE_DTO_LIST, beans, file.getInputStream());
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error("导入失败!");
+        }
+        try {
+            mkActivitiesCouponService.uploadExcel(couponMerchandiseDtoList,storeId,mkaId);
+        } catch (RuntimeException e){
+            e.printStackTrace();
+            return R.error(e.getMessage());
+        }
+        //上传文件
+        return R.ok("导入成功!");
+    }
+
 }

+ 47 - 6
kmall-admin/src/main/java/com/kmall/admin/controller/MkActivitiesDiscountController.java

@@ -1,8 +1,15 @@
 package com.kmall.admin.controller;
 
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import com.kmall.admin.dto.DailyPriceGoodsDto;
+import com.kmall.admin.dto.DiscountedProductsDto;
+import com.kmall.common.constant.JxlsXmlTemplateName;
+import com.kmall.common.utils.excel.ExcelUtil;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -13,6 +20,7 @@ import com.kmall.admin.service.MkActivitiesDiscountService;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
 import com.kmall.common.utils.R;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 营销活动-全场打折Controller
@@ -26,12 +34,13 @@ import com.kmall.common.utils.R;
 public class MkActivitiesDiscountController {
     @Autowired
     private MkActivitiesDiscountService mkActivitiesDiscountService;
-
+    @Autowired
+    private ExcelUtil excelUtil;
     /**
      * 查看列表
      */
     @RequestMapping("/list")
-    @RequiresPermissions("mkactivitiesdiscount:list")
+//    @RequiresPermissions("mkactivitiesdiscount:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
         //查询列表数据
@@ -49,7 +58,7 @@ public class MkActivitiesDiscountController {
      * 查看信息
      */
     @RequestMapping("/info/{madId}")
-    @RequiresPermissions("mkactivitiesdiscount:info")
+//    @RequiresPermissions("mkactivitiesdiscount:info")
     @ResponseBody
     public R info(@PathVariable("madId") Long madId) {
         MkActivitiesDiscountEntity mkActivitiesDiscount = mkActivitiesDiscountService.queryObject(madId);
@@ -61,7 +70,7 @@ public class MkActivitiesDiscountController {
      * 保存
      */
     @RequestMapping("/save")
-    @RequiresPermissions("mkactivitiesdiscount:save")
+//    @RequiresPermissions("mkactivitiesdiscount:save")
     @ResponseBody
     public R save(@RequestBody MkActivitiesDiscountEntity mkActivitiesDiscount) {
         mkActivitiesDiscountService.save(mkActivitiesDiscount);
@@ -73,7 +82,7 @@ public class MkActivitiesDiscountController {
      * 修改
      */
     @RequestMapping("/update")
-    @RequiresPermissions("mkactivitiesdiscount:update")
+//    @RequiresPermissions("mkactivitiesdiscount:update")
     @ResponseBody
     public R update(@RequestBody MkActivitiesDiscountEntity mkActivitiesDiscount) {
         mkActivitiesDiscountService.update(mkActivitiesDiscount);
@@ -85,7 +94,7 @@ public class MkActivitiesDiscountController {
      * 删除
      */
     @RequestMapping("/delete")
-    @RequiresPermissions("mkactivitiesdiscount:delete")
+//    @RequiresPermissions("mkactivitiesdiscount:delete")
     @ResponseBody
     public R delete(@RequestBody Long[]madIds) {
         mkActivitiesDiscountService.deleteBatch(madIds);
@@ -104,4 +113,36 @@ public class MkActivitiesDiscountController {
 
         return R.ok().put("list", list);
     }
+
+    /**
+     * 导入excel
+     */
+    @PostMapping("/upload")
+    @ResponseBody
+    public R storeUpload(@RequestParam("file") MultipartFile file, String storeId, String mkaId) {
+        List<DiscountedProductsDto> discountedProductsDtoList = new ArrayList<>();//信息
+        try {
+
+            DiscountedProductsDto discountedProductsDto= new DiscountedProductsDto();
+            Map<String, Object> beans = new HashMap<String, Object>();
+            beans.put("DiscountedProductsDto", discountedProductsDto);
+            beans.put("DiscountedProductsDtoList", discountedProductsDtoList);
+            if (file.isEmpty()) {
+                return R.error("文件不能为空!");
+            }
+            excelUtil.readExcel(JxlsXmlTemplateName.DISCOUNTED_PRODUCTS_DTO_LIST, beans, file.getInputStream());
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error("导入失败!");
+        }
+        try {
+            mkActivitiesDiscountService.uploadExcel(discountedProductsDtoList,storeId,mkaId);
+        }  catch (RuntimeException e){
+            e.printStackTrace();
+            return R.error(e.getMessage());
+        }
+        //上传文件
+        return R.ok("导入成功!");
+    }
+
 }

+ 47 - 6
kmall-admin/src/main/java/com/kmall/admin/controller/MkActivitiesFullGiftController.java

@@ -1,8 +1,15 @@
 package com.kmall.admin.controller;
 
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import com.kmall.admin.dto.DailyPriceGoodsDto;
+import com.kmall.admin.dto.FreeGoodsDto;
+import com.kmall.common.constant.JxlsXmlTemplateName;
+import com.kmall.common.utils.excel.ExcelUtil;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -13,6 +20,7 @@ import com.kmall.admin.service.MkActivitiesFullGiftService;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
 import com.kmall.common.utils.R;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 营销活动-满赠Controller
@@ -26,12 +34,13 @@ import com.kmall.common.utils.R;
 public class MkActivitiesFullGiftController {
     @Autowired
     private MkActivitiesFullGiftService mkActivitiesFullGiftService;
-
+    @Autowired
+    private ExcelUtil excelUtil;
     /**
      * 查看列表
      */
     @RequestMapping("/list")
-    @RequiresPermissions("mkactivitiesfullgift:list")
+//    @RequiresPermissions("mkactivitiesfullgift:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
         //查询列表数据
@@ -49,7 +58,7 @@ public class MkActivitiesFullGiftController {
      * 查看信息
      */
     @RequestMapping("/info/{mafrId}")
-    @RequiresPermissions("mkactivitiesfullgift:info")
+//    @RequiresPermissions("mkactivitiesfullgift:info")
     @ResponseBody
     public R info(@PathVariable("mafrId") Long mafrId) {
         MkActivitiesFullGiftEntity mkActivitiesFullGift = mkActivitiesFullGiftService.queryObject(mafrId);
@@ -61,7 +70,7 @@ public class MkActivitiesFullGiftController {
      * 保存
      */
     @RequestMapping("/save")
-    @RequiresPermissions("mkactivitiesfullgift:save")
+//    @RequiresPermissions("mkactivitiesfullgift:save")
     @ResponseBody
     public R save(@RequestBody MkActivitiesFullGiftEntity mkActivitiesFullGift) {
         mkActivitiesFullGiftService.save(mkActivitiesFullGift);
@@ -73,7 +82,7 @@ public class MkActivitiesFullGiftController {
      * 修改
      */
     @RequestMapping("/update")
-    @RequiresPermissions("mkactivitiesfullgift:update")
+//    @RequiresPermissions("mkactivitiesfullgift:update")
     @ResponseBody
     public R update(@RequestBody MkActivitiesFullGiftEntity mkActivitiesFullGift) {
         mkActivitiesFullGiftService.update(mkActivitiesFullGift);
@@ -85,7 +94,7 @@ public class MkActivitiesFullGiftController {
      * 删除
      */
     @RequestMapping("/delete")
-    @RequiresPermissions("mkactivitiesfullgift:delete")
+//    @RequiresPermissions("mkactivitiesfullgift:delete")
     @ResponseBody
     public R delete(@RequestBody Long[]mafrIds) {
         mkActivitiesFullGiftService.deleteBatch(mafrIds);
@@ -104,4 +113,36 @@ public class MkActivitiesFullGiftController {
 
         return R.ok().put("list", list);
     }
+
+    /**
+     * 导入excel
+     */
+    @PostMapping("/upload")
+    @ResponseBody
+    public R storeUpload(@RequestParam("file") MultipartFile file, String storeId, String mkaId) {
+        List<FreeGoodsDto> freeGoodsDtoList = new ArrayList<>();//信息
+        try {
+
+            FreeGoodsDto freeGoodsDto= new FreeGoodsDto();
+            Map<String, Object> beans = new HashMap<String, Object>();
+            beans.put("FreeGoodsDto", freeGoodsDto);
+            beans.put("FreeGoodsDtoList", freeGoodsDtoList);
+            if (file.isEmpty()) {
+                return R.error("文件不能为空!");
+            }
+            excelUtil.readExcel(JxlsXmlTemplateName.FREE_GOODS_DTO_LIST, beans, file.getInputStream());
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error("导入失败!");
+        }
+        try {
+            mkActivitiesFullGiftService.uploadExcel(freeGoodsDtoList,storeId,mkaId);
+        }  catch (RuntimeException e){
+            e.printStackTrace();
+            return R.error(e.getMessage());
+        }
+        //上传文件
+        return R.ok("导入成功!");
+    }
+
 }

+ 47 - 6
kmall-admin/src/main/java/com/kmall/admin/controller/MkActivitiesFullReductionController.java

@@ -1,8 +1,15 @@
 package com.kmall.admin.controller;
 
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import com.kmall.admin.dto.DailyPriceGoodsDto;
+import com.kmall.admin.dto.FullReductionDto;
+import com.kmall.common.constant.JxlsXmlTemplateName;
+import com.kmall.common.utils.excel.ExcelUtil;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -13,6 +20,7 @@ import com.kmall.admin.service.MkActivitiesFullReductionService;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
 import com.kmall.common.utils.R;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 商品编码为主要匹配/上传依据,商品条形码为辅助查看而已活动方式满减,满xxx元立减xx元(xController
@@ -26,12 +34,13 @@ import com.kmall.common.utils.R;
 public class MkActivitiesFullReductionController {
     @Autowired
     private MkActivitiesFullReductionService mkActivitiesFullReductionService;
-
+    @Autowired
+    private ExcelUtil excelUtil;
     /**
      * 查看列表
      */
     @RequestMapping("/list")
-    @RequiresPermissions("mkactivitiesfullreduction:list")
+//    @RequiresPermissions("mkactivitiesfullreduction:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
         //查询列表数据
@@ -49,7 +58,7 @@ public class MkActivitiesFullReductionController {
      * 查看信息
      */
     @RequestMapping("/info/{mafrId}")
-    @RequiresPermissions("mkactivitiesfullreduction:info")
+//    @RequiresPermissions("mkactivitiesfullreduction:info")
     @ResponseBody
     public R info(@PathVariable("mafrId") Long mafrId) {
         MkActivitiesFullReductionEntity mkActivitiesFullReduction = mkActivitiesFullReductionService.queryObject(mafrId);
@@ -61,7 +70,7 @@ public class MkActivitiesFullReductionController {
      * 保存
      */
     @RequestMapping("/save")
-    @RequiresPermissions("mkactivitiesfullreduction:save")
+//    @RequiresPermissions("mkactivitiesfullreduction:save")
     @ResponseBody
     public R save(@RequestBody MkActivitiesFullReductionEntity mkActivitiesFullReduction) {
         mkActivitiesFullReductionService.save(mkActivitiesFullReduction);
@@ -73,7 +82,7 @@ public class MkActivitiesFullReductionController {
      * 修改
      */
     @RequestMapping("/update")
-    @RequiresPermissions("mkactivitiesfullreduction:update")
+//    @RequiresPermissions("mkactivitiesfullreduction:update")
     @ResponseBody
     public R update(@RequestBody MkActivitiesFullReductionEntity mkActivitiesFullReduction) {
         mkActivitiesFullReductionService.update(mkActivitiesFullReduction);
@@ -85,7 +94,7 @@ public class MkActivitiesFullReductionController {
      * 删除
      */
     @RequestMapping("/delete")
-    @RequiresPermissions("mkactivitiesfullreduction:delete")
+//    @RequiresPermissions("mkactivitiesfullreduction:delete")
     @ResponseBody
     public R delete(@RequestBody Long[]mafrIds) {
         mkActivitiesFullReductionService.deleteBatch(mafrIds);
@@ -104,4 +113,36 @@ public class MkActivitiesFullReductionController {
 
         return R.ok().put("list", list);
     }
+
+    /**
+     * 导入excel
+     */
+    @PostMapping("/upload")
+    @ResponseBody
+    public R storeUpload(@RequestParam("file") MultipartFile file, String storeId, String mkaId) {
+        List<FullReductionDto> fullReductionDtoList = new ArrayList<>();//信息
+        try {
+
+            FullReductionDto fullReductionDto= new FullReductionDto();
+            Map<String, Object> beans = new HashMap<String, Object>();
+            beans.put("FullReductionDto", fullReductionDto);
+            beans.put("FullReductionDtoList", fullReductionDtoList);
+            if (file.isEmpty()) {
+                return R.error("文件不能为空!");
+            }
+            excelUtil.readExcel(JxlsXmlTemplateName.FULL_REDUCTION_DTO_LIST, beans, file.getInputStream());
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error("导入失败!");
+        }
+        try {
+            mkActivitiesFullReductionService.uploadExcel(fullReductionDtoList,storeId,mkaId);
+        } catch (RuntimeException e){
+            e.printStackTrace();
+            return R.error(e.getMessage());
+        }
+        //上传文件
+        return R.ok("导入成功!");
+    }
+
 }

+ 48 - 6
kmall-admin/src/main/java/com/kmall/admin/controller/MkActivitiesGetOneFreeGoodsController.java

@@ -1,8 +1,15 @@
 package com.kmall.admin.controller;
 
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import com.kmall.admin.dto.BuyOneGetOneFreeDto;
+import com.kmall.admin.dto.DailyPriceGoodsDto;
+import com.kmall.common.constant.JxlsXmlTemplateName;
+import com.kmall.common.utils.excel.ExcelUtil;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -13,6 +20,8 @@ import com.kmall.admin.service.MkActivitiesGetOneFreeGoodsService;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
 import com.kmall.common.utils.R;
+import org.springframework.web.multipart.MultipartFile;
+
 /**
  * 营销活动--买一送
 说明:购买商品条码,购买商品品牌,购买商品系列三列不可以同是为空Controller
@@ -26,12 +35,13 @@ import com.kmall.common.utils.R;
 public class MkActivitiesGetOneFreeGoodsController {
     @Autowired
     private MkActivitiesGetOneFreeGoodsService mkActivitiesGetOneFreeGoodsService;
-
+    @Autowired
+    private ExcelUtil excelUtil;
     /**
      * 查看列表
      */
     @RequestMapping("/list")
-    @RequiresPermissions("mkactivitiesgetonefreegoods:list")
+//    @RequiresPermissions("mkactivitiesgetonefreegoods:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
         //查询列表数据
@@ -49,7 +59,7 @@ public class MkActivitiesGetOneFreeGoodsController {
      * 查看信息
      */
     @RequestMapping("/info/{mkaFreeId}")
-    @RequiresPermissions("mkactivitiesgetonefreegoods:info")
+//    @RequiresPermissions("mkactivitiesgetonefreegoods:info")
     @ResponseBody
     public R info(@PathVariable("mkaFreeId") Long mkaFreeId) {
         MkActivitiesGetOneFreeGoodsEntity mkActivitiesGetOneFreeGoods = mkActivitiesGetOneFreeGoodsService.queryObject(mkaFreeId);
@@ -61,7 +71,7 @@ public class MkActivitiesGetOneFreeGoodsController {
      * 保存
      */
     @RequestMapping("/save")
-    @RequiresPermissions("mkactivitiesgetonefreegoods:save")
+//    @RequiresPermissions("mkactivitiesgetonefreegoods:save")
     @ResponseBody
     public R save(@RequestBody MkActivitiesGetOneFreeGoodsEntity mkActivitiesGetOneFreeGoods) {
         mkActivitiesGetOneFreeGoodsService.save(mkActivitiesGetOneFreeGoods);
@@ -73,7 +83,7 @@ public class MkActivitiesGetOneFreeGoodsController {
      * 修改
      */
     @RequestMapping("/update")
-    @RequiresPermissions("mkactivitiesgetonefreegoods:update")
+//    @RequiresPermissions("mkactivitiesgetonefreegoods:update")
     @ResponseBody
     public R update(@RequestBody MkActivitiesGetOneFreeGoodsEntity mkActivitiesGetOneFreeGoods) {
         mkActivitiesGetOneFreeGoodsService.update(mkActivitiesGetOneFreeGoods);
@@ -85,7 +95,7 @@ public class MkActivitiesGetOneFreeGoodsController {
      * 删除
      */
     @RequestMapping("/delete")
-    @RequiresPermissions("mkactivitiesgetonefreegoods:delete")
+//    @RequiresPermissions("mkactivitiesgetonefreegoods:delete")
     @ResponseBody
     public R delete(@RequestBody Long[]mkaFreeIds) {
         mkActivitiesGetOneFreeGoodsService.deleteBatch(mkaFreeIds);
@@ -104,4 +114,36 @@ public class MkActivitiesGetOneFreeGoodsController {
 
         return R.ok().put("list", list);
     }
+
+    /**
+     * 导入excel
+     */
+    @PostMapping("/upload")
+    @ResponseBody
+    public R storeUpload(@RequestParam("file") MultipartFile file, String storeId, String mkaId) {
+        List<BuyOneGetOneFreeDto> buyOneGetOneFreeDtoList = new ArrayList<>();//信息
+        try {
+
+            BuyOneGetOneFreeDto buyOneGetOneFreeDto= new BuyOneGetOneFreeDto();
+            Map<String, Object> beans = new HashMap<String, Object>();
+            beans.put("BuyOneGetOneFreeDto", buyOneGetOneFreeDto);
+            beans.put("BuyOneGetOneFreeDtoList", buyOneGetOneFreeDtoList);
+            if (file.isEmpty()) {
+                return R.error("文件不能为空!");
+            }
+            excelUtil.readExcel(JxlsXmlTemplateName.BUY_ONE_GET_ONE_FREE_DTO_LIST, beans, file.getInputStream());
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error("导入失败!");
+        }
+        try {
+            mkActivitiesGetOneFreeGoodsService.uploadExcel(buyOneGetOneFreeDtoList,storeId,mkaId);
+        } catch (RuntimeException e){
+            e.printStackTrace();
+            return R.error(e.getMessage());
+        }
+        //上传文件
+        return R.ok("导入成功!");
+    }
+
 }

+ 47 - 6
kmall-admin/src/main/java/com/kmall/admin/controller/MkActivitiesPromotionController.java

@@ -1,8 +1,15 @@
 package com.kmall.admin.controller;
 
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import com.kmall.admin.dto.DailyPriceGoodsDto;
+import com.kmall.admin.dto.TemporaryPromotionalItemsDto;
+import com.kmall.common.constant.JxlsXmlTemplateName;
+import com.kmall.common.utils.excel.ExcelUtil;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -13,6 +20,7 @@ import com.kmall.admin.service.MkActivitiesPromotionService;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
 import com.kmall.common.utils.R;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 营销活动-临时促销Controller
@@ -26,12 +34,13 @@ import com.kmall.common.utils.R;
 public class MkActivitiesPromotionController {
     @Autowired
     private MkActivitiesPromotionService mkActivitiesPromotionService;
-
+    @Autowired
+    private ExcelUtil excelUtil;
     /**
      * 查看列表
      */
     @RequestMapping("/list")
-    @RequiresPermissions("mkactivitiespromotion:list")
+//    @RequiresPermissions("mkactivitiespromotion:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
         //查询列表数据
@@ -49,7 +58,7 @@ public class MkActivitiesPromotionController {
      * 查看信息
      */
     @RequestMapping("/info/{mapId}")
-    @RequiresPermissions("mkactivitiespromotion:info")
+//    @RequiresPermissions("mkactivitiespromotion:info")
     @ResponseBody
     public R info(@PathVariable("mapId") Long mapId) {
         MkActivitiesPromotionEntity mkActivitiesPromotion = mkActivitiesPromotionService.queryObject(mapId);
@@ -61,7 +70,7 @@ public class MkActivitiesPromotionController {
      * 保存
      */
     @RequestMapping("/save")
-    @RequiresPermissions("mkactivitiespromotion:save")
+//    @RequiresPermissions("mkactivitiespromotion:save")
     @ResponseBody
     public R save(@RequestBody MkActivitiesPromotionEntity mkActivitiesPromotion) {
         mkActivitiesPromotionService.save(mkActivitiesPromotion);
@@ -73,7 +82,7 @@ public class MkActivitiesPromotionController {
      * 修改
      */
     @RequestMapping("/update")
-    @RequiresPermissions("mkactivitiespromotion:update")
+//    @RequiresPermissions("mkactivitiespromotion:update")
     @ResponseBody
     public R update(@RequestBody MkActivitiesPromotionEntity mkActivitiesPromotion) {
         mkActivitiesPromotionService.update(mkActivitiesPromotion);
@@ -85,7 +94,7 @@ public class MkActivitiesPromotionController {
      * 删除
      */
     @RequestMapping("/delete")
-    @RequiresPermissions("mkactivitiespromotion:delete")
+//    @RequiresPermissions("mkactivitiespromotion:delete")
     @ResponseBody
     public R delete(@RequestBody Long[]mapIds) {
         mkActivitiesPromotionService.deleteBatch(mapIds);
@@ -104,4 +113,36 @@ public class MkActivitiesPromotionController {
 
         return R.ok().put("list", list);
     }
+
+    /**
+     * 导入excel
+     */
+    @PostMapping("/upload")
+    @ResponseBody
+    public R storeUpload(@RequestParam("file") MultipartFile file, String storeId, String mkaId) {
+        List<TemporaryPromotionalItemsDto> temporaryPromotionalItemsDtoList = new ArrayList<>();//信息
+        try {
+
+            TemporaryPromotionalItemsDto temporaryPromotionalItemsDto= new TemporaryPromotionalItemsDto();
+            Map<String, Object> beans = new HashMap<String, Object>();
+            beans.put("TemporaryPromotionalItemsDto", temporaryPromotionalItemsDto);
+            beans.put("TemporaryPromotionalItemsDtoList", temporaryPromotionalItemsDtoList);
+            if (file.isEmpty()) {
+                return R.error("文件不能为空!");
+            }
+            excelUtil.readExcel(JxlsXmlTemplateName.TEMPORARY_PROMOTIONAL_ITEMS_DTO_LIST, beans, file.getInputStream());
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error("导入失败!");
+        }
+        try {
+            mkActivitiesPromotionService.uploadExcel(temporaryPromotionalItemsDtoList,storeId,mkaId);
+        } catch (RuntimeException e){
+            e.printStackTrace();
+            return R.error(e.getMessage());
+        }
+        //上传文件
+        return R.ok("导入成功!");
+    }
+
 }

+ 57 - 5
kmall-admin/src/main/java/com/kmall/admin/controller/MkDailyActivitiesController.java

@@ -1,8 +1,15 @@
 package com.kmall.admin.controller;
 
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import com.kmall.admin.dto.DailyPriceGoodsDto;
+import com.kmall.admin.dto.StoreTopicGoodsDto;
+import com.kmall.common.constant.JxlsXmlTemplateName;
+import com.kmall.common.utils.excel.ExcelUtil;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -13,6 +20,8 @@ import com.kmall.admin.service.MkDailyActivitiesService;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
 import com.kmall.common.utils.R;
+import org.springframework.web.multipart.MultipartFile;
+
 /**
  * 营销活动-日常活动Controller
  *
@@ -26,11 +35,13 @@ public class MkDailyActivitiesController {
     @Autowired
     private MkDailyActivitiesService mkDailyActivitiesService;
 
+    @Autowired
+    private ExcelUtil excelUtil;
     /**
      * 查看列表
      */
     @RequestMapping("/list")
-    @RequiresPermissions("mkdailyactivities:list")
+//    @RequiresPermissions("mkdailyactivities:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
         //查询列表数据
@@ -48,7 +59,7 @@ public class MkDailyActivitiesController {
      * 查看信息
      */
     @RequestMapping("/info/{mdaId}")
-    @RequiresPermissions("mkdailyactivities:info")
+//    @RequiresPermissions("mkdailyactivities:info")
     @ResponseBody
     public R info(@PathVariable("mdaId") Long mdaId) {
         MkDailyActivitiesEntity mkDailyActivities = mkDailyActivitiesService.queryObject(mdaId);
@@ -60,7 +71,7 @@ public class MkDailyActivitiesController {
      * 保存
      */
     @RequestMapping("/save")
-    @RequiresPermissions("mkdailyactivities:save")
+//    @RequiresPermissions("mkdailyactivities:save")
     @ResponseBody
     public R save(@RequestBody MkDailyActivitiesEntity mkDailyActivities) {
         mkDailyActivitiesService.save(mkDailyActivities);
@@ -72,7 +83,7 @@ public class MkDailyActivitiesController {
      * 修改
      */
     @RequestMapping("/update")
-    @RequiresPermissions("mkdailyactivities:update")
+//    @RequiresPermissions("mkdailyactivities:update")
     @ResponseBody
     public R update(@RequestBody MkDailyActivitiesEntity mkDailyActivities) {
         mkDailyActivitiesService.update(mkDailyActivities);
@@ -84,7 +95,7 @@ public class MkDailyActivitiesController {
      * 删除
      */
     @RequestMapping("/delete")
-    @RequiresPermissions("mkdailyactivities:delete")
+//    @RequiresPermissions("mkdailyactivities:delete")
     @ResponseBody
     public R delete(@RequestBody Long[]mdaIds) {
         mkDailyActivitiesService.deleteBatch(mdaIds);
@@ -103,4 +114,45 @@ public class MkDailyActivitiesController {
 
         return R.ok().put("list", list);
     }
+
+
+    /**
+     * 导入excel
+     */
+    @PostMapping("/upload")
+    @ResponseBody
+    public R storeUpload(@RequestParam("file") MultipartFile file, String storeId,String mkaId) {
+        List<DailyPriceGoodsDto> dailyPriceGoodsDtoList = new ArrayList<>();//信息
+        try {
+
+            DailyPriceGoodsDto dailyPriceGoodsDto= new DailyPriceGoodsDto();
+            Map<String, Object> beans = new HashMap<String, Object>();
+            beans.put("DailyPriceGoodsDto", dailyPriceGoodsDto);
+            beans.put("DailyPriceGoodsDtoList", dailyPriceGoodsDtoList);
+            if (file.isEmpty()) {
+                return R.error("文件不能为空!");
+            }
+            excelUtil.readExcel(JxlsXmlTemplateName.DAILY_PRICE_GOODS_DTO_LIST, beans, file.getInputStream());
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error("导入失败!");
+        }
+        try {
+            mkDailyActivitiesService.uploadExcel(dailyPriceGoodsDtoList,storeId,mkaId);
+        } catch (ParseException e) {
+            e.printStackTrace();
+            return R.error("导入失败!");
+        } catch (RuntimeException e){
+            e.printStackTrace();
+            return R.error(e.getMessage());
+        }
+        //上传文件
+        return R.ok("导入成功!");
+    }
+
+
+
+
+
+
 }

+ 8 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/BrandDao.java

@@ -17,4 +17,12 @@ public interface BrandDao extends BaseDao<BrandEntity> {
     BrandEntity queryObjectByName(@Param("brandName")String brandName,@Param("merchSn")String merchSn);
     List<BrandEntity> queryObjectByStoreId(@Param("storeId") Long storeId);
     BrandEntity queryBrandByBrandNameAndStoreId(@Param("brandName")String brandName,@Param("storeId") Long storeId);
+
+    /**
+     * 根据条形码查询品牌名称
+     * @param prodBarcode
+     * @param storeId
+     * @return
+     */
+    String queryBrandName(@Param("prodBarcode") String prodBarcode, @Param("storeId") String storeId);
 }

+ 9 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/MkActivitiesCouponDao.java

@@ -2,6 +2,7 @@ package com.kmall.admin.dao;
 
 import com.kmall.admin.entity.MkActivitiesCouponEntity;
 import com.kmall.manager.dao.BaseDao;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 营销活动-优惠券Dao
@@ -12,4 +13,12 @@ import com.kmall.manager.dao.BaseDao;
  */
 public interface MkActivitiesCouponDao extends BaseDao<MkActivitiesCouponEntity> {
 
+    /**
+     * 根据条码查询日常活动价格
+     * @param mkaId
+     * @param prodBarcode
+     * @return
+     */
+    MkActivitiesCouponEntity queryByBarCode(@Param("mkaId") Long mkaId,
+                                            @Param("prodBarcode") String prodBarcode);
 }

+ 9 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/MkActivitiesDiscountDao.java

@@ -3,6 +3,7 @@ package com.kmall.admin.dao;
 
 import com.kmall.admin.entity.MkActivitiesDiscountEntity;
 import com.kmall.manager.dao.BaseDao;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 营销活动-全场打折Dao
@@ -13,4 +14,12 @@ import com.kmall.manager.dao.BaseDao;
  */
 public interface MkActivitiesDiscountDao extends BaseDao<MkActivitiesDiscountEntity> {
 
+    /**
+     * 根据条形码与营销活动id查询
+     *
+     * @param mkaId
+     * @param prodBarcode
+     * @return
+     */
+    MkActivitiesDiscountEntity queryByBarCode(@Param("mkaId") Long mkaId, @Param("prodBarcode") String prodBarcode);
 }

+ 13 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/MkActivitiesFullGiftDao.java

@@ -3,6 +3,7 @@ package com.kmall.admin.dao;
 
 import com.kmall.admin.entity.MkActivitiesFullGiftEntity;
 import com.kmall.manager.dao.BaseDao;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 营销活动-满赠Dao
@@ -13,4 +14,16 @@ import com.kmall.manager.dao.BaseDao;
  */
 public interface MkActivitiesFullGiftDao extends BaseDao<MkActivitiesFullGiftEntity> {
 
+    /**
+     * 根据品牌、条形码、当前时间查询是否有满赠的商品条码
+     * @param mkaId
+     * @param prodBarcode
+     * @param brandName
+     * @param nowTime
+     * @return
+     */
+    MkActivitiesFullGiftEntity queryByCodeOrBrand(@Param("mkaId") Long mkaId,
+                                                  @Param("prodBarcode") String prodBarcode,
+                                                  @Param("brandName") String brandName,
+                                                  @Param("nowTime") String nowTime);
 }

+ 12 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/MkActivitiesFullReductionDao.java

@@ -3,6 +3,7 @@ package com.kmall.admin.dao;
 
 import com.kmall.admin.entity.MkActivitiesFullReductionEntity;
 import com.kmall.manager.dao.BaseDao;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 商品编码为主要匹配/上传依据,商品条形码为辅助查看而已活动方式满减,满xxx元立减xx元(xDao
@@ -13,4 +14,15 @@ import com.kmall.manager.dao.BaseDao;
  */
 public interface MkActivitiesFullReductionDao extends BaseDao<MkActivitiesFullReductionEntity> {
 
+    /**
+     * 根据品牌或条形码查询是否有对应的满减活动
+     * @param mkaId
+     * @param prodBarcode
+     * @param brandName
+     * @return
+     */
+    MkActivitiesFullReductionEntity queryByCodeOrBrand(@Param("mkaId") Long mkaId,
+                                                       @Param("prodBarcode") String prodBarcode,
+                                                       @Param("brandName") String brandName,
+                                                       @Param("deadline") String deadline);
 }

+ 11 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/MkActivitiesGetOneFreeGoodsDao.java

@@ -3,6 +3,7 @@ package com.kmall.admin.dao;
 
 import com.kmall.admin.entity.MkActivitiesGetOneFreeGoodsEntity;
 import com.kmall.manager.dao.BaseDao;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 营销活动--买一送
@@ -14,4 +15,14 @@ import com.kmall.manager.dao.BaseDao;
  */
 public interface MkActivitiesGetOneFreeGoodsDao extends BaseDao<MkActivitiesGetOneFreeGoodsEntity> {
 
+    /**
+     *
+     * @param mkaId
+     * @param prodBarcode
+     * @param brandName
+     * @return
+     */
+    MkActivitiesGetOneFreeGoodsEntity queryByCodeOrBrand(@Param("mkaId") Long mkaId,
+                                                         @Param("prodBarcode") String prodBarcode,
+                                                         @Param("brandName") String brandName);
 }

+ 9 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/MkActivitiesPromotionDao.java

@@ -3,6 +3,7 @@ package com.kmall.admin.dao;
 
 import com.kmall.admin.entity.MkActivitiesPromotionEntity;
 import com.kmall.manager.dao.BaseDao;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 营销活动-临时促销Dao
@@ -13,4 +14,12 @@ import com.kmall.manager.dao.BaseDao;
  */
 public interface MkActivitiesPromotionDao extends BaseDao<MkActivitiesPromotionEntity> {
 
+    /**
+     * 根据条码查询日常活动价格
+     * @param mkaId
+     * @param prodBarcode
+     * @return
+     */
+    MkActivitiesPromotionEntity queryByBarCode(@Param("mkaId") Long mkaId,
+                                               @Param("prodBarcode") String prodBarcode);
 }

+ 9 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/MkDailyActivitiesDao.java

@@ -3,6 +3,7 @@ package com.kmall.admin.dao;
 
 import com.kmall.admin.entity.MkDailyActivitiesEntity;
 import com.kmall.manager.dao.BaseDao;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 营销活动-日常活动Dao
@@ -13,4 +14,12 @@ import com.kmall.manager.dao.BaseDao;
  */
 public interface MkDailyActivitiesDao extends BaseDao<MkDailyActivitiesEntity> {
 
+    /**
+     * 根据条码查询日常活动价格
+     * @param mkaId
+     * @param prodBarcode
+     * @return
+     */
+    MkDailyActivitiesEntity queryByBarCode(@Param("mkaId") Long mkaId,
+                                           @Param("prodBarcode") String prodBarcode);
 }

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

@@ -2,6 +2,9 @@ package com.kmall.admin.dao.mk;
 
 import com.kmall.admin.entity.mk.MkActivitiesEntity;
 import com.kmall.manager.dao.BaseDao;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * 营销活动表Dao
@@ -12,4 +15,11 @@ import com.kmall.manager.dao.BaseDao;
  */
 public interface MkActivitiesDao extends BaseDao<MkActivitiesEntity> {
 
+    /**
+     * 根据门店id和当前时间查询有哪些营销方式
+     * @param storeId
+     * @param currentTime
+     * @return
+     */
+    List<MkActivitiesEntity> queryByNow(@Param("storeId") String storeId, @Param("currentTime") String currentTime);
 }

+ 64 - 0
kmall-admin/src/main/java/com/kmall/admin/dto/BuyOneGetOneFreeDto.java

@@ -0,0 +1,64 @@
+package com.kmall.admin.dto;
+
+import java.io.Serializable;
+
+/**
+ * @author zhangchuangbiao
+ * @version 1.0
+ * 2020-09-24 10:01
+ * 买一送一的模板
+ */
+public class BuyOneGetOneFreeDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private String storeId ; // 门店id
+    private String buyGoodsSn; // 购买商品编码
+    private String buyBarCode; // 购买商品条码
+    private String buyBrand; // 购买商品品牌
+    private String sendBarCode; // 赠送商品条码
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public String getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(String storeId) {
+        this.storeId = storeId;
+    }
+
+    public String getBuyGoodsSn() {
+        return buyGoodsSn;
+    }
+
+    public void setBuyGoodsSn(String buyGoodsSn) {
+        this.buyGoodsSn = buyGoodsSn;
+    }
+
+    public String getBuyBarCode() {
+        return buyBarCode;
+    }
+
+    public void setBuyBarCode(String buyBarCode) {
+        this.buyBarCode = buyBarCode;
+    }
+
+    public String getBuyBrand() {
+        return buyBrand;
+    }
+
+    public void setBuyBrand(String buyBrand) {
+        this.buyBrand = buyBrand;
+    }
+
+    public String getSendBarCode() {
+        return sendBarCode;
+    }
+
+    public void setSendBarCode(String sendBarCode) {
+        this.sendBarCode = sendBarCode;
+    }
+}

+ 60 - 0
kmall-admin/src/main/java/com/kmall/admin/dto/CombinationPriceGoodsDto.java

@@ -0,0 +1,60 @@
+package com.kmall.admin.dto;
+
+import java.io.Serializable;
+
+/**
+ * @author zhangchuangbiao
+ * @version 1.0
+ * 2020-09-24 10:01
+ * 组合价的模板
+ */
+public class CombinationPriceGoodsDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String goodsSns; // 商品编码的字符串 用 ":" 分隔
+    private String barCodes; // 商品条码的字符串 用 ":" 分隔
+    private String combinedPrice; // 组合价
+    private String combinedCount; // 组合的产品件数
+    private String deadline; // 截止日期
+
+
+    public String getGoodsSns() {
+        return goodsSns;
+    }
+
+    public void setGoodsSns(String goodsSns) {
+        this.goodsSns = goodsSns;
+    }
+
+    public String getBarCodes() {
+        return barCodes;
+    }
+
+    public void setBarCodes(String barCodes) {
+        this.barCodes = barCodes;
+    }
+
+    public String getCombinedPrice() {
+        return combinedPrice;
+    }
+
+    public void setCombinedPrice(String combinedPrice) {
+        this.combinedPrice = combinedPrice;
+    }
+
+    public String getCombinedCount() {
+        return combinedCount;
+    }
+
+    public void setCombinedCount(String combinedCount) {
+        this.combinedCount = combinedCount;
+    }
+
+    public String getDeadline() {
+        return deadline;
+    }
+
+    public void setDeadline(String deadline) {
+        this.deadline = deadline;
+    }
+}

+ 68 - 0
kmall-admin/src/main/java/com/kmall/admin/dto/CouponMerchandiseDto.java

@@ -0,0 +1,68 @@
+package com.kmall.admin.dto;
+
+import java.io.Serializable;
+
+/**
+ * @author zhangchuangbiao
+ * @version 1.0
+ * 2020-09-24 10:01
+ * 优惠券的模板
+ */
+public class CouponMerchandiseDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String storeId; // 门店编号
+    private String goodsSn; // 商品编码
+    private String barCode; // 商品条码
+    private String deadline; // 截止日期
+    private String discountPrice; // 折扣价格
+    private String couponSn; // 优惠券码
+
+    public String getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(String storeId) {
+        this.storeId = storeId;
+    }
+
+    public String getGoodsSn() {
+        return goodsSn;
+    }
+
+    public void setGoodsSn(String goodsSn) {
+        this.goodsSn = goodsSn;
+    }
+
+    public String getBarCode() {
+        return barCode;
+    }
+
+    public void setBarCode(String barCode) {
+        this.barCode = barCode;
+    }
+
+    public String getDeadline() {
+        return deadline;
+    }
+
+    public void setDeadline(String deadline) {
+        this.deadline = deadline;
+    }
+
+    public String getDiscountPrice() {
+        return discountPrice;
+    }
+
+    public void setDiscountPrice(String discountPrice) {
+        this.discountPrice = discountPrice;
+    }
+
+    public String getCouponSn() {
+        return couponSn;
+    }
+
+    public void setCouponSn(String couponSn) {
+        this.couponSn = couponSn;
+    }
+}

+ 87 - 0
kmall-admin/src/main/java/com/kmall/admin/dto/DailyPriceGoodsDto.java

@@ -0,0 +1,87 @@
+package com.kmall.admin.dto;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author zhangchuangbiao
+ * @version 1.0
+ * 2020-09-24 10:00
+ * 日常价的模板
+ */
+public class DailyPriceGoodsDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String storeId; // 门店编号
+    private String goodsSn; // 商品编码
+    private String barCode; // 商品条码
+    private String goodsName; // 产品名称
+    private String goodsEnglishName; // 产品英文名称
+    private String daliyPrice; // 日常价格
+    private String activitiesPrice; // 活动价格
+    private String deadline; // 截止日期
+
+    public String getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(String storeId) {
+        this.storeId = storeId;
+    }
+
+    public String getGoodsSn() {
+        return goodsSn;
+    }
+
+    public void setGoodsSn(String goodsSn) {
+        this.goodsSn = goodsSn;
+    }
+
+    public String getBarCode() {
+        return barCode;
+    }
+
+    public void setBarCode(String barCode) {
+        this.barCode = barCode;
+    }
+
+    public String getGoodsName() {
+        return goodsName;
+    }
+
+    public void setGoodsName(String goodsName) {
+        this.goodsName = goodsName;
+    }
+
+    public String getGoodsEnglishName() {
+        return goodsEnglishName;
+    }
+
+    public void setGoodsEnglishName(String goodsEnglishName) {
+        this.goodsEnglishName = goodsEnglishName;
+    }
+
+    public String getDaliyPrice() {
+        return daliyPrice;
+    }
+
+    public void setDaliyPrice(String daliyPrice) {
+        this.daliyPrice = daliyPrice;
+    }
+
+    public String getActivitiesPrice() {
+        return activitiesPrice;
+    }
+
+    public void setActivitiesPrice(String activitiesPrice) {
+        this.activitiesPrice = activitiesPrice;
+    }
+
+    public String getDeadline() {
+        return deadline;
+    }
+
+    public void setDeadline(String deadline) {
+        this.deadline = deadline;
+    }
+}

+ 77 - 0
kmall-admin/src/main/java/com/kmall/admin/dto/DiscountedProductsDto.java

@@ -0,0 +1,77 @@
+package com.kmall.admin.dto;
+
+import java.io.Serializable;
+
+/**
+ * @author zhangchuangbiao
+ * @version 1.0
+ * 2020-09-24 10:01
+ * 折扣的模板
+ */
+public class DiscountedProductsDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String storeId; // 门店编号
+    private String goodsSn; // 商品编码
+    private String barCode; // 商品条码
+    private String goodsName; // 产品名称
+    private String goodsEnglishName; // 产品英文名称
+    private String daliyPrice; // 日常价格
+    private String discountPrice; // 折扣价格
+
+    public String getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(String storeId) {
+        this.storeId = storeId;
+    }
+
+    public String getGoodsSn() {
+        return goodsSn;
+    }
+
+    public void setGoodsSn(String goodsSn) {
+        this.goodsSn = goodsSn;
+    }
+
+    public String getBarCode() {
+        return barCode;
+    }
+
+    public void setBarCode(String barCode) {
+        this.barCode = barCode;
+    }
+
+    public String getGoodsName() {
+        return goodsName;
+    }
+
+    public void setGoodsName(String goodsName) {
+        this.goodsName = goodsName;
+    }
+
+    public String getGoodsEnglishName() {
+        return goodsEnglishName;
+    }
+
+    public void setGoodsEnglishName(String goodsEnglishName) {
+        this.goodsEnglishName = goodsEnglishName;
+    }
+
+    public String getDaliyPrice() {
+        return daliyPrice;
+    }
+
+    public void setDaliyPrice(String daliyPrice) {
+        this.daliyPrice = daliyPrice;
+    }
+
+    public String getDiscountPrice() {
+        return discountPrice;
+    }
+
+    public void setDiscountPrice(String discountPrice) {
+        this.discountPrice = discountPrice;
+    }
+}

+ 86 - 0
kmall-admin/src/main/java/com/kmall/admin/dto/FreeGoodsDto.java

@@ -0,0 +1,86 @@
+package com.kmall.admin.dto;
+
+import java.io.Serializable;
+
+/**
+ * @author zhangchuangbiao
+ * @version 1.0
+ * 2020-09-24 10:01
+ * 满赠的模板
+ */
+public class FreeGoodsDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String storeId; // 门店编号
+    private String fullReductionPrice; // 满赠达到金额
+    private String brand; // 商品品牌
+    private String goodsSn; // 商品编号
+    private String barCode; // 商品条码
+    private String sendGoodsSn; // 赠送商品编号
+    private String sendBarCode; // 赠送商品条码
+    private String deadline; // 截止日期
+
+    public String getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(String storeId) {
+        this.storeId = storeId;
+    }
+
+    public String getFullReductionPrice() {
+        return fullReductionPrice;
+    }
+
+    public void setFullReductionPrice(String fullReductionPrice) {
+        this.fullReductionPrice = fullReductionPrice;
+    }
+
+    public String getBrand() {
+        return brand;
+    }
+
+    public void setBrand(String brand) {
+        this.brand = brand;
+    }
+
+    public String getGoodsSn() {
+        return goodsSn;
+    }
+
+    public void setGoodsSn(String goodsSn) {
+        this.goodsSn = goodsSn;
+    }
+
+    public String getBarCode() {
+        return barCode;
+    }
+
+    public void setBarCode(String barCode) {
+        this.barCode = barCode;
+    }
+
+    public String getSendGoodsSn() {
+        return sendGoodsSn;
+    }
+
+    public void setSendGoodsSn(String sendGoodsSn) {
+        this.sendGoodsSn = sendGoodsSn;
+    }
+
+    public String getSendBarCode() {
+        return sendBarCode;
+    }
+
+    public void setSendBarCode(String sendBarCode) {
+        this.sendBarCode = sendBarCode;
+    }
+
+    public String getDeadline() {
+        return deadline;
+    }
+
+    public void setDeadline(String deadline) {
+        this.deadline = deadline;
+    }
+}

+ 84 - 0
kmall-admin/src/main/java/com/kmall/admin/dto/FullReductionDto.java

@@ -0,0 +1,84 @@
+package com.kmall.admin.dto;
+
+import java.io.Serializable;
+
+/**
+ * @author zhangchuangbiao
+ * @version 1.0
+ * 2020-09-24 10:01
+ * 满减的模板
+ */
+public class FullReductionDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    private String storeId; // 门店编号
+    private String fullReductionPrice; // 满减达到金额
+    private String brand; // 商品品牌
+    private String goodsSn; // 商品编号
+    private String barCode; // 商品条码
+    private String discountedPrice; // 优惠金额
+    private String deadline; // 截止日期
+
+
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public String getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(String storeId) {
+        this.storeId = storeId;
+    }
+
+    public String getFullReductionPrice() {
+        return fullReductionPrice;
+    }
+
+    public void setFullReductionPrice(String fullReductionPrice) {
+        this.fullReductionPrice = fullReductionPrice;
+    }
+
+    public String getBrand() {
+        return brand;
+    }
+
+    public void setBrand(String brand) {
+        this.brand = brand;
+    }
+
+    public String getGoodsSn() {
+        return goodsSn;
+    }
+
+    public void setGoodsSn(String goodsSn) {
+        this.goodsSn = goodsSn;
+    }
+
+    public String getBarCode() {
+        return barCode;
+    }
+
+    public void setBarCode(String barCode) {
+        this.barCode = barCode;
+    }
+
+    public String getDiscountedPrice() {
+        return discountedPrice;
+    }
+
+    public void setDiscountedPrice(String discountedPrice) {
+        this.discountedPrice = discountedPrice;
+    }
+
+    public String getDeadline() {
+        return deadline;
+    }
+
+    public void setDeadline(String deadline) {
+        this.deadline = deadline;
+    }
+}

+ 29 - 0
kmall-admin/src/main/java/com/kmall/admin/dto/GoodsDetailsDto.java

@@ -39,6 +39,11 @@ public class GoodsDetailsDto {
     //门店商品库存
     private String stockNum;
 
+    private BigDecimal discountedPrice; // 优惠价格
+    private BigDecimal actualPaymentAmount; // 实际支付价格
+    // 活动类别
+    private String activity;
+
     public String getStockNum() {
         return stockNum;
     }
@@ -134,4 +139,28 @@ public class GoodsDetailsDto {
     public void setRetailPrice(BigDecimal retailPrice) {
         this.retailPrice = retailPrice;
     }
+
+    public String getActivity() {
+        return activity;
+    }
+
+    public void setActivity(String activity) {
+        this.activity = activity;
+    }
+
+    public BigDecimal getDiscountedPrice() {
+        return discountedPrice;
+    }
+
+    public void setDiscountedPrice(BigDecimal discountedPrice) {
+        this.discountedPrice = discountedPrice;
+    }
+
+    public BigDecimal getActualPaymentAmount() {
+        return actualPaymentAmount;
+    }
+
+    public void setActualPaymentAmount(BigDecimal actualPaymentAmount) {
+        this.actualPaymentAmount = actualPaymentAmount;
+    }
 }

+ 88 - 0
kmall-admin/src/main/java/com/kmall/admin/dto/TemporaryPromotionalItemsDto.java

@@ -0,0 +1,88 @@
+package com.kmall.admin.dto;
+
+import java.io.Serializable;
+
+/**
+ * @author zhangchuangbiao
+ * @version 1.0
+ * 2020-09-24 10:01
+ * 临时促销的模板
+ */
+public class TemporaryPromotionalItemsDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private String storeId; // 门店编号
+    private String goodsSn; // 商品编码
+    private String barCode; // 商品条码
+    private String goodsName; // 产品名称
+    private String goodsEnglishName; // 产品英文名称
+    private String daliyPrice; // 日常价格
+    private String activitiesPrice; // 活动价格
+    private String deadline; // 截止日期
+
+
+    public String getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(String storeId) {
+        this.storeId = storeId;
+    }
+
+    public String getGoodsSn() {
+        return goodsSn;
+    }
+
+    public void setGoodsSn(String goodsSn) {
+        this.goodsSn = goodsSn;
+    }
+
+    public String getBarCode() {
+        return barCode;
+    }
+
+    public void setBarCode(String barCode) {
+        this.barCode = barCode;
+    }
+
+    public String getGoodsName() {
+        return goodsName;
+    }
+
+    public void setGoodsName(String goodsName) {
+        this.goodsName = goodsName;
+    }
+
+    public String getGoodsEnglishName() {
+        return goodsEnglishName;
+    }
+
+    public void setGoodsEnglishName(String goodsEnglishName) {
+        this.goodsEnglishName = goodsEnglishName;
+    }
+
+    public String getDaliyPrice() {
+        return daliyPrice;
+    }
+
+    public void setDaliyPrice(String daliyPrice) {
+        this.daliyPrice = daliyPrice;
+    }
+
+    public String getActivitiesPrice() {
+        return activitiesPrice;
+    }
+
+    public void setActivitiesPrice(String activitiesPrice) {
+        this.activitiesPrice = activitiesPrice;
+    }
+
+    public String getDeadline() {
+        return deadline;
+    }
+
+    public void setDeadline(String deadline) {
+        this.deadline = deadline;
+    }
+}

+ 11 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/GoodsEntity.java

@@ -223,6 +223,9 @@ public class GoodsEntity implements Serializable {
     // 最后销售时间
     private Date lastSaleTime;
 
+    private String activity;
+
+
     public Date getLastSaleTime() {
         return lastSaleTime;
     }
@@ -1067,4 +1070,12 @@ public class GoodsEntity implements Serializable {
     public void setCusRecCode(String cusRecCode) {
         this.cusRecCode = cusRecCode;
     }
+
+    public String getActivity() {
+        return activity;
+    }
+
+    public void setActivity(String activity) {
+        this.activity = activity;
+    }
 }

+ 11 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/MkActivitiesCombinationPriceEntity.java

@@ -35,6 +35,8 @@ public class MkActivitiesCombinationPriceEntity implements Serializable {
      * 组合价
      */
     private BigDecimal combinedPrice;
+    private String combinationType;
+
     /**
      * 营销活动编号
      */
@@ -203,4 +205,13 @@ public class MkActivitiesCombinationPriceEntity implements Serializable {
     public Date getUpdateTime() {
         return updateTime;
     }
+
+
+    public String getCombinationType() {
+        return combinationType;
+    }
+
+    public void setCombinationType(String combinationType) {
+        this.combinationType = combinationType;
+    }
 }

+ 10 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/MkActivitiesFullGiftEntity.java

@@ -51,6 +51,8 @@ public class MkActivitiesFullGiftEntity implements Serializable {
      * 赠品条码
      */
     private String giftBarcode;
+    private String giftGoodsSn;
+
     /**
      * 营销活动编号
      */
@@ -271,4 +273,12 @@ public class MkActivitiesFullGiftEntity implements Serializable {
     public Date getUpdateTime() {
         return updateTime;
     }
+
+    public String getGiftGoodsSn() {
+        return giftGoodsSn;
+    }
+
+    public void setGiftGoodsSn(String giftGoodsSn) {
+        this.giftGoodsSn = giftGoodsSn;
+    }
 }

+ 10 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/MkDailyActivitiesEntity.java

@@ -72,6 +72,8 @@ public class MkDailyActivitiesEntity implements Serializable {
      */
     private Date updateTime;
 
+    private String deadline;
+
     /**
      * 设置:编号
      */
@@ -254,4 +256,12 @@ public class MkDailyActivitiesEntity implements Serializable {
     public Date getUpdateTime() {
         return updateTime;
     }
+
+    public String getDeadline() {
+        return deadline;
+    }
+
+    public void setDeadline(String deadline) {
+        this.deadline = deadline;
+    }
 }

+ 13 - 3
kmall-admin/src/main/java/com/kmall/admin/entity/OrderGoodsEntity.java

@@ -6,15 +6,15 @@ import java.util.Date;
 
 
 /**
- * 
- * 
+ *
+ *
  * @author Scott
  * @email
  * @date 2017-08-13 10:41:09
  */
 public class OrderGoodsEntity implements Serializable {
 	private static final long serialVersionUID = 1L;
-	
+
 	//主键
 	private Integer id;
 	//订单Id
@@ -65,6 +65,8 @@ public class OrderGoodsEntity implements Serializable {
 
 	private Integer promId;
 
+	private String activity;
+
 	public String getPlu() {
 		return plu;
 	}
@@ -325,4 +327,12 @@ public class OrderGoodsEntity implements Serializable {
 	public String getListPicUrl() {
 		return listPicUrl;
 	}
+
+	public String getActivity() {
+		return activity;
+	}
+
+	public void setActivity(String activity) {
+		this.activity = activity;
+	}
 }

+ 8 - 1
kmall-admin/src/main/java/com/kmall/admin/service/BrandService.java

@@ -2,7 +2,6 @@ package com.kmall.admin.service;
 
 import com.kmall.admin.dto.CateStoreDto;
 import com.kmall.admin.dto.CopyBrandDto;
-import com.kmall.admin.dto.CopyCategoryDto;
 import com.kmall.admin.entity.BrandEntity;
 
 import java.util.List;
@@ -76,4 +75,12 @@ public interface BrandService {
     CopyBrandDto checkBrandStoreUpload(List<CateStoreDto> cateStoreDtoList);
 
     int saveCopyCategory(CopyBrandDto copyBrandDto);
+
+    /**
+     * 根据条形码查询品牌名称
+     * @param prodBarcode
+     * @param storeId
+     * @return
+     */
+    String queryBrandName(String prodBarcode, String storeId);
 }

+ 8 - 0
kmall-admin/src/main/java/com/kmall/admin/service/GoodsService.java

@@ -151,4 +151,12 @@ public interface GoodsService {
      * @return
      */
     PDFGoodsDto queryForPDFData(String sku, String storeId, String prodBarcode);
+
+    /**
+     * 查询产品价格
+     * @param prodBarcode
+     * @param storeId
+     * @return
+     */
+    Map<String,Object> calculateGoodsDetail(String prodBarcode, String storeId);
 }

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

@@ -1,5 +1,7 @@
 package com.kmall.admin.service;
 
+import com.kmall.admin.dto.CombinationPriceGoodsDto;
+import com.kmall.admin.dto.DailyPriceGoodsDto;
 import com.kmall.admin.entity.MkActivitiesCombinationPriceEntity;
 
 import java.util.List;
@@ -69,4 +71,12 @@ public interface MkActivitiesCombinationPriceService {
      * @return 删除条数
      */
     int deleteBatch(Long[]macpIds);
+
+    /**
+     * 上传活动商品
+     * @param combinationPriceGoodsDtoList
+     * @param storeId
+     * @param mkaId
+     */
+    void uploadExcel(List<CombinationPriceGoodsDto> combinationPriceGoodsDtoList, String storeId, String mkaId);
 }

+ 18 - 0
kmall-admin/src/main/java/com/kmall/admin/service/MkActivitiesCouponService.java

@@ -1,5 +1,7 @@
 package com.kmall.admin.service;
 
+import com.kmall.admin.dto.CouponMerchandiseDto;
+import com.kmall.admin.dto.DailyPriceGoodsDto;
 import com.kmall.admin.entity.MkActivitiesCouponEntity;
 
 import java.util.List;
@@ -69,4 +71,20 @@ public interface MkActivitiesCouponService {
      * @return 删除条数
      */
     int deleteBatch(Long[]macIds);
+
+    /**
+     * 上传活动商品
+     * @param couponMerchandiseDtoList
+     * @param storeId
+     * @param mkaId
+     */
+    void uploadExcel(List<CouponMerchandiseDto> couponMerchandiseDtoList, String storeId, String mkaId);
+
+    /**
+     * 根据条码查询日常活动价格
+     * @param mkaId
+     * @param prodBarcode
+     * @return
+     */
+    MkActivitiesCouponEntity queryByBarCode(Long mkaId, String prodBarcode);
 }

+ 18 - 0
kmall-admin/src/main/java/com/kmall/admin/service/MkActivitiesDiscountService.java

@@ -1,5 +1,7 @@
 package com.kmall.admin.service;
 
+import com.kmall.admin.dto.DailyPriceGoodsDto;
+import com.kmall.admin.dto.DiscountedProductsDto;
 import com.kmall.admin.entity.MkActivitiesDiscountEntity;
 
 import java.util.List;
@@ -69,4 +71,20 @@ public interface MkActivitiesDiscountService {
      * @return 删除条数
      */
     int deleteBatch(Long[]madIds);
+
+    /**
+     * 上传活动商品
+     * @param discountedProductsDtoList
+     * @param storeId
+     * @param mkaId
+     */
+    void uploadExcel(List<DiscountedProductsDto> discountedProductsDtoList, String storeId, String mkaId);
+
+    /**
+     * 根据条形码与营销活动id查询
+     * @param mkaId
+     * @param prodBarcode
+     * @return
+     */
+    MkActivitiesDiscountEntity queryByBarCode(Long mkaId, String prodBarcode);
 }

+ 21 - 0
kmall-admin/src/main/java/com/kmall/admin/service/MkActivitiesFullGiftService.java

@@ -1,5 +1,7 @@
 package com.kmall.admin.service;
 
+import com.kmall.admin.dto.DailyPriceGoodsDto;
+import com.kmall.admin.dto.FreeGoodsDto;
 import com.kmall.admin.entity.MkActivitiesFullGiftEntity;
 
 import java.util.List;
@@ -69,4 +71,23 @@ public interface MkActivitiesFullGiftService {
      * @return 删除条数
      */
     int deleteBatch(Long[]mafrIds);
+
+
+    /**
+     * 上传活动商品
+     * @param freeGoodsDtoList
+     * @param storeId
+     * @param mkaId
+     */
+    void uploadExcel(List<FreeGoodsDto> freeGoodsDtoList, String storeId, String mkaId);
+
+    /**
+     * 根据品牌、条形码、当前时间查询是否有满赠的商品条码
+     * @param mkaId
+     * @param prodBarcode
+     * @param brandName
+     * @param nowTime
+     * @return
+     */
+    MkActivitiesFullGiftEntity queryByCodeOrBrand(Long mkaId, String prodBarcode, String brandName, String nowTime);
 }

+ 20 - 0
kmall-admin/src/main/java/com/kmall/admin/service/MkActivitiesFullReductionService.java

@@ -1,5 +1,7 @@
 package com.kmall.admin.service;
 
+import com.kmall.admin.dto.DailyPriceGoodsDto;
+import com.kmall.admin.dto.FullReductionDto;
 import com.kmall.admin.entity.MkActivitiesFullReductionEntity;
 
 import java.util.List;
@@ -69,4 +71,22 @@ public interface MkActivitiesFullReductionService {
      * @return 删除条数
      */
     int deleteBatch(Long[]mafrIds);
+
+    /**
+     * 上传活动商品
+     * @param fullReductionDtoList
+     * @param storeId
+     * @param mkaId
+     */
+    void uploadExcel(List<FullReductionDto> fullReductionDtoList, String storeId, String mkaId);
+
+    /**
+     * 根据品牌或条形码查询是否有对应的满减活动
+     * @param mkaId
+     * @param prodBarcode
+     * @param brandName
+     * @param deadline
+     * @return
+     */
+    MkActivitiesFullReductionEntity queryByCodeOrBrand(Long mkaId, String prodBarcode, String brandName,String deadline);
 }

+ 19 - 0
kmall-admin/src/main/java/com/kmall/admin/service/MkActivitiesGetOneFreeGoodsService.java

@@ -1,5 +1,7 @@
 package com.kmall.admin.service;
 
+import com.kmall.admin.dto.BuyOneGetOneFreeDto;
+import com.kmall.admin.dto.DailyPriceGoodsDto;
 import com.kmall.admin.entity.MkActivitiesGetOneFreeGoodsEntity;
 
 import java.util.List;
@@ -70,4 +72,21 @@ public interface MkActivitiesGetOneFreeGoodsService {
      * @return 删除条数
      */
     int deleteBatch(Long[]mkaFreeIds);
+
+    /**
+     * 上传活动商品
+     * @param buyOneGetOneFreeDtoList
+     * @param storeId
+     * @param mkaId
+     */
+    void uploadExcel(List<BuyOneGetOneFreeDto> buyOneGetOneFreeDtoList, String storeId, String mkaId);
+
+    /**
+     * 根据条码跟品牌名称查询
+     * @param mkaId
+     * @param prodBarcode
+     * @param brandName
+     * @return
+     */
+    MkActivitiesGetOneFreeGoodsEntity queryByCodeOrBrand(Long mkaId, String prodBarcode, String brandName);
 }

+ 17 - 0
kmall-admin/src/main/java/com/kmall/admin/service/MkActivitiesPromotionService.java

@@ -1,5 +1,6 @@
 package com.kmall.admin.service;
 
+import com.kmall.admin.dto.TemporaryPromotionalItemsDto;
 import com.kmall.admin.entity.MkActivitiesPromotionEntity;
 
 import java.util.List;
@@ -69,4 +70,20 @@ public interface MkActivitiesPromotionService {
      * @return 删除条数
      */
     int deleteBatch(Long[]mapIds);
+
+    /**
+     * 上传活动商品
+     * @param temporaryPromotionalItemsDtoList
+     * @param storeId
+     * @param mkaId
+     */
+    void uploadExcel(List<TemporaryPromotionalItemsDto> temporaryPromotionalItemsDtoList, String storeId, String mkaId);
+
+    /**
+     * 根据条码查询日常活动价格
+     * @param mkaId
+     * @param prodBarcode
+     * @return
+     */
+    MkActivitiesPromotionEntity queryByBarCode(Long mkaId, String prodBarcode);
 }

+ 18 - 0
kmall-admin/src/main/java/com/kmall/admin/service/MkDailyActivitiesService.java

@@ -1,7 +1,9 @@
 package com.kmall.admin.service;
 
+import com.kmall.admin.dto.DailyPriceGoodsDto;
 import com.kmall.admin.entity.MkDailyActivitiesEntity;
 
+import java.text.ParseException;
 import java.util.List;
 import java.util.Map;
 
@@ -69,4 +71,20 @@ public interface MkDailyActivitiesService {
      * @return 删除条数
      */
     int deleteBatch(Long[]mdaIds);
+
+    /**
+     * 上传活动商品
+     * @param dailyPriceGoodsDtoList
+     * @param storeId
+     * @param mkaId
+     */
+    void uploadExcel(List<DailyPriceGoodsDto> dailyPriceGoodsDtoList, String storeId, String mkaId) throws ParseException;
+
+    /**
+     * 根据条码查询日常活动价格
+     * @param mkaId
+     * @param prodBarcode
+     * @return
+     */
+    MkDailyActivitiesEntity queryByBarCode(Long mkaId, String prodBarcode);
 }

+ 12 - 1
kmall-admin/src/main/java/com/kmall/admin/service/impl/BrandServiceImpl.java

@@ -6,7 +6,6 @@ import com.kmall.admin.dto.CateStoreDto;
 import com.kmall.admin.dto.CopyBrandDto;
 import com.kmall.admin.entity.*;
 import com.kmall.admin.service.BrandService;
-import com.kmall.common.constant.Dict;
 import com.kmall.common.utils.MapBeanUtil;
 import com.kmall.common.utils.R;
 import com.kmall.common.utils.RRException;
@@ -178,4 +177,16 @@ public class BrandServiceImpl implements BrandService {
         }
         return 1;
     }
+
+    /**
+     * 根据条形码查询品牌名称
+     *
+     * @param prodBarcode
+     * @param storeId
+     * @return
+     */
+    @Override
+    public String queryBrandName(String prodBarcode, String storeId) {
+        return brandDao.queryBrandName(prodBarcode,storeId);
+    }
 }

+ 277 - 1
kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsServiceImpl.java

@@ -8,7 +8,10 @@ import com.kmall.admin.dto.GoodsDetailsDto;
 import com.kmall.admin.dto.GoodsDto;
 import com.kmall.admin.dto.GoodsPanoramaDto;
 import com.kmall.admin.entity.*;
-import com.kmall.admin.service.GoodsService;
+import com.kmall.admin.entity.mk.MkActivitiesEntity;
+import com.kmall.admin.service.*;
+import com.kmall.admin.service.mk.MkActivitiesService;
+import com.kmall.admin.service.mk.MkActivityFormService;
 import com.kmall.admin.utils.ShiroUtils;
 import com.kmall.api.entity.exportpdf.PDFGoodsDto;
 import com.kmall.common.constant.Dict;
@@ -21,7 +24,9 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * Service实现类
@@ -67,6 +72,31 @@ public class GoodsServiceImpl implements GoodsService {
     @Autowired
     private StoreMngChangeDao storeMngChangeDao;
 
+
+    @Autowired
+    private MkActivityFormService mkActivityFormService; // 活动表
+    @Autowired
+    private MkActivitiesService mkActivitiesService; // 营销方式表
+    @Autowired
+    private MkDailyActivitiesService dailyActivitiesService; // 日常活动
+    @Autowired
+    private MkActivitiesCouponService couponService; // 优惠券
+    @Autowired
+    private MkActivitiesCombinationPriceService combinationPriceService; // 组合价
+    @Autowired
+    private MkActivitiesDiscountService discountService; // 折扣
+    @Autowired
+    private MkActivitiesFullGiftService fullGiftService; // 满赠
+    @Autowired
+    private MkActivitiesFullReductionService fullReductionService; // 满减
+    @Autowired
+    private MkActivitiesGetOneFreeGoodsService getOneFreeGoodsService; // 买一送一
+    @Autowired
+    private MkActivitiesPromotionService promotionService; // 临时促销
+    @Autowired
+    private BrandService brandService;
+
+
     @Override
     public GoodsEntity queryObject(Integer id) {
         Map<String, Object> map = new HashMap<String, Object>();
@@ -1057,6 +1087,252 @@ public class GoodsServiceImpl implements GoodsService {
     public PDFGoodsDto queryForPDFData(String sku, String storeId, String prodBarcode) {
         return goodsDao.queryForPDFData(sku,storeId,prodBarcode);
     }
+
+    /**
+     * 查询产品价格
+     *
+     * @param prodBarcode
+     * @param storeId
+     * @return
+     */
+    @Override
+    @Transactional
+    public Map<String,Object> calculateGoodsDetail(String prodBarcode, String storeId) {
+        /**
+         * 1.首先根据商品条码跟门店id查询是否有库存,没库存直接返回
+         */
+        GoodsDetailsDto goods = queryGoodsDetailsByProdBarcode(prodBarcode,storeId);
+        if(goods == null) {
+            return null;
+        }
+        goods.setDiscountedPrice(new BigDecimal(0));
+        goods.setActualPaymentAmount(goods.getRetailPrice());
+        Map<String,Object> skuActivitiesMap = new HashMap<>();
+
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+        /**
+         * 2.查询当前时间,该门店是否有活动,如果有活动,查询开启了哪些营销方式
+         * 参数: 当前时间  门店id
+         */
+        List<MkActivitiesEntity> mkActivitiesEntityList = mkActivitiesService.queryByNow(storeId,format.format(new Date()));
+
+        if(mkActivitiesEntityList == null || mkActivitiesEntityList.size() == 0){
+            skuActivitiesMap.put("goods",goods);
+            return skuActivitiesMap;
+        }
+
+
+
+        // 遍历活动集合,查询有哪些活动是开启的
+        boolean daily = false,coupon = false,combinationPrice = false
+                ,discount = false,fullGift = false,fullReduction = false
+                ,getOneFree = false,promotion = false;
+
+        List<String> topicList = new ArrayList<>(); // 记录有哪些营销活动的topic
+        Map<String,Long> mkaIdMap = new HashMap<>(); // 记录topic跟mkaId的关系
+        // 将所有的营销活动新增到list中
+        for(MkActivitiesEntity mkActivitiesEntity : mkActivitiesEntityList){
+            topicList.add(mkActivitiesEntity.getMkaTopic());
+            mkaIdMap.put(mkActivitiesEntity.getMkaTopic(),mkActivitiesEntity.getMkaId());
+        }
+        // 判断有哪些营销活动
+        if(topicList.contains("zhjsp")) // 组合价
+            combinationPrice = true;
+        if(topicList.contains("dz")) // 打折
+            discount = true;
+        if(topicList.contains("mz")) //满赠
+            fullGift = true;
+        if(topicList.contains("mj"))  // 满减
+            fullReduction = true;
+        if(topicList.contains("mysy")) // 买一送一
+            getOneFree = true;
+        if(topicList.contains("rchd")) // 日常活动
+            daily = true;
+        if(topicList.contains("yhq")) // 优惠券
+            coupon = true;
+        if(topicList.contains("lscx")) // 临时促销
+            promotion = true;
+
+
+        // 获取未优惠前的商品价格
+        BigDecimal retailPrice = goods.getRetailPrice();
+
+
+        // 根据条码查询商品品牌名称 mall_brand  mall_product_store_rela  mall_goods
+        String brandName = goods.getBrand();
+
+        /**
+         * 优先级:临时促销 》买一送一=满赠 》 组合价=日常活动 》 打折=满减 》 优惠券
+         */
+
+
+
+
+
+        /**
+         * 组合价的做法就是将参与组合的条码带到收银端
+         * 现根据营销活动id跟条形码,查询有哪些参与该条码组合的商品
+         *
+         *
+         * TODO
+         */
+        if(combinationPrice){
+            Long mkaId = mkaIdMap.get("zhjsp");
+            Map<String,Object> param = new HashMap<>();
+            param.put("mkaId",mkaId);
+            param.put("prodBarcode",prodBarcode);
+            List<MkActivitiesCombinationPriceEntity> combinationPriceList = combinationPriceService.queryList(param);
+            if(combinationPriceList != null && combinationPriceList.size() > 0) {
+                Map<String, List<MkActivitiesCombinationPriceEntity>> collect =
+                        combinationPriceList.stream().collect(Collectors.groupingBy(MkActivitiesCombinationPriceEntity::getCombinationType));
+
+                skuActivitiesMap.put("zhjsp",collect);
+            }
+        }
+
+
+
+        format = new SimpleDateFormat("yyyy-MM-dd");
+        String nowTime = format.format(new Date());
+        /**
+         * 满减可能是跟着条码,也可能跟着品牌
+         * 根据商品品牌跟商品条码去查询是否有优惠金额
+         *
+         * 满足金额   购买商品条码   赠品条码
+         *
+         */
+        Map<String,Object> fullReductionMap = new HashMap<>();
+        if(fullReduction){
+            Long mkaId = mkaIdMap.get("mj");
+            MkActivitiesFullReductionEntity fullReductionEntity = fullReductionService.queryByCodeOrBrand(mkaId,prodBarcode,brandName,nowTime);
+            if(fullReductionEntity != null) {
+                if(fullReductionEntity.getProductBrand() != null){
+                    // 跟着品牌走
+                    fullReductionMap.put(brandName,fullReductionEntity);
+                }else{
+                    // 跟着条码走
+                    fullReductionMap.put(fullReductionEntity.getBarcode(), fullReductionEntity);
+                }
+                skuActivitiesMap.put("mj",fullReductionMap);
+            }
+        }
+
+        /**
+         * 满赠可能是跟着条码,也可能跟着品牌
+         * 根据商品品牌跟商品条码去查询是否有满赠
+         * 1.先扫买的商品,然后查询出赠送的商品条码
+         * 2.先扫赠的商品,然后查询出符合条件的商品条码或者品牌
+         * 满足的金额   购买的商品条码或者品牌   赠送的商品条码
+         * TODO
+         */
+        Map<String,Object> fullGiftMap = new HashMap<>();
+        if(fullGift){
+            Long mkaId = mkaIdMap.get("mz");
+            MkActivitiesFullGiftEntity giftEntity = fullGiftService.queryByCodeOrBrand(mkaId,prodBarcode,brandName,nowTime);
+            if(giftEntity != null) {
+                if(giftEntity.getProductBrand() != null){
+                    // 跟着品牌走
+                    fullGiftMap.put(brandName,giftEntity);
+                }else{
+                    // 跟着条码走
+                    fullGiftMap.put(giftEntity.getBarcode(), giftEntity);
+                }
+                skuActivitiesMap.put("mz",fullGiftMap);
+            }
+        }
+
+        /**
+         * 买一送一可能是跟着条码,也可能跟着品牌
+         * 根据商品品牌跟商品条码去查询是否有送的商品
+         * 有两个场景
+         * 1.先扫买的商品,然后查询出赠送的商品条码
+         * 2.先扫赠的商品,然后查询出符合条件的商品条码或者品牌
+         * 所以就需要一个map
+         * key为购买的商品条码或者商品品牌  value为赠送的商品条码
+         * 但是品牌是根据条码查询的,所以最终map里面的结构是
+         * key 商品条码 value 赠品条码
+         */
+        if(getOneFree){
+            Long mkaId = mkaIdMap.get("mysy");
+            MkActivitiesGetOneFreeGoodsEntity getOneFreeGoodsEntity = getOneFreeGoodsService.queryByCodeOrBrand(mkaId,prodBarcode,brandName);
+            if(getOneFreeGoodsEntity != null){
+                Map<String,String> getOneFreeMap = new HashMap<>();
+                //                  购买商品条码                          赠品条码
+                getOneFreeMap.put( getOneFreeGoodsEntity.getBarcode(),getOneFreeGoodsEntity.getGiftBarcode());
+
+                skuActivitiesMap.put("mysy",getOneFreeMap);
+
+            }
+        }
+
+        // --------------------------------------------------------------------------------------
+
+        /**
+         * 优惠券跟着条形码走,一般是设置一个标识,然后最后输入优惠券码后,减扣对应的标识,所以返回一个map数组
+         */
+
+        if(coupon){
+            Long mkaId = mkaIdMap.get("yhq");
+            MkActivitiesCouponEntity couponEntity =  couponService.queryByBarCode(mkaId,prodBarcode);
+            if(couponEntity != null){ // 优惠券码,优惠金额
+                Map<String,Object> returnMap = new HashMap<>();
+                returnMap.put(couponEntity.getCouponSn() , couponEntity.getCouponPrice());
+                skuActivitiesMap.put("yhq",returnMap);
+            }
+        }
+
+
+        /**
+         * 打折的价格是与条形码对应的,所以需要根据条形码和营销方式id去查询活动价格
+         */
+
+        if(discount){
+            Long mkaId = mkaIdMap.get("dz");
+            MkActivitiesDiscountEntity discountEntity =  discountService.queryByBarCode(mkaId,prodBarcode);
+            // TODO 可能会直接替代产品价格
+            if (discountEntity != null) {
+                goods.setActualPaymentAmount(discountEntity.getActivityPrice());
+                goods.setDiscountedPrice(goods.getRetailPrice().subtract(discountEntity.getActivityPrice()).setScale(2,BigDecimal.ROUND_HALF_UP));
+                goods.setActivity("打折");
+            }
+        }
+
+
+        /**
+         * 日常活动跟着条形码走,优先级比临时促销低,但是高于正常价格
+         */
+        if(daily){
+            Long mkaId = mkaIdMap.get("rchd");
+            MkDailyActivitiesEntity dailyActivitiesEntity = dailyActivitiesService.queryByBarCode(mkaId,prodBarcode);
+            if(dailyActivitiesEntity != null){
+                goods.setActualPaymentAmount(dailyActivitiesEntity.getActivityPrice());
+                goods.setDiscountedPrice(goods.getRetailPrice().subtract(dailyActivitiesEntity.getActivityPrice()).setScale(2,BigDecimal.ROUND_HALF_UP));
+                goods.setActivity("日常活动");
+
+            }
+        }
+
+
+        /**
+         * 临时促销跟着条形码走,优先级应该最高,所以排到了最下面
+         */
+        if(promotion){
+            Long mkaId = mkaIdMap.get("lscx");
+            MkActivitiesPromotionEntity promotionEntity = promotionService.queryByBarCode(mkaId,prodBarcode);
+            // 如果该商品存在临时促销,直接替换活动价格
+            if(promotionEntity != null){
+                goods.setActualPaymentAmount(promotionEntity.getActivityPrice());
+                goods.setDiscountedPrice(goods.getRetailPrice().subtract(promotionEntity.getActivityPrice()).setScale(2,BigDecimal.ROUND_HALF_UP));
+                goods.setActivity("临时促销");
+
+            }
+        }
+
+
+        skuActivitiesMap.put("goods",goods);
+        return skuActivitiesMap;
+    }
 /*  @Override
     @Transactional
     public int uploadExcel(MultipartFile file) {

+ 71 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/MkActivitiesCombinationPriceServiceImpl.java

@@ -1,14 +1,26 @@
 package com.kmall.admin.service.impl;
 
+import com.google.common.collect.ImmutableBiMap;
+import com.kmall.admin.dto.CombinationPriceGoodsDto;
+import com.kmall.admin.dto.DiscountedProductsDto;
+import com.kmall.admin.entity.MkActivitiesDiscountEntity;
+import com.kmall.common.utils.MapBeanUtil;
+import com.kmall.common.utils.R;
+import com.kmall.common.utils.RRException;
+import com.kmall.common.utils.ValidatorUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
 import com.kmall.admin.dao.MkActivitiesCombinationPriceDao;
 import com.kmall.admin.entity.MkActivitiesCombinationPriceEntity;
 import com.kmall.admin.service.MkActivitiesCombinationPriceService;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 营销活动-组合价Service实现类
@@ -56,4 +68,63 @@ public class MkActivitiesCombinationPriceServiceImpl implements MkActivitiesComb
     public int deleteBatch(Long[]macpIds) {
         return mkActivitiesCombinationPriceDao.deleteBatch(macpIds);
     }
+
+    /**
+     * 上传活动商品
+     *
+     * @param combinationPriceGoodsDtoList
+     * @param storeId
+     * @param mkaId
+     */
+    @Override
+    @Transactional
+    public void uploadExcel(List<CombinationPriceGoodsDto> combinationPriceGoodsDtoList, String storeId, String mkaId) {
+
+
+        if (combinationPriceGoodsDtoList != null && combinationPriceGoodsDtoList.size() > 0) {
+            for (int i = 0; i < combinationPriceGoodsDtoList.size(); i++) {
+                CombinationPriceGoodsDto combinationPriceGoodsDto = combinationPriceGoodsDtoList.get(i);
+                Map<String, Object> valideDate = MapBeanUtil.fromObject(combinationPriceGoodsDto);
+                // 校验excel传入的数据
+                ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+                builder.put("goodsSns", "商品编码");
+                builder.put("barCodes", "商品条码");
+                builder.put("combinedPrice", "组合价格");
+                builder.put("combinedCount", "组合的产品总件数");
+                builder.put("deadline", "截止日期");
+
+                R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+                if (Integer.valueOf(r.get("code").toString()) != 0) {
+                    throw new RRException(r.get("msg").toString());
+                }
+
+
+
+                String[] goodsSnArray = combinationPriceGoodsDto.getGoodsSns().split(":");
+                String[] barCodeArray = combinationPriceGoodsDto.getBarCodes().split(":");
+                if(goodsSnArray.length != barCodeArray.length){
+                    throw new RRException("编码的数量跟条码的数量不一致!");
+                }
+                // 保存日常活动商品
+                List<MkActivitiesCombinationPriceEntity> mkActivitiesCombinationPriceEntityList = new ArrayList<>();
+
+                Date createTime = new Date();
+                for(int index = 0 ; index < goodsSnArray.length ; index ++){
+                    MkActivitiesCombinationPriceEntity mkActivitiesCombinationPriceEntity = new MkActivitiesCombinationPriceEntity();
+                    mkActivitiesCombinationPriceEntity.setGoodsSn(goodsSnArray[index]);
+                    mkActivitiesCombinationPriceEntity.setBarcode(barCodeArray[index]);
+                    mkActivitiesCombinationPriceEntity.setCombinedPrice(new BigDecimal(combinationPriceGoodsDto.getCombinedPrice()));
+                    mkActivitiesCombinationPriceEntity.setCombinationNum(combinationPriceGoodsDto.getCombinedCount());
+                    mkActivitiesCombinationPriceEntity.setDeadline(combinationPriceGoodsDto.getDeadline());
+                    mkActivitiesCombinationPriceEntity.setMkaId(Long.parseLong(mkaId));
+                    mkActivitiesCombinationPriceEntity.setCombinationType(combinationPriceGoodsDto.getGoodsSns());
+                    mkActivitiesCombinationPriceEntity.setCreateTime(createTime);
+
+                    mkActivitiesCombinationPriceEntityList.add(mkActivitiesCombinationPriceEntity);
+                }
+                mkActivitiesCombinationPriceDao.saveBatch(mkActivitiesCombinationPriceEntityList);
+            }
+        }
+
+    }
 }

+ 70 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/MkActivitiesCouponServiceImpl.java

@@ -1,14 +1,24 @@
 package com.kmall.admin.service.impl;
 
+import com.google.common.collect.ImmutableBiMap;
+import com.kmall.admin.dto.CouponMerchandiseDto;
+import com.kmall.admin.dto.DiscountedProductsDto;
+import com.kmall.admin.entity.MkActivitiesDiscountEntity;
+import com.kmall.common.utils.MapBeanUtil;
+import com.kmall.common.utils.R;
+import com.kmall.common.utils.RRException;
+import com.kmall.common.utils.ValidatorUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
 import com.kmall.admin.dao.MkActivitiesCouponDao;
 import com.kmall.admin.entity.MkActivitiesCouponEntity;
 import com.kmall.admin.service.MkActivitiesCouponService;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 营销活动-优惠券Service实现类
@@ -56,4 +66,64 @@ public class MkActivitiesCouponServiceImpl implements MkActivitiesCouponService
     public int deleteBatch(Long[]macIds) {
         return mkActivitiesCouponDao.deleteBatch(macIds);
     }
+
+    /**
+     * 上传活动商品
+     *
+     * @param couponMerchandiseDtoList
+     * @param storeId
+     * @param mkaId
+     */
+    @Override
+    @Transactional
+    public void uploadExcel(List<CouponMerchandiseDto> couponMerchandiseDtoList, String storeId, String mkaId) {
+
+
+        if (couponMerchandiseDtoList != null && couponMerchandiseDtoList.size() > 0) {
+            for (int i = 0; i < couponMerchandiseDtoList.size(); i++) {
+                CouponMerchandiseDto couponMerchandiseDto = couponMerchandiseDtoList.get(i);
+                Map<String, Object> valideDate = MapBeanUtil.fromObject(couponMerchandiseDto);
+                // 校验excel传入的数据
+                ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+                builder.put("storeId", "门店编号");
+                builder.put("goodsSn", "商品编码");
+                builder.put("barCode", "商品条码");
+                builder.put("discountPrice", "优惠价格");
+                builder.put("couponSn", "优惠券码");
+                builder.put("deadline", "截止日期");
+
+                R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+                if (Integer.valueOf(r.get("code").toString()) != 0) {
+                    throw new RRException(r.get("msg").toString());
+                }
+                // 保存日常活动商品
+                MkActivitiesCouponEntity mkActivitiesCouponEntity = new MkActivitiesCouponEntity();
+                mkActivitiesCouponEntity.setCouponSn(couponMerchandiseDto.getCouponSn()); // 商品名称
+                mkActivitiesCouponEntity.setCouponPrice(new BigDecimal(couponMerchandiseDto.getDiscountPrice())); // 活动价
+                mkActivitiesCouponEntity.setShopSn(storeId); // 门店编号
+                mkActivitiesCouponEntity.setGoodsSn(couponMerchandiseDto.getGoodsSn()); // 商品编号
+                mkActivitiesCouponEntity.setBarcode(couponMerchandiseDto.getBarCode()); // 商品条码
+                mkActivitiesCouponEntity.setMkaId(Long.parseLong(mkaId));
+                mkActivitiesCouponEntity.setDeadline(couponMerchandiseDto.getDeadline());// 商品截止日期
+
+
+                mkActivitiesCouponDao.save(mkActivitiesCouponEntity);
+
+
+            }
+        }
+
+    }
+
+    /**
+     * 根据条码查询日常活动价格
+     *
+     * @param mkaId
+     * @param prodBarcode
+     * @return
+     */
+    @Override
+    public MkActivitiesCouponEntity queryByBarCode(Long mkaId, String prodBarcode) {
+        return mkActivitiesCouponDao.queryByBarCode(mkaId,prodBarcode);
+    }
 }

+ 69 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/MkActivitiesDiscountServiceImpl.java

@@ -1,14 +1,24 @@
 package com.kmall.admin.service.impl;
 
+import com.google.common.collect.ImmutableBiMap;
+import com.kmall.admin.dto.DiscountedProductsDto;
+import com.kmall.admin.dto.TemporaryPromotionalItemsDto;
+import com.kmall.admin.entity.MkActivitiesPromotionEntity;
+import com.kmall.common.utils.MapBeanUtil;
+import com.kmall.common.utils.R;
+import com.kmall.common.utils.RRException;
+import com.kmall.common.utils.ValidatorUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
 import com.kmall.admin.dao.MkActivitiesDiscountDao;
 import com.kmall.admin.entity.MkActivitiesDiscountEntity;
 import com.kmall.admin.service.MkActivitiesDiscountService;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 营销活动-全场打折Service实现类
@@ -56,4 +66,63 @@ public class MkActivitiesDiscountServiceImpl implements MkActivitiesDiscountServ
     public int deleteBatch(Long[]madIds) {
         return mkActivitiesDiscountDao.deleteBatch(madIds);
     }
+
+    /**
+     * 上传活动商品
+     *
+     * @param discountedProductsDtoList
+     * @param storeId
+     * @param mkaId
+     */
+    @Override
+    @Transactional
+    public void uploadExcel(List<DiscountedProductsDto> discountedProductsDtoList, String storeId, String mkaId) {
+
+
+        if (discountedProductsDtoList != null && discountedProductsDtoList.size() > 0) {
+            for (int i = 0; i < discountedProductsDtoList.size(); i++) {
+                DiscountedProductsDto discountedProductsDto = discountedProductsDtoList.get(i);
+                Map<String, Object> valideDate = MapBeanUtil.fromObject(discountedProductsDto);
+                // 校验excel传入的数据
+                ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+                builder.put("storeId", "门店编号");
+                builder.put("goodsSn", "商品编码");
+                builder.put("barCode", "商品条码");
+                builder.put("goodsName", "产品名称");
+                builder.put("goodsEnglishName", "产品英文名称");
+                builder.put("discountPrice", "折扣价格");
+
+                R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+                if (Integer.valueOf(r.get("code").toString()) != 0) {
+                    throw new RRException(r.get("msg").toString());
+                }
+                // 保存日常活动商品
+                MkActivitiesDiscountEntity mkActivitiesDiscountEntity = new MkActivitiesDiscountEntity();
+                mkActivitiesDiscountEntity.setProductName(discountedProductsDto.getGoodsName()); // 商品名称
+                mkActivitiesDiscountEntity.setActivityPrice(new BigDecimal(discountedProductsDto.getDiscountPrice())); // 活动价
+                mkActivitiesDiscountEntity.setShopSn(storeId); // 门店编号
+                mkActivitiesDiscountEntity.setGoodsSn(discountedProductsDto.getGoodsSn()); // 商品编号
+                mkActivitiesDiscountEntity.setBarcode(discountedProductsDto.getBarCode()); // 商品条码
+                mkActivitiesDiscountEntity.setMkaId(Long.parseLong(mkaId));
+
+
+                mkActivitiesDiscountDao.save(mkActivitiesDiscountEntity);
+
+
+            }
+        }
+
+    }
+
+    /**
+     * 根据条形码与营销活动id查询
+     *
+     * @param mkaId
+     * @param prodBarcode
+     * @return
+     */
+    @Override
+    public MkActivitiesDiscountEntity queryByBarCode(Long mkaId, String prodBarcode) {
+        return mkActivitiesDiscountDao.queryByBarCode(mkaId,prodBarcode);
+    }
 }

+ 78 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/MkActivitiesFullGiftServiceImpl.java

@@ -1,14 +1,24 @@
 package com.kmall.admin.service.impl;
 
+import com.google.common.collect.ImmutableBiMap;
+import com.kmall.admin.dto.FreeGoodsDto;
+import com.kmall.admin.dto.FullReductionDto;
+import com.kmall.admin.entity.MkActivitiesFullReductionEntity;
+import com.kmall.common.utils.MapBeanUtil;
+import com.kmall.common.utils.R;
+import com.kmall.common.utils.RRException;
+import com.kmall.common.utils.ValidatorUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
 import com.kmall.admin.dao.MkActivitiesFullGiftDao;
 import com.kmall.admin.entity.MkActivitiesFullGiftEntity;
 import com.kmall.admin.service.MkActivitiesFullGiftService;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 营销活动-满赠Service实现类
@@ -56,4 +66,72 @@ public class MkActivitiesFullGiftServiceImpl implements MkActivitiesFullGiftServ
     public int deleteBatch(Long[]mafrIds) {
         return mkActivitiesFullGiftDao.deleteBatch(mafrIds);
     }
+
+    /**
+     * 上传活动商品
+     *
+     * @param freeGoodsDtoList
+     * @param storeId
+     * @param mkaId
+     */
+    @Override
+    @Transactional
+    public void uploadExcel(List<FreeGoodsDto> freeGoodsDtoList, String storeId, String mkaId) {
+
+        // TODO 查询所有的品牌
+
+
+        if (freeGoodsDtoList != null && freeGoodsDtoList.size() > 0) {
+            for (int i = 0; i < freeGoodsDtoList.size(); i++) {
+                FreeGoodsDto freeGoodsDto = freeGoodsDtoList.get(i);
+                Map<String, Object> valideDate = MapBeanUtil.fromObject(freeGoodsDto);
+                // 校验excel传入的数据
+                ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+                builder.put("storeId", "门店编号");
+                builder.put("goodsSn", "商品编码");
+                builder.put("barCode", "商品条码");
+                builder.put("brand", "商品品牌");
+                builder.put("fullReductionPrice", "满赠达到金额");
+                builder.put("sendGoodsSn", "赠送商品编号");
+                builder.put("sendBarCode", "赠送商品条码");
+                builder.put("deadline", "截止日期");
+
+                R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+                if (Integer.valueOf(r.get("code").toString()) != 0) {
+                    throw new RRException(r.get("msg").toString());
+                }
+                // 保存日常活动商品
+                MkActivitiesFullGiftEntity mkActivitiesFullGiftEntity = new MkActivitiesFullGiftEntity();
+                mkActivitiesFullGiftEntity.setQualifiedAmount(new BigDecimal(freeGoodsDto.getFullReductionPrice())); // 满赠达到金额
+                mkActivitiesFullGiftEntity.setGiftBarcode(freeGoodsDto.getSendBarCode()); // 赠送商品条码
+                mkActivitiesFullGiftEntity.setGiftGoodsSn(freeGoodsDto.getSendGoodsSn()); // 赠送商品编号
+                mkActivitiesFullGiftEntity.setProductBrand(freeGoodsDto.getBrand()); // 商品品牌
+                mkActivitiesFullGiftEntity.setGoodsSn(freeGoodsDto.getGoodsSn()); // 商品编号
+                mkActivitiesFullGiftEntity.setBarcode(freeGoodsDto.getBarCode()); // 商品条码
+                mkActivitiesFullGiftEntity.setDeadline(freeGoodsDto.getDeadline());
+                mkActivitiesFullGiftEntity.setShopSn(storeId); // 门店编号
+                mkActivitiesFullGiftEntity.setMkaId(Long.parseLong(mkaId)); // 商品截止日期
+
+
+                mkActivitiesFullGiftDao.save(mkActivitiesFullGiftEntity);
+
+
+            }
+        }
+
+    }
+
+    /**
+     * 根据品牌、条形码、当前时间查询是否有满赠的商品条码
+     *
+     * @param mkaId
+     * @param prodBarcode
+     * @param brandName
+     * @param nowTime
+     * @return
+     */
+    @Override
+    public MkActivitiesFullGiftEntity queryByCodeOrBrand(Long mkaId, String prodBarcode, String brandName, String nowTime) {
+        return mkActivitiesFullGiftDao.queryByCodeOrBrand(mkaId,prodBarcode,brandName,nowTime);
+    }
 }

+ 75 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/MkActivitiesFullReductionServiceImpl.java

@@ -1,14 +1,24 @@
 package com.kmall.admin.service.impl;
 
+import com.google.common.collect.ImmutableBiMap;
+import com.kmall.admin.dto.FullReductionDto;
+import com.kmall.admin.dto.TemporaryPromotionalItemsDto;
+import com.kmall.admin.entity.MkActivitiesPromotionEntity;
+import com.kmall.common.utils.MapBeanUtil;
+import com.kmall.common.utils.R;
+import com.kmall.common.utils.RRException;
+import com.kmall.common.utils.ValidatorUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
 import com.kmall.admin.dao.MkActivitiesFullReductionDao;
 import com.kmall.admin.entity.MkActivitiesFullReductionEntity;
 import com.kmall.admin.service.MkActivitiesFullReductionService;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 商品编码为主要匹配/上传依据,商品条形码为辅助查看而已活动方式满减,满xxx元立减xx元(xService实现类
@@ -56,4 +66,69 @@ public class MkActivitiesFullReductionServiceImpl implements MkActivitiesFullRed
     public int deleteBatch(Long[]mafrIds) {
         return mkActivitiesFullReductionDao.deleteBatch(mafrIds);
     }
+
+    /**
+     * 上传活动商品
+     *
+     * @param fullReductionDtoList
+     * @param storeId
+     * @param mkaId
+     */
+    @Override
+    @Transactional
+    public void uploadExcel(List<FullReductionDto> fullReductionDtoList, String storeId, String mkaId) {
+
+        // TODO 查询所有的品牌
+
+
+        if (fullReductionDtoList != null && fullReductionDtoList.size() > 0) {
+            for (int i = 0; i < fullReductionDtoList.size(); i++) {
+                FullReductionDto fullReductionDto = fullReductionDtoList.get(i);
+                Map<String, Object> valideDate = MapBeanUtil.fromObject(fullReductionDto);
+                // 校验excel传入的数据
+                ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+                builder.put("storeId", "门店编号");
+                builder.put("goodsSn", "商品编码");
+                builder.put("barCode", "商品条码");
+                builder.put("brand", "商品品牌");
+                builder.put("fullReductionPrice", "满减达到金额");
+                builder.put("discountedPrice", "优惠金额");
+                builder.put("deadline", "截止日期");
+
+                R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+                if (Integer.valueOf(r.get("code").toString()) != 0) {
+                    throw new RRException(r.get("msg").toString());
+                }
+                // 保存日常活动商品
+                MkActivitiesFullReductionEntity mkActivitiesFullReductionEntity = new MkActivitiesFullReductionEntity();
+                mkActivitiesFullReductionEntity.setQualifiedAmount(new BigDecimal(fullReductionDto.getFullReductionPrice())); // 满减达到金额
+                mkActivitiesFullReductionEntity.setDeductionAmount(new BigDecimal(fullReductionDto.getDiscountedPrice())); // 优惠金额
+                mkActivitiesFullReductionEntity.setProductBrand(fullReductionDto.getBrand()); // 商品品牌
+                mkActivitiesFullReductionEntity.setGoodsSn(fullReductionDto.getGoodsSn()); // 商品编号
+                mkActivitiesFullReductionEntity.setBarcode(fullReductionDto.getBarCode()); // 商品条码
+                mkActivitiesFullReductionEntity.setDeadline(fullReductionDto.getDeadline());
+                mkActivitiesFullReductionEntity.setShopSn(storeId); // 门店编号
+                mkActivitiesFullReductionEntity.setMkaId(Long.parseLong(mkaId));
+
+
+                mkActivitiesFullReductionDao.save(mkActivitiesFullReductionEntity);
+
+
+            }
+        }
+
+    }
+
+    /**
+     * 根据品牌或条形码查询是否有对应的满减活动
+     *
+     * @param mkaId
+     * @param prodBarcode
+     * @param brandName
+     * @return
+     */
+    @Override
+    public MkActivitiesFullReductionEntity queryByCodeOrBrand(Long mkaId, String prodBarcode, String brandName,String deadline) {
+        return mkActivitiesFullReductionDao.queryByCodeOrBrand(mkaId,prodBarcode,brandName,deadline);
+    }
 }

+ 71 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/MkActivitiesGetOneFreeGoodsServiceImpl.java

@@ -1,14 +1,24 @@
 package com.kmall.admin.service.impl;
 
+import com.google.common.collect.ImmutableBiMap;
+import com.kmall.admin.dto.BuyOneGetOneFreeDto;
+import com.kmall.admin.dto.FreeGoodsDto;
+import com.kmall.admin.entity.MkActivitiesFullGiftEntity;
+import com.kmall.common.utils.MapBeanUtil;
+import com.kmall.common.utils.R;
+import com.kmall.common.utils.RRException;
+import com.kmall.common.utils.ValidatorUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
 import com.kmall.admin.dao.MkActivitiesGetOneFreeGoodsDao;
 import com.kmall.admin.entity.MkActivitiesGetOneFreeGoodsEntity;
 import com.kmall.admin.service.MkActivitiesGetOneFreeGoodsService;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 营销活动--买一送
@@ -57,4 +67,65 @@ public class MkActivitiesGetOneFreeGoodsServiceImpl implements MkActivitiesGetOn
     public int deleteBatch(Long[]mkaFreeIds) {
         return mkActivitiesGetOneFreeGoodsDao.deleteBatch(mkaFreeIds);
     }
+
+    /**
+     * 上传活动商品
+     *
+     * @param buyOneGetOneFreeDtoList
+     * @param storeId
+     * @param mkaId
+     */
+    @Override
+    @Transactional
+    public void uploadExcel(List<BuyOneGetOneFreeDto> buyOneGetOneFreeDtoList, String storeId, String mkaId) {
+
+        // TODO 查询所有的品牌
+
+
+        if (buyOneGetOneFreeDtoList != null && buyOneGetOneFreeDtoList.size() > 0) {
+            for (int i = 0; i < buyOneGetOneFreeDtoList.size(); i++) {
+                BuyOneGetOneFreeDto buyOneGetOneFreeDto = buyOneGetOneFreeDtoList.get(i);
+                Map<String, Object> valideDate = MapBeanUtil.fromObject(buyOneGetOneFreeDto);
+                // 校验excel传入的数据
+                ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+                builder.put("storeId", "门店编号");
+                builder.put("buyGoodsSn", "商品编码");
+                builder.put("buyBarCode", "商品条码");
+                builder.put("buyBrand", "商品品牌");
+                builder.put("sendBarCode", "赠送商品条码");
+
+                R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+                if (Integer.valueOf(r.get("code").toString()) != 0) {
+                    throw new RRException(r.get("msg").toString());
+                }
+                // 保存日常活动商品
+                MkActivitiesGetOneFreeGoodsEntity mkActivitiesGetOneFreeGoodsEntity = new MkActivitiesGetOneFreeGoodsEntity();
+                mkActivitiesGetOneFreeGoodsEntity.setGoodsSn(buyOneGetOneFreeDto.getBuyGoodsSn()); // 商品编号
+                mkActivitiesGetOneFreeGoodsEntity.setBarcode(buyOneGetOneFreeDto.getBuyBarCode()); // 商品条码
+                mkActivitiesGetOneFreeGoodsEntity.setProductBrand(buyOneGetOneFreeDto.getBuyBrand()); // 商品品牌
+                mkActivitiesGetOneFreeGoodsEntity.setGiftBarcode(buyOneGetOneFreeDto.getSendBarCode()); // 赠送商品条码
+                mkActivitiesGetOneFreeGoodsEntity.setShopSn(storeId); // 门店编号
+                mkActivitiesGetOneFreeGoodsEntity.setMkaId(Long.parseLong(mkaId));
+
+
+                mkActivitiesGetOneFreeGoodsDao.save(mkActivitiesGetOneFreeGoodsEntity);
+
+
+            }
+        }
+
+    }
+
+    /**
+     * 根据条码跟品牌名称查询
+     *
+     * @param mkaId
+     * @param prodBarcode
+     * @param brandName
+     * @return
+     */
+    @Override
+    public MkActivitiesGetOneFreeGoodsEntity queryByCodeOrBrand(Long mkaId, String prodBarcode, String brandName) {
+        return mkActivitiesGetOneFreeGoodsDao.queryByCodeOrBrand(mkaId,prodBarcode,brandName);
+    }
 }

+ 68 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/MkActivitiesPromotionServiceImpl.java

@@ -1,14 +1,22 @@
 package com.kmall.admin.service.impl;
 
+import com.google.common.collect.ImmutableBiMap;
+import com.kmall.admin.dto.TemporaryPromotionalItemsDto;
+import com.kmall.common.utils.MapBeanUtil;
+import com.kmall.common.utils.R;
+import com.kmall.common.utils.RRException;
+import com.kmall.common.utils.ValidatorUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
 import com.kmall.admin.dao.MkActivitiesPromotionDao;
 import com.kmall.admin.entity.MkActivitiesPromotionEntity;
 import com.kmall.admin.service.MkActivitiesPromotionService;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 营销活动-临时促销Service实现类
@@ -56,4 +64,64 @@ public class MkActivitiesPromotionServiceImpl implements MkActivitiesPromotionSe
     public int deleteBatch(Long[]mapIds) {
         return mkActivitiesPromotionDao.deleteBatch(mapIds);
     }
+
+    /**
+     * 上传活动商品
+     *  @param temporaryPromotionalItemsDtoList
+     * @param storeId
+     * @param mkaId
+     */
+    @Override
+    @Transactional
+    public void uploadExcel(List<TemporaryPromotionalItemsDto> temporaryPromotionalItemsDtoList, String storeId, String mkaId) {
+
+
+        if (temporaryPromotionalItemsDtoList != null && temporaryPromotionalItemsDtoList.size() > 0) {
+            for (int i = 0; i < temporaryPromotionalItemsDtoList.size(); i++) {
+                TemporaryPromotionalItemsDto temporaryPromotionalItemsDto = temporaryPromotionalItemsDtoList.get(i);
+                Map<String, Object> valideDate = MapBeanUtil.fromObject(temporaryPromotionalItemsDto);
+                // 校验excel传入的数据
+                ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+                builder.put("storeId", "门店编号");
+                builder.put("goodsSn", "商品编码");
+                builder.put("barCode", "商品条码");
+                builder.put("goodsName", "产品名称");
+                builder.put("goodsEnglishName", "产品英文名称");
+                builder.put("activitiesPrice", "活动价格");
+                builder.put("deadline", "截止日期");
+
+                R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+                if (Integer.valueOf(r.get("code").toString()) != 0) {
+                    throw new RRException(r.get("msg").toString());
+                }
+                // 保存日常活动商品
+                MkActivitiesPromotionEntity mkActivitiesPromotionEntity = new MkActivitiesPromotionEntity();
+                mkActivitiesPromotionEntity.setProductName(temporaryPromotionalItemsDto.getGoodsName()); // 商品名称
+                mkActivitiesPromotionEntity.setActivityPrice(new BigDecimal(temporaryPromotionalItemsDto.getActivitiesPrice())); // 活动价
+                mkActivitiesPromotionEntity.setShopSn(storeId); // 门店编号
+                mkActivitiesPromotionEntity.setGoodsSn(temporaryPromotionalItemsDto.getGoodsSn()); // 商品编号
+                mkActivitiesPromotionEntity.setBarcode(temporaryPromotionalItemsDto.getBarCode()); // 商品条码
+                mkActivitiesPromotionEntity.setDeadline(temporaryPromotionalItemsDto.getDeadline());// 商品截止日期
+                mkActivitiesPromotionEntity.setMkaId(Long.parseLong(mkaId));
+
+
+                mkActivitiesPromotionDao.save(mkActivitiesPromotionEntity);
+
+
+            }
+        }
+
+    }
+
+    /**
+     * 根据条码查询日常活动价格
+     *
+     * @param mkaId
+     * @param prodBarcode
+     * @return
+     */
+    @Override
+    public MkActivitiesPromotionEntity queryByBarCode(Long mkaId, String prodBarcode) {
+        return mkActivitiesPromotionDao.queryByBarCode(mkaId,prodBarcode);
+    }
 }

+ 72 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/MkDailyActivitiesServiceImpl.java

@@ -1,14 +1,25 @@
 package com.kmall.admin.service.impl;
 
+import com.google.common.collect.ImmutableBiMap;
+import com.kmall.admin.dto.DailyPriceGoodsDto;
+import com.kmall.common.utils.MapBeanUtil;
+import com.kmall.common.utils.R;
+import com.kmall.common.utils.RRException;
+import com.kmall.common.utils.ValidatorUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.text.DecimalFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.List;
 import java.util.Map;
 
 import com.kmall.admin.dao.MkDailyActivitiesDao;
 import com.kmall.admin.entity.MkDailyActivitiesEntity;
 import com.kmall.admin.service.MkDailyActivitiesService;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 营销活动-日常活动Service实现类
@@ -56,4 +67,65 @@ public class MkDailyActivitiesServiceImpl implements MkDailyActivitiesService {
     public int deleteBatch(Long[]mdaIds) {
         return mkDailyActivitiesDao.deleteBatch(mdaIds);
     }
+
+    /**
+     * 上传活动商品
+     *  @param dailyPriceGoodsDtoList
+     * @param storeId
+     * @param mkaId
+     */
+    @Override
+    @Transactional
+    public void uploadExcel(List<DailyPriceGoodsDto> dailyPriceGoodsDtoList, String storeId, String mkaId) throws ParseException {
+
+
+        if (dailyPriceGoodsDtoList != null && dailyPriceGoodsDtoList.size() > 0) {
+            for (int i = 0; i < dailyPriceGoodsDtoList.size(); i++) {
+                DailyPriceGoodsDto dailyPriceGoodsDto = dailyPriceGoodsDtoList.get(i);
+                Map<String, Object> valideDate = MapBeanUtil.fromObject(dailyPriceGoodsDto);
+                // 校验excel传入的数据
+                ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+                builder.put("storeId", "门店编号");
+                builder.put("goodsSn", "商品编码");
+                builder.put("barCode", "商品条码");
+                builder.put("goodsName", "产品名称");
+                builder.put("goodsEnglishName", "产品英文名称");
+                builder.put("daliyPrice", "日常价格");
+                builder.put("activitiesPrice", "活动价格");
+                builder.put("deadline", "截止日期");
+
+                R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+                if (Integer.valueOf(r.get("code").toString()) != 0) {
+                    throw new RRException(r.get("msg").toString());
+                }
+                // 保存日常活动商品
+                MkDailyActivitiesEntity mkDailyActivitiesEntity = new MkDailyActivitiesEntity();
+                mkDailyActivitiesEntity.setProductName(dailyPriceGoodsDto.getGoodsName()); // 商品名称
+                mkDailyActivitiesEntity.setDailyPrice(new BigDecimal(dailyPriceGoodsDto.getDaliyPrice())); // 日常价
+                mkDailyActivitiesEntity.setActivityPrice(new BigDecimal(dailyPriceGoodsDto.getActivitiesPrice())); // 活动价
+                mkDailyActivitiesEntity.setGoodsSn(dailyPriceGoodsDto.getGoodsSn()); // 商品编号
+                mkDailyActivitiesEntity.setBarcode(dailyPriceGoodsDto.getBarCode()); // 商品条码
+                mkDailyActivitiesEntity.setDeadline(dailyPriceGoodsDto.getDeadline());// 商品截止日期
+                mkDailyActivitiesEntity.setShopSn(storeId); // 门店编号
+                mkDailyActivitiesEntity.setMkaId(Long.parseLong(mkaId));
+
+                mkDailyActivitiesDao.save(mkDailyActivitiesEntity);
+
+
+            }
+        }
+
+    }
+
+    /**
+     * 根据条码查询日常活动价格
+     *
+     * @param mkaId
+     * @param prodBarcode
+     * @return
+     */
+    @Override
+    public MkDailyActivitiesEntity queryByBarCode(Long mkaId, String prodBarcode) {
+        return mkDailyActivitiesDao.queryByBarCode(mkaId,prodBarcode);
+    }
 }

+ 140 - 163
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -1708,7 +1708,15 @@ public class OrderServiceImpl implements OrderService {
                 goodsDto.put("goodsSn",goodsEntity.getGoodsSn());
                 goodsDto.put("productId",goodsEntity.getProductId());
                 goodsDto.put("storeMarketPrice",goodsEntity.getStoreMarketPrice());
-                goodsDto.put("storeRetailPrice",goodsEntity.getStoreRetailPrice());
+
+                if(goodsDto.get("actualPaymentAmount") instanceof Double){
+                    goodsDto.put("storeRetailPrice",new BigDecimal((Double)goodsDto.get("actualPaymentAmount")));
+                }else if(goodsDto.get("actualPaymentAmount") instanceof Integer){
+                    goodsDto.put("storeRetailPrice",new BigDecimal((Integer)goodsDto.get("actualPaymentAmount")));
+                }else if(goodsDto.get("actualPaymentAmount") instanceof Float){
+                    goodsDto.put("storeRetailPrice",new BigDecimal((Float)goodsDto.get("actualPaymentAmount")));
+                }
+
 
                 //取得规格的信息,判断规格库存
                 ProductStoreRelaEntity productInfo = productStoreRelaDao
@@ -1720,27 +1728,29 @@ public class OrderServiceImpl implements OrderService {
                         resultObj.put("errmsg", "库存不足,仅剩余" + productInfo.getStockNum());
                         return resultObj;
                     } else {
-
                         // 判断销售价是否低于底线价
-                        BigDecimal bottomLinePrice = new BigDecimal(productInfo.getBottomLinePrice());
-                        if (goodsEntity.getStoreRetailPrice().compareTo(bottomLinePrice) <= -1) {
-                            LOGGER.error("销售价格小于底线价格");
-
-                            // 记录该信息,到价格过低日志表中,这里没有活动id
-                            Mall2LowPriceWarningEntity lowPriceWarningEntity = new Mall2LowPriceWarningEntity();
-                            lowPriceWarningEntity.setSalePrice(goodsEntity.getStoreRetailPrice());
-                            lowPriceWarningEntity.setWarningPrice(bottomLinePrice);
-                            lowPriceWarningEntity.setSku(goodsEntity.getGoodsSn());
-                            lowPriceWarningEntity.setWarningType("00");
-                            lowPriceWarningEntity.setStoreId(storeId+"");
-                            lowPriceWarningEntity.setCreateTime(new Date());
-
-                            lowPriceWarningDao.save(lowPriceWarningEntity);
-                            resultObj.put("errno", 400);
-                            resultObj.put("errmsg", "商品"+goodsEntity.getName()+"的销售价格小于底线价格");
-                            return resultObj;
+                        if(productInfo.getBottomLinePrice() != null){
+                            BigDecimal bottomLinePrice = new BigDecimal(productInfo.getBottomLinePrice());
+                            if (goodsEntity.getStoreRetailPrice().compareTo(bottomLinePrice) <= -1) {
+                                LOGGER.error("销售价格小于底线价格");
+
+                                // 记录该信息,到价格过低日志表中,这里没有活动id
+                                Mall2LowPriceWarningEntity lowPriceWarningEntity = new Mall2LowPriceWarningEntity();
+                                lowPriceWarningEntity.setSalePrice(goodsEntity.getStoreRetailPrice());
+                                lowPriceWarningEntity.setWarningPrice(bottomLinePrice);
+                                lowPriceWarningEntity.setSku(goodsEntity.getGoodsSn());
+                                lowPriceWarningEntity.setWarningType("00");
+                                lowPriceWarningEntity.setStoreId(storeId+"");
+                                lowPriceWarningEntity.setCreateTime(new Date());
+
+                                lowPriceWarningDao.save(lowPriceWarningEntity);
+                                resultObj.put("errno", 400);
+                                resultObj.put("errmsg", "商品"+goodsEntity.getName()+"的销售价格小于底线价格");
+                                return resultObj;
+                            }
                         }
 
+
                         productInfo.setStockNum(productInfo.getStockNum() - sellVolume);
                         productInfo.setStoreId(Long.valueOf(storeId));
                         productInfo.addSellVolume();
@@ -1753,10 +1763,20 @@ public class OrderServiceImpl implements OrderService {
                             goodsDao.update(goodsEntity);
                         }
                     }
-                    // 实际取的是门店商品的价格,所以借这个字段来存储销售价
-                    goodsEntity.setStoreRetailPrice(productInfo.getRetailPrice());
+                    ;
+                    if(goodsDto.get("actualPaymentAmount") instanceof Double){
+                        goodsEntity.setStoreRetailPrice(new BigDecimal((Double)goodsDto.get("actualPaymentAmount")));
+                    }else if(goodsDto.get("actualPaymentAmount") instanceof Integer){
+                        goodsEntity.setStoreRetailPrice(new BigDecimal((Integer)goodsDto.get("actualPaymentAmount")));
+                    }else if(goodsDto.get("actualPaymentAmount") instanceof Float){
+                        goodsEntity.setStoreRetailPrice(new BigDecimal((Float)goodsDto.get("actualPaymentAmount")));
+                    }
+//                    goodsEntity.setStoreRetailPrice(productInfo.getRetailPrice());
                     // 借用这个字段来存储购买数
                     goodsEntity.setGoodsNumber(sellVolume);
+
+                    goodsEntity.setActivity((String) goodsDto.get("activity"));
+
                     goodsEntities.add(goodsEntity);
                 }
             }
@@ -1786,51 +1806,8 @@ public class OrderServiceImpl implements OrderService {
             }
 
 
-
-
-            // 根据活动形式来查询
-
-
-
-            // 优惠金额
+//            // 优惠金额
             BigDecimal disCountAmount = new BigDecimal(0);
-            // 活动id
-            Integer topicId = 0;
-            // 查询活动类别id
-            MkStorePromTypeEntity mkStorePromEntity = storePromTypeDao.queryByName("周活动");
-            // 根据门店id和活动类别查询该门店是否有活动
-            StoreTopicEntity storeTopic = storeTopicDao.queryByStoreIdAndType(storeId,mkStorePromEntity.getPromTypeId());
-            // 判断是否启用了活动,如果启用了活动。则去查询活动价
-            if(storeTopic != null){
-                for(GoodsEntity goodsEntity :goodsEntities){
-                    // 根据活动id跟商品id,查询该商品的价格
-                    Mk2GoodsTopicPriceEntity goodsTopicPriceEntity =
-                            mk2GoodsTopicPriceDao.queryByTopicIdAndGoodsId(storeTopic.getId(),goodsEntity.getSku());
-                    if (goodsEntity.getStoreRetailPrice().compareTo(goodsTopicPriceEntity.getTopicPrice()) <= -1) {
-                        LOGGER.error("销售价格小于活动价格");
-
-                        // 记录该信息,到价格过低日志表中,这里有活动id
-                        Mall2LowPriceWarningEntity lowPriceWarningEntity = new Mall2LowPriceWarningEntity();
-                        lowPriceWarningEntity.setSalePrice(goodsEntity.getStoreRetailPrice());
-                        lowPriceWarningEntity.setWarningPrice(goodsTopicPriceEntity.getTopicPrice());
-                        lowPriceWarningEntity.setActivityId(goodsTopicPriceEntity.getTopicId());
-                        lowPriceWarningEntity.setSku(goodsEntity.getGoodsSn());
-                        lowPriceWarningEntity.setWarningType("00");
-                        lowPriceWarningEntity.setStoreId(storeId+"");
-                        lowPriceWarningEntity.setCreateTime(new Date());
-
-                        lowPriceWarningDao.save(lowPriceWarningEntity);
-                        resultObj.put("errno", 400);
-                        resultObj.put("errmsg", "商品"+goodsEntity.getName()+"的销售价格小于活动价格");
-                        return resultObj;
-                    }
-                    goodsEntity.setStoreRetailPrice(goodsTopicPriceEntity.getTopicPrice());
-                }
-                topicId = storeTopic.getId();
-
-            }else{
-                disCountAmount = getDisCountAmout(goodsEntities);
-            }
 
 
             // 判断该用户是否是生日
@@ -1854,9 +1831,9 @@ public class OrderServiceImpl implements OrderService {
             String merchOrderSn = "EMATO" + CommonUtil.generateOrderNumber();
             OrderVo order = setOrderVo(goodsEntities, userEntity,storeId.longValue(), user.getMerchSn(),disCountAmount);
             order.setStore_id(storeId.longValue());
-            if(storeTopic != null){
-                order.setActivity_id(storeTopic.getId().longValue());
-            }
+//            if(storeTopic != null){
+//                order.setActivity_id(storeTopic.getId().longValue());
+//            }
             order.setMerchOrderSn(merchOrderSn);
 
             //插入订单信息和订单商品
@@ -1903,7 +1880,7 @@ public class OrderServiceImpl implements OrderService {
             // 微信支付
 //            wxPay(user, parCode, resultObj, order, processRecordEntity, orderWXPayRecordCurrent, store);
             // 支付宝支付
-            AliPay(user, parCode , order, processRecordEntity, orderWXPayRecordCurrent, store);
+//            AliPay(user, parCode , order, processRecordEntity, orderWXPayRecordCurrent, store);
             resultObj.put("shopName",store.getStoreName()); // 根据门店编号查询
             resultObj.put("userName",user.getUsername());
 
@@ -1928,7 +1905,7 @@ public class OrderServiceImpl implements OrderService {
                 saleRecordEntity.setOrderSn(order.getOrder_sn());
                 saleRecordEntity.setSallerId(userId+"");
                 saleRecordEntity.setSalesTime(new Date());
-                saleRecordEntity.setDiscountId(topicId + "");
+//                saleRecordEntity.setDiscountId(topicId + "");
                 saleRecordEntity.setCreateTime(new Date());
                 saleRecordDao.save(saleRecordEntity);
             }
@@ -1988,98 +1965,98 @@ public class OrderServiceImpl implements OrderService {
         return resultObj;
     }
 
-    private BigDecimal getDisCountAmout(List<GoodsEntity> goodsEntities) {
-        BigDecimal disCountAmount;
-        // TODO 生成订单之前,先查询是否有优惠券或者满减
-        // TODO 20200610 要修改成全部商品
-        // 优惠券的集合
-        List<MkStoreTicketDiscountEntity> mkStoreTicketDiscountEntities = new ArrayList<>();
-        // 满减的集合
-        List<MkStoreCampMinusLevelEntity> mkStoreCampMinusEntities = new ArrayList<>();
-        // 存商品跟金额的关系
-        Map<Long,BigDecimal> moneyMap = new HashMap<>();
-        // 商品总价
-        BigDecimal totalPrice = new BigDecimal(0);
-
-        for(GoodsEntity goodsEntity : goodsEntities){
-            Long goodsId = goodsEntity.getId();
-            // 计算该商品的价格
-            BigDecimal goodsPrice = goodsEntity.getStoreRetailPrice().multiply(new BigDecimal(goodsEntity.getGoodsNumber())).setScale(2, RoundingMode.HALF_UP);
-            moneyMap.put(goodsId,goodsPrice);
-            totalPrice = totalPrice.add(goodsPrice);
-            // 查询该商品id是否有优惠券
-            List<MkStoreTicketDiscountEntity> mkStoreTicketDiscountEntity = mkStoreTicketDiscountService.queryByGoodsId(goodsId);
-            if(mkStoreTicketDiscountEntity != null) {
-                mkStoreTicketDiscountEntities.addAll(mkStoreTicketDiscountEntity);
-            }
-            // 查询该商品id是否有满减
-            List<MkStoreCampMinusLevelEntity> mkStoreCampMinusEntity = mkStoreCampMinusService.queryByGoodsId(goodsId);
-            if(mkStoreCampMinusEntity != null) {
-                mkStoreCampMinusEntities.addAll(mkStoreCampMinusEntity);
-            }
-        }
-
-        // 满减优惠的金额
-        BigDecimal campDisCountAmount = new BigDecimal(0);
-        if(mkStoreCampMinusEntities.size() > 0){
-            // 上一次所需金额,用于取最大的优惠力度
-            BigDecimal lastAmount = new BigDecimal(0);
-            for (int i = 0 ; i < mkStoreCampMinusEntities.size() ; i++){
-                MkStoreCampMinusLevelEntity mkStoreCampMinusLevelEntity = mkStoreCampMinusEntities.get(i);
-                // TODO 20200610还有满多少件,跟满多少元打折的,逻辑复杂,下次开发
-                BigDecimal discCond = mkStoreCampMinusLevelEntity.getYuanMinusCond();
-                // 判断这次金额是否大于上次金额,如果不大于,直接continue
-                if(discCond.compareTo(lastAmount) > 0){
-                    // 如果总金额大于所需金额,则可以使用该优惠券,记录该优惠券的角标,金额跟优惠的钱
-                    if(totalPrice.compareTo(discCond) > 0){
-                        // 记录上一次金额
-                        lastAmount = discCond;
-                        campDisCountAmount = mkStoreCampMinusLevelEntity.getYuanMinusPref();
-                    }
-                }
-            }
-        }
-
-        // 优惠券优惠的金额
-        BigDecimal ticketDisCountAmount = new BigDecimal(0);
-        if(mkStoreTicketDiscountEntities.size() > 0){
-            // 上一次所需金额,用于取最大的优惠力度
-            BigDecimal lastAmount = new BigDecimal(0);
-            BigDecimal lastRadio = new BigDecimal(0);
-            for (int i = 0 ; i < mkStoreTicketDiscountEntities.size() ; i++){
-                MkStoreTicketDiscountEntity mkStoreTicketDiscountEntity = mkStoreTicketDiscountEntities.get(i);
-                // 代金券所需金额
-                // TODO 20200610还有折扣券的,逻辑较为复杂,下次在开发
-
-                if("00".equals(mkStoreTicketDiscountEntity.getApplyType())){
-                    BigDecimal discCond = mkStoreTicketDiscountEntity.getVoucherCond();
-                    // 判断这次金额是否大于上次金额,如果不大于,直接continue
-                    if(discCond.compareTo(lastAmount) > 0){
-                        // 如果总金额大于所需金额,则可以使用该优惠券,记录该优惠券的角标,金额跟优惠的钱
-                        if(totalPrice.compareTo(discCond) > 0){
-                            // 记录上一次金额
-                            lastAmount = discCond;
-                            ticketDisCountAmount = mkStoreTicketDiscountEntity.getVoucherMoney();
-                        }
-                    }
-                }else if("01".equals(mkStoreTicketDiscountEntity.getApplyType())){
-                    BigDecimal discCond = mkStoreTicketDiscountEntity.getDiscCond();
-                    if(totalPrice.compareTo(discCond) > 0){
-                        // 打的折扣
-                        lastRadio = mkStoreTicketDiscountEntity.getDiscRatio();
-                    }
-
-
-                }
-
-
-            }
-        }
-
-
-        disCountAmount = ticketDisCountAmount.compareTo(campDisCountAmount) > 0 ? ticketDisCountAmount : campDisCountAmount;
-        return disCountAmount;
-    }
+//    private BigDecimal getDisCountAmout(List<GoodsEntity> goodsEntities) {
+//        BigDecimal disCountAmount;
+//        // TODO 生成订单之前,先查询是否有优惠券或者满减
+//        // TODO 20200610 要修改成全部商品
+//        // 优惠券的集合
+//        List<MkStoreTicketDiscountEntity> mkStoreTicketDiscountEntities = new ArrayList<>();
+//        // 满减的集合
+//        List<MkStoreCampMinusLevelEntity> mkStoreCampMinusEntities = new ArrayList<>();
+//        // 存商品跟金额的关系
+//        Map<Long,BigDecimal> moneyMap = new HashMap<>();
+//        // 商品总价
+//        BigDecimal totalPrice = new BigDecimal(0);
+//
+//        for(GoodsEntity goodsEntity : goodsEntities){
+//            Long goodsId = goodsEntity.getId();
+//            // 计算该商品的价格
+//            BigDecimal goodsPrice = goodsEntity.getStoreRetailPrice().multiply(new BigDecimal(goodsEntity.getGoodsNumber())).setScale(2, RoundingMode.HALF_UP);
+//            moneyMap.put(goodsId,goodsPrice);
+//            totalPrice = totalPrice.add(goodsPrice);
+//            // 查询该商品id是否有优惠券
+//            List<MkStoreTicketDiscountEntity> mkStoreTicketDiscountEntity = mkStoreTicketDiscountService.queryByGoodsId(goodsId);
+//            if(mkStoreTicketDiscountEntity != null) {
+//                mkStoreTicketDiscountEntities.addAll(mkStoreTicketDiscountEntity);
+//            }
+//            // 查询该商品id是否有满减
+//            List<MkStoreCampMinusLevelEntity> mkStoreCampMinusEntity = mkStoreCampMinusService.queryByGoodsId(goodsId);
+//            if(mkStoreCampMinusEntity != null) {
+//                mkStoreCampMinusEntities.addAll(mkStoreCampMinusEntity);
+//            }
+//        }
+//
+//        // 满减优惠的金额
+//        BigDecimal campDisCountAmount = new BigDecimal(0);
+//        if(mkStoreCampMinusEntities.size() > 0){
+//            // 上一次所需金额,用于取最大的优惠力度
+//            BigDecimal lastAmount = new BigDecimal(0);
+//            for (int i = 0 ; i < mkStoreCampMinusEntities.size() ; i++){
+//                MkStoreCampMinusLevelEntity mkStoreCampMinusLevelEntity = mkStoreCampMinusEntities.get(i);
+//                // TODO 20200610还有满多少件,跟满多少元打折的,逻辑复杂,下次开发
+//                BigDecimal discCond = mkStoreCampMinusLevelEntity.getYuanMinusCond();
+//                // 判断这次金额是否大于上次金额,如果不大于,直接continue
+//                if(discCond.compareTo(lastAmount) > 0){
+//                    // 如果总金额大于所需金额,则可以使用该优惠券,记录该优惠券的角标,金额跟优惠的钱
+//                    if(totalPrice.compareTo(discCond) > 0){
+//                        // 记录上一次金额
+//                        lastAmount = discCond;
+//                        campDisCountAmount = mkStoreCampMinusLevelEntity.getYuanMinusPref();
+//                    }
+//                }
+//            }
+//        }
+//
+//        // 优惠券优惠的金额
+//        BigDecimal ticketDisCountAmount = new BigDecimal(0);
+//        if(mkStoreTicketDiscountEntities.size() > 0){
+//            // 上一次所需金额,用于取最大的优惠力度
+//            BigDecimal lastAmount = new BigDecimal(0);
+//            BigDecimal lastRadio = new BigDecimal(0);
+//            for (int i = 0 ; i < mkStoreTicketDiscountEntities.size() ; i++){
+//                MkStoreTicketDiscountEntity mkStoreTicketDiscountEntity = mkStoreTicketDiscountEntities.get(i);
+//                // 代金券所需金额
+//                // TODO 20200610还有折扣券的,逻辑较为复杂,下次在开发
+//
+//                if("00".equals(mkStoreTicketDiscountEntity.getApplyType())){
+//                    BigDecimal discCond = mkStoreTicketDiscountEntity.getVoucherCond();
+//                    // 判断这次金额是否大于上次金额,如果不大于,直接continue
+//                    if(discCond.compareTo(lastAmount) > 0){
+//                        // 如果总金额大于所需金额,则可以使用该优惠券,记录该优惠券的角标,金额跟优惠的钱
+//                        if(totalPrice.compareTo(discCond) > 0){
+//                            // 记录上一次金额
+//                            lastAmount = discCond;
+//                            ticketDisCountAmount = mkStoreTicketDiscountEntity.getVoucherMoney();
+//                        }
+//                    }
+//                }else if("01".equals(mkStoreTicketDiscountEntity.getApplyType())){
+//                    BigDecimal discCond = mkStoreTicketDiscountEntity.getDiscCond();
+//                    if(totalPrice.compareTo(discCond) > 0){
+//                        // 打的折扣
+//                        lastRadio = mkStoreTicketDiscountEntity.getDiscRatio();
+//                    }
+//
+//
+//                }
+//
+//
+//            }
+//        }
+//
+//
+//        disCountAmount = ticketDisCountAmount.compareTo(campDisCountAmount) > 0 ? ticketDisCountAmount : campDisCountAmount;
+//        return disCountAmount;
+//    }
 
     private void AliPay(SysUserEntity user, String parCode,  OrderVo order, OrderProcessRecordEntity processRecordEntity, OrderWXPayRecordEntity orderWXPayRecordCurrent, StoreEntity store) throws Exception {
 
@@ -2439,7 +2416,7 @@ public class OrderServiceImpl implements OrderService {
         orderGoodsVo.setOrderBizType(Dict.orderBizType.item_10.getItem());
         orderGoodsVo.setCreateTime(new Date());
         orderGoodsVo.setModTime(new Date());
-
+        orderGoodsVo.setActivity(goodsDto.getActivity());
 
         orderGoodsVo.setGoodsRate(goodsDto.getGoodsRate());
         orderGoodsVo.setSku(goodsDto.getSku());

+ 12 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/MkActivitiesServiceImpl.java

@@ -102,4 +102,16 @@ public class MkActivitiesServiceImpl implements MkActivitiesService {
         mkActivitiesAssociationDao.deleteBatch(mkaIds);
         return 1;
     }
+
+    /**
+     * 根据门店id和当前时间查询有哪些营销方式
+     *
+     * @param storeId
+     * @param currentTime
+     * @return
+     */
+    @Override
+    public List<MkActivitiesEntity> queryByNow(String storeId, String currentTime) {
+        return mkActivitiesDao.queryByNow(storeId,currentTime);
+    }
 }

+ 7 - 0
kmall-admin/src/main/java/com/kmall/admin/service/mk/MkActivitiesService.java

@@ -71,4 +71,11 @@ public interface MkActivitiesService {
      */
     int deleteBatch(Long[] mkaIds);
 
+    /**
+     * 根据门店id和当前时间查询有哪些营销方式
+     * @param storeId
+     * @param currentTime
+     * @return
+     */
+    List<MkActivitiesEntity> queryByNow(String storeId, String currentTime);
 }

+ 1 - 0
kmall-admin/src/main/java/com/kmall/admin/service/mk/MkActivityFormService.java

@@ -84,4 +84,5 @@ public interface MkActivityFormService {
      * @return
      */
     List<MkActivitiesEntity> queryMkactivitiesList(Map<String, Object> map);
+
 }

+ 21 - 0
kmall-admin/src/main/resources/XmlTemplate/BuyOneGetOneFreeDtoList.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<workbook>
+    <worksheet name="Sheet1">
+        <section startRow="0" endRow="0"/>
+        <loop startRow="1" endRow="1" items="BuyOneGetOneFreeDtoList" var="BuyOneGetOneFreeDto"
+              varType="com.kmall.admin.dto.BuyOneGetOneFreeDto">
+            <section startRow="1" endRow="1">
+                <mapping row="1" col="0">BuyOneGetOneFreeDto.storeId</mapping>
+                <mapping row="1" col="1">BuyOneGetOneFreeDto.buyGoodsSn</mapping>
+                <mapping row="1" col="2">BuyOneGetOneFreeDto.buyBarCode</mapping>
+                <mapping row="1" col="3">BuyOneGetOneFreeDto.buyBrand</mapping>
+                <mapping row="1" col="4">BuyOneGetOneFreeDto.sendBarCode</mapping>
+            </section>
+            <loopbreakcondition>
+                <rowcheck offset="0">
+                    <cellcheck offset="0"></cellcheck>
+                </rowcheck>
+            </loopbreakcondition>
+        </loop>
+    </worksheet>
+</workbook>

+ 21 - 0
kmall-admin/src/main/resources/XmlTemplate/CombinationPriceGoodsDtoList.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<workbook>
+    <worksheet name="Sheet1">
+        <section startRow="0" endRow="0"/>
+        <loop startRow="1" endRow="1" items="CombinationPriceGoodsDtoList" var="CombinationPriceGoodsDto"
+              varType="com.kmall.admin.dto.CombinationPriceGoodsDto">
+            <section startRow="1" endRow="1">
+                <mapping row="1" col="0">CombinationPriceGoodsDto.goodsSns</mapping>
+                <mapping row="1" col="1">CombinationPriceGoodsDto.barCodes</mapping>
+                <mapping row="1" col="2">CombinationPriceGoodsDto.combinedPrice</mapping>
+                <mapping row="1" col="3">CombinationPriceGoodsDto.combinedCount</mapping>
+                <mapping row="1" col="4">CombinationPriceGoodsDto.deadline</mapping>
+            </section>
+            <loopbreakcondition>
+                <rowcheck offset="0">
+                    <cellcheck offset="0"></cellcheck>
+                </rowcheck>
+            </loopbreakcondition>
+        </loop>
+    </worksheet>
+</workbook>

+ 22 - 0
kmall-admin/src/main/resources/XmlTemplate/CouponMerchandiseDtoList.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<workbook>
+    <worksheet name="Sheet1">
+        <section startRow="0" endRow="0"/>
+        <loop startRow="1" endRow="1" items="CouponMerchandiseDtoList" var="CouponMerchandiseDto"
+              varType="com.kmall.admin.dto.CouponMerchandiseDto">
+            <section startRow="1" endRow="1">
+                <mapping row="1" col="0">CouponMerchandiseDto.storeId</mapping>
+                <mapping row="1" col="1">CouponMerchandiseDto.goodsSn</mapping>
+                <mapping row="1" col="2">CouponMerchandiseDto.barCode</mapping>
+                <mapping row="1" col="3">CouponMerchandiseDto.deadline</mapping>
+                <mapping row="1" col="4">CouponMerchandiseDto.discountPrice</mapping>
+                <mapping row="1" col="5">CouponMerchandiseDto.couponSn</mapping>
+            </section>
+            <loopbreakcondition>
+                <rowcheck offset="0">
+                    <cellcheck offset="0"></cellcheck>
+                </rowcheck>
+            </loopbreakcondition>
+        </loop>
+    </worksheet>
+</workbook>

+ 24 - 0
kmall-admin/src/main/resources/XmlTemplate/DailyPriceGoodsDtoList.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<workbook>
+    <worksheet name="Sheet1">
+        <section startRow="0" endRow="0"/>
+        <loop startRow="1" endRow="1" items="DailyPriceGoodsDtoList" var="DailyPriceGoodsDto"
+              varType="com.kmall.admin.dto.DailyPriceGoodsDto">
+            <section startRow="1" endRow="1">
+                <mapping row="1" col="0">DailyPriceGoodsDto.storeId</mapping>
+                <mapping row="1" col="1">DailyPriceGoodsDto.goodsSn</mapping>
+                <mapping row="1" col="2">DailyPriceGoodsDto.barCode</mapping>
+                <mapping row="1" col="3">DailyPriceGoodsDto.goodsName</mapping>
+                <mapping row="1" col="4">DailyPriceGoodsDto.goodsEnglishName</mapping>
+                <mapping row="1" col="5">DailyPriceGoodsDto.daliyPrice</mapping>
+                <mapping row="1" col="6">DailyPriceGoodsDto.activitiesPrice</mapping>
+                <mapping row="1" col="7">DailyPriceGoodsDto.deadline</mapping>
+            </section>
+            <loopbreakcondition>
+                <rowcheck offset="0">
+                    <cellcheck offset="0"></cellcheck>
+                </rowcheck>
+            </loopbreakcondition>
+        </loop>
+    </worksheet>
+</workbook>

+ 22 - 0
kmall-admin/src/main/resources/XmlTemplate/DiscountedProductsDtoList.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<workbook>
+    <worksheet name="Sheet1">
+        <section startRow="0" endRow="0"/>
+        <loop startRow="1" endRow="1" items="DiscountedProductsDtoList" var="DiscountedProductsDto"
+              varType="com.kmall.admin.dto.DiscountedProductsDto">
+            <section startRow="1" endRow="1">
+                <mapping row="1" col="0">DiscountedProductsDto.storeId</mapping>
+                <mapping row="1" col="1">DiscountedProductsDto.goodsSn</mapping>
+                <mapping row="1" col="2">DiscountedProductsDto.barCode</mapping>
+                <mapping row="1" col="3">DiscountedProductsDto.goodsName</mapping>
+                <mapping row="1" col="4">DiscountedProductsDto.goodsEnglishName</mapping>
+                <mapping row="1" col="5">DiscountedProductsDto.discountPrice</mapping>
+            </section>
+            <loopbreakcondition>
+                <rowcheck offset="0">
+                    <cellcheck offset="0"></cellcheck>
+                </rowcheck>
+            </loopbreakcondition>
+        </loop>
+    </worksheet>
+</workbook>

+ 24 - 0
kmall-admin/src/main/resources/XmlTemplate/FreeGoodsDtoList.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<workbook>
+    <worksheet name="Sheet1">
+        <section startRow="0" endRow="0"/>
+        <loop startRow="1" endRow="1" items="FreeGoodsDtoList" var="FreeGoodsDto"
+              varType="com.kmall.admin.dto.FreeGoodsDto">
+            <section startRow="1" endRow="1">
+                <mapping row="1" col="0">FreeGoodsDto.storeId</mapping>
+                <mapping row="1" col="1">FreeGoodsDto.fullReductionPrice</mapping>
+                <mapping row="1" col="2">FreeGoodsDto.brand</mapping>
+                <mapping row="1" col="3">FreeGoodsDto.goodsSn</mapping>
+                <mapping row="1" col="4">FreeGoodsDto.barCode</mapping>
+                <mapping row="1" col="5">FreeGoodsDto.sendGoodsSn</mapping>
+                <mapping row="1" col="6">FreeGoodsDto.sendBarCode</mapping>
+                <mapping row="1" col="7">FreeGoodsDto.deadline</mapping>
+            </section>
+            <loopbreakcondition>
+                <rowcheck offset="0">
+                    <cellcheck offset="0"></cellcheck>
+                </rowcheck>
+            </loopbreakcondition>
+        </loop>
+    </worksheet>
+</workbook>

+ 23 - 0
kmall-admin/src/main/resources/XmlTemplate/FullReductionDtoList.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<workbook>
+    <worksheet name="Sheet1">
+        <section startRow="0" endRow="0"/>
+        <loop startRow="1" endRow="1" items="FullReductionDtoList" var="FullReductionDto"
+              varType="com.kmall.admin.dto.FullReductionDto">
+            <section startRow="1" endRow="1">
+                <mapping row="1" col="0">FullReductionDto.storeId</mapping>
+                <mapping row="1" col="1">FullReductionDto.fullReductionPrice</mapping>
+                <mapping row="1" col="2">FullReductionDto.brand</mapping>
+                <mapping row="1" col="3">FullReductionDto.goodsSn</mapping>
+                <mapping row="1" col="4">FullReductionDto.barCode</mapping>
+                <mapping row="1" col="5">FullReductionDto.discountedPrice</mapping>
+                <mapping row="1" col="6">FullReductionDto.deadline</mapping>
+            </section>
+            <loopbreakcondition>
+                <rowcheck offset="0">
+                    <cellcheck offset="0"></cellcheck>
+                </rowcheck>
+            </loopbreakcondition>
+        </loop>
+    </worksheet>
+</workbook>

+ 23 - 0
kmall-admin/src/main/resources/XmlTemplate/TemporaryPromotionalItemsDtoList.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<workbook>
+    <worksheet name="Sheet1">
+        <section startRow="0" endRow="0"/>
+        <loop startRow="1" endRow="1" items="TemporaryPromotionalItemsDtoList" var="TemporaryPromotionalItemsDto"
+              varType="com.kmall.admin.dto.TemporaryPromotionalItemsDto">
+            <section startRow="1" endRow="1">
+                <mapping row="1" col="0">TemporaryPromotionalItemsDto.storeId</mapping>
+                <mapping row="1" col="1">TemporaryPromotionalItemsDto.goodsSn</mapping>
+                <mapping row="1" col="2">TemporaryPromotionalItemsDto.barCode</mapping>
+                <mapping row="1" col="4">TemporaryPromotionalItemsDto.goodsEnglishName</mapping>
+                <mapping row="1" col="3">TemporaryPromotionalItemsDto.goodsName</mapping>
+                <mapping row="1" col="5">TemporaryPromotionalItemsDto.activitiesPrice</mapping>
+                <mapping row="1" col="6">TemporaryPromotionalItemsDto.deadline</mapping>
+            </section>
+            <loopbreakcondition>
+                <rowcheck offset="0">
+                    <cellcheck offset="0"></cellcheck>
+                </rowcheck>
+            </loopbreakcondition>
+        </loop>
+    </worksheet>
+</workbook>

+ 11 - 0
kmall-admin/src/main/resources/mybatis/mapper/BrandDao.xml

@@ -245,4 +245,15 @@
         </foreach>
     </delete>
 
+    <select id="queryBrandName" resultType="java.lang.String">
+        select brand.name
+        from
+          mall_brand brand
+        left join mall_product_store_rela mr on brand.id = mr.brand_id
+	    left join mall_goods goods on mr.goods_id = goods.id
+	    where
+	        goods.prod_barcode = #{prodBarcode}
+	        and brand.store_id = #{storeId}
+    </select>
+
 </mapper>

+ 52 - 0
kmall-admin/src/main/resources/mybatis/mapper/MkActivitiesCombinationPriceDao.xml

@@ -9,6 +9,7 @@
         <result property="barcode" column="barcode"/>
         <result property="combinationNum" column="combination_num"/>
         <result property="combinedPrice" column="combined_price"/>
+        <result property="combinationType" column="combination_type"/>
         <result property="mkaId" column="mka_id"/>
         <result property="deadline" column="deadline"/>
         <result property="createTime" column="create_time"/>
@@ -41,6 +42,7 @@
     		`barcode`,
     		`combination_num`,
     		`combined_price`,
+    		`combination_type`,
     		`mka_id`,
     		`deadline`,
     		`create_time`,
@@ -52,6 +54,15 @@
 		<if test="name != null and name.trim() != ''">
 			AND name LIKE concat('%',#{name},'%')
 		</if>
+		<if test="storeId != null and storeId.trim() != ''">
+			AND shop_sn = #{storeId}
+		</if>
+		<if test="mkaId != null">
+			AND mka_id = #{mkaId}
+		</if>
+		<if test="prodBarcode != null and prodBarcode.trim() != ''">
+			AND combination_type like concat ( '%' , #{prodBarcode}, '%')
+		</if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
                 order by ${sidx} ${order}
@@ -71,6 +82,12 @@
         <if test="name != null and name.trim() != ''">
             AND name LIKE concat('%',#{name},'%')
         </if>
+		<if test="storeId != null and storeId.trim() != ''">
+			AND shop_sn = #{storeId}
+		</if>
+		<if test="mkaId != null">
+			AND mka_id = #{mkaId}
+		</if>
 	</select>
 
 	<insert id="save" parameterType="com.kmall.admin.entity.MkActivitiesCombinationPriceEntity" useGeneratedKeys="true" keyProperty="macpId">
@@ -79,6 +96,7 @@
 			`barcode`,
 			`combination_num`,
 			`combined_price`,
+			`combination_type`,
 			`mka_id`,
 			`deadline`,
 			`create_time`,
@@ -90,6 +108,7 @@
 			#{barcode},
 			#{combinationNum},
 			#{combinedPrice},
+			#{combinationType},
 			#{mkaId},
 			#{deadline},
 			#{createTime},
@@ -98,6 +117,38 @@
 			#{updateTime})
 	</insert>
 
+	<insert id="saveBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
+		insert into mk_activities_combination_price(
+		`goods_sn`,
+		`barcode`,
+		`combination_num`,
+		`combined_price`,
+		`combination_type`,
+		`mka_id`,
+		`deadline`,
+		`create_time`,
+		`creater_sn`,
+		`moder_sn`,
+		`update_time`)
+		values
+		<foreach collection="list" index="index" item="item" separator=",">
+			(
+			#{item.goodsSn},
+			#{item.barcode},
+			#{item.combinationNum},
+			#{item.combinedPrice},
+			#{item.combinationType},
+			#{item.mkaId},
+			#{item.deadline},
+			#{item.createTime},
+			#{item.createrSn},
+			#{item.moderSn},
+			#{item.updateTime}
+			)
+		</foreach>
+	</insert>
+
+
 	<update id="update" parameterType="com.kmall.admin.entity.MkActivitiesCombinationPriceEntity">
 		update mk_activities_combination_price
 		<set>
@@ -105,6 +156,7 @@
 			<if test="barcode != null">`barcode` = #{barcode}, </if>
 			<if test="combinationNum != null">`combination_num` = #{combinationNum}, </if>
 			<if test="combinedPrice != null">`combined_price` = #{combinedPrice}, </if>
+			<if test="combinationType != null">`combination_type` = #{combinationType}, </if>
 			<if test="mkaId != null">`mka_id` = #{mkaId}, </if>
 			<if test="deadline != null">`deadline` = #{deadline}, </if>
 			<if test="createTime != null">`create_time` = #{createTime}, </if>

+ 31 - 0
kmall-admin/src/main/resources/mybatis/mapper/MkActivitiesCouponDao.xml

@@ -55,6 +55,12 @@
 		<if test="name != null and name.trim() != ''">
 			AND name LIKE concat('%',#{name},'%')
 		</if>
+		<if test="storeId != null and storeId.trim() != ''">
+			AND shop_sn = #{storeId}
+		</if>
+		<if test="mkaId != null">
+			AND mka_id = #{mkaId}
+		</if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
                 order by ${sidx} ${order}
@@ -74,6 +80,12 @@
         <if test="name != null and name.trim() != ''">
             AND name LIKE concat('%',#{name},'%')
         </if>
+		<if test="storeId != null and storeId.trim() != ''">
+			AND shop_sn = #{storeId}
+		</if>
+		<if test="mkaId != null">
+			AND mka_id = #{mkaId}
+		</if>
 	</select>
 
 	<insert id="save" parameterType="com.kmall.admin.entity.MkActivitiesCouponEntity" useGeneratedKeys="true" keyProperty="macId">
@@ -132,4 +144,23 @@
 		</foreach>
 	</delete>
 
+	<select id="queryByBarCode" resultType="com.kmall.admin.entity.MkActivitiesCouponEntity">
+		select
+			`mac_id`,
+			`goods_sn`,
+			`barcode`,
+			`shop_sn`,
+			`coupon_sn`,
+			`coupon_price`,
+			`mka_id`,
+			`deadline`,
+			`create_time`,
+			`creater_sn`,
+			`moder_sn`,
+			`update_time`
+		from mk_activities_coupon
+		where mka_id = #{mkaId}
+		and barcode = #{prodBarcode}
+	</select>
+
 </mapper>

+ 34 - 0
kmall-admin/src/main/resources/mybatis/mapper/MkActivitiesDiscountDao.xml

@@ -61,6 +61,12 @@
 		<if test="name != null and name.trim() != ''">
 			AND name LIKE concat('%',#{name},'%')
 		</if>
+		<if test="storeId != null and storeId.trim() != ''">
+			AND shop_sn = #{storeId}
+		</if>
+		<if test="mkaId != null">
+			AND mka_id = #{mkaId}
+		</if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
                 order by ${sidx} ${order}
@@ -80,6 +86,12 @@
         <if test="name != null and name.trim() != ''">
             AND name LIKE concat('%',#{name},'%')
         </if>
+		<if test="storeId != null and storeId.trim() != ''">
+			AND shop_sn = #{storeId}
+		</if>
+		<if test="mkaId != null'">
+			AND mka_id = #{mkaId}
+		</if>
 	</select>
 
 	<insert id="save" parameterType="com.kmall.admin.entity.MkActivitiesDiscountEntity" useGeneratedKeys="true" keyProperty="madId">
@@ -144,4 +156,26 @@
 		</foreach>
 	</delete>
 
+	<select id="queryByBarCode" resultType="com.kmall.admin.entity.MkActivitiesDiscountEntity">
+		select
+			mad_id,
+			product_name,
+			activity_price,
+			shop_sn,
+			goods_sn,
+			barcode,
+			product_brand,
+			product_series,
+			discount,
+			mka_id,
+			create_time,
+			creater_sn,
+			moder_sn,
+			update_time
+		from mk_activities_discount
+		where mka_id = #{mkaId}
+		and barcode = #{prodBarcode}
+
+	</select>
+
 </mapper>

+ 101 - 58
kmall-admin/src/main/resources/mybatis/mapper/MkActivitiesFullGiftDao.xml

@@ -13,6 +13,7 @@
         <result property="productSeries" column="product_series"/>
         <result property="qualifiedAmount" column="qualified_amount"/>
         <result property="giftBarcode" column="gift_barcode"/>
+        <result property="giftGoodsSn" column="gift_goods_sn"/>
         <result property="mkaId" column="mka_id"/>
         <result property="deadline" column="deadline"/>
         <result property="createTime" column="create_time"/>
@@ -23,47 +24,55 @@
 
 	<select id="queryObject" resultType="com.kmall.admin.entity.MkActivitiesFullGiftEntity">
 		select
-			`mafr_id`,
-			`product_name`,
-			`shop_sn`,
-			`goods_sn`,
-			`barcode`,
-			`product_brand`,
-			`product_series`,
-			`qualified_amount`,
-			`gift_barcode`,
-			`mka_id`,
-			`deadline`,
-			`create_time`,
-			`creater_sn`,
-			`moder_sn`,
-			`update_time`
+			mafr_id,
+			product_name,
+			shop_sn,
+			goods_sn,
+			barcode,
+			product_brand,
+			product_series,
+			qualified_amount,
+			gift_barcode,
+			gift_goods_sn,
+			mka_id,
+			deadline,
+			create_time,
+			creater_sn,
+			moder_sn,
+			update_time
 		from mk_activities_full_gift
 		where mafr_id = #{id}
 	</select>
 
 	<select id="queryList" resultType="com.kmall.admin.entity.MkActivitiesFullGiftEntity">
 		select
-    		`mafr_id`,
-    		`product_name`,
-    		`shop_sn`,
-    		`goods_sn`,
-    		`barcode`,
-    		`product_brand`,
-    		`product_series`,
-    		`qualified_amount`,
-    		`gift_barcode`,
-    		`mka_id`,
-    		`deadline`,
-    		`create_time`,
-    		`creater_sn`,
-    		`moder_sn`,
-    		`update_time`
+    		mafr_id,
+    		product_name,
+    		shop_sn,
+    		goods_sn,
+    		barcode,
+    		product_brand,
+    		product_series,
+    		qualified_amount,
+    		gift_barcode,
+			gift_goods_sn,
+    		mka_id,
+    		deadline,
+    		create_time,
+    		creater_sn,
+    		moder_sn,
+    		update_time
 		from mk_activities_full_gift
 		WHERE 1=1
 		<if test="name != null and name.trim() != ''">
 			AND name LIKE concat('%',#{name},'%')
 		</if>
+		<if test="storeId != null and storeId.trim() != ''">
+			AND shop_sn = #{storeId}
+		</if>
+		<if test="mkaId != null">
+			AND mka_id = #{mkaId}
+		</if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
                 order by ${sidx} ${order}
@@ -83,24 +92,31 @@
         <if test="name != null and name.trim() != ''">
             AND name LIKE concat('%',#{name},'%')
         </if>
+		<if test="storeId != null and storeId.trim() != ''">
+			AND shop_sn = #{storeId}
+		</if>
+		<if test="mkaId != null">
+			AND mka_id = #{mkaId}
+		</if>
 	</select>
 
 	<insert id="save" parameterType="com.kmall.admin.entity.MkActivitiesFullGiftEntity" useGeneratedKeys="true" keyProperty="mafrId">
 		insert into mk_activities_full_gift(
-			`product_name`,
-			`shop_sn`,
-			`goods_sn`,
-			`barcode`,
-			`product_brand`,
-			`product_series`,
-			`qualified_amount`,
-			`gift_barcode`,
-			`mka_id`,
-			`deadline`,
-			`create_time`,
-			`creater_sn`,
-			`moder_sn`,
-			`update_time`)
+			product_name,
+			shop_sn,
+			goods_sn,
+			barcode,
+			product_brand,
+			product_series,
+			qualified_amount,
+			gift_barcode,
+			gift_goods_sn,
+			mka_id,
+			deadline,
+			create_time,
+			creater_sn,
+			moder_sn,
+			update_time)
 		values(
 			#{productName},
 			#{shopSn},
@@ -110,6 +126,7 @@
 			#{productSeries},
 			#{qualifiedAmount},
 			#{giftBarcode},
+			#{giftGoodsSn},
 			#{mkaId},
 			#{deadline},
 			#{createTime},
@@ -121,20 +138,21 @@
 	<update id="update" parameterType="com.kmall.admin.entity.MkActivitiesFullGiftEntity">
 		update mk_activities_full_gift
 		<set>
-			<if test="productName != null">`product_name` = #{productName}, </if>
-			<if test="shopSn != null">`shop_sn` = #{shopSn}, </if>
-			<if test="goodsSn != null">`goods_sn` = #{goodsSn}, </if>
-			<if test="barcode != null">`barcode` = #{barcode}, </if>
-			<if test="productBrand != null">`product_brand` = #{productBrand}, </if>
-			<if test="productSeries != null">`product_series` = #{productSeries}, </if>
-			<if test="qualifiedAmount != null">`qualified_amount` = #{qualifiedAmount}, </if>
-			<if test="giftBarcode != null">`gift_barcode` = #{giftBarcode}, </if>
-			<if test="mkaId != null">`mka_id` = #{mkaId}, </if>
-			<if test="deadline != null">`deadline` = #{deadline}, </if>
-			<if test="createTime != null">`create_time` = #{createTime}, </if>
-			<if test="createrSn != null">`creater_sn` = #{createrSn}, </if>
-			<if test="moderSn != null">`moder_sn` = #{moderSn}, </if>
-			<if test="updateTime != null">`update_time` = #{updateTime}</if>
+			<if test="productName != null">product_name = #{productName}, </if>
+			<if test="shopSn != null">shop_sn = #{shopSn}, </if>
+			<if test="goodsSn != null">goods_sn = #{goodsSn}, </if>
+			<if test="barcode != null">barcode = #{barcode}, </if>
+			<if test="productBrand != null">product_brand = #{productBrand}, </if>
+			<if test="productSeries != null">product_series = #{productSeries}, </if>
+			<if test="qualifiedAmount != null">qualified_amount = #{qualifiedAmount}, </if>
+			<if test="giftBarcode != null">gift_barcode = #{giftBarcode}, </if>
+			<if test="giftGoodsSn != null">gift_goods_sn = #{giftGoodsSn}, </if>
+			<if test="mkaId != null">mka_id = #{mkaId}, </if>
+			<if test="deadline != null">deadline = #{deadline}, </if>
+			<if test="createTime != null">create_time = #{createTime}, </if>
+			<if test="createrSn != null">creater_sn = #{createrSn}, </if>
+			<if test="moderSn != null">moder_sn = #{moderSn}, </if>
+			<if test="updateTime != null">update_time = #{updateTime}</if>
 		</set>
 		where mafr_id = #{mafrId}
 	</update>
@@ -150,4 +168,29 @@
 		</foreach>
 	</delete>
 
+	<select id="queryByCodeOrBrand" resultType="com.kmall.admin.entity.MkActivitiesFullGiftEntity">
+		select
+			mafr_id,
+			product_name,
+			shop_sn,
+			goods_sn,
+			barcode,
+			product_brand,
+			product_series,
+			qualified_amount,
+			gift_barcode,
+			gift_goods_sn,
+			mka_id,
+			deadline,
+			create_time,
+			creater_sn,
+			moder_sn,
+			update_time
+		from mk_activities_full_gift
+		where
+			mka_id = #{mkaId}
+			and (barcode = #{prodBarcode} or product_brand = #{brandName})
+			and deadline &gt;= #{nowTime}
+	</select>
+
 </mapper>

+ 37 - 0
kmall-admin/src/main/resources/mybatis/mapper/MkActivitiesFullReductionDao.xml

@@ -64,6 +64,12 @@
 		<if test="name != null and name.trim() != ''">
 			AND name LIKE concat('%',#{name},'%')
 		</if>
+		<if test="storeId != null and storeId.trim() != ''">
+			AND shop_sn = #{storeId}
+		</if>
+		<if test="mkaId != null">
+			AND mka_id = #{mkaId}
+		</if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
                 order by ${sidx} ${order}
@@ -83,6 +89,12 @@
         <if test="name != null and name.trim() != ''">
             AND name LIKE concat('%',#{name},'%')
         </if>
+		<if test="storeId != null and storeId.trim() != ''">
+			AND shop_sn = #{storeId}
+		</if>
+		<if test="mkaId != null">
+			AND mka_id = #{mkaId}
+		</if>
 	</select>
 
 	<insert id="save" parameterType="com.kmall.admin.entity.MkActivitiesFullReductionEntity" useGeneratedKeys="true" keyProperty="mafrId">
@@ -150,4 +162,29 @@
 		</foreach>
 	</delete>
 
+	<select id="queryByCodeOrBrand" resultType="com.kmall.admin.entity.MkActivitiesFullReductionEntity">
+		select
+			mafr_id,
+			product_name,
+			shop_sn,
+			goods_sn,
+			barcode,
+			product_brand,
+			product_series,
+			qualified_amount,
+			deduction_amount,
+			mka_id,
+			deadline,
+			create_time,
+			creater_sn,
+			moder_sn,
+			update_time
+		from mk_activities_full_reduction
+		where
+			mka_id = #{mkaId}
+			and (barcode = #{prodBarcode} or product_brand = #{brandName})
+			and deadline &gt;= #{deadline}
+		limit 1
+	</select>
+
 </mapper>

+ 37 - 0
kmall-admin/src/main/resources/mybatis/mapper/MkActivitiesGetOneFreeGoodsDao.xml

@@ -67,6 +67,12 @@
 		<if test="name != null and name.trim() != ''">
 			AND name LIKE concat('%',#{name},'%')
 		</if>
+		<if test="storeId != null and storeId.trim() != ''">
+			AND shop_sn = #{storeId}
+		</if>
+		<if test="mkaId != null">
+			AND mka_id = #{mkaId}
+		</if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
                 order by ${sidx} ${order}
@@ -86,6 +92,12 @@
         <if test="name != null and name.trim() != ''">
             AND name LIKE concat('%',#{name},'%')
         </if>
+		<if test="storeId != null and storeId.trim() != ''">
+			AND shop_sn = #{storeId}
+		</if>
+		<if test="mkaId != null">
+			AND mka_id = #{mkaId}
+		</if>
 	</select>
 
 	<insert id="save" parameterType="com.kmall.admin.entity.MkActivitiesGetOneFreeGoodsEntity" useGeneratedKeys="true" keyProperty="mkaFreeId">
@@ -156,4 +168,29 @@
 		</foreach>
 	</delete>
 
+
+	<select id="queryByCodeOrBrand" resultType="com.kmall.admin.entity.MkActivitiesGetOneFreeGoodsEntity">
+		select
+			mka_free_id,
+			product_name,
+			edlp,
+			suggested_retail_price,
+			activity_price,
+			shop_sn,
+			goods_sn,
+			barcode,
+			product_brand,
+			product_series,
+			gift_barcode,
+			mka_id,
+			create_time,
+			creater_sn,
+			moder_sn,
+			update_time
+		from mk_activities_get_one_free_goods
+		where
+			mka_id = #{mkaId}
+			and (barcode = #{prodBarcode} or product_brand = #{brandName})
+	</select>
+
 </mapper>

+ 33 - 0
kmall-admin/src/main/resources/mybatis/mapper/MkActivitiesPromotionDao.xml

@@ -61,6 +61,12 @@
 		<if test="name != null and name.trim() != ''">
 			AND name LIKE concat('%',#{name},'%')
 		</if>
+		<if test="storeId != null and storeId.trim() != ''">
+			AND shop_sn = #{storeId}
+		</if>
+		<if test="mkaId != null">
+			AND mka_id = #{mkaId}
+		</if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
                 order by ${sidx} ${order}
@@ -80,6 +86,12 @@
         <if test="name != null and name.trim() != ''">
             AND name LIKE concat('%',#{name},'%')
         </if>
+		<if test="storeId != null and storeId.trim() != ''">
+			AND shop_sn = #{storeId}
+		</if>
+		<if test="mkaId != null">
+			AND mka_id = #{mkaId}
+		</if>
 	</select>
 
 	<insert id="save" parameterType="com.kmall.admin.entity.MkActivitiesPromotionEntity" useGeneratedKeys="true" keyProperty="mapId">
@@ -144,4 +156,25 @@
 		</foreach>
 	</delete>
 
+	<select id="queryByBarCode" resultType="com.kmall.admin.entity.MkActivitiesPromotionEntity">
+		select
+			`map_id`,
+			`product_name`,
+			`activity_price`,
+			`shop_sn`,
+			`goods_sn`,
+			`barcode`,
+			`product_brand`,
+			`product_series`,
+			`mka_id`,
+			`deadline`,
+			`create_time`,
+			`creater_sn`,
+			`moder_sn`,
+			`update_time`
+		from mk_activities_promotion
+		where mka_id = #{mkaId}
+		and barcode = #{prodBarcode}
+	</select>
+
 </mapper>

+ 45 - 4
kmall-admin/src/main/resources/mybatis/mapper/MkDailyActivitiesDao.xml

@@ -18,6 +18,7 @@
         <result property="createrSn" column="creater_sn"/>
         <result property="moderSn" column="moder_sn"/>
         <result property="updateTime" column="update_time"/>
+        <result property="deadline" column="deadline"/>
     </resultMap>
 
 	<select id="queryObject" resultType="com.kmall.admin.entity.MkDailyActivitiesEntity">
@@ -35,7 +36,8 @@
 			`create_time`,
 			`creater_sn`,
 			`moder_sn`,
-			`update_time`
+			`update_time`,
+			`deadline`
 		from mk_daily_activities
 		where mda_id = #{id}
 	</select>
@@ -55,12 +57,19 @@
     		`create_time`,
     		`creater_sn`,
     		`moder_sn`,
-    		`update_time`
+    		`update_time`,
+			`deadline`
 		from mk_daily_activities
 		WHERE 1=1
 		<if test="name != null and name.trim() != ''">
 			AND name LIKE concat('%',#{name},'%')
 		</if>
+		<if test="storeId != null and storeId.trim() != ''">
+			AND shop_sn = #{storeId}
+		</if>
+		<if test="mkaId != null">
+			AND mka_id = #{mkaId}
+		</if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
                 order by ${sidx} ${order}
@@ -80,6 +89,12 @@
         <if test="name != null and name.trim() != ''">
             AND name LIKE concat('%',#{name},'%')
         </if>
+		<if test="storeId != null and storeId.trim() != ''">
+			AND shop_sn = #{storeId}
+		</if>
+		<if test="mkaId != null">
+			AND mka_id = #{mkaId}
+		</if>
 	</select>
 
 	<insert id="save" parameterType="com.kmall.admin.entity.MkDailyActivitiesEntity" useGeneratedKeys="true" keyProperty="mdaId">
@@ -96,7 +111,8 @@
 			`create_time`,
 			`creater_sn`,
 			`moder_sn`,
-			`update_time`)
+			`update_time`,
+			`deadline`)
 		values(
 			#{productName},
 			#{dailyPrice},
@@ -110,7 +126,9 @@
 			#{createTime},
 			#{createrSn},
 			#{moderSn},
-			#{updateTime})
+			#{updateTime},
+			#{deadline}
+			)
 	</insert>
 
 	<update id="update" parameterType="com.kmall.admin.entity.MkDailyActivitiesEntity">
@@ -129,6 +147,7 @@
 			<if test="createrSn != null">`creater_sn` = #{createrSn}, </if>
 			<if test="moderSn != null">`moder_sn` = #{moderSn}, </if>
 			<if test="updateTime != null">`update_time` = #{updateTime}</if>
+			<if test="deadline != null">`deadline` = #{deadline}</if>
 		</set>
 		where mda_id = #{mdaId}
 	</update>
@@ -144,4 +163,26 @@
 		</foreach>
 	</delete>
 
+	<select id="queryByBarCode" resultType="com.kmall.admin.entity.MkDailyActivitiesEntity">
+		select
+			mda_id,
+			product_name,
+			daily_price,
+			activity_price,
+			shop_sn,
+			goods_sn,
+			barcode,
+			product_brand,
+			product_series,
+			mka_id,
+			create_time,
+			creater_sn,
+			moder_sn,
+			update_time,
+			deadline
+		from mk_daily_activities
+		where mka_id = #{mkaId}
+		and barcode = #{prodBarcode}
+	</select>
+
 </mapper>

+ 8 - 1
kmall-admin/src/main/resources/mybatis/mapper/OrderGoodsDao.xml

@@ -114,6 +114,9 @@
         <if test="orderBizType != null" >
             order_biz_type,
         </if>
+        <if test="activity != null">
+            activity,
+        </if>
         <if test="createrSn != null" >
             creater_sn,
         </if>
@@ -156,6 +159,9 @@
         <if test="orderBizType != null" >
             #{orderBizType,jdbcType=VARCHAR},
         </if>
+        <if test="activity != null">
+           #{activity},
+        </if>
         <if test="createrSn != null" >
             #{createrSn,jdbcType=VARCHAR},
         </if>
@@ -210,7 +216,8 @@
         g.number,
         g.retail_price,
         r.order_id isPromGoods,
-        r.prom_id promId
+        r.prom_id promId,
+        g.activity
         FROM
         mall_order_goods g
         LEFT JOIN mk_store_prom_order_real r ON g.id = r.order_goods_id

+ 30 - 7
kmall-admin/src/main/resources/mybatis/mapper/mk/MkActivitiesDao.xml

@@ -71,7 +71,7 @@
 			limit #{offset}, #{limit}
 		</if>
 	</select>
-	
+
  	<select id="queryTotal" resultType="int">
 		select count(*) from mk_activities
 		WHERE 1=1
@@ -79,7 +79,7 @@
             AND name LIKE concat('%',#{name},'%')
         </if>
 	</select>
-	 
+
 	<insert id="save" parameterType="com.kmall.admin.entity.mk.MkActivitiesEntity" useGeneratedKeys="true" keyProperty="mkaId">
 		insert into mk_activities(
 			`mka_topic`,
@@ -110,7 +110,7 @@
 			#{updateTime},
 			#{moderSn})
 	</insert>
-	 
+
 	<update id="update" parameterType="com.kmall.admin.entity.mk.MkActivitiesEntity">
 		update mk_activities
 		<set>
@@ -130,16 +130,39 @@
 		</set>
 		where mka_id = #{mkaId}
 	</update>
-	
+
 	<delete id="delete">
 		delete from mk_activities where mka_id = #{value}
 	</delete>
-	
+
 	<delete id="deleteBatch">
-		delete from mk_activities where mka_id in 
+		delete from mk_activities where mka_id in
 		<foreach item="mkaId" collection="array" open="(" separator="," close=")">
 			#{mkaId}
 		</foreach>
 	</delete>
 
-</mapper>
+	<select id="queryByNow" resultType="com.kmall.admin.entity.mk.MkActivitiesEntity">
+		select
+			mka_id,
+			mka_topic,
+			merch_sn,
+			third_merch_sn,
+			mka_store_id,
+			mka_status,
+			mka_start_time,
+			mkd_end_time,
+			mka_end_early,
+			mkd_end_early_time,
+			create_time,
+			creater_sn,
+			update_time,
+			moder_sn
+		from mk_activities
+		where
+			mka_store_id = #{storeId}
+			and mka_start_time &lt; #{currentTime}
+			and mkd_end_time &gt; #{currentTime}
+			and mka_status = 1
+	</select>
+</mapper>

+ 9 - 8
kmall-admin/src/main/resources/mybatis/mapper/mk/MkActivityFormDao.xml

@@ -49,7 +49,7 @@
 			limit #{offset}, #{limit}
 		</if>
 	</select>
-	
+
  	<select id="queryTotal" resultType="int">
 		select count(*) from mk_activity_form
 		WHERE 1=1
@@ -57,7 +57,7 @@
 			AND mk_name LIKE concat('%',#{name},'%')
 		</if>
 	</select>
-	 
+
 	<insert id="save" parameterType="com.kmall.admin.entity.mk.MkActivityFormEntity" useGeneratedKeys="true" keyProperty="mmId">
 		insert into mk_activity_form(
 			`mk_name`,
@@ -70,9 +70,9 @@
 			#{createTime},
 			#{createrSn})
 	</insert>
-	 
+
 	<update id="update" parameterType="com.kmall.admin.entity.mk.MkActivityFormEntity">
-		update mk_activity_form 
+		update mk_activity_form
 		<set>
 			<if test="mkName != null">`mk_name` = #{mkName}, </if>
 			<if test="mkCode != null">`mk_code` = #{mkCode}, </if>
@@ -81,13 +81,13 @@
 		</set>
 		where mm_id = #{mmId}
 	</update>
-	
+
 	<delete id="delete">
 		delete from mk_activity_form where mm_id = #{value}
 	</delete>
-	
+
 	<delete id="deleteBatch">
-		delete from mk_activity_form where mm_id in 
+		delete from mk_activity_form where mm_id in
 		<foreach item="mmId" collection="array" open="(" separator="," close=")">
 			#{mmId}
 		</foreach>
@@ -152,4 +152,5 @@
 		</if>
 	</select>
 
-</mapper>
+
+</mapper>

+ 8 - 8
kmall-admin/src/main/webapp/WEB-INF/page/mk/mkactivitiescombinationprice.html

@@ -6,7 +6,8 @@
 </head>
 <body>
 <div id="rrapp" v-cloak>
-	<div v-show="showList">
+	<Card v-show="showList">
+        <p slot="title">组合价</p>
         <Row :gutter="16">
             <div class="search-group">
                 <i-col span="4">
@@ -14,23 +15,22 @@
                 </i-col>
                 <i-button @click="query">查询</i-button>
                 <i-button @click="reloadSearch">重置</i-button>
+                <Upload :show-upload-list="false" :on-success="uploadExcelSuccess" :on-error="uploadExcelError" :on-format-error="uploadExcelFormatError"
+                        :format="['xls','xlsx']"
+                        action="../mkactivitiescombinationprice/upload" :before-upload="beforeUpload"  :data="uploadData" >
+                    <i-button type="ghost" icon="ios-cloud-upload-outline">导入</i-button>
+                </Upload>
             </div>
             <div class="buttons-group">
-                #if($shiro.hasPermission("mkactivitiescombinationprice:save"))
                 <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
-                #end
-                #if($shiro.hasPermission("mkactivitiescombinationprice:update"))
                 <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
-                #end
-                #if($shiro.hasPermission("mkactivitiescombinationprice:delete"))
                 <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
-                #end
                 <i-button type="warning" @click="reloadMkactivities" v-show="!isMkactivitiesShow">返回营销方式页</i-button>
             </div>
         </Row>
 	    <table id="jqGrid"></table>
 	    <div id="jqGridPager"></div>
-    </div>
+    </Card>
 
     <Card v-show="!showList">
         <p slot="title">{{title}}</p>

+ 8 - 8
kmall-admin/src/main/webapp/WEB-INF/page/mk/mkactivitiescoupon.html

@@ -6,7 +6,8 @@
 </head>
 <body>
 <div id="rrapp" v-cloak>
-	<div v-show="showList">
+	<Card v-show="showList">
+        <p slot="title">优惠券</p>
         <Row :gutter="16">
             <div class="search-group">
                 <i-col span="4">
@@ -14,23 +15,22 @@
                 </i-col>
                 <i-button @click="query">查询</i-button>
                 <i-button @click="reloadSearch">重置</i-button>
+                <Upload :show-upload-list="false" :on-success="uploadExcelSuccess" :on-error="uploadExcelError" :on-format-error="uploadExcelFormatError"
+                        :format="['xls','xlsx']"
+                        action="../mkactivitiescoupon/upload" :before-upload="beforeUpload"  :data="uploadData" >
+                    <i-button type="ghost" icon="ios-cloud-upload-outline">导入</i-button>
+                </Upload>
             </div>
             <div class="buttons-group">
-                #if($shiro.hasPermission("mkactivitiescoupon:save"))
                 <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
-                #end
-                #if($shiro.hasPermission("mkactivitiescoupon:update"))
                 <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
-                #end
-                #if($shiro.hasPermission("mkactivitiescoupon:delete"))
                 <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
-                #end
                 <i-button type="warning" @click="reloadMkactivities" v-show="!isMkactivitiesShow">返回营销方式页</i-button>
             </div>
         </Row>
 	    <table id="jqGrid"></table>
 	    <div id="jqGridPager"></div>
-    </div>
+    </Card>
 
     <Card v-show="!showList">
         <p slot="title">{{title}}</p>

+ 8 - 8
kmall-admin/src/main/webapp/WEB-INF/page/mk/mkactivitiesdiscount.html

@@ -6,7 +6,8 @@
 </head>
 <body>
 <div id="rrapp" v-cloak>
-	<div v-show="showList">
+	<Card v-show="showList">
+        <p slot="title">全场打折</p>
         <Row :gutter="16">
             <div class="search-group">
                 <i-col span="4">
@@ -14,23 +15,22 @@
                 </i-col>
                 <i-button @click="query">查询</i-button>
                 <i-button @click="reloadSearch">重置</i-button>
+                <Upload :show-upload-list="false" :on-success="uploadExcelSuccess" :on-error="uploadExcelError" :on-format-error="uploadExcelFormatError"
+                        :format="['xls','xlsx']"
+                        action="../mkactivitiesdiscount/upload" :before-upload="beforeUpload"  :data="uploadData" >
+                    <i-button type="ghost" icon="ios-cloud-upload-outline">导入</i-button>
+                </Upload>
             </div>
             <div class="buttons-group">
-                #if($shiro.hasPermission("mkactivitiesdiscount:save"))
                 <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
-                #end
-                #if($shiro.hasPermission("mkactivitiesdiscount:update"))
                 <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
-                #end
-                #if($shiro.hasPermission("mkactivitiesdiscount:delete"))
                 <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
-                #end
                 <i-button type="warning" @click="reloadMkactivities" v-show="!isMkactivitiesShow">返回营销方式页</i-button>
             </div>
         </Row>
 	    <table id="jqGrid"></table>
 	    <div id="jqGridPager"></div>
-    </div>
+    </Card>
 
     <Card v-show="!showList">
         <p slot="title">{{title}}</p>

+ 8 - 8
kmall-admin/src/main/webapp/WEB-INF/page/mk/mkactivitiesfullgift.html

@@ -6,7 +6,8 @@
 </head>
 <body>
 <div id="rrapp" v-cloak>
-	<div v-show="showList">
+	<Card v-show="showList">
+        <p slot="title">满赠</p>
         <Row :gutter="16">
             <div class="search-group">
                 <i-col span="4">
@@ -14,23 +15,22 @@
                 </i-col>
                 <i-button @click="query">查询</i-button>
                 <i-button @click="reloadSearch">重置</i-button>
+                <Upload :show-upload-list="false" :on-success="uploadExcelSuccess" :on-error="uploadExcelError" :on-format-error="uploadExcelFormatError"
+                        :format="['xls','xlsx']"
+                        action="../mkactivitiesfullgift/upload" :before-upload="beforeUpload"  :data="uploadData" >
+                    <i-button type="ghost" icon="ios-cloud-upload-outline">导入</i-button>
+                </Upload>
             </div>
             <div class="buttons-group">
-                #if($shiro.hasPermission("mkactivitiesfullgift:save"))
                 <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
-                #end
-                #if($shiro.hasPermission("mkactivitiesfullgift:update"))
                 <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
-                #end
-                #if($shiro.hasPermission("mkactivitiesfullgift:delete"))
                 <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
-                #end
                 <i-button type="warning" @click="reloadMkactivities" v-show="!isMkactivitiesShow">返回营销方式页</i-button>
             </div>
         </Row>
 	    <table id="jqGrid"></table>
 	    <div id="jqGridPager"></div>
-    </div>
+    </Card>
 
     <Card v-show="!showList">
         <p slot="title">{{title}}</p>

+ 8 - 8
kmall-admin/src/main/webapp/WEB-INF/page/mk/mkactivitiesfullreduction.html

@@ -6,7 +6,8 @@
 </head>
 <body>
 <div id="rrapp" v-cloak>
-	<div v-show="showList">
+	<Card v-show="showList">
+        <p slot="title">满减</p>
         <Row :gutter="16">
             <div class="search-group">
                 <i-col span="4">
@@ -14,23 +15,22 @@
                 </i-col>
                 <i-button @click="query">查询</i-button>
                 <i-button @click="reloadSearch">重置</i-button>
+                <Upload :show-upload-list="false" :on-success="uploadExcelSuccess" :on-error="uploadExcelError" :on-format-error="uploadExcelFormatError"
+                        :format="['xls','xlsx']"
+                        action="../mkactivitiesfullreduction/upload" :before-upload="beforeUpload"  :data="uploadData" >
+                    <i-button type="ghost" icon="ios-cloud-upload-outline">导入</i-button>
+                </Upload>
             </div>
             <div class="buttons-group">
-                #if($shiro.hasPermission("mkactivitiesfullreduction:save"))
                 <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
-                #end
-                #if($shiro.hasPermission("mkactivitiesfullreduction:update"))
                 <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
-                #end
-                #if($shiro.hasPermission("mkactivitiesfullreduction:delete"))
                 <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
-                #end
                 <i-button type="warning" @click="reloadMkactivities" v-show="!isMkactivitiesShow">返回营销方式页</i-button>
             </div>
         </Row>
 	    <table id="jqGrid"></table>
 	    <div id="jqGridPager"></div>
-    </div>
+    </Card>
 
     <Card v-show="!showList">
         <p slot="title">{{title}}</p>

+ 8 - 32
kmall-admin/src/main/webapp/WEB-INF/page/mk/mkactivitiesgetonefreegoods.html

@@ -7,7 +7,8 @@
 </head>
 <body>
 <div id="rrapp" v-cloak>
-	<div v-show="showList">
+	<Card v-show="showList">
+        <p slot="title">买一送一</p>
         <Row :gutter="16">
             <div class="search-group">
                 <i-col span="4">
@@ -15,23 +16,22 @@
                 </i-col>
                 <i-button @click="query">查询</i-button>
                 <i-button @click="reloadSearch">重置</i-button>
+                <Upload :show-upload-list="false" :on-success="uploadExcelSuccess" :on-error="uploadExcelError" :on-format-error="uploadExcelFormatError"
+                        :format="['xls','xlsx']"
+                        action="../mkactivitiesgetonefreegoods/upload" :before-upload="beforeUpload"  :data="uploadData" >
+                    <i-button type="ghost" icon="ios-cloud-upload-outline">导入</i-button>
+                </Upload>
             </div>
             <div class="buttons-group">
-                #if($shiro.hasPermission("mkactivitiesgetonefreegoods:save"))
                 <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
-                #end
-                #if($shiro.hasPermission("mkactivitiesgetonefreegoods:update"))
                 <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
-                #end
-                #if($shiro.hasPermission("mkactivitiesgetonefreegoods:delete"))
                 <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
-                #end
                 <i-button type="warning" @click="reloadMkactivities" v-show="!isMkactivitiesShow">返回营销方式页</i-button>
             </div>
         </Row>
 	    <table id="jqGrid"></table>
 	    <div id="jqGridPager"></div>
-    </div>
+    </Card>
 
     <Card v-show="!showList">
         <p slot="title">{{title}}</p>
@@ -39,15 +39,6 @@
             <Form-item label="产品中文名" prop="productName">
                 <i-input v-model="mkActivitiesGetOneFreeGoods.productName" placeholder="产品中文名"/>
             </Form-item>
-            <Form-item label="每日最低价" prop="edlp">
-                <i-input v-model="mkActivitiesGetOneFreeGoods.edlp" placeholder="每日最低价"/>
-            </Form-item>
-            <Form-item label="建议零售价" prop="suggestedRetailPrice">
-                <i-input v-model="mkActivitiesGetOneFreeGoods.suggestedRetailPrice" placeholder="建议零售价"/>
-            </Form-item>
-            <Form-item label="活动价格" prop="activityPrice">
-                <i-input v-model="mkActivitiesGetOneFreeGoods.activityPrice" placeholder="活动价格"/>
-            </Form-item>
             <Form-item label="门店编号" prop="shopSn">
                 <i-input v-model="mkActivitiesGetOneFreeGoods.shopSn" placeholder="门店编号"/>
             </Form-item>
@@ -60,27 +51,12 @@
             <Form-item label="商品品牌" prop="productBrand">
                 <i-input v-model="mkActivitiesGetOneFreeGoods.productBrand" placeholder="商品品牌"/>
             </Form-item>
-            <Form-item label="商品系列" prop="productSeries">
-                <i-input v-model="mkActivitiesGetOneFreeGoods.productSeries" placeholder="商品系列"/>
-            </Form-item>
             <Form-item label="赠品条码" prop="giftBarcode">
                 <i-input v-model="mkActivitiesGetOneFreeGoods.giftBarcode" placeholder="赠品条码"/>
             </Form-item>
             <Form-item label="营销活动编号" prop="mkaId">
                 <i-input v-model="mkActivitiesGetOneFreeGoods.mkaId" placeholder="营销活动编号"/>
             </Form-item>
-            <Form-item label="创建时间" prop="createTime">
-                <i-input v-model="mkActivitiesGetOneFreeGoods.createTime" placeholder="创建时间"/>
-            </Form-item>
-            <Form-item label="创建人编号" prop="createrSn">
-                <i-input v-model="mkActivitiesGetOneFreeGoods.createrSn" placeholder="创建人编号"/>
-            </Form-item>
-            <Form-item label="修改人编号" prop="moderSn">
-                <i-input v-model="mkActivitiesGetOneFreeGoods.moderSn" placeholder="修改人编号"/>
-            </Form-item>
-            <Form-item label="修改时间" prop="updateTime">
-                <i-input v-model="mkActivitiesGetOneFreeGoods.updateTime" placeholder="修改时间"/>
-            </Form-item>
             <Form-item>
                 <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>
                 <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>

+ 8 - 8
kmall-admin/src/main/webapp/WEB-INF/page/mk/mkactivitiespromotion.html

@@ -6,7 +6,8 @@
 </head>
 <body>
 <div id="rrapp" v-cloak>
-	<div v-show="showList">
+	<Card v-show="showList">
+        <p slot="title">临时促销</p>
         <Row :gutter="16">
             <div class="search-group">
                 <i-col span="4">
@@ -14,23 +15,22 @@
                 </i-col>
                 <i-button @click="query">查询</i-button>
                 <i-button @click="reloadSearch">重置</i-button>
+                <Upload :show-upload-list="false" :on-success="uploadExcelSuccess" :on-error="uploadExcelError" :on-format-error="uploadExcelFormatError"
+                        :format="['xls','xlsx']"
+                        action="../mkactivitiespromotion/upload" :before-upload="beforeUpload"  :data="uploadData" >
+                    <i-button type="ghost" icon="ios-cloud-upload-outline">导入</i-button>
+                </Upload>
             </div>
             <div class="buttons-group">
-                #if($shiro.hasPermission("mkactivitiespromotion:save"))
                 <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
-                #end
-                #if($shiro.hasPermission("mkactivitiespromotion:update"))
                 <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
-                #end
-                #if($shiro.hasPermission("mkactivitiespromotion:delete"))
                 <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
-                #end
                 <i-button type="warning" @click="reloadMkactivities" v-show="!isMkactivitiesShow">返回营销方式页</i-button>
             </div>
         </Row>
 	    <table id="jqGrid"></table>
 	    <div id="jqGridPager"></div>
-    </div>
+    </Card>
 
     <Card v-show="!showList">
         <p slot="title">{{title}}</p>

+ 8 - 8
kmall-admin/src/main/webapp/WEB-INF/page/mk/mkdailyactivities.html

@@ -6,7 +6,8 @@
 </head>
 <body>
 <div id="rrapp" v-cloak>
-	<div v-show="showList">
+	<Card v-show="showList">
+        <p slot="title">日常活动</p>
         <Row :gutter="16">
             <div class="search-group">
                 <i-col span="4">
@@ -14,23 +15,22 @@
                 </i-col>
                 <i-button @click="query">查询</i-button>
                 <i-button @click="reloadSearch">重置</i-button>
+                <Upload :show-upload-list="false" :on-success="uploadExcelSuccess" :on-error="uploadExcelError" :on-format-error="uploadExcelFormatError"
+                        :format="['xls','xlsx']"
+                        action="../mkdailyactivities/upload" :before-upload="beforeUpload"  :data="uploadData" >
+                 <i-button type="ghost" icon="ios-cloud-upload-outline">导入</i-button>
+                </Upload>
             </div>
             <div class="buttons-group">
-                #if($shiro.hasPermission("mkdailyactivities:save"))
                 <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
-                #end
-                #if($shiro.hasPermission("mkdailyactivities:update"))
                 <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
-                #end
-                #if($shiro.hasPermission("mkdailyactivities:delete"))
                 <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
-                #end
                 <i-button type="warning" @click="reloadMkactivities" v-show="!isMkactivitiesShow">返回营销方式页</i-button>
             </div>
         </Row>
 	    <table id="jqGrid"></table>
 	    <div id="jqGridPager"></div>
-    </div>
+    </Card>
 
     <Card v-show="!showList">
         <p slot="title">{{title}}</p>

+ 31 - 21
kmall-admin/src/main/webapp/WEB-INF/page/sale/sale.html

@@ -75,46 +75,48 @@
                 </ul>
             </div>
             <div class="col-md-6" style="padding: 0px;padding-bottom: 10%;background-color: #f0f0f0">
-                <ul class="list-unstyled">
-                    <!--<li style="height: 500px;border:1px solid #F5DCB3">-->
-                    <li style="height: 600px">
+                <ul class="list-unstyled; ">
+                    <li style="height: 600px;overflow:auto">
                         <table id="cbec" class="table .table-striped">
-                            <!--<tr style="border: white;background-color: orange">-->
-                            <!--#E5BB71 #F5DCB3 #FB554E #FFA498-->
                             <tr style="border: white;background-color: #F5DCB3;font-size: 1.3em" >
                                 <th style="width: 371px">跨境商品名称</th>
                                 <th >规格</th>
                                 <th>单价</th>
+                                <th>优惠金额</th>
+                                <th>实际支付价</th>
                                 <!--<th>税费</th>-->
                                 <th>数量</th>
-                                <th>操作</th>
+<!--                                <th>操作</th>-->
+                                <th>参与活动</th>
                             </tr>
                             <tr v-for="(item,i) in goodsList" v-if="item.name" style="font-size: 1.3em">
                                 <td><h3>{{item.name}}</h3></td>
                                 <td> {{item.specification}}</td>
                                 <td> {{item.retailPrice}}</td>
+                                <td> {{item.discountedPrice}}</td>
+                                <td> {{item.actualPaymentAmount}}</td>
                                 <td>
-                                    <i class="glyphicon glyphicon-minus" aria-hidden="true" @click="minus(item.id)"></i>
+<!--                                    <i class="glyphicon glyphicon-minus" 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" aria-hidden="true" @click="add(item.id)"></i>-->
                                 </td>
-                                <td >
-                                    <i class="glyphicon glyphicon-remove" aria-hidden="true" @click="deleteItem(item.id)"></i>
+<!--                                <td >-->
+<!--                                    <i class="glyphicon glyphicon-remove" aria-hidden="true" @click="deleteItem(item.id)"></i>-->
+<!--                                </td>-->
+                                <td>
+                                    {{item.activity}}
                                 </td>
                             </tr>
                         </table>
                     </li>
-                    <!--<li  style="height: 300px;">
-                        <table id="general" class="table .table-striped">
-                            <tr style="border: white;background-color: orange">
-                                <th>一般贸易</th>
-                                <th>规格</th>
-                                <th>单价</th>
-                                <th>数量</th>
-                                <th>操作</th>getStoresByMerch
-                            </tr>
-                        </table>
-                    </li>-->
+                    <li>
+                        <ul>
+                            <li><h3 style="border: white;padding: 8px">总价:{{totalPrice}}</h3></li>
+                            <li><h3 style="border: white;padding: 8px">优惠价:{{discountedPrice}}</h3></li>
+                            <li><h3 style="border: white;padding: 8px">实际支付价:{{actualPrice}}</h3></li>
+                            <li v-if="showReduceMoney != 0"><h3 style="border: white;padding: 8px">满减:{{showReduceMoney}}</h3></li>
+                        </ul>
+                    </li>
                     <li  style="height: 100px;">
                         <i-button type="warning" @click="clearGoodsList" class="goods-button"><i class="fa fa-pencil-square-o"></i>&nbsp;清空商品列表</i-button>
                         <i-button data-toggle="modal" @click="toOrderSubmit" type="warning" class="goods-button" ><i class="fa fa-pencil-square-o"></i>&nbsp;提交订单</i-button>
@@ -140,6 +142,10 @@
                                                 <label for="customPhone" class="control-label">手机号:</label>
                                                 <input type="text" class="form-control" ref="customPhone" id="customPhone" />
                                             </div>
+                                            <div v-if="coupons.size > 0" class="form-group">
+                                                <label for="couponSn" class="control-label">优惠券码:</label>
+                                                <input type="text" class="form-control" ref="couponSn" id="couponSn" />
+                                            </div>
                                         </form>
                                     </div>
                                     <div class="modal-footer">
@@ -245,16 +251,20 @@
                                     <th>商品名称</th>
                                     <th>规格</th>
                                     <th>单价</th>
+                                    <th>实际支付价</th>
                                     <!--<th>税费</th>-->
                                     <th>数量</th>
                                     <th>总额</th>
+                                    <th>参与活动</th>
                                 </tr>
                                 <tr v-for="(item,i) in goodsDetailList" >
                                     <td><h3>{{item.goodsName}}</h3></td>
                                     <td>{{item.specification}}</td>
+                                    <td>{{item.marketPrice}}</td>
                                     <td>{{item.retailPrice}}</td>
                                     <td>{{item.number}}</td>
                                     <td >{{item.number*item.retailPrice}}</td>
+                                    <td >{{item.activity}}</td>
                                 </tr>
                             </table>
 

+ 62 - 16
kmall-admin/src/main/webapp/js/mk/mkactivitiescombinationprice.js

@@ -1,4 +1,26 @@
 $(function () {
+
+
+	let flag = getQueryString("flag");
+	if(flag != null && flag == "false"){
+		vm.isMkactivitiesShow = false;
+	}
+	let mkCode = getQueryString("mkCode");
+	if(mkCode){
+		vm.mkCode = mkCode;
+	}
+	console.log(vm.mkCode);
+	let storeId = getQueryString("storeId");
+	if(storeId){
+		vm.storeId = storeId;
+	}
+	let mkaId = getQueryString("mkaId");
+	if(mkaId){
+		vm.mkaId = mkaId;
+	}
+	console.log(mkaId);
+
+
     $("#jqGrid").jqGrid({
         url: '../mkactivitiescombinationprice/list',
         datatype: "json",
@@ -9,13 +31,10 @@ $(function () {
 			{label: '组合的产品数量', name: 'combinationNum', index: 'combination_num', width: 80},
 			{label: '组合价', name: 'combinedPrice', index: 'combined_price', width: 80},
 			{label: '营销活动编号', name: 'mkaId', index: 'mka_id', width: 80},
-			{label: '截止日期', name: 'deadline', index: 'deadline', width: 80},
-			{label: '创建时间', name: 'createTime', index: 'create_time', width: 80},
-			{label: '创建人编号', name: 'createrSn', index: 'creater_sn', width: 80},
-			{label: '修改人编号', name: 'moderSn', index: 'moder_sn', width: 80},
-			{label: '修改时间', name: 'updateTime', index: 'update_time', width: 80}],
+			{label: '截止日期', name: 'deadline', index: 'deadline', width: 80}],
 		viewrecords: true,
         height: 550,
+		postData: {'mkaId': vm.mkaId},
         rowNum: 10,
         rowList: [10, 30, 50],
         rownumbers: true,
@@ -39,14 +58,7 @@ $(function () {
         }
     });
 
-    let flag = getQueryString("flag");
-    if(flag != null && flag == "false"){
-        vm.isMkactivitiesShow = false;
-    }
-    let mkCode = getQueryString("mkCode");
-    if(mkCode){
-        vm.mkCode = mkCode;
-    }
+
 });
 
 let vm = new Vue({
@@ -64,7 +76,10 @@ let vm = new Vue({
 		    name: ''
 		},
         isMkactivitiesShow: true,
-        mkCode: ''
+        mkCode: '',
+		uploadData:[],
+		storeId : '',
+		mkaId : ''
 	},
 	methods: {
 		query: function () {
@@ -158,6 +173,37 @@ let vm = new Vue({
         //返回营销方式页
         reloadMkactivities: function () {
             window.location.href = "/mk/mkactivityform.html?mkCode="+vm.mkCode;
-        }
+        },
+		uploadExcelSuccess: function (data) {
+			// console.log(data);
+			if(data.code==0){
+				alert('导入成功', function (index) {
+					$("#jqGrid").trigger("reloadGrid");
+				});
+			}else{
+				alert(data.msg);
+			}
+		},
+		uploadExcelError: function () {
+			alert('上传出现异常,请重试!');
+		},
+		uploadExcelFormatError: function (file) {
+			this.$Notice.warning({
+				title: '文件格式不正确',
+				desc: '文件 ' + file.name + ' 格式不正确,请上传 xls 或 xlsx 格式的文件。'
+			});
+		},beforeUpload(){
+			vm.uploadData = {
+				storeId: vm.storeId,
+				mkaId : vm.mkaId
+			}
+			let promise = new Promise((resolve) => {
+				this.$nextTick(function () {
+					resolve(true);
+				});
+			});
+			return promise; //通过返回一个promis对象解决
+
+		},
 	}
-});
+});

+ 60 - 16
kmall-admin/src/main/webapp/js/mk/mkactivitiescoupon.js

@@ -1,4 +1,24 @@
 $(function () {
+
+	let flag = getQueryString("flag");
+	if(flag != null && flag == "false"){
+		vm.isMkactivitiesShow = false;
+	}
+	let mkCode = getQueryString("mkCode");
+	if(mkCode){
+		vm.mkCode = mkCode;
+	}
+
+	let storeId = getQueryString("storeId");
+	console.log(storeId);
+	if(storeId){
+		vm.storeId = storeId;
+	}
+	let mkaId = getQueryString("mkaId");
+	if(mkaId){
+		vm.mkaId = mkaId;
+	}
+
     $("#jqGrid").jqGrid({
         url: '../mkactivitiescoupon/list',
         datatype: "json",
@@ -10,12 +30,9 @@ $(function () {
 			{label: '优惠券码', name: 'couponSn', index: 'coupon_sn', width: 80},
 			{label: '优惠金额', name: 'couponPrice', index: 'coupon_price', width: 80},
 			{label: '营销活动编号', name: 'mkaId', index: 'mka_id', width: 80},
-			{label: '截止日期', name: 'deadline', index: 'deadline', width: 80},
-			{label: '创建时间', name: 'createTime', index: 'create_time', width: 80},
-			{label: '创建人编号', name: 'createrSn', index: 'creater_sn', width: 80},
-			{label: '修改人编号', name: 'moderSn', index: 'moder_sn', width: 80},
-			{label: '修改时间', name: 'updateTime', index: 'update_time', width: 80}],
+			{label: '截止日期', name: 'deadline', index: 'deadline', width: 80}],
 		viewrecords: true,
+		postData: {'mkaId': vm.mkaId},
         height: 550,
         rowNum: 10,
         rowList: [10, 30, 50],
@@ -40,14 +57,7 @@ $(function () {
         }
     });
 
-    let flag = getQueryString("flag");
-    if(flag != null && flag == "false"){
-        vm.isMkactivitiesShow = false;
-    }
-    let mkCode = getQueryString("mkCode");
-    if(mkCode){
-        vm.mkCode = mkCode;
-    }
+
 });
 
 let vm = new Vue({
@@ -65,7 +75,10 @@ let vm = new Vue({
 		    name: ''
 		},
         isMkactivitiesShow: true,
-        mkCode: ''
+        mkCode: '',
+		uploadData:[],
+		storeId : '',
+		mkaId : ''
 	},
 	methods: {
 		query: function () {
@@ -159,6 +172,37 @@ let vm = new Vue({
         //返回营销方式页
         reloadMkactivities: function () {
             window.location.href = "/mk/mkactivityform.html?mkCode="+vm.mkCode;
-        }
+        },
+		uploadExcelSuccess: function (data) {
+			// console.log(data);
+			if(data.code==0){
+				alert('导入成功', function (index) {
+					$("#jqGrid").trigger("reloadGrid");
+				});
+			}else{
+				alert(data.msg);
+			}
+		},
+		uploadExcelError: function () {
+			alert('上传出现异常,请重试!');
+		},
+		uploadExcelFormatError: function (file) {
+			this.$Notice.warning({
+				title: '文件格式不正确',
+				desc: '文件 ' + file.name + ' 格式不正确,请上传 xls 或 xlsx 格式的文件。'
+			});
+		},beforeUpload(){
+			vm.uploadData = {
+				storeId: vm.storeId,
+				mkaId : vm.mkaId
+			}
+			let promise = new Promise((resolve) => {
+				this.$nextTick(function () {
+					resolve(true);
+				});
+			});
+			return promise; //通过返回一个promis对象解决
+
+		},
 	}
-});
+});

+ 60 - 16
kmall-admin/src/main/webapp/js/mk/mkactivitiesdiscount.js

@@ -1,4 +1,24 @@
 $(function () {
+
+	let flag = getQueryString("flag");
+	if(flag != null && flag == "false"){
+		vm.isMkactivitiesShow = false;
+	}
+	let mkCode = getQueryString("mkCode");
+	if(mkCode){
+		vm.mkCode = mkCode;
+	}
+
+	let storeId = getQueryString("storeId");
+	console.log(storeId);
+	if(storeId){
+		vm.storeId = storeId;
+	}
+	let mkaId = getQueryString("mkaId");
+	if(mkaId){
+		vm.mkaId = mkaId;
+	}
+
     $("#jqGrid").jqGrid({
         url: '../mkactivitiesdiscount/list',
         datatype: "json",
@@ -12,12 +32,9 @@ $(function () {
 			{label: '商品品牌', name: 'productBrand', index: 'product_brand', width: 80},
 			{label: '商品系列', name: 'productSeries', index: 'product_series', width: 80},
 			{label: '折扣', name: 'discount', index: 'discount', width: 80},
-			{label: '营销活动编号', name: 'mkaId', index: 'mka_id', width: 80},
-			{label: '创建时间', name: 'createTime', index: 'create_time', width: 80},
-			{label: '创建人编号', name: 'createrSn', index: 'creater_sn', width: 80},
-			{label: '修改人编号', name: 'moderSn', index: 'moder_sn', width: 80},
-			{label: '修改时间', name: 'updateTime', index: 'update_time', width: 80}],
+			{label: '营销活动编号', name: 'mkaId', index: 'mka_id', width: 80}],
 		viewrecords: true,
+		postData: {'mkaId': vm.mkaId},
         height: 550,
         rowNum: 10,
         rowList: [10, 30, 50],
@@ -42,14 +59,7 @@ $(function () {
         }
     });
 
-    let flag = getQueryString("flag");
-    if(flag != null && flag == "false"){
-        vm.isMkactivitiesShow = false;
-    }
-    let mkCode = getQueryString("mkCode");
-    if(mkCode){
-        vm.mkCode = mkCode;
-    }
+
 });
 
 let vm = new Vue({
@@ -67,7 +77,10 @@ let vm = new Vue({
 		    name: ''
 		},
         isMkactivitiesShow: true,
-        mkCode: ''
+        mkCode: '',
+		uploadData:[],
+		storeId : '',
+		mkaId : ''
 	},
 	methods: {
 		query: function () {
@@ -161,6 +174,37 @@ let vm = new Vue({
         //返回营销方式页
         reloadMkactivities: function () {
             window.location.href = "/mk/mkactivityform.html?mkCode="+vm.mkCode;
-        }
+        },
+		uploadExcelSuccess: function (data) {
+			// console.log(data);
+			if(data.code==0){
+				alert('导入成功', function (index) {
+					$("#jqGrid").trigger("reloadGrid");
+				});
+			}else{
+				alert(data.msg);
+			}
+		},
+		uploadExcelError: function () {
+			alert('上传出现异常,请重试!');
+		},
+		uploadExcelFormatError: function (file) {
+			this.$Notice.warning({
+				title: '文件格式不正确',
+				desc: '文件 ' + file.name + ' 格式不正确,请上传 xls 或 xlsx 格式的文件。'
+			});
+		},beforeUpload(){
+			vm.uploadData = {
+				storeId: vm.storeId,
+				mkaId : vm.mkaId
+			}
+			let promise = new Promise((resolve) => {
+				this.$nextTick(function () {
+					resolve(true);
+				});
+			});
+			return promise; //通过返回一个promis对象解决
+
+		},
 	}
-});
+});

+ 59 - 17
kmall-admin/src/main/webapp/js/mk/mkactivitiesfullgift.js

@@ -1,4 +1,24 @@
 $(function () {
+
+	let flag = getQueryString("flag");
+	if(flag != null && flag == "false"){
+		vm.isMkactivitiesShow = false;
+	}
+	let mkCode = getQueryString("mkCode");
+	if(mkCode){
+		vm.mkCode = mkCode;
+	}
+
+	let storeId = getQueryString("storeId");
+	console.log(storeId);
+	if(storeId){
+		vm.storeId = storeId;
+	}
+	let mkaId = getQueryString("mkaId");
+	if(mkaId){
+		vm.mkaId = mkaId;
+	}
+
     $("#jqGrid").jqGrid({
         url: '../mkactivitiesfullgift/list',
         datatype: "json",
@@ -13,12 +33,9 @@ $(function () {
 			{label: '满足条件金额', name: 'qualifiedAmount', index: 'qualified_amount', width: 80},
 			{label: '赠品条码', name: 'giftBarcode', index: 'gift_barcode', width: 80},
 			{label: '营销活动编号', name: 'mkaId', index: 'mka_id', width: 80},
-			{label: '截止日期', name: 'deadline', index: 'deadline', width: 80},
-			{label: '创建时间', name: 'createTime', index: 'create_time', width: 80},
-			{label: '创建人编号', name: 'createrSn', index: 'creater_sn', width: 80},
-			{label: '修改人编号', name: 'moderSn', index: 'moder_sn', width: 80},
-			{label: '修改时间', name: 'updateTime', index: 'update_time', width: 80}],
+			{label: '截止日期', name: 'deadline', index: 'deadline', width: 80}],
 		viewrecords: true,
+		postData: {'mkaId': vm.mkaId},
         height: 550,
         rowNum: 10,
         rowList: [10, 30, 50],
@@ -42,15 +59,6 @@ $(function () {
             $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
         }
     });
-
-    let flag = getQueryString("flag");
-    if(flag != null && flag == "false"){
-        vm.isMkactivitiesShow = false;
-    }
-    let mkCode = getQueryString("mkCode");
-    if(mkCode){
-        vm.mkCode = mkCode;
-    }
 });
 
 let vm = new Vue({
@@ -68,7 +76,10 @@ let vm = new Vue({
 		    name: ''
 		},
         isMkactivitiesShow: true,
-        mkCode: ''
+        mkCode: '',
+		uploadData:[],
+		storeId : '',
+		mkaId : ''
 	},
 	methods: {
 		query: function () {
@@ -162,6 +173,37 @@ let vm = new Vue({
         //返回营销方式页
         reloadMkactivities: function () {
             window.location.href = "/mk/mkactivityform.html?mkCode="+vm.mkCode;
-        }
+        },
+		uploadExcelSuccess: function (data) {
+			// console.log(data);
+			if(data.code==0){
+				alert('导入成功', function (index) {
+					$("#jqGrid").trigger("reloadGrid");
+				});
+			}else{
+				alert(data.msg);
+			}
+		},
+		uploadExcelError: function () {
+			alert('上传出现异常,请重试!');
+		},
+		uploadExcelFormatError: function (file) {
+			this.$Notice.warning({
+				title: '文件格式不正确',
+				desc: '文件 ' + file.name + ' 格式不正确,请上传 xls 或 xlsx 格式的文件。'
+			});
+		},beforeUpload(){
+			vm.uploadData = {
+				storeId: vm.storeId,
+				mkaId : vm.mkaId
+			}
+			let promise = new Promise((resolve) => {
+				this.$nextTick(function () {
+					resolve(true);
+				});
+			});
+			return promise; //通过返回一个promis对象解决
+
+		},
 	}
-});
+});

+ 61 - 16
kmall-admin/src/main/webapp/js/mk/mkactivitiesfullreduction.js

@@ -1,4 +1,25 @@
 $(function () {
+
+
+	let flag = getQueryString("flag");
+	if(flag != null && flag == "false"){
+		vm.isMkactivitiesShow = false;
+	}
+	let mkCode = getQueryString("mkCode");
+	if(mkCode){
+		vm.mkCode = mkCode;
+	}
+
+	let storeId = getQueryString("storeId");
+	console.log(storeId);
+	if(storeId){
+		vm.storeId = storeId;
+	}
+	let mkaId = getQueryString("mkaId");
+	if(mkaId){
+		vm.mkaId = mkaId;
+	}
+
     $("#jqGrid").jqGrid({
         url: '../mkactivitiesfullreduction/list',
         datatype: "json",
@@ -13,12 +34,9 @@ $(function () {
 			{label: '满足条件金额', name: 'qualifiedAmount', index: 'qualified_amount', width: 80},
 			{label: '减扣金额', name: 'deductionAmount', index: 'deduction_amount', width: 80},
 			{label: '营销活动编号', name: 'mkaId', index: 'mka_id', width: 80},
-			{label: '截止日期', name: 'deadline', index: 'deadline', width: 80},
-			{label: '创建时间', name: 'createTime', index: 'create_time', width: 80},
-			{label: '创建人编号', name: 'createrSn', index: 'creater_sn', width: 80},
-			{label: '修改人编号', name: 'moderSn', index: 'moder_sn', width: 80},
-			{label: '修改时间', name: 'updateTime', index: 'update_time', width: 80}],
+			{label: '截止日期', name: 'deadline', index: 'deadline', width: 80}],
 		viewrecords: true,
+		postData: {'mkaId': vm.mkaId},
         height: 550,
         rowNum: 10,
         rowList: [10, 30, 50],
@@ -43,14 +61,7 @@ $(function () {
         }
     });
 
-    let flag = getQueryString("flag");
-    if(flag != null && flag == "false"){
-        vm.isMkactivitiesShow = false;
-    }
-    let mkCode = getQueryString("mkCode");
-    if(mkCode){
-        vm.mkCode = mkCode;
-    }
+
 });
 
 let vm = new Vue({
@@ -68,7 +79,10 @@ let vm = new Vue({
 		    name: ''
 		},
         isMkactivitiesShow: true,
-        mkCode: ''
+        mkCode: '',
+		uploadData:[],
+		storeId : '',
+		mkaId : ''
 	},
 	methods: {
 		query: function () {
@@ -162,6 +176,37 @@ let vm = new Vue({
         //返回营销方式页
         reloadMkactivities: function () {
             window.location.href = "/mk/mkactivityform.html?mkCode="+vm.mkCode;
-        }
+        },
+		uploadExcelSuccess: function (data) {
+			// console.log(data);
+			if(data.code==0){
+				alert('导入成功', function (index) {
+					$("#jqGrid").trigger("reloadGrid");
+				});
+			}else{
+				alert(data.msg);
+			}
+		},
+		uploadExcelError: function () {
+			alert('上传出现异常,请重试!');
+		},
+		uploadExcelFormatError: function (file) {
+			this.$Notice.warning({
+				title: '文件格式不正确',
+				desc: '文件 ' + file.name + ' 格式不正确,请上传 xls 或 xlsx 格式的文件。'
+			});
+		},beforeUpload(){
+			vm.uploadData = {
+				storeId: vm.storeId,
+				mkaId : vm.mkaId
+			}
+			let promise = new Promise((resolve) => {
+				this.$nextTick(function () {
+					resolve(true);
+				});
+			});
+			return promise; //通过返回一个promis对象解决
+
+		},
 	}
-});
+});

+ 60 - 20
kmall-admin/src/main/webapp/js/mk/mkactivitiesgetonefreegoods.js

@@ -1,25 +1,38 @@
 $(function () {
+
+	let flag = getQueryString("flag");
+	if(flag != null && flag == "false"){
+		vm.isMkactivitiesShow = false;
+	}
+	let mkCode = getQueryString("mkCode");
+	if(mkCode){
+		vm.mkCode = mkCode;
+	}
+
+	let storeId = getQueryString("storeId");
+	console.log(storeId);
+	if(storeId){
+		vm.storeId = storeId;
+	}
+	let mkaId = getQueryString("mkaId");
+	if(mkaId){
+		vm.mkaId = mkaId;
+	}
+
     $("#jqGrid").jqGrid({
         url: '../mkactivitiesgetonefreegoods/list',
         datatype: "json",
         colModel: [
 			{label: 'mkaFreeId', name: 'mkaFreeId', index: 'mka_free_id', key: true, hidden: true},
 			{label: '产品中文名', name: 'productName', index: 'product_name', width: 80},
-			{label: '每日最低价', name: 'edlp', index: 'edlp', width: 80},
-			{label: '建议零售价', name: 'suggestedRetailPrice', index: 'suggested_retail_price', width: 80},
-			{label: '活动价格', name: 'activityPrice', index: 'activity_price', width: 80},
 			{label: '门店编号', name: 'shopSn', index: 'shop_sn', width: 80},
 			{label: '商品编码', name: 'goodsSn', index: 'goods_sn', width: 80},
 			{label: '条形码', name: 'barcode', index: 'barcode', width: 80},
 			{label: '商品品牌', name: 'productBrand', index: 'product_brand', width: 80},
-			{label: '商品系列', name: 'productSeries', index: 'product_series', width: 80},
 			{label: '赠品条码', name: 'giftBarcode', index: 'gift_barcode', width: 80},
-			{label: '营销活动编号', name: 'mkaId', index: 'mka_id', width: 80},
-			{label: '创建时间', name: 'createTime', index: 'create_time', width: 80},
-			{label: '创建人编号', name: 'createrSn', index: 'creater_sn', width: 80},
-			{label: '修改人编号', name: 'moderSn', index: 'moder_sn', width: 80},
-			{label: '修改时间', name: 'updateTime', index: 'update_time', width: 80}],
+			{label: '营销活动编号', name: 'mkaId', index: 'mka_id', width: 80}],
 		viewrecords: true,
+		postData: {'mkaId': vm.mkaId},
         height: 550,
         rowNum: 10,
         rowList: [10, 30, 50],
@@ -44,14 +57,7 @@ $(function () {
         }
     });
 
-    let flag = getQueryString("flag");
-    if(flag != null && flag == "false"){
-        vm.isMkactivitiesShow = false;
-    }
-    let mkCode = getQueryString("mkCode");
-    if(mkCode){
-        vm.mkCode = mkCode;
-    }
+
 });
 
 let vm = new Vue({
@@ -69,7 +75,10 @@ let vm = new Vue({
 		    name: ''
 		},
         isMkactivitiesShow: true,
-        mkCode: ''
+        mkCode: '',
+		uploadData:[],
+		storeId : '',
+		mkaId : ''
 	},
 	methods: {
 		query: function () {
@@ -163,6 +172,37 @@ let vm = new Vue({
         //返回营销方式页
         reloadMkactivities: function () {
             window.location.href = "/mk/mkactivityform.html?mkCode="+vm.mkCode;
-        }
+        },
+		uploadExcelSuccess: function (data) {
+			// console.log(data);
+			if(data.code==0){
+				alert('导入成功', function (index) {
+					$("#jqGrid").trigger("reloadGrid");
+				});
+			}else{
+				alert(data.msg);
+			}
+		},
+		uploadExcelError: function () {
+			alert('上传出现异常,请重试!');
+		},
+		uploadExcelFormatError: function (file) {
+			this.$Notice.warning({
+				title: '文件格式不正确',
+				desc: '文件 ' + file.name + ' 格式不正确,请上传 xls 或 xlsx 格式的文件。'
+			});
+		},beforeUpload(){
+			vm.uploadData = {
+				storeId: vm.storeId,
+				mkaId : vm.mkaId
+			}
+			let promise = new Promise((resolve) => {
+				this.$nextTick(function () {
+					resolve(true);
+				});
+			});
+			return promise; //通过返回一个promis对象解决
+
+		},
 	}
-});
+});

+ 62 - 16
kmall-admin/src/main/webapp/js/mk/mkactivitiespromotion.js

@@ -1,4 +1,25 @@
 $(function () {
+
+	let flag = getQueryString("flag");
+	if(flag != null && flag == "false"){
+		vm.isMkactivitiesShow = false;
+	}
+	let mkCode = getQueryString("mkCode");
+	if(mkCode){
+		vm.mkCode = mkCode;
+	}
+
+	let storeId = getQueryString("storeId");
+	if(storeId){
+		vm.storeId = storeId;
+	}
+	let mkaId = getQueryString("mkaId");
+	if(mkaId){
+		vm.mkaId = mkaId;
+	}
+
+
+
     $("#jqGrid").jqGrid({
         url: '../mkactivitiespromotion/list',
         datatype: "json",
@@ -12,12 +33,9 @@ $(function () {
 			{label: '商品品牌', name: 'productBrand', index: 'product_brand', width: 80},
 			{label: '商品系列', name: 'productSeries', index: 'product_series', width: 80},
 			{label: '营销活动编号', name: 'mkaId', index: 'mka_id', width: 80},
-			{label: '截止日期', name: 'deadline', index: 'deadline', width: 80},
-			{label: '创建时间', name: 'createTime', index: 'create_time', width: 80},
-			{label: '创建人编号', name: 'createrSn', index: 'creater_sn', width: 80},
-			{label: '修改人编号', name: 'moderSn', index: 'moder_sn', width: 80},
-			{label: '修改时间', name: 'updateTime', index: 'update_time', width: 80}],
+			{label: '截止日期', name: 'deadline', index: 'deadline', width: 80}],
 		viewrecords: true,
+		postData:{storeId:storeId},
         height: 550,
         rowNum: 10,
         rowList: [10, 30, 50],
@@ -42,14 +60,7 @@ $(function () {
         }
     });
 
-    let flag = getQueryString("flag");
-    if(flag != null && flag == "false"){
-        vm.isMkactivitiesShow = false;
-	}
-	let mkCode = getQueryString("mkCode");
-    if(mkCode){
-    	vm.mkCode = mkCode;
-	}
+
 });
 
 let vm = new Vue({
@@ -67,7 +78,10 @@ let vm = new Vue({
 		    name: ''
 		},
         isMkactivitiesShow: true,
-		mkCode: ''
+		mkCode: '',
+		uploadData:[],
+		storeId : '',
+		mkaId : ''
 	},
 	methods: {
 		query: function () {
@@ -160,7 +174,39 @@ let vm = new Vue({
         },
 		//返回营销方式页
         reloadMkactivities: function () {
+
             window.location.href = "/mk/mkactivityform.html?mkCode="+vm.mkCode;
-        }
+        },
+		uploadExcelSuccess: function (data) {
+			// console.log(data);
+			if(data.code==0){
+				alert('导入成功', function (index) {
+					$("#jqGrid").trigger("reloadGrid");
+				});
+			}else{
+				alert(data.msg);
+			}
+		},
+		uploadExcelError: function () {
+			alert('上传出现异常,请重试!');
+		},
+		uploadExcelFormatError: function (file) {
+			this.$Notice.warning({
+				title: '文件格式不正确',
+				desc: '文件 ' + file.name + ' 格式不正确,请上传 xls 或 xlsx 格式的文件。'
+			});
+		},beforeUpload(){
+			vm.uploadData = {
+				storeId: vm.storeId,
+				mkaId : vm.mkaId
+			}
+			let promise = new Promise((resolve) => {
+				this.$nextTick(function () {
+					resolve(true);
+				});
+			});
+			return promise; //通过返回一个promis对象解决
+
+		},
 	}
-});
+});

+ 10 - 9
kmall-admin/src/main/webapp/js/mk/mkactivityform.js

@@ -50,7 +50,9 @@ $(function () {
         {'lscx': '临时促销','yhq': '优惠券','rchd': '日常活动','mysy': '买一送一','mj': '满减', 'mz': '满赠','dz': '打折','zhjsp': '组合价商品'};
 
 
-
+    let mkCode = getQueryString("mkCode");
+    vm.mkCode = mkCode;
+    vm.showMkactivities(mkCode);
 
     $("#jqGridOrder").jqGrid({
         url: '../mkactivityform/queryMkactivitiesList',
@@ -80,7 +82,7 @@ $(function () {
                 }},
             {label: '商户名称', name: 'merchName', width: 80, align: 'center'},
             {label: '第三方商户', name: 'thirdMerchName', width: 80, align: 'center'},
-            {label: '门店编号', name: 'storeId', width: 80, align: 'center',hidden: true},
+            {label: '门店编号', name: 'mkaStoreId', width: 80, align: 'center',hidden: true},
             {label: '活动门店', name: 'storeName', width: 80, align: 'center'},
             {label: '是否启用', name: 'mkaStatus', index: 'mka_status', width: 60, align: 'center',
                 formatter: function (value) {
@@ -108,7 +110,7 @@ $(function () {
             {label: '操作', width: 80, align: 'center',
                 formatter: function (value, col, row) {
                     htmlStr = "<button class='btn btn-outline btn-primary' " +
-                        "onclick='vm.showMkactivitiesGoods(\""+row.mkaId+"\",\""+row.storeId+"\",\""+row.mkaTopic+"\")'>管理商品</button>";
+                        "onclick='vm.showMkactivitiesGoods(\""+row.mkaId+"\",\""+row.mkaStoreId+"\",\""+row.mkaTopic+"\")'>管理商品</button>";
 
                     return htmlStr;
                 }
@@ -116,6 +118,7 @@ $(function () {
         viewrecords: true,
         height: 550,
         width:1680,
+        postData: {'mkCode': vm.mkCode, 'topic': vm.q.topic},
         rowNum: 10,
         rowList: [10, 30, 50],
         rownumbers: true,
@@ -140,8 +143,7 @@ $(function () {
     });
 
 
-    let mkCode = getQueryString("mkCode");
-    vm.showMkactivities(mkCode);
+
 });
 
 let vm = new Vue({
@@ -310,7 +312,6 @@ let vm = new Vue({
             vm.mkCode = mkCode;
             vm.showList = true;
             vm.showViewList = false;
-
             vm.reloadMkactivitiesSearch();
         },
         reloadMkactivitiesSearch: function() {
@@ -321,7 +322,7 @@ let vm = new Vue({
             vm.title = '管理营销方式';
             vm.showMkactivitiesViewList = false;
             vm.showMkactivitiesList = true;
-
+            console.log(vm.mkCode);
             let page = $("#jqGridOrder").jqGrid('getGridParam', 'page');
             $("#jqGridOrder").jqGrid('setGridParam', {
                 postData: {'mkCode': vm.mkCode, 'topic': vm.q.topic},
@@ -509,7 +510,7 @@ let vm = new Vue({
                 url = "/mk/mkactivitiesdiscount.html";
             else if(mkaTopic === 'zhjsp')
                 url = "/mk/mkactivitiescombinationprice.html";
-            window.location.href =  url+"?flag=false&mkCode="+vm.mkCode;
+            window.location.href =  url+"?flag=false&mkCode="+vm.mkCode+"&mkaId="+mkaId+"&storeId="+storeId;
         }
 	}
-});
+});

+ 60 - 18
kmall-admin/src/main/webapp/js/mk/mkdailyactivities.js

@@ -1,4 +1,22 @@
 $(function () {
+	let flag = getQueryString("flag");
+	if(flag != null && flag == "false"){
+		vm.isMkactivitiesShow = false;
+	}
+	let mkCode = getQueryString("mkCode");
+	if(mkCode){
+		vm.mkCode = mkCode;
+	}
+	let storeId = getQueryString("storeId");
+	console.log(storeId);
+	if(storeId){
+		vm.storeId = storeId;
+	}
+	let mkaId = getQueryString("mkaId");
+	if(mkaId){
+		vm.mkaId = mkaId;
+	}
+
     $("#jqGrid").jqGrid({
         url: '../mkdailyactivities/list',
         datatype: "json",
@@ -10,14 +28,10 @@ $(function () {
 			{label: '门店编号', name: 'shopSn', index: 'shop_sn', width: 80},
 			{label: '商品编码', name: 'goodsSn', index: 'goods_sn', width: 80},
 			{label: '条形码', name: 'barcode', index: 'barcode', width: 80},
-			{label: '商品品牌', name: 'productBrand', index: 'product_brand', width: 80},
-			{label: '商品系列', name: 'productSeries', index: 'product_series', width: 80},
-			{label: '营销活动编号', name: 'mkaId', index: 'mka_id', width: 80},
-			{label: '创建时间', name: 'createTime', index: 'create_time', width: 80},
-			{label: '创建人编号', name: 'createrSn', index: 'creater_sn', width: 80},
-			{label: '修改人编号', name: 'moderSn', index: 'moder_sn', width: 80},
-			{label: '修改时间', name: 'updateTime', index: 'update_time', width: 80}],
+			{label: '营销活动编号', name: 'mkaId', index: 'mka_id', width: 80}
+			],
 		viewrecords: true,
+		postData: {'mkaId': vm.mkaId},
         height: 550,
         rowNum: 10,
         rowList: [10, 30, 50],
@@ -42,14 +56,8 @@ $(function () {
         }
     });
 
-    let flag = getQueryString("flag");
-    if(flag != null && flag == "false"){
-        vm.isMkactivitiesShow = false;
-    }
-    let mkCode = getQueryString("mkCode");
-    if(mkCode){
-        vm.mkCode = mkCode;
-    }
+
+
 });
 
 let vm = new Vue({
@@ -67,7 +75,10 @@ let vm = new Vue({
 		    name: ''
 		},
         isMkactivitiesShow: true,
-        mkCode: ''
+        mkCode: '',
+		uploadData:[],
+		storeId : '',
+		mkaId : ''
 	},
 	methods: {
 		query: function () {
@@ -161,6 +172,37 @@ let vm = new Vue({
         //返回营销方式页
         reloadMkactivities: function () {
             window.location.href = "/mk/mkactivityform.html?mkCode="+vm.mkCode;
-        }
+        },
+		uploadExcelSuccess: function (data) {
+			// console.log(data);
+			if(data.code==0){
+				alert('导入成功', function (index) {
+					$("#jqGrid").trigger("reloadGrid");
+				});
+			}else{
+				alert(data.msg);
+			}
+		},
+		uploadExcelError: function () {
+			alert('上传出现异常,请重试!');
+		},
+		uploadExcelFormatError: function (file) {
+			this.$Notice.warning({
+				title: '文件格式不正确',
+				desc: '文件 ' + file.name + ' 格式不正确,请上传 xls 或 xlsx 格式的文件。'
+			});
+		},beforeUpload(){
+			vm.uploadData = {
+				storeId: vm.storeId,
+				mkaId : vm.mkaId
+			}
+			let promise = new Promise((resolve) => {
+				this.$nextTick(function () {
+					resolve(true);
+				});
+			});
+			return promise; //通过返回一个promis对象解决
+
+		},
 	}
-});
+});

+ 349 - 35
kmall-admin/src/main/webapp/js/sale/sale.js

@@ -8,6 +8,239 @@ window.onbeforeunload = function(){
     closeWebSocket();
 }
 
+function calculateGoodsPrice(r){
+
+    var rMap = r.map;
+    var barCode = r.goodsDetails.prodBarcode;
+    var brand = r.goodsDetails.brand;
+    console.log(rMap);
+
+    if(rMap.yhq){
+        for(var i in rMap.yhq){
+            vm.coupons.set(i,rMap.yhq[i]);
+        }
+    }
+
+    // 是否有满减活动
+    if(rMap.mj){
+        if(rMap.mj[barCode] && !vm.mj.get(barCode)){
+            // 该商品是否已经有过满减活动
+            vm.mj.set(barCode,rMap.mj[barCode]);
+        }else if(rMap.mj[brand] && !vm.mj.get(brand)){
+            // 该品牌是否已经有过满减活动
+            vm.mj.set(brand,rMap.mj[brand]);
+
+        }
+    }
+    if(rMap.mysy){
+        vm.mysy.push(rMap.mysy[barCode]);
+    }
+
+    if(rMap.mz){
+        if(rMap.mz[barCode] && !vm.mz.get(barCode)){
+            // 该商品是否已经有过满赠活动
+            vm.mz.set(barCode,rMap.mz[barCode]);
+        }else if(rMap.mz[brand] && !vm.mz.get(brand)){
+            // 该品牌是否已经有过满赠活动
+            vm.mz.set(brand,rMap.mz[brand]);
+        }
+    }
+    if(rMap.zhjsp){
+        // 遍历该商品所有可能的组合价商品类型
+        for(var data in rMap.zhjsp){
+            if(!vm.zhjsp.get(data)){
+                // 分割组合价商品的条码,并以 条码:0 放入map中
+                var barCodeArray = data.toString().split(":");
+                var dataMap = new Map();
+                console.log(rMap.zhjsp[data]);
+                // dataMap.set();
+                for(var j = 0 ; j < barCodeArray.length ; j ++){
+                    dataMap.set(barCodeArray[j],0);
+                }
+                vm.combinationPrice.set(data,rMap.zhjsp[data][0].combinedPrice)
+                vm.zhjsp.set(data,dataMap);
+            }
+        }
+
+    }
+    calculateGoodsByMj(r.goodsDetails);
+    calculateGoodsByMysy(r.goodsDetails);
+    calculateGoodsByMz(r.goodsDetails);
+    calculateGoodsByZhjsp(r);
+
+}
+
+// ==================== 满减==========================
+
+// 满减
+function calculateGoodsByMj(goodsDetails){
+    if(vm.mj.get(goodsDetails.prodBarcode)){
+        fullReduction(goodsDetails,goodsDetails.prodBarcode);
+    }else if(vm.mj.get(goodsDetails.brand)){
+        fullReduction(goodsDetails,goodsDetails.brand);
+    }
+
+}
+// 满减的计算内容
+function fullReduction(goodsDetails,key){
+    // 获取满减条件金额
+    var qualifiedAmount = vm.mj.get(key).qualifiedAmount;
+    // 获取已累积金额
+    var money = vm.accumulatedAmount.get(key);
+    if(isNaN(money)){
+        money = goodsDetails.retailPrice;
+    }else{
+        money = money + goodsDetails.retailPrice;
+    }
+    if(money >= qualifiedAmount){
+        vm.reduceMoney += vm.mj.get(key).deductionAmount; // 达到满减金额,获取扣减的额度
+        vm.mj.delete(key); // 获取后删除该商品的满减
+        vm.accumulatedAmount.delete(key); // 删除满减的金额
+    }else{
+        vm.accumulatedAmount.set(key,money);
+    }
+}
+
+// ============================= 满赠 ==============================
+
+// 满赠
+function calculateGoodsByMz(goodsDetails){
+
+    // 1.满赠的商品是不是自己,遍历满赠商品数组
+    isSend(vm.fullGiftCode,goodsDetails,"满赠");
+
+    if(vm.mz.get(goodsDetails.prodBarcode)){
+        fullGift(goodsDetails,goodsDetails.prodBarcode);
+    }else if(vm.mz.get(goodsDetails.brand)){
+        fullGift(goodsDetails,goodsDetails.brand);
+    }
+}
+
+function fullGift(goodsDetails,key){
+    // 获取满赠条件金额
+    var qualifiedAmount = vm.mz.get(key).qualifiedAmount;
+    // 获取已累积金额
+    var money = vm.accumulatedAmountForFullGift.get(key);
+    if(isNaN(money)){
+        money = goodsDetails.retailPrice;
+
+    }else{
+        money = money + goodsDetails.retailPrice;
+    }
+    // 达到满赠的要求
+    if(money >= qualifiedAmount){
+        // 将满赠的商品放入数组中,重置金额
+        vm.fullGiftCode.push(vm.mz.get(key).giftBarcode);
+        vm.mz.delete(key); // 获取后删除该商品的满减
+        vm.accumulatedAmountForFullGift.delete(key); // 删除满减的金额
+
+        // 2.购物车的商品里面是否有满赠的商品
+        shopCartContain(vm.fullGiftCode,goodsDetails,"满赠");
+    }else{
+        vm.accumulatedAmountForFullGift.set(key,money);
+    }
+}
+
+
+// 买一送一
+function calculateGoodsByMysy(goodsDetails){
+    // 判断当前商品是否为赠品
+    isSend(vm.mysy,goodsDetails,"买一送一");
+    // 判断购物车里面是否有商品为赠品
+    shopCartContain(vm.mysy,goodsDetails,"买一送一");
+
+}
+
+
+// 判断当前商品是否为赠品
+function isSend(activity,goodsDetails,activityName){
+    if(activity.indexOf(goodsDetails.prodBarcode) >= 0){
+        // 如果符合条件,把赠送的条码给删除(一次性)
+        var index = activity.indexOf(goodsDetails.prodBarcode);
+        activity.splice(index,1);
+        // 设置赠品的单价
+        goodsDetails.discountedPrice = goodsDetails.retailPrice;
+        goodsDetails.actualPaymentAmount = 0;
+        goodsDetails.activity = activityName;
+    }
+}
+
+// 判断购物车里面是否有商品为赠品
+function shopCartContain(activity,goodsDetails,activityName){
+    if(vm.goodsList && vm.goodsList.length > 0 ){
+        for(var i = 0 ; i < vm.goodsList.length ; i ++){
+            // 如果有商品为赠品,则把价格置位0并跳出循环
+            if(activity.indexOf(vm.goodsList[i].prodBarcode) >= 0 && vm.goodsList[i].actualPaymentAmount != 0){
+                // 如果符合条件,把赠送的条码给删除(一次性)
+                var index = vm.mysy.indexOf(goodsDetails.prodBarcode);
+                activity.splice(index,1);
+                vm.goodsList[i].discountedPrice = vm.goodsList[i].retailPrice;
+                vm.goodsList[i].actualPaymentAmount = 0;
+                vm.goodsList[i].activity = activityName;
+
+
+                vm.discountedPrice = vm.discountedPrice + vm.goodsList[i].retailPrice ;
+                vm.actualPrice = vm.actualPrice - vm.goodsList[i].retailPrice ;
+
+                break;
+            }
+        }
+    }
+}
+
+// =======================  组合价商品 ============================
+// 组合价商品
+function calculateGoodsByZhjsp(r){
+    var barCode = r.goodsDetails.prodBarcode;
+    if(r.map.zhjsp){
+        // 将有组合的商品设置为1  ps:{"flag" => 0, "4005808550739" => 1, "4305615120454" => 0}
+        vm.zhjsp.forEach(function(value,key,map){
+            // 将组合价中组合的产品出现的次数+1
+            value.forEach(function(v, k ,m){
+                if(k === barCode)
+                    m.set(k,v+1);
+            });
+            var flag = 1;
+            // 判断是否有商品成功组合
+            value.forEach(function(v, k ,m){
+                if(v === 0)
+                    flag = 0;
+            });
+            if(flag === 1){
+                var combinationPrice = vm.combinationPrice.get(key);
+                var barCodeArr = key.toString().split(":");
+                for( var j = 0 ; j < barCodeArr.length ; j ++ ){
+                    // 如果是扫描的产品,直接退出,因为购物车中无该产品
+                    if(barCodeArr[j] == barCode){
+                        r.goodsDetails.isCombination = 1;
+                        r.goodsDetails.discountedPrice = r.goodsDetails.retailPrice - combinationPrice; //  优惠价格
+                        r.goodsDetails.actualPaymentAmount = combinationPrice; // 实际支付价格
+                        r.goodsDetails.activity = "组合价";
+                        continue;
+                    }
+                    for(var i = 0 ; i < vm.goodsList.length ; i ++){
+                        if(vm.goodsList[i].prodBarcode === barCodeArr[j] && !vm.goodsList[i].isCombination){
+                            // 如果符合条件,把赠送的条码给删除(一次性)
+                            vm.goodsList[i].discountedPrice = vm.goodsList[i].retailPrice ; //  优惠价格
+                            vm.goodsList[i].actualPaymentAmount = 0;  // 实际支付价格
+                            vm.goodsList[i].isCombination = 1;
+                            vm.goodsList[i].activity = "组合价";
+                            break;
+                        }
+                    }
+                }
+                // 扣减
+                var updateMap = map.get(key);
+                updateMap.forEach(function(v, k ,m){
+                    m.set(k,v-1);
+                });
+            }
+        });
+    }
+
+}
+
+
 let vm = new Vue({
     el: '#rrapp',
     data: {
@@ -35,6 +268,9 @@ let vm = new Vue({
         storeId:null,
         index:0,
         max:0,
+        totalPrice:0,
+        discountedPrice:0,
+        actualPrice:0,
         ruleValidate: {
             name: [
                 {required: true, message: '名称不能为空', trigger: 'blur'}
@@ -42,40 +278,65 @@ let vm = new Vue({
         },
         q: {
             name: ''
-        }
+        },
+        // 买一送一
+        mysy: [],
+        // 组合价
+        zhjsp: new Map(),
+        combinationPrice: new Map(), // 组合价商品的组合价
+        // 满减
+        mj: new Map(),
+        accumulatedAmount: new Map(), // 累积金额(满减使用的)
+        reduceMoney:0, // 满减金额
+        showReduceMoney:0, // 用于展示的满减金额
+        // 满赠
+        mz: new Map(),
+        accumulatedAmountForFullGift: new Map(), // 累积金额(满赠使用的)
+        fullGiftCode:[],// 满赠商品条码
+        // 优惠券
+        coupons: new Map(),
     },
     methods: {
         query: function () {
-
             vm.storeId = sessionStorage.getItem("storeId");;
-
             var thisGoods = {};
             $.get("../goods/details/"+vm.prodBarcode+"/"+vm.storeId, function (r) {
-                console.log(typeof r);
-                console.log(r.code == 0);
-                console.log(r.code);
                 if (r.code == 0) {
 
-                    vm.goodsDetail = true;
-                    thisGoods.name = r.goodsDetails.name;
-                    thisGoods.primaryPicUrl = r.goodsDetails.primaryPicUrl;
-                    thisGoods.retailPrice = r.goodsDetails.retailPrice;
-                    thisGoods.specification = r.goodsDetails.specification;
-                    thisGoods.prodBarcode = r.goodsDetails.prodBarcode;
-                    thisGoods.stockNum = r.goodsDetails.stockNum;
-                   //  thisGoods.goodsDesc = r.goodsDetails.goodsDesc;
-                    thisGoods.sellVolume = 1;
+                    // r.goodsDetails.discountedPrice = 0;
+                    // r.goodsDetails.actualPaymentAmount = r.goodsDetails.retailPrice;
 
+                    calculateGoodsPrice(r);
+                    vm.goodsDetail = true;
+                    // thisGoods.name = r.goodsDetails.name;// thisGoods.primaryPicUrl = r.goodsDetails.primaryPicUrl; // thisGoods.retailPrice = r.goodsDetails.retailPrice;// thisGoods.specification = r.goodsDetails.specification; // thisGoods.prodBarcode = r.goodsDetails.prodBarcode;// thisGoods.stockNum = r.goodsDetails.stockNum;//  thisGoods.goodsDesc = r.goodsDetails.goodsDesc;// thisGoods.sellVolume = 1;// thisGoods.id = vm.index++;
+                    r.goodsDetails.sellVolume = 1;
+                    r.goodsDetails.id = vm.index++;
                     if(!vm.goodsList[vm.index]){
                         vm.index = vm.max;
                     }
-
-                    thisGoods.id = vm.index++;
                     vm.max++;
-
-                    var data = Object.assign({}, JSON.parse(JSON.stringify(thisGoods)));
+                    r.goodsDetails.goodsDesc = "";
+                    // r.goodsDetails.primaryPicUrl = "";
+                    var data = Object.assign({}, JSON.parse(JSON.stringify(r.goodsDetails)));
                     vm.goodsList.push(data);
-                    vm.goods = thisGoods;
+                    vm.goods = r.goodsDetails;
+
+                    vm.totalPrice = (vm.totalPrice + r.goodsDetails.retailPrice);
+                    if(vm.reduceMoney > 0){
+                        vm.discountedPrice = vm.discountedPrice + r.goodsDetails.discountedPrice + vm.reduceMoney;
+                        vm.actualPrice = vm.actualPrice + r.goodsDetails.actualPaymentAmount - vm.reduceMoney;
+                        vm.showReduceMoney = vm.showReduceMoney + vm.reduceMoney;
+                        vm.reduceMoney = 0;
+                    }else{
+                        vm.discountedPrice = vm.discountedPrice + r.goodsDetails.discountedPrice ;
+                        vm.actualPrice = vm.actualPrice + r.goodsDetails.actualPaymentAmount ;
+                    }
+
+                    // 处理精度
+                    vm.totalPrice =  Math.round(vm.totalPrice * 100) / 100;
+                    vm.discountedPrice =  Math.round(vm.discountedPrice * 100) / 100;
+                    vm.actualPrice =  Math.round(vm.actualPrice * 100) / 100;
+                    vm.showReduceMoney =  Math.round(vm.showReduceMoney * 100) / 100;
 
                 } else {
                     alert(r.msg);
@@ -85,28 +346,48 @@ let vm = new Vue({
         },
         add:function(value){
             // 增加数量
-            var goods = this.goodsList[value];
-            goods.sellVolume = goods.sellVolume + 1;
+            for(var i = 0 ; i < this.goodsList.length ; i++){
+                if(this.goodsList[i].id == value){
+                    var goods = this.goodsList[i];
+                    goods.sellVolume = goods.sellVolume + 1;
+                    vm.totalPrice = vm.totalPrice + goods.retailPrice;
+                    break;
+                }
+            }
         },
         minus:function(value){
             // 减少数量
-            var goods = this.goodsList[value];
-            if(goods.sellVolume === 1){
-                alert("数量至少为1个");
-                return ;
+            for(var i = 0 ; i < this.goodsList.length ; i++){
+                if(this.goodsList[i].id == value){
+                    var goods = this.goodsList[i];
+                    if(goods.sellVolume === 1){
+                        alert("数量至少为1个");
+                        return ;
+                    }
+                    goods.sellVolume = goods.sellVolume - 1;
+                    vm.totalPrice = vm.totalPrice - goods.retailPrice;
+                    break;
+                }
             }
-            goods.sellVolume = goods.sellVolume - 1;
+
         },
         deleteItem:function(value){
             console.log(value);
             // 删除这条记录
-            this.goodsList.splice(value,1);
+            for(var i = 0 ; i < this.goodsList.length ; i++){
+                if(this.goodsList[i].id == value){
+                    var goods = this.goodsList[i];
+                    vm.totalPrice = vm.totalPrice - (goods.retailPrice * goods.sellVolume);
+                    this.goodsList.splice(i,1);
+                    break;
+                }
+            }
             this.index = value;
 
         },
         clearGoodsList:function(){
             this.goodsList = [];
-
+            vm.totalPrice = 0;
 
         },
         toOrderSubmit:function(){
@@ -122,6 +403,7 @@ let vm = new Vue({
             vm.machineCode = sessionStorage.getItem("machineCode");
             console.log(vm.machineCode);
             var param = {'userInfo':vm.userInfo,'payCode':this.$refs.payCode.currentValue,'goodsList':vm.goodsList,'sessionId':vm.sessionId,'machineCode':vm.machineCode};
+            console.log(JSON.stringify(param));
             this.$refs.payCode.currentValue = '';
             $.ajax({
                 type: "POST",
@@ -141,6 +423,26 @@ let vm = new Vue({
                             vm.goodsList = [];
                             vm.customname = '' ;
                             vm.customidcard = '';
+                            vm.totalPrice = 0;
+                            vm.discountedPrice = 0;
+                            vm.actualPrice = 0;
+                            // 买一送一
+                            vm.mysy = [];
+                            // 组合价
+                            vm.zhjsp = new Map();
+                            vm.combinationPrice = new Map(); // 组合价商品的组合价
+                            // 满减
+                            vm.mj = new Map();
+                            vm.accumulatedAmount = new Map();// 累积金额(满减使用的)
+                            vm.reduceMoney = 0; // 满减金额
+                            vm.showReduceMoney = 0; // 用于展示的满减金额
+                            // 满赠
+                            vm.mz = new Map();
+                            vm.accumulatedAmountForFullGift = new Map(); // 累积金额(满赠使用的)
+                            vm.fullGiftCode = [];// 满赠商品条码
+                            // 优惠券
+                            vm.coupons = new Map();
+
                             // alert('打印小票完成');
                         }else{
                             // alert("打印小票失败");
@@ -153,7 +455,6 @@ let vm = new Vue({
 
         },
         getIDCardInfo: function(){
-            console.log(1);
             $.get("../order/getIdCardInfo", function (r){
                 if(r.code === 0){
                     if(!r.info){
@@ -173,8 +474,10 @@ let vm = new Vue({
             this.userInfo.customName = this.$refs.customName.value ;
             this.userInfo.customIDCard =  this.$refs.customIDCard.value ;
             this.userInfo.customPhone = this.$refs.customPhone.value;
+            if(this.$refs.couponSn)
+                this.userInfo.couponSn = this.$refs.couponSn.value;
             var idcardReg = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
-            if(!this.userInfo.customName){
+            /*if(!this.userInfo.customName){
                 alert("姓名不能为空!");
                 return ;
             }
@@ -186,8 +489,15 @@ let vm = new Vue({
             if(!(/^1[3456789]\d{9}$/.test(this.userInfo.customPhone))){
                 alert("手机号码有误,请重填");
                 return ;
-            }
+            }*/
 
+            if(this.userInfo.couponSn){
+                var coupon = vm.coupons.get(this.userInfo.couponSn);
+                if(coupon == null){
+                    alert("请输入正确的优惠券码");
+                    return ;
+                }
+            }
 
 
 
@@ -222,7 +532,7 @@ let vm = new Vue({
                         vm.orderProcessRecord.eleOrderStartTime = parsedate(vm.orderProcessRecord.eleOrderStartTime);
                     }
                     if(vm.orderProcessRecord.paymentStartTime){
-                      vm.orderProcessRecord.paymentStartTime = parsedate(vm.orderProcessRecord.paymentStartTime);
+                        vm.orderProcessRecord.paymentStartTime = parsedate(vm.orderProcessRecord.paymentStartTime);
                     }
                     if(vm.orderProcessRecord.waybillStartTime){
                         vm.orderProcessRecord.waybillStartTime = parsedate(vm.orderProcessRecord.waybillStartTime);
@@ -434,8 +744,8 @@ function openWebSocket() {
         //注意ws、wss使用不同的端口。我使用自签名的证书测试,
         //无法使用wss,浏览器打开WebSocket时报错
         //ws对应http、wss对应https。
-        webSocket = new WebSocket("ws://183.62.225.124:8080/ws/server/"+storeId);
-        // webSocket = new WebSocket("ws://127.0.0.1:8080/ws/server/"+storeId);
+        // webSocket = new WebSocket("ws://183.62.225.124:8080/ws/server/"+storeId);
+        webSocket = new WebSocket("ws://localhost:8080//ws/server/"+storeId);
         if (webSocket.readyState === webSocket.CONNECTING) {
             console.log('1.连接正在打开......');
         }
@@ -649,6 +959,10 @@ function queryAssistantInfo(){
     });
 
 
+
+
+
+
 }
 
 

+ 10 - 1
kmall-api/src/main/java/com/kmall/api/entity/OrderGoodsVo.java

@@ -40,7 +40,7 @@ public class OrderGoodsVo implements Serializable {
     //图片链接
     private String list_pic_url;
 
-
+    private String activity;
 
     private String sku;
 
@@ -275,4 +275,13 @@ public class OrderGoodsVo implements Serializable {
     public void setList_pic_url(String list_pic_url) {
         this.list_pic_url = list_pic_url;
     }
+
+
+    public String getActivity() {
+        return activity;
+    }
+
+    public void setActivity(String activity) {
+        this.activity = activity;
+    }
 }

+ 19 - 0
kmall-common/src/main/java/com/kmall/common/constant/JxlsXmlTemplateName.java

@@ -24,4 +24,23 @@ public class JxlsXmlTemplateName {
     public static final String CATE_STORE_DTO_LIST = "/XmlTemplate/CateStoreDtoList.xml";
     // 在途商品明细导入
     public static final String Goods_Transport_Info_Detail_Excel_Dto_List = "/XmlTemplate/GoodsTransportInfoDetailExcelDtoList.xml";
+
+
+    // 日常价商品导入
+    public static final String DAILY_PRICE_GOODS_DTO_LIST = "/XmlTemplate/DailyPriceGoodsDtoList.xml";
+    // 临时促销商品导入
+    public static final String TEMPORARY_PROMOTIONAL_ITEMS_DTO_LIST = "/XmlTemplate/TemporaryPromotionalItemsDtoList.xml";
+    // 买一送一商品导入
+    public static final String BUY_ONE_GET_ONE_FREE_DTO_LIST = "/XmlTemplate/BuyOneGetOneFreeDtoList.xml";
+    // 满减商品导入
+    public static final String FULL_REDUCTION_DTO_LIST = "/XmlTemplate/FullReductionDtoList.xml";
+    // 满赠商品导入
+    public static final String FREE_GOODS_DTO_LIST = "/XmlTemplate/FreeGoodsDtoList.xml";
+    // 优惠券商品导入
+    public static final String COUPON_MERCHANDISE_DTO_LIST = "/XmlTemplate/CouponMerchandiseDtoList.xml";
+    // 组合价商品导入
+    public static final String COMBINATION_PRICE_GOODS_DTO_LIST = "/XmlTemplate/CombinationPriceGoodsDtoList.xml";
+    // 全场折扣商品导入
+    public static final String DISCOUNTED_PRODUCTS_DTO_LIST = "/XmlTemplate/DiscountedProductsDtoList.xml";
+
 }