瀏覽代碼

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

Scott 3 年之前
父節點
當前提交
b7e954bb80
共有 100 個文件被更改,包括 2458 次插入896 次删除
  1. 2 2
      kmall-admin/src/main/java/com/kmall/admin/controller/BrandController.java
  2. 7 2
      kmall-admin/src/main/java/com/kmall/admin/controller/CategoryController.java
  3. 35 128
      kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java
  4. 1 1
      kmall-admin/src/main/java/com/kmall/admin/controller/OrderProcessRecordExternalController.java
  5. 1 1
      kmall-admin/src/main/java/com/kmall/admin/controller/ProductController.java
  6. 1 1
      kmall-admin/src/main/java/com/kmall/admin/controller/SysOssController.java
  7. 108 0
      kmall-admin/src/main/java/com/kmall/admin/controller/haikong/HaikongMemberOrderSyncResendController.java
  8. 86 0
      kmall-admin/src/main/java/com/kmall/admin/controller/haikong/HaikongMemberScoreChangeDetailRecordController.java
  9. 86 0
      kmall-admin/src/main/java/com/kmall/admin/controller/haikong/HaikongMemberScoreChangeRecordController.java
  10. 106 0
      kmall-admin/src/main/java/com/kmall/admin/controller/haikong/HaikongSendOrderInfoDetailRecordController.java
  11. 107 0
      kmall-admin/src/main/java/com/kmall/admin/controller/haikong/HaikongSendOrderInfoRecordController.java
  12. 4 0
      kmall-admin/src/main/java/com/kmall/admin/controller/mk/MkActivitiesController.java
  13. 17 2
      kmall-admin/src/main/java/com/kmall/admin/controller/mk/MkActivityFormController.java
  14. 1 3
      kmall-admin/src/main/java/com/kmall/admin/controller/vip/Mall2PointsRulesController.java
  15. 10 6
      kmall-admin/src/main/java/com/kmall/admin/cuspay/biz/ali/AliCusDeclareBiz.java
  16. 17 4
      kmall-admin/src/main/java/com/kmall/admin/cuspay/biz/merch/MerchantNoticeBiz.java
  17. 13 5
      kmall-admin/src/main/java/com/kmall/admin/cuspay/biz/wx/WxCusDeclareBiz.java
  18. 9 30
      kmall-admin/src/main/java/com/kmall/admin/cuspay/biz/wx/WxCusDeclareQueryBiz.java
  19. 2 0
      kmall-admin/src/main/java/com/kmall/admin/cuspay/service/MerchNotiService.java
  20. 5 0
      kmall-admin/src/main/java/com/kmall/admin/cuspay/service/impl/MerchNotiServiceImpl.java
  21. 6 1
      kmall-admin/src/main/java/com/kmall/admin/cuspay/task/AliPayCuspayTask.java
  22. 12 12
      kmall-admin/src/main/java/com/kmall/admin/cuspay/task/CuspayTask.java
  23. 1 0
      kmall-admin/src/main/java/com/kmall/admin/dao/CategoryDao.java
  24. 2 0
      kmall-admin/src/main/java/com/kmall/admin/dao/GoodsDao.java
  25. 3 0
      kmall-admin/src/main/java/com/kmall/admin/dao/cuspay/merch/MerchNotiMapper.java
  26. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/haikong/HaiKongMemberOrderSyncResendDao.java
  27. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/haikong/HaiKongMemberScoreChangeDetailRecordDao.java
  28. 5 0
      kmall-admin/src/main/java/com/kmall/admin/dao/haikong/HaiKongMemberScoreChangeRecordDao.java
  29. 9 0
      kmall-admin/src/main/java/com/kmall/admin/dao/mk/MkActivitiesAssociationDao.java
  30. 8 0
      kmall-admin/src/main/java/com/kmall/admin/dao/mk/MkActivitiesScoreDao.java
  31. 9 0
      kmall-admin/src/main/java/com/kmall/admin/dao/mk/MkActivityFormDao.java
  32. 10 0
      kmall-admin/src/main/java/com/kmall/admin/dao/vip/Mall2MemberConsumptionRecordsDao.java
  33. 2 1
      kmall-admin/src/main/java/com/kmall/admin/dao/vip/Mall2PointsRulesDao.java
  34. 13 0
      kmall-admin/src/main/java/com/kmall/admin/dto/GoodsDetailsDto.java
  35. 4 2
      kmall-admin/src/main/java/com/kmall/admin/dto/GoodsDto.java
  36. 1 0
      kmall-admin/src/main/java/com/kmall/admin/dto/Mall2RulesDto.java
  37. 0 9
      kmall-admin/src/main/java/com/kmall/admin/dto/ScoreReductionDTO.java
  38. 20 0
      kmall-admin/src/main/java/com/kmall/admin/entity/GoodsEntity.java
  39. 13 0
      kmall-admin/src/main/java/com/kmall/admin/entity/StoreSmsConfigEntity.java
  40. 0 17
      kmall-admin/src/main/java/com/kmall/admin/entity/mk/MkActivitiesScoreEntity.java
  41. 0 1
      kmall-admin/src/main/java/com/kmall/admin/haikong/config/HaiKongConfig.java
  42. 0 10
      kmall-admin/src/main/java/com/kmall/admin/haikong/config/HaiKongProperties.java
  43. 8 0
      kmall-admin/src/main/java/com/kmall/admin/haikong/constant/Constants.java
  44. 5 0
      kmall-admin/src/main/java/com/kmall/admin/haikong/task/MemberSysAccessTokenRefreshTask.java
  45. 21 0
      kmall-admin/src/main/java/com/kmall/admin/haikong/vo/QueryGoodsVO.java
  46. 8 1
      kmall-admin/src/main/java/com/kmall/admin/service/OrderService.java
  47. 27 0
      kmall-admin/src/main/java/com/kmall/admin/service/haikong/HaiKongMemberOrderSyncResendService.java
  48. 17 0
      kmall-admin/src/main/java/com/kmall/admin/service/haikong/HaiKongMemberScoreChangeDetailRecordService.java
  49. 17 0
      kmall-admin/src/main/java/com/kmall/admin/service/haikong/HaiKongMemberScoreChangeRecordService.java
  50. 92 39
      kmall-admin/src/main/java/com/kmall/admin/service/impl/BrandServiceImpl.java
  51. 10 8
      kmall-admin/src/main/java/com/kmall/admin/service/impl/CategoryServiceImpl.java
  52. 57 159
      kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsServiceImpl.java
  53. 4 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/MerchServiceImpl.java
  54. 338 175
      kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java
  55. 93 185
      kmall-admin/src/main/java/com/kmall/admin/service/impl/ProductStoreRelaServiceImpl.java
  56. 8 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/SupplierServiceImpl.java
  57. 16 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/haikong/HaiKongMemberOrderSyncResendServiceImpl.java
  58. 11 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/haikong/HaiKongMemberScoreChangeDetailRecordServiceImpl.java
  59. 11 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/haikong/HaiKongMemberScoreChangeRecordServiceImpl.java
  60. 35 1
      kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/MkActivitiesScoreServiceImpl.java
  61. 1 1
      kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/MkActivitiesServiceImpl.java
  62. 11 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/MkActivityFormServiceImpl.java
  63. 39 9
      kmall-admin/src/main/java/com/kmall/admin/service/impl/vip/Mall2PointsRulesServiceImpl.java
  64. 7 0
      kmall-admin/src/main/java/com/kmall/admin/service/mk/MkActivitiesScoreService.java
  65. 1 0
      kmall-admin/src/main/java/com/kmall/admin/service/vip/Mall2PointsRulesService.java
  66. 2 0
      kmall-admin/src/main/java/com/kmall/admin/task/TestTask.java
  67. 0 1
      kmall-admin/src/main/resources/XmlTemplate/CategoryDtoList.xml
  68. 1 1
      kmall-admin/src/main/resources/XmlTemplate/GoodsDtoList.xml
  69. 2 3
      kmall-admin/src/main/resources/XmlTemplate/ScoreReductionDTOList.xml
  70. 0 1
      kmall-admin/src/main/resources/XmlTemplate/StoreGoodsDtoList.xml
  71. 9 2
      kmall-admin/src/main/resources/mybatis/mapper/CashierDao.xml
  72. 33 19
      kmall-admin/src/main/resources/mybatis/mapper/GoodsDao.xml
  73. 1 2
      kmall-admin/src/main/resources/mybatis/mapper/HaiKongResendMsgDao.xml
  74. 3 1
      kmall-admin/src/main/resources/mybatis/mapper/OrderDao.xml
  75. 2 0
      kmall-admin/src/main/resources/mybatis/mapper/OrderGoodsDao.xml
  76. 1 0
      kmall-admin/src/main/resources/mybatis/mapper/OrderProcessRecordDao.xml
  77. 6 0
      kmall-admin/src/main/resources/mybatis/mapper/ProductDao.xml
  78. 2 1
      kmall-admin/src/main/resources/mybatis/mapper/StoreMngChangeDao.xml
  79. 15 13
      kmall-admin/src/main/resources/mybatis/mapper/StoreSmsConfigDao.xml
  80. 7 9
      kmall-admin/src/main/resources/mybatis/mapper/UserDao.xml
  81. 96 2
      kmall-admin/src/main/resources/mybatis/mapper/cuspay/MerchNotiMapper.xml
  82. 39 0
      kmall-admin/src/main/resources/mybatis/mapper/haikong/HaiKongMemberOrderSyncResendDao.xml
  83. 41 0
      kmall-admin/src/main/resources/mybatis/mapper/haikong/HaiKongMemberScoreChangeDetailRecordDao.xml
  84. 39 0
      kmall-admin/src/main/resources/mybatis/mapper/haikong/HaiKongMemberScoreChangeRecordDao.xml
  85. 11 5
      kmall-admin/src/main/resources/mybatis/mapper/haikong/HaikongSendOrderInfoDetailRecordDao.xml
  86. 5 5
      kmall-admin/src/main/resources/mybatis/mapper/haikong/HaikongSendOrderInfoRecordDao.xml
  87. 15 0
      kmall-admin/src/main/resources/mybatis/mapper/mk/MkActivitiesAssociationDao.xml
  88. 1 1
      kmall-admin/src/main/resources/mybatis/mapper/mk/MkActivitiesDao.xml
  89. 16 10
      kmall-admin/src/main/resources/mybatis/mapper/mk/MkActivitiesScoreDao.xml
  90. 11 0
      kmall-admin/src/main/resources/mybatis/mapper/mk/MkActivityFormDao.xml
  91. 27 0
      kmall-admin/src/main/resources/mybatis/mapper/vip/Mall2MemberConsumptionRecordsDao.xml
  92. 5 2
      kmall-admin/src/main/resources/mybatis/mapper/vip/Mall2PointsRulesDao.xml
  93. 1 0
      kmall-admin/src/main/resources/spring/spring-shiro.xml
  94. 3 0
      kmall-admin/src/main/webapp/WEB-INF/page/cashier/cashierManager.html
  95. 2 2
      kmall-admin/src/main/webapp/WEB-INF/page/compared/payorderinfo.html
  96. 78 0
      kmall-admin/src/main/webapp/WEB-INF/page/haikong/haikongmemberordersyncresend.html
  97. 84 0
      kmall-admin/src/main/webapp/WEB-INF/page/haikong/haikongmemberscorechangedetailrecord.html
  98. 78 0
      kmall-admin/src/main/webapp/WEB-INF/page/haikong/haikongmemberscorechangerecord.html
  99. 87 0
      kmall-admin/src/main/webapp/WEB-INF/page/haikong/haikongsendorderinfodetailrecord.html
  100. 132 0
      kmall-admin/src/main/webapp/WEB-INF/page/haikong/haikongsendorderinforecord.html

+ 2 - 2
kmall-admin/src/main/java/com/kmall/admin/controller/BrandController.java

@@ -250,8 +250,8 @@ public class BrandController {
         }
         try {
             if (brandEntityList == null || brandEntityList.size() == 0) {
-                logger.error("读取数据为空!");
-                return R.error("读取数据为空!");
+                logger.error("品牌名称不能为空!");
+                return R.error("品牌名称不能为空!");
             }
 
             brandService.uploadExcel(brandEntityList);

+ 7 - 2
kmall-admin/src/main/java/com/kmall/admin/controller/CategoryController.java

@@ -63,13 +63,13 @@ public class CategoryController {
 
         List<CategoryEntity> categoryList = categoryService.queryList(query);
 
-        // 获取id
+        // 获取当前一级节点的id
         List<Integer> parentIdList = new ArrayList<>();
          for (CategoryEntity c : categoryList) {
              parentIdList.add(c.getId());
         }
 
-        // 获取对应的所有子节点
+        // 查询所有一级节点的子节点
         List<CategoryEntity> categoryChildList = categoryService.queryListByParentId(parentIdList);
         categoryList.addAll(categoryChildList);
 
@@ -127,6 +127,10 @@ public class CategoryController {
     @RequestMapping("/update")
     @RequiresPermissions("category:update")
     public R update(@RequestBody CategoryEntity category) {
+        if (category.getSortOrder() == null) {
+            category.setSortOrder(0);
+        }
+
         category.setName(HtmlUtils.htmlUnescape(category.getName()));
         category.setFrontDesc(HtmlUtils.htmlUnescape(category.getFrontDesc()));
         categoryService.update(category);
@@ -148,6 +152,7 @@ public class CategoryController {
     /**
      * 查看所有列表
      */
+    @Deprecated
     @RequestMapping("/queryAll")
     public R queryAll(@RequestParam Map<String, Object> params) {
 

+ 35 - 128
kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java

@@ -530,100 +530,22 @@ public class OrderController {
         return "";
     }
     /**
-     * 订单退款请求
+     * 海控订单退款请求(后台退款)
      */
     @RequiresPermissions(value = {"order:offilineRefund"})
     @RequestMapping(value = "offilineRefund", method = RequestMethod.POST)
     public Object offilineRefund(Long orderId) {
         OrderEntity orderInfo = orderService.queryObject(orderId);
         if (null == orderInfo) {
-            return R.error("订单不存在");
-        }
-        if (orderInfo.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_401.getItem()) ||
-            orderInfo.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_402.getItem())) {
-            return R.error("订单已退款");
+            return R.error("订单不存在,无法退款");
         }
-
-        if (orderInfo.getOrderStatus() != Integer.parseInt(Dict.orderStatus.item_0.getItem())) {
-            if (Dict.payFlag.item_cash.getItem().equals(orderInfo.getPayFlag())) {
-                //现金支付,直接修改订单状态
-                orderService.refund(orderInfo);
-            } else if (Dict.payFlag.item_weixin.getItem().equals(orderInfo.getPayFlag())) {
-                //微信线下扫码支付
-                WechatRefundApiResult result = WechatUtil
-                        .wxRefund(orderInfo.getOrderSnWx(), orderInfo.getActualPrice().doubleValue(),
-                                  orderInfo.getActualPrice().doubleValue());
-                if (result.getResult_code().equals(WechatUtil.WXTradeState.SUCCESS.getCode())) {
-                    orderService.refund(orderInfo, result);
-                } else {
-                    OrderRefundEntity mallOrderRefund = orderRefundService.queryObjectByOrderId(orderInfo.getId());
-                    OrderRefundEntity orderRefund = new OrderRefundEntity();
-                    orderRefund.setRefundType(Integer.parseInt(Dict.RefundType.item_1.getItem()));
-                    orderRefund.setRefundMoney(BigDecimal.valueOf(orderInfo.getActualPrice().doubleValue()));
-                    orderRefund.setRefundStatus(Integer.parseInt(Dict.RefundStatus.item_4.getItem()));
-//                    orderRefund.setOutRefundNo(result.getOut_refund_no());
-                    SysUserEntity user = ShiroUtils.getUserEntity();
-                    orderRefund.setModerSn(user.getUsername());
-                    orderRefund.setModTime(new Date());
-                    if (mallOrderRefund != null) {
-                        orderRefund.setId(mallOrderRefund.getId());
-                        orderRefundService.update(orderRefund);//退款记录
-                    }
-
-                    OrderExceptionRecordEntity mallOrderExceptionRecord = new OrderExceptionRecordEntity();
-                    mallOrderExceptionRecord.setUserId(Integer.parseInt(orderInfo.getUserId() + ""));
-                    mallOrderExceptionRecord.setOrderSn(orderInfo.getOrderSn());
-                    mallOrderExceptionRecord.setExceptionStatus(Dict.exceptionStatus.item_03.getItem());
-                    mallOrderExceptionRecord.setExceptionContent("退款失败" + result.getErr_code_des());
-                    mallOrderExceptionRecord.setCreateTime(new Date());
-                    orderExceptionRecordService.save(mallOrderExceptionRecord);
-
-                    return R.error(result.getErr_code_des());
-                }
-            }else if(Dict.payFlag.item_alipay.getItem().equals(orderInfo.getPayFlag())){
-                // 支付宝线下扫码支付
-                AliPayMicropayApiResult result = null;
-                try {
-                    result = AliPayUtil.aliTradeRefund(orderInfo.getOrderSn(),orderInfo.getActualPrice()+"",
-                            "顾客退款",orderInfo.getStoreId().toString());
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-
-                if (result.getCode().equals(AliPayUtil.AliPayTradeState.SUCC.getCode())) {
-                    orderService.refund(orderInfo, result);
-                } else {
-                    OrderRefundEntity mallOrderRefund = orderRefundService.queryObjectByOrderId(orderInfo.getId());
-                    OrderRefundEntity orderRefund = new OrderRefundEntity();
-                    orderRefund.setRefundType(Integer.parseInt(Dict.RefundType.item_1.getItem()));
-                    orderRefund.setRefundMoney(BigDecimal.valueOf(orderInfo.getActualPrice().doubleValue()));
-                    orderRefund.setRefundStatus(Integer.parseInt(Dict.RefundStatus.item_4.getItem()));
-//                    orderRefund.setOutRefundNo(result.getOut_refund_no());
-                    SysUserEntity user = ShiroUtils.getUserEntity();
-                    orderRefund.setModerSn(user.getUsername());
-                    orderRefund.setModTime(new Date());
-                    if (mallOrderRefund != null) {
-                        orderRefund.setId(mallOrderRefund.getId());
-                        orderRefundService.update(orderRefund);//退款记录
-                    }
-
-                    OrderExceptionRecordEntity mallOrderExceptionRecord = new OrderExceptionRecordEntity();
-                    mallOrderExceptionRecord.setUserId(Integer.parseInt(orderInfo.getUserId() + ""));
-                    mallOrderExceptionRecord.setOrderSn(orderInfo.getOrderSn());
-                    mallOrderExceptionRecord.setExceptionStatus(Dict.exceptionStatus.item_03.getItem());
-                    mallOrderExceptionRecord.setExceptionContent("退款失败" + result.getSubMsg());
-                    mallOrderExceptionRecord.setCreateTime(new Date());
-                    orderExceptionRecordService.save(mallOrderExceptionRecord);
-
-                    return R.error(result.getSubMsg());
-                }
-            } else{
-                return R.ok("退款成功");
-            }
-
+        try {
+            return orderService.orderRefund(orderInfo);
+        } catch (Exception e) {
+            e.printStackTrace();
+            logger.error("[offilineRefund-----海控后台退款异常]"+orderInfo.getOrderSn(),e);
+            return R.error(500,"退款失败");
         }
-
-        return R.ok("退款成功");
     }
 
     /**
@@ -1086,12 +1008,10 @@ public class OrderController {
     @RequestMapping("/orderHkRefund")
     public R orderRefund( @RequestBody Map param) {
 
-        SysUserEntity user = ShiroUtils.getUserEntity();
         Integer orderId = (Integer) param.get("orderId");
         OrderEntity orderInfo = orderService.queryObject(orderId.longValue());
-        String sessionId = (String) param.get("sessionId");
         try {
-            return orderService.orderRefund(orderInfo,sessionId,user);
+            return orderService.orderRefund(orderInfo);
         } catch (Exception e) {
             e.printStackTrace();
             logger.error("[orderHkRefund-----海控退款异常]"+orderInfo.getOrderSn(),e);
@@ -1099,40 +1019,21 @@ public class OrderController {
         }
     }
 
-    @RequestMapping("/resendOrderToCCNET/{orderSn}/{resendType}")
-    public R resendWayBill(@PathVariable("orderSn") String orderSn, @PathVariable("resendType") String resendType){
+    /**
+     * 海控支付单重推
+     * @param orderSn
+     * @return
+     */
+    @RequestMapping("/resendOrderWayBill/{orderSn}")
+    public R resendWayBill(@PathVariable("orderSn") String orderSn){
 
-        String response = null;
-        Map map = new HashMap();
-        map.put("orderSn",orderSn);
         try {
-            String url = "";
-            if("waybill".equals(resendType)){
-                url = OmsMerchPropertiesBuilder.instance().getWxOrderResendUrl() + "/resendWaybill/"+orderSn;
-
-            }else if("payment".equals(resendType)){
-                url = OmsMerchPropertiesBuilder.instance().getWxOrderResendUrl() + "/resendPayment/"+orderSn;
-            }else if("notice".equals(resendType)){
-                url = OmsMerchPropertiesBuilder.instance().getWxOrderResendUrl() + "/notice/"+orderSn;
-            }else if("clsOrder".equals(resendType)){
-                url = OmsMerchPropertiesBuilder.instance().getWxOrderResendUrl() + "/clsOrder/"+orderSn;
-            }else if("forceSend".equals(resendType)){
-                url = OmsMerchPropertiesBuilder.instance().getWxOrderResendUrl() + "/forceSend/"+orderSn;
-            }else if("resendOrder".equals(resendType)){
-                url = OmsMerchPropertiesBuilder.instance().getWxOrderResendUrl() + "/resendOrder/"+orderSn;
-            }
-            // 同步访问,返回结果字符串
-            response = OkHttpUtils.post(map, url, "SSL");
-            ResponseData responseData = JacksonUtils.fromStringJson(response, ResponseData.class);
-            if(responseData.getCode().equalsIgnoreCase("0")){
-                List<WxOrderEntity> list = responseData.getData().getRows();
-            }
+            return orderService.resendWayHkBill(orderSn);
         } catch (Exception e) {
             logger.error("查询失败。"+e.getMessage());
+            return R.error("重发支付单失败");
         }
 
-
-        return R.ok(response);
     }
 
 
@@ -1147,6 +1048,11 @@ public class OrderController {
         List<OrderGoodsEntity> goodsList = orderGoodsService.queryList(map);
 
         BigDecimal tax = new BigDecimal(0);
+        for (OrderGoodsEntity orderGoodsEntity : goodsList) {
+            tax = tax.add(orderGoodsEntity.getTaxPrice());
+        }
+
+        /*BigDecimal tax = new BigDecimal(0);
         for(OrderGoodsEntity orderGoodsEntity : goodsList){
             BigDecimal retailPrice = orderGoodsEntity.getRetailPrice();
             BigDecimal goodsRate = orderGoodsEntity.getGoodsRate();
@@ -1158,24 +1064,23 @@ public class OrderController {
             orderGoodsEntity.setTax(goodsTax);
             tax = tax.add(goodsTax).setScale(2,RoundingMode.HALF_UP);
 //            BigDecimal goodsTax = retailPrice.divide(new BigDecimal(1).add(goodsRate),2,RoundingMode.HALF_DOWN).multiply(goodsRate).multiply(new BigDecimal(number)).setScale(0,RoundingMode.HALF_DOWN);
-        }
-        String response = null;
+        }*/
 
-        try {
-            // 查询失败原因
-            String url = OmsMerchPropertiesBuilder.instance().getWxOrderResendUrl() + "/"+orderSn;
-            // 同步访问,返回结果字符串
-            response = OkHttpUtils.post(map, url, "SSL");
-        } catch (Exception e) {
-            logger.error("查询失败。"+e.getMessage());
-        }
+//        try {
+//            // 查询失败原因
+//            String url = OmsMerchPropertiesBuilder.instance().getWxOrderResendUrl() + "/"+orderSn;
+//            // 同步访问,返回结果字符串
+//            response = OkHttpUtils.post(map, url, "SSL");
+//        } catch (Exception e) {
+//            logger.error("查询失败。"+e.getMessage());
+//        }
 
         Map<String,Object> result = new HashMap<>();
         result.put("orderProcessRecordEntity",orderProcessRecordEntity);
         result.put("orderEntity",orderEntity);
         result.put("goodsList",goodsList);
         result.put("tax",tax.setScale(2, RoundingMode.HALF_DOWN).toString());
-        result.put("response",response);
+        result.put("response",orderProcessRecordEntity.getClearMsg());
 
         return R.ok().put("resultObj", result);
     }
@@ -1375,8 +1280,10 @@ public class OrderController {
             CalculateOrderDiscountPriceResponseVO calculateOrderDiscountPriceResponseVO = orderService.calculateOrderDiscountPrice(calculateOrderDiscountPriceVo);
             return R.ok().put("data", calculateOrderDiscountPriceResponseVO);
         } catch (ServiceException e) {
+            logger.error("计算优惠价出现异常!", e);
             return R.error(e.getMessage());
         } catch (Exception e) {
+            logger.error("计算优惠价出现异常!请联系管理员!", e);
             return R.error("计算出错!请联系管理员!" + e.getMessage());
         }
 

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/controller/OrderProcessRecordExternalController.java

@@ -45,7 +45,7 @@ public class OrderProcessRecordExternalController {
      * @return
      */
     @PostMapping("/hkNotice")
-    public Message hknoticeMsg(@RequestBody OutRequestMessage outRequestMessage) {
+    public Message hknoticeMsg(@RequestBody OutRequestMessage outRequestMessage){
         try{
             OrderProcessRecordHkEntity orderProcessRecordHkEntity  = JacksonUtil.fromStringJson(outRequestMessage.getData(), OrderProcessRecordHkEntity.class);
             //签名验证

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/controller/ProductController.java

@@ -40,7 +40,7 @@ public class ProductController {
         ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         ParamUtils.setName(params, "categoryName");
 
-        ParamUtils.setName(params, "goodsName");
+        // ParamUtils.setName(params, "goodsName");
         //查询列表数据
         Query query = new Query(params);
 

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/controller/SysOssController.java

@@ -104,7 +104,7 @@ public class SysOssController {
      * 上传文件
      */
     @RequestMapping("/upload")
-    @RequiresPermissions("sys:oss:all")
+//    @RequiresPermissions("sys:oss:all")
     public R upload(@RequestParam("file") MultipartFile file) throws Exception {
         if (file.isEmpty()) {
             throw new RRException("上传文件不能为空");

+ 108 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/haikong/HaikongMemberOrderSyncResendController.java

@@ -0,0 +1,108 @@
+package com.kmall.admin.controller.haikong;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+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 com.kmall.admin.entity.haikong.HaiKongMemberOrderSyncResendEntity;
+import com.kmall.admin.service.haikong.HaiKongMemberOrderSyncResendService;
+
+
+/**
+ * 会员同步消费订单记录Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-12-13 18:54:48
+ */
+@Controller
+@RequestMapping("haikongmemberordersyncresend")
+public class HaikongMemberOrderSyncResendController {
+    @Autowired
+    private HaiKongMemberOrderSyncResendService haikongMemberOrderSyncResendService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<HaiKongMemberOrderSyncResendEntity> haikongMemberOrderSyncResendList = haikongMemberOrderSyncResendService.queryList(query);
+        int total = haikongMemberOrderSyncResendService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(haikongMemberOrderSyncResendList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("haikongmemberordersyncresend:info")
+    @ResponseBody
+    public R info(@PathVariable("id") Integer id) {
+        HaiKongMemberOrderSyncResendEntity haikongMemberOrderSyncResend = haikongMemberOrderSyncResendService.queryObject(id);
+
+        return R.ok().put("haikongMemberOrderSyncResend", haikongMemberOrderSyncResend);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("haikongmemberordersyncresend:save")
+    @ResponseBody
+    public R save(@RequestBody HaiKongMemberOrderSyncResendEntity haikongMemberOrderSyncResend) {
+        haikongMemberOrderSyncResendService.save(haikongMemberOrderSyncResend);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("haikongmemberordersyncresend:update")
+    @ResponseBody
+    public R update(@RequestBody HaiKongMemberOrderSyncResendEntity haikongMemberOrderSyncResend) {
+        haikongMemberOrderSyncResendService.update(haikongMemberOrderSyncResend);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("haikongmemberordersyncresend:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[] ids) {
+        // haikongMemberOrderSyncResendService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<HaiKongMemberOrderSyncResendEntity> list = haikongMemberOrderSyncResendService.queryList("");
+
+        return R.ok().put("list", list);
+    }
+}

+ 86 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/haikong/HaikongMemberScoreChangeDetailRecordController.java

@@ -0,0 +1,86 @@
+package com.kmall.admin.controller.haikong;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeDetailRecordEntity;
+import com.kmall.admin.service.haikong.HaiKongMemberScoreChangeDetailRecordService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+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.*;
+
+
+
+
+/**
+ * 会员积分变动记录详情表Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-12-13 18:54:48
+ */
+@Controller
+@RequestMapping("haikongmemberscorechangedetailrecord")
+public class HaikongMemberScoreChangeDetailRecordController {
+    @Autowired
+    private HaiKongMemberScoreChangeDetailRecordService haikongMemberScoreChangeDetailRecordService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<HaiKongMemberScoreChangeDetailRecordEntity> haikongMemberScoreChangeDetailRecordList = haikongMemberScoreChangeDetailRecordService.queryList(query);
+        int total = haikongMemberScoreChangeDetailRecordService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(haikongMemberScoreChangeDetailRecordList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("haikongmemberscorechangedetailrecord:save")
+    @ResponseBody
+    public R save(@RequestBody HaiKongMemberScoreChangeDetailRecordEntity haikongMemberScoreChangeDetailRecord) {
+        haikongMemberScoreChangeDetailRecordService.save(haikongMemberScoreChangeDetailRecord);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("haikongmemberscorechangedetailrecord:update")
+    @ResponseBody
+    public R update(@RequestBody HaiKongMemberScoreChangeDetailRecordEntity haikongMemberScoreChangeDetailRecord) {
+        // haikongMemberScoreChangeDetailRecordService.update(haikongMemberScoreChangeDetailRecord);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("haikongmemberscorechangedetailrecord:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]ids) {
+        // haikongMemberScoreChangeDetailRecordService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+
+}

+ 86 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/haikong/HaikongMemberScoreChangeRecordController.java

@@ -0,0 +1,86 @@
+package com.kmall.admin.controller.haikong;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeRecordEntity;
+import com.kmall.admin.service.haikong.HaiKongMemberScoreChangeRecordService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+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.*;
+
+
+
+
+/**
+ * 会员积分变动记录表Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-12-13 18:54:48
+ */
+@Controller
+@RequestMapping("haikongmemberscorechangerecord")
+public class HaikongMemberScoreChangeRecordController {
+    @Autowired
+    private HaiKongMemberScoreChangeRecordService haikongMemberScoreChangeRecordService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<HaiKongMemberScoreChangeRecordEntity> haikongMemberScoreChangeRecordList = haikongMemberScoreChangeRecordService.queryList(query);
+        int total = haikongMemberScoreChangeRecordService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(haikongMemberScoreChangeRecordList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("haikongmemberscorechangerecord:save")
+    @ResponseBody
+    public R save(@RequestBody HaiKongMemberScoreChangeRecordEntity haikongMemberScoreChangeRecord) {
+        haikongMemberScoreChangeRecordService.save(haikongMemberScoreChangeRecord);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("haikongmemberscorechangerecord:update")
+    @ResponseBody
+    public R update(@RequestBody HaiKongMemberScoreChangeRecordEntity haikongMemberScoreChangeRecord) {
+        // haikongMemberScoreChangeRecordService.update(haikongMemberScoreChangeRecord);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("haikongmemberscorechangerecord:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]ids) {
+        // haikongMemberScoreChangeRecordService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+}

+ 106 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/haikong/HaikongSendOrderInfoDetailRecordController.java

@@ -0,0 +1,106 @@
+package com.kmall.admin.controller.haikong;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.entity.haikong.HaiKongSendOrderInfoDetailRecordEntity;
+import com.kmall.admin.service.haikong.HaiKongSendOrderInfoDetailRecordService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+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.*;
+
+
+/**
+ * 推送订单明细记录Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-12-13 18:54:48
+ */
+@Controller
+@RequestMapping("haikongsendorderinfodetailrecord")
+public class HaikongSendOrderInfoDetailRecordController {
+    @Autowired
+    private HaiKongSendOrderInfoDetailRecordService haikongSendOrderInfoDetailRecordService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<HaiKongSendOrderInfoDetailRecordEntity> haikongSendOrderInfoDetailRecordList = haikongSendOrderInfoDetailRecordService.queryList(query);
+        int total = haikongSendOrderInfoDetailRecordService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(haikongSendOrderInfoDetailRecordList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("haikongsendorderinfodetailrecord:info")
+    @ResponseBody
+    public R info(@PathVariable("id") Integer id) {
+        HaiKongSendOrderInfoDetailRecordEntity haikongSendOrderInfoDetailRecord = haikongSendOrderInfoDetailRecordService.queryObject(id);
+
+        return R.ok().put("haikongSendOrderInfoDetailRecord", haikongSendOrderInfoDetailRecord);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("haikongsendorderinfodetailrecord:save")
+    @ResponseBody
+    public R save(@RequestBody HaiKongSendOrderInfoDetailRecordEntity haikongSendOrderInfoDetailRecord) {
+        haikongSendOrderInfoDetailRecordService.save(haikongSendOrderInfoDetailRecord);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("haikongsendorderinfodetailrecord:update")
+    @ResponseBody
+    public R update(@RequestBody HaiKongSendOrderInfoDetailRecordEntity haikongSendOrderInfoDetailRecord) {
+        haikongSendOrderInfoDetailRecordService.update(haikongSendOrderInfoDetailRecord);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("haikongsendorderinfodetailrecord:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]ids) {
+        // haikongSendOrderInfoDetailRecordService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<HaiKongSendOrderInfoDetailRecordEntity> list = haikongSendOrderInfoDetailRecordService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 107 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/haikong/HaikongSendOrderInfoRecordController.java

@@ -0,0 +1,107 @@
+package com.kmall.admin.controller.haikong;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.entity.haikong.HaiKongSendOrderInfoRecordEntity;
+import com.kmall.admin.service.haikong.HaiKongSendOrderInfoRecordService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+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.*;
+
+
+
+/**
+ * 推送订单信息记录Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-12-13 18:54:48
+ */
+@Controller
+@RequestMapping("haikongsendorderinforecord")
+public class HaikongSendOrderInfoRecordController {
+    @Autowired
+    private HaiKongSendOrderInfoRecordService haikongSendOrderInfoRecordService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<HaiKongSendOrderInfoRecordEntity> haikongSendOrderInfoRecordList = haikongSendOrderInfoRecordService.queryList(query);
+        int total = haikongSendOrderInfoRecordService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(haikongSendOrderInfoRecordList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("haikongsendorderinforecord:info")
+    @ResponseBody
+    public R info(@PathVariable("id") Integer id) {
+        HaiKongSendOrderInfoRecordEntity haikongSendOrderInfoRecord = haikongSendOrderInfoRecordService.queryObject(id);
+
+        return R.ok().put("haikongSendOrderInfoRecord", haikongSendOrderInfoRecord);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("haikongsendorderinforecord:save")
+    @ResponseBody
+    public R save(@RequestBody HaiKongSendOrderInfoRecordEntity haikongSendOrderInfoRecord) {
+        haikongSendOrderInfoRecordService.save(haikongSendOrderInfoRecord);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("haikongsendorderinforecord:update")
+    @ResponseBody
+    public R update(@RequestBody HaiKongSendOrderInfoRecordEntity haikongSendOrderInfoRecord) {
+        haikongSendOrderInfoRecordService.update(haikongSendOrderInfoRecord);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("haikongsendorderinforecord:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]ids) {
+        // haikongSendOrderInfoRecordService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<HaiKongSendOrderInfoRecordEntity> list = haikongSendOrderInfoRecordService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 4 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/mk/MkActivitiesController.java

@@ -108,6 +108,10 @@ public class MkActivitiesController {
             throw new RRException(r.get("msg").toString());
         }
 
+        if("0".equals(mkActivities.getMkaEndEarly())){
+            mkActivities.setMkdEndEarlyTime("");
+        }
+
         mkActivitiesService.update(mkActivities);
         return R.ok();
     }

+ 17 - 2
kmall-admin/src/main/java/com/kmall/admin/controller/mk/MkActivityFormController.java

@@ -9,7 +9,10 @@ import com.kmall.admin.service.mk.MkActivityFormService;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
 import com.kmall.common.utils.R;
+import com.kmall.common.utils.RRException;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.util.CollectionUtils;
@@ -25,6 +28,8 @@ import org.springframework.web.bind.annotation.*;
 @Controller
 @RequestMapping("mkactivityform")
 public class MkActivityFormController {
+    private static final Logger logger = LoggerFactory.getLogger(MkActivityFormController.class);
+
     @Autowired
     private MkActivityFormService mkActivityFormService;
 
@@ -69,7 +74,12 @@ public class MkActivityFormController {
     @RequiresPermissions("mkactivityform:save")
     @ResponseBody
     public R save(@RequestBody MkActivityFormEntity mkActivityForm) {
-        mkActivityFormService.save(mkActivityForm);
+        try {
+            mkActivityFormService.save(mkActivityForm);
+        } catch (RRException e) {
+            logger.error(e.getMsg());
+            return R.error(e.getMsg());
+        }
 
         return R.ok();
     }
@@ -81,7 +91,12 @@ public class MkActivityFormController {
     @RequiresPermissions("mkactivityform:update")
     @ResponseBody
     public R update(@RequestBody MkActivityFormEntity mkActivityForm) {
-        mkActivityFormService.update(mkActivityForm);
+        try {
+            mkActivityFormService.update(mkActivityForm);
+        } catch (RRException e) {
+            logger.error(e.getMsg());
+            return R.error(e.getMsg());
+        }
 
         return R.ok();
     }

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

@@ -92,7 +92,6 @@ public class Mall2PointsRulesController {
      * 删除
      */
     @RequestMapping("/delete")
-//    @RequiresPermissions("mall2pointsrules:delete")
     @ResponseBody
     public R delete(@RequestBody Integer[]mprIds) {
         mall2PointsRulesService.deleteBatch(mprIds);
@@ -120,8 +119,7 @@ public class Mall2PointsRulesController {
             return R.error("导入失败!");
         }
         mall2PointsRulesService.rulesUploadDetil(mall2RulesDtoList,mkaId);
-        //上传文件
-        return R.ok("导入成功!");
+        return R.ok();
     }
 
     /**

+ 10 - 6
kmall-admin/src/main/java/com/kmall/admin/cuspay/biz/ali/AliCusDeclareBiz.java

@@ -40,6 +40,7 @@ import org.springframework.util.StringUtils;
 import com.kmall.admin.cuspay.biz.ali.support.sign.MD5;
 
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -126,7 +127,7 @@ public class AliCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
             // 商户编号
             aliCbPayDoc.setMerchSn(params.get("merchSn").toString());
             // 商户名称
-            aliCbPayDoc.setMerchName(params.get("merchName").toString());
+            aliCbPayDoc.setMerchName(platName);
             // 平台编号
             aliCbPayDoc.setPlatSn(platSn);
             // 平台中文名
@@ -139,7 +140,7 @@ public class AliCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
             aliCbPayDoc.setAliPaySn("alicb" + IdWorkerAide.nextId());
             // *********设置商户通知表参数*********
         } catch (Exception e) {
-            logger.error("支付宝支付单设置参数失败:" + e.getMessage());
+            logger.error("支付宝支付单设置参数失败:", e);
             return;
         }
 
@@ -148,7 +149,7 @@ public class AliCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
         try {
             addAliCbPayDoc(aliCbPayDoc);
         } catch (Exception e) {
-            logger.error("支付宝支付单信息写入数据库失败:" + e.getMessage());
+            logger.error("支付宝支付单信息写入数据库失败:", e);
             return;
         }
         logger.info("支付宝支付单信息写入数据库结束");
@@ -193,8 +194,9 @@ public class AliCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
 
         try {
             // todo, 请求海关接口
-            // String result = OkHttpUtils.get(declareURL + paramter);
-            String result = "";
+             String result = OkHttpUtils.get(declareURL + paramter);
+//            String result = "";
+            result = new String(result.getBytes("GBK"));
             doc = DocumentHelper.parseText(result);
             logger.info("alipay response message result :" + result);
             stringObjectMap = XmlUtils.Dom2Map(doc);
@@ -214,7 +216,6 @@ public class AliCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
         }
 
         MerchNoti merchNoti = new MerchNoti();
-        merchNoti.setOrderSn(params.get("orderSn").toString());
         try {
             if (stringObjectMap != null) {
                 isSuccess = stringObjectMap.get("is_success").toString();
@@ -279,6 +280,9 @@ public class AliCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
         }
         merchNoti = builder.aliCbPay(aliCbPayDoc).build();
         merchNoti = builder.code(aliCbPayDoc.getResultCode()).cusDeclStatus(AliDict.MerchNoticeStatus.i_12.getItem()).build();
+        String orderSn = params.get("orderSn").toString();
+        merchNoti.setOrderSn(orderSn);
+        merchNoti.setAllSubOrderNo(orderSn);
         merchNotis.add(merchNoti);
 
         // 持久化商户通知数据

+ 17 - 4
kmall-admin/src/main/java/com/kmall/admin/cuspay/biz/merch/MerchantNoticeBiz.java

@@ -1,6 +1,7 @@
 package com.kmall.admin.cuspay.biz.merch;
 
 import com.google.common.collect.ImmutableMap;
+import com.kmall.admin.cuspay.ccnet2cuspay.common.wx.WxDict;
 import com.kmall.admin.cuspay.common.contant.MerchNoticeDict;
 import com.kmall.admin.cuspay.util.Contants;
 import com.kmall.admin.dao.cuspay.merch.MerchNotiMapper;
@@ -19,6 +20,10 @@ import org.springframework.stereotype.Component;
 import org.springframework.util.StringUtils;
 
 import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 
 /**
@@ -69,13 +74,13 @@ public class MerchantNoticeBiz {
 
         notis.forEach(noti->{
 
-            if (StringUtils.isEmpty(noti.getNotifyUrl())) {
+            /*if (StringUtils.isEmpty(noti.getNotifyUrl())) {
                 logger.error("商户通知回调接口为空");
                 noti.setNotiStatue(MerchNoticeDict.NoticeStatus.i_3.getItem()); //发送失败
                 noti.setIsStoped(MerchNoticeDict.IsStopStatus.i_1.getItem());
                 noticeList.add(noti);
                 return;
-            }
+            }*/
 
             if (Objects.isNull(noti.getNotiCount()) || noti.getNotiCount() <= 0) {
                 logger.error("通知商户次数为空");
@@ -106,11 +111,19 @@ public class MerchantNoticeBiz {
                 orderProcessRecordService.updateMallOrderProcessRecord(recordMap);
                 Map<String, Object> alipayMap = ImmutableMap.of("orderSn", noti.getOrderSn(), "buyerPayCheck", noti.getBuyerPayerCheck());
                 orderService.updateBuyerPayCheck(alipayMap);
+                if (MerchNoticeDict.BuyerPayerCheckStatus.i_1.getItem().equals(noti.getBuyerPayerCheck())
+                        && WxDict.MerchNoticeStatus.i_12.getItem().equals(noti.getCusDeclStatus())) {
+                    noti.setIsStoped(MerchNoticeDict.IsStopStatus.i_1.getItem());
+                    noti.setNotiStatue(MerchNoticeDict.NoticeStatus.i_2.getItem());
+                }
 
-            }else if(Constants.DocStatus.item_13.getItem().equals(noti.getCusDeclStatus())){
+            } else if(Constants.DocStatus.item_13.getItem().equals(noti.getCusDeclStatus())){
                 Map<String, Object> recordMap = ImmutableMap.of("orderSn", noti.getOrderSn(), "paymentSuccTime", new Date(),"isPaymentSend", Contants.WX_FAIL);
                 orderProcessRecordService.updateMallOrderProcessRecord(recordMap);
-
+                Map<String, Object> alipayMap = ImmutableMap.of("orderSn", noti.getOrderSn(), "buyerPayCheck", noti.getBuyerPayerCheck());
+                orderService.updateBuyerPayCheck(alipayMap);
+                noti.setIsStoped(MerchNoticeDict.IsStopStatus.i_1.getItem());
+                noti.setNotiStatue(MerchNoticeDict.NoticeStatus.i_2.getItem());
             }
             noticeList.add(noti);
         });

+ 13 - 5
kmall-admin/src/main/java/com/kmall/admin/cuspay/biz/wx/WxCusDeclareBiz.java

@@ -145,6 +145,15 @@ public class WxCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
             if (!StringUtils.isEmpty(params.get("productFee"))) {
                 wxCbPayDoc.setProductFee(Integer.parseInt(params.get("productFee").toString()));
             }
+            wxCbPayDoc.setCertType("IDCARD");
+            Object certIdObj = params.get("certId");
+            if (!StringUtils.isEmpty(certIdObj)) {
+                wxCbPayDoc.setCertId(String.valueOf(certIdObj));
+            }
+            Object nameObj = params.get("name");
+            if (!StringUtils.isEmpty(nameObj)) {
+                wxCbPayDoc.setName(String.valueOf(nameObj));
+            }
             // *********设置支付单报关参数*********
 
             // *********设置商户通知表参数*********
@@ -153,7 +162,7 @@ public class WxCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
             // 商户编号
             wxCbPayDoc.setMerchSn(params.get("merchSn").toString());
             // 商户名称
-            wxCbPayDoc.setMerchName(params.get("merchName").toString());
+            wxCbPayDoc.setMerchName(platName);
             // 平台编号
             wxCbPayDoc.setPlatSn(platSn);
             // 平台中文名
@@ -168,7 +177,7 @@ public class WxCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
             }
             // *********设置商户通知表参数*********
         } catch (Exception e) {
-            logger.error("微信支付单设置参数失败:" + e.getMessage());
+            logger.error("微信支付单设置参数失败:", e);
             return;
         }
 
@@ -224,8 +233,7 @@ public class WxCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
         WxResponseMsg wxResponseMsgDto = null;
         try {
             // todo, 请求海关接口
-            // String result = OkHttpUtils.post(request);
-            String result = "";
+            String result = OkHttpUtils.post(request);
             StringReader reader = new StringReader(result);
             wxResponseMsgDto = JAXB.unmarshal(reader, WxResponseMsg.class);
             logger.info("result:" + result + "wx response message pojo:" + wxResponseMsgDto);
@@ -239,7 +247,6 @@ public class WxCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
         }
 
         MerchNoti merchNoti = new MerchNoti();
-        merchNoti.setOrderSn(params.get("orderSn").toString());
         try {
             wxCbPayDoc.setResultCode(wxResponseMsgDto.getResultCode());
             wxCbPayDoc.setReturnCode(wxResponseMsgDto.getReturnCode());
@@ -338,6 +345,7 @@ public class WxCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
                         .build();
             }
             wxCbPayDocService.updateWxCbPay(wxCbPayDoc);
+            merchNoti.setOrderSn(params.get("orderSn").toString());
         } catch (Exception e) {
             logger.error("更新支付单证写入数据库信息状态异常", e);
             return;

+ 9 - 30
kmall-admin/src/main/java/com/kmall/admin/cuspay/biz/wx/WxCusDeclareQueryBiz.java

@@ -247,12 +247,10 @@ public class WxCusDeclareQueryBiz extends AbstractCusDeclareBiz implements Cuspa
                             }
                             wxCbPayDocService.updateWxCbPay(wxCbPayDoc);
 
-                            MerchNoti noti = new MerchNoti();
-                            noti.setCode(wxQueryResponseMsg.getErrCode());
-                            noti.setAllPayNo(wxQueryResponseMsg.getTransactionId());
-                            noti.setCusDeclStatus(merchNoti.getCusDeclStatus());
-                            noti.setAllSubOrderNo(allSubOrderNo);
-                            updateMerchNoti(noti,allSubOrderId,merchNoti);//更新商户通知
+
+                            merchNoti.setAllSubOrderNo(allSubOrderNo);
+                            merchNoti.setOrderSn(wxCbPayDoc.getSubOrderNo());
+                            merchNotiService.updateByOrderSn(merchNoti);;//更新商户通知
                         }
                     }else{//业务状态码失败
                         wxCbPayDoc.setErrCode(wxQueryResponseMsg.getErrCode());
@@ -265,12 +263,8 @@ public class WxCusDeclareQueryBiz extends AbstractCusDeclareBiz implements Cuspa
                                 .build();
                         wxCbPayDocService.updateWxCbPay(wxCbPayDoc);
 
-                        MerchNoti noti = new MerchNoti();
-                        noti.setCode(wxQueryResponseMsg.getErrCode());
-                        noti.setAllPayNo(wxQueryResponseMsg.getTransactionId());
-                        noti.setCusDeclStatus(merchNoti.getCusDeclStatus());
-                        noti.setAllSubOrderNo(allSubOrderNo);
-                        updateMerchNoti(noti,allSubOrderId,merchNoti);//更新商户通知
+                        merchNoti.setOrderSn(wxCbPayDoc.getSubOrderNo());
+                        merchNotiService.updateByOrderSn(merchNoti);;//更新商户通知
                     }
                 }
                 ///返回状态码为失败
@@ -284,12 +278,8 @@ public class WxCusDeclareQueryBiz extends AbstractCusDeclareBiz implements Cuspa
                             .build();
                     wxCbPayDocService.updateWxCbPay(wxCbPayDoc);
 
-                    MerchNoti noti = new MerchNoti();
-                    noti.setCode(wxQueryResponseMsg.getErrCode());
-                    noti.setAllPayNo(wxQueryResponseMsg.getTransactionId());
-                    noti.setCusDeclStatus(merchNoti.getCusDeclStatus());
-                    noti.setAllSubOrderNo(allSubOrderNo);
-                    updateMerchNoti(noti,allSubOrderId,merchNoti);//更新商户通知
+                    merchNoti.setOrderSn(wxCbPayDoc.getSubOrderNo());
+                    merchNotiService.updateByOrderSn(merchNoti);;//更新商户通知
                 }
             } catch (Exception e) {
                 logger.error("更新支付单证入库信息状态异常", e);
@@ -311,18 +301,7 @@ public class WxCusDeclareQueryBiz extends AbstractCusDeclareBiz implements Cuspa
         }
 
     }
-    private void updateMerchNoti(MerchNoti noti,String allSubOrderId,MerchNoti merchNoti){
-        List<MerchNoti> merchNotiList = merchNotiService.getMerchNotiByCodeAndOrderNo(noti);
-        if(merchNotiList != null && merchNotiList.size()>0){
-            MerchNoti merchNoti1 = merchNotiList.get(0);
-            merchNoti1.setTstm(new Date());
-            merchNoti1.setAllSubOrderId(allSubOrderId);
-            merchNotiService.update(merchNoti1);
-        }else{
-            merchNoti.setNotiSn(TablePrimaryKeyPrefix.merch_pay_noti_type + IdWorkerAide.nextId());
-            merchNotiService.insert(merchNoti);
-        }
-    }
+
     /**
      * 记录异常的支付单证信息
      * @param wxCbPayDoc

+ 2 - 0
kmall-admin/src/main/java/com/kmall/admin/cuspay/service/MerchNotiService.java

@@ -23,4 +23,6 @@ public interface MerchNotiService {
     MerchNoti insert(MerchNoti merchNoti);
 
     MerchNoti update(MerchNoti merchNoti);
+
+    int updateByOrderSn(MerchNoti merchNoti);
 }

+ 5 - 0
kmall-admin/src/main/java/com/kmall/admin/cuspay/service/impl/MerchNotiServiceImpl.java

@@ -47,4 +47,9 @@ public class MerchNotiServiceImpl implements MerchNotiService {
         }
         return null;
     }
+
+    @Override
+    public int updateByOrderSn(MerchNoti merchNoti) {
+        return merchNotiMapper.updateByorderSn(merchNoti);
+    }
 }

+ 6 - 1
kmall-admin/src/main/java/com/kmall/admin/cuspay/task/AliPayCuspayTask.java

@@ -3,10 +3,13 @@ package com.kmall.admin.cuspay.task;
 import com.kmall.admin.cuspay.biz.ali.AliCusDeclareBiz;
 import com.kmall.admin.cuspay.biz.ali.AliCusDeclareQueryBiz;
 import com.kmall.admin.cuspay.biz.merch.MerchantNoticeBiz;
+import com.kmall.admin.cuspay.biz.wx.WxCusDeclareBiz;
+import com.kmall.admin.cuspay.biz.wx.WxCusDeclareQueryBiz;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+@Component
 public class AliPayCuspayTask {
     @Autowired
     private MerchantNoticeBiz merchantNoticeBiz;
@@ -15,12 +18,14 @@ public class AliPayCuspayTask {
     private AliCusDeclareQueryBiz aliCusDeclareQueryBiz;
 
     @Autowired
-    private AliCusDeclareBiz aliCusDeclareBiz;
+    private WxCusDeclareQueryBiz wxCusDeclareQueryBiz;
 
     @Scheduled(fixedDelay = 5000L)
     public void task() {
 
         merchantNoticeBiz.biz();
 
+        aliCusDeclareQueryBiz.biz(null);
+        wxCusDeclareQueryBiz.biz(null);
     }
 }

+ 12 - 12
kmall-admin/src/main/java/com/kmall/admin/cuspay/task/CuspayTask.java

@@ -14,20 +14,20 @@ import org.springframework.stereotype.Component;
  * @version 1.0
  * 2018-05-23 09:31
  */
-@Component
+//@Component
 public class CuspayTask {
-    @Autowired
-    private MerchantNoticeBiz merchantNoticeBiz;
+//    @Autowired
+//    private MerchantNoticeBiz merchantNoticeBiz;
+//
+//    @Autowired
+//    private WxCusDeclareBiz wxCusDeclareBiz;
+//
+//    @Autowired
+//    private WxCusDeclareQueryBiz wxCusDeclareQueryBiz;
 
-    @Autowired
-    private WxCusDeclareBiz wxCusDeclareBiz;
-
-    @Autowired
-    private WxCusDeclareQueryBiz wxCusDeclareQueryBiz;
-
-    @Scheduled(fixedRate = 10000)
-    public void task() {
+//    @Scheduled(fixedRate = 10000)
+//    public void task() {
        // todo,商户通知请求回执
        // merchantNoticeBiz.biz(null);
-    }
+//    }
 }

+ 1 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/CategoryDao.java

@@ -44,6 +44,7 @@ public interface CategoryDao extends BaseDao<CategoryEntity> {
     /**
      * 根据名称和级别查询是否存在对象
      *
+     * @author zhuhh
      * @param name
      * @param level
      * @return

+ 2 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/GoodsDao.java

@@ -24,6 +24,8 @@ public interface GoodsDao extends BaseDao<GoodsEntity> {
 
     GoodsEntity queryObjectBySn(String goodsSn);
 
+    GoodsEntity queryObjectBySnNew(String goodsSn);
+
     GoodsEntity queryObjectByProdBarcodeAndBizType(@Param("prodBarcode")String prodBarcode, @Param("storeId")Integer storeId);
 
     GoodsEntity queryObjectByProdBarcodeAndStore(@Param("prodBarcode")String prodBarcode, @Param("storeId")Integer storeId);

+ 3 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/cuspay/merch/MerchNotiMapper.java

@@ -2,6 +2,7 @@ package com.kmall.admin.dao.cuspay.merch;
 
 
 import com.kmall.admin.cuspay.entity.merch.MerchNoti;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -25,4 +26,6 @@ public interface MerchNotiMapper {
     int updateBatch(List<MerchNoti> records);
 
     List<MerchNoti> getMerchNotiByCodeAndOrderNo(MerchNoti merchNoti);
+
+    int updateByorderSn(MerchNoti merchNoti);
 }

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/haikong/HaiKongMemberOrderSyncResendDao.java

@@ -5,6 +5,7 @@ import com.kmall.manager.dao.BaseDao;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 海控同步消费订单重发表
@@ -66,4 +67,18 @@ public interface HaiKongMemberOrderSyncResendDao {
     List<HaiKongMemberOrderSyncResendEntity> queryListByResendStatus();
 
     void updateResendStatusBatch(List<HaiKongMemberOrderSyncResendEntity> entities);
+
+    /**
+     * 查询列表数据
+     * @param map
+     * @return
+     */
+    List<HaiKongMemberOrderSyncResendEntity> queryListNew(Map<String, Object> map);
+
+    /**
+     * 查询总数
+     * @param map
+     * @return
+     */
+    Integer queryTotalNew(Map<String, Object> map);
 }

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/haikong/HaiKongMemberScoreChangeDetailRecordDao.java

@@ -4,6 +4,7 @@ import com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeDetailRecordEntity
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 同步会员系统积分,订单详情
@@ -39,4 +40,18 @@ public interface HaiKongMemberScoreChangeDetailRecordDao {
      * @return          结果
      */
     int saveBatch(List<HaiKongMemberScoreChangeDetailRecordEntity> entities);
+
+    /**
+     * 查询列表
+     * @param map
+     * @return
+     */
+    List<HaiKongMemberScoreChangeDetailRecordEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 查询总数
+     * @param map
+     * @return
+     */
+    Integer queryTotal(Map<String, Object> map);
 }

+ 5 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/haikong/HaiKongMemberScoreChangeRecordDao.java

@@ -5,6 +5,7 @@ import com.kmall.admin.entity.haikong.IntegralGoBackEntity;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 会员积分变动记录
@@ -39,4 +40,8 @@ public interface HaiKongMemberScoreChangeRecordDao {
      */
     void updateResendStatusBatch(List<HaiKongMemberScoreChangeRecordEntity> entities);
 
+    List<HaiKongMemberScoreChangeRecordEntity> queryListNew(Map<String, Object> map);
+
+    Integer queryTotalNew(Map<String, Object> map);
+
 }

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

@@ -13,5 +13,14 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface MkActivitiesAssociationDao extends BaseDao<MkActivitiesAssociationEntity> {
 
+    /**
+     * 根据营销活动id更新营销活动关联表对应数据
+     *
+     * @author zhuhh
+     * @param mkActivitiesAssociationEntity
+     * @return
+     */
+    int updateByMkaId(MkActivitiesAssociationEntity mkActivitiesAssociationEntity);
+
     MkActivitiesAssociationEntity queryByMkCodeAndTopic(@Param("mkCode") String mkCode, @Param("mkaTopic") String mkaTopic, @Param("mkaStoreId") String mkaStoreId);
 }

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

@@ -23,4 +23,12 @@ public interface MkActivitiesScoreDao extends BaseDao<MkActivitiesScoreEntity> {
                                                                             @Param("nowTime") Date nowTime);
 
     List<MkActivitiesScoreEntity> queryDetailByTime(@Param("date") Date date);
+
+    /**
+     * 查询积分抵扣活动信息
+     *
+     * @param mkaIdList 活动id集合
+     * @return 活动
+     */
+    List<MkActivitiesScoreEntity> queryActivityInfoByMkaIdList(List<Long> mkaIdList);
 }

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

@@ -3,6 +3,7 @@ package com.kmall.admin.dao.mk;
 import com.kmall.admin.entity.mk.MkActivitiesEntity;
 import com.kmall.admin.entity.mk.MkActivityFormEntity;
 import com.kmall.manager.dao.BaseDao;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
@@ -20,4 +21,12 @@ public interface MkActivityFormDao extends BaseDao<MkActivityFormEntity> {
 
     List<MkActivitiesEntity> queryMkactivitiesList(Map<String, Object> map);
 
+    /**
+     * 根据活动代码查询
+     *
+     * @param mkCode 活动代码
+     * @return
+     */
+    MkActivityFormEntity queryObjectByMkCode(@Param("mkCode") String mkCode);
+
 }

+ 10 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/vip/Mall2MemberConsumptionRecordsDao.java

@@ -2,6 +2,7 @@ package com.kmall.admin.dao.vip;
 
 import com.kmall.admin.entity.vip.Mall2MemberConsumptionRecordsEntity;
 import com.kmall.manager.dao.BaseDao;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 会员消费记录表Dao
@@ -12,4 +13,13 @@ import com.kmall.manager.dao.BaseDao;
  */
 public interface Mall2MemberConsumptionRecordsDao extends BaseDao<Mall2MemberConsumptionRecordsEntity> {
 
+    /**
+     * 根据订单编号orderSn查询对象
+     *
+     * @author zhuhh
+     * @param orderSn 订单编号
+     * @return
+     */
+    Mall2MemberConsumptionRecordsEntity queryObjectByOrderSn(@Param("orderSn") String orderSn);
+
 }

+ 2 - 1
kmall-admin/src/main/java/com/kmall/admin/dao/vip/Mall2PointsRulesDao.java

@@ -4,6 +4,7 @@ import com.kmall.admin.dto.Mall2RulesDto;
 import com.kmall.admin.entity.vip.Mall2DetilEntity;
 import com.kmall.admin.entity.vip.Mall2PointsRulesEntity;
 import com.kmall.admin.haikong.vo.PointsRulesAndDetailVO;
+import com.kmall.common.utils.Query;
 import com.kmall.manager.dao.BaseDao;
 import org.apache.ibatis.annotations.Param;
 
@@ -33,7 +34,7 @@ public interface Mall2PointsRulesDao extends BaseDao<Mall2PointsRulesEntity> {
 
     void saveMall2PointsRulesDetil(List<Mall2RulesDto> pointsRulesList);
 
-    List<Mall2RulesDto> querymall2PointsRulesDetil(Long id);
+    List<Mall2RulesDto> querymall2PointsRulesDetil(Query query);
 
     int querymall2PointsRulesDetilTotal(Long id);
 

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

@@ -90,6 +90,11 @@ public class GoodsDetailsDto {
     private Integer deductionScore;
 
     /**
+     * 积分抵扣金额
+     */
+    private BigDecimal deductionPrice;
+
+    /**
      * 仓库编码
      */
     private String warehouseSn;
@@ -372,4 +377,12 @@ public class GoodsDetailsDto {
     public void setInventoryType(String inventoryType) {
         this.inventoryType = inventoryType;
     }
+
+    public BigDecimal getDeductionPrice() {
+        return deductionPrice;
+    }
+
+    public void setDeductionPrice(BigDecimal deductionPrice) {
+        this.deductionPrice = deductionPrice;
+    }
 }

+ 4 - 2
kmall-admin/src/main/java/com/kmall/admin/dto/GoodsDto.java

@@ -129,10 +129,11 @@ public class GoodsDto implements Serializable {
     private String hsCodeName;
 
     private String plu;
-
+    //品牌唯一简码
     private String uniqueIdentifier;
-
+    //一级分类
     private String firstLevel;
+    //二级分类
     private String secondLevel;
     //第一法定单位数量
     private String legalUnit1Qty;
@@ -153,6 +154,7 @@ public class GoodsDto implements Serializable {
     private String defectiveProductsGrade;
     //商品重量
     private String netWeight;
+    //增值税率
     private String valueAddedTaxRate;
 
     public String getCounterPrice() {

+ 1 - 0
kmall-admin/src/main/java/com/kmall/admin/dto/Mall2RulesDto.java

@@ -1,5 +1,6 @@
 package com.kmall.admin.dto;
 
+import com.mysql.cj.Query;
 import lombok.Data;
 
 @Data

+ 0 - 9
kmall-admin/src/main/java/com/kmall/admin/dto/ScoreReductionDTO.java

@@ -16,7 +16,6 @@ public class ScoreReductionDTO implements Serializable {
     private String prodBarcode;
     private String sku;
     private Integer storeId;
-    private BigDecimal scoreLimit;
     private Date deadline;
     private String deadlineStr;
     private String reject;
@@ -45,14 +44,6 @@ public class ScoreReductionDTO implements Serializable {
         this.storeId = storeId;
     }
 
-    public BigDecimal getScoreLimit() {
-        return scoreLimit;
-    }
-
-    public void setScoreLimit(BigDecimal scoreLimit) {
-        this.scoreLimit = scoreLimit;
-    }
-
     public Date getDeadline() {
         return deadline;
     }

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

@@ -404,6 +404,10 @@ public class GoodsEntity implements Serializable {
      */
     private Integer exitRegionNumber;
 
+    private Integer deductionScore;
+
+    private BigDecimal deductionPrice;
+
     public BigDecimal getRetailPrice() {
         return retailPrice;
     }
@@ -1345,6 +1349,22 @@ public class GoodsEntity implements Serializable {
         this.unitCodeName = unitCodeName;
     }
 
+    public Integer getDeductionScore() {
+        return deductionScore;
+    }
+
+    public void setDeductionScore(Integer deductionScore) {
+        this.deductionScore = deductionScore;
+    }
+
+    public BigDecimal getDeductionPrice() {
+        return deductionPrice;
+    }
+
+    public void setDeductionPrice(BigDecimal deductionPrice) {
+        this.deductionPrice = deductionPrice;
+    }
+
     /**
      * 重写hashCode方法,用作排序
      */

+ 13 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/StoreSmsConfigEntity.java

@@ -61,6 +61,11 @@ public class StoreSmsConfigEntity implements Serializable {
 
     private String isEnable;
 
+    /**
+     * 门店名称
+     */
+    private String storeName;
+
     public String getIsEnable() {
         return isEnable;
     }
@@ -212,4 +217,12 @@ public class StoreSmsConfigEntity implements Serializable {
     public Date getTstm() {
         return tstm;
     }
+
+    public String getStoreName() {
+        return storeName;
+    }
+
+    public void setStoreName(String storeName) {
+        this.storeName = storeName;
+    }
 }

+ 0 - 17
kmall-admin/src/main/java/com/kmall/admin/entity/mk/MkActivitiesScoreEntity.java

@@ -32,10 +32,6 @@ public class MkActivitiesScoreEntity implements Serializable {
      */
     private Integer storeId;
     /**
-     * 抵扣比例
-     */
-    private BigDecimal scoreLimit;
-    /**
      * 营销活动编号
      */
     private Long mkaId;
@@ -117,19 +113,6 @@ public class MkActivitiesScoreEntity implements Serializable {
         return storeId;
     }
     /**
-     * 设置:抵扣比例
-     */
-    public void setScoreLimit(BigDecimal scoreLimit) {
-        this.scoreLimit = scoreLimit;
-    }
-
-    /**
-     * 获取:抵扣比例
-     */
-    public BigDecimal getScoreLimit() {
-        return scoreLimit;
-    }
-    /**
      * 设置:营销活动编号
      */
     public void setMkaId(Long mkaId) {

+ 0 - 1
kmall-admin/src/main/java/com/kmall/admin/haikong/config/HaiKongConfig.java

@@ -25,7 +25,6 @@ public class HaiKongConfig {
         haiKongProperties.setMemberUrl(environment.getProperty("haikong.member.url"));
         haiKongProperties.setMemberAppId(environment.getProperty("haikong.member.appId"));
         haiKongProperties.setMemberAppSecret(environment.getProperty("haikong.member.appSecret"));
-        haiKongProperties.setMemberScoreLimit(Integer.parseInt(environment.getProperty("haikong.member.scoreLimit")));
         haiKongProperties.setRetry(Integer.parseInt(environment.getProperty("haikong.retry")));
         haiKongProperties.setVmcconnectUrl(environment.getProperty("haikong.vmcconnect.url"));
         haiKongProperties.setVmcconnectAppId(environment.getProperty("haikong.vmcconnect.appId"));

+ 0 - 10
kmall-admin/src/main/java/com/kmall/admin/haikong/config/HaiKongProperties.java

@@ -13,8 +13,6 @@ public class HaiKongProperties {
 
     private String memberAppSecret;
 
-    private Integer memberScoreLimit;
-
     private Integer retry;
 
     /**
@@ -91,14 +89,6 @@ public class HaiKongProperties {
         this.memberAppSecret = memberAppSecret;
     }
 
-    public Integer getMemberScoreLimit() {
-        return memberScoreLimit;
-    }
-
-    public void setMemberScoreLimit(Integer memberScoreLimit) {
-        this.memberScoreLimit = memberScoreLimit;
-    }
-
     public Integer getRetry() {
         return retry;
     }

+ 8 - 0
kmall-admin/src/main/java/com/kmall/admin/haikong/constant/Constants.java

@@ -19,6 +19,14 @@ public class Constants {
 
     /* --------------------------------------------------redis常量----------------------------------------------- */
 
+    /* --------------------------------------------------系统常量----------------------------------------------- */
+
+    public static final String HAIKONG_MEMBER_SCORE_LIMIT = "HAIKONG_MEMBER_SCORE_LIMIT";
+
+    public static final String HAIKONG_MEMBER_MAX_SCORE_RATIO = "HAIKONG_MEMBER_MAX_SCORE_RATIO";
+
+    /* --------------------------------------------------系统常量----------------------------------------------- */
+
 
     /* --------------------------------------------------支付宝常量----------------------------------------------- */
 

+ 5 - 0
kmall-admin/src/main/java/com/kmall/admin/haikong/task/MemberSysAccessTokenRefreshTask.java

@@ -33,8 +33,13 @@ public class MemberSysAccessTokenRefreshTask {
 
 
 //    @Scheduled(cron = "0 55 0/2 * * ?")
+    @Scheduled(cron = "0 0/2 * * * ?")
     public void refresh() {
         String refreshToken = JedisUtil.get(Constants.MEMBER_SYS_REFRESH_TOKEN_REDIS_KEY);
+        String accessToken = JedisUtil.get(Constants.MEMBER_SYS_ACCESS_TOKEN_REDIS_KEY);
+        if (!StringUtils.isEmpty(refreshToken) && !StringUtils.isEmpty(accessToken)) {
+            return;
+        }
         boolean a = false;
         if (StringUtils.isEmpty(refreshToken)) {
             try {

+ 21 - 0
kmall-admin/src/main/java/com/kmall/admin/haikong/vo/QueryGoodsVO.java

@@ -157,6 +157,10 @@ public class QueryGoodsVO {
     private String productId;
 
     private Integer deductionScore;
+    //商品类型Id
+    private Integer categoryId;
+
+    private BigDecimal deductionPrice;
 
 
     public String getProdBarcode() {
@@ -399,6 +403,22 @@ public class QueryGoodsVO {
         this.deductionScore = deductionScore;
     }
 
+    public Integer getCategoryId() {
+        return categoryId;
+    }
+
+    public void setCategoryId(Integer categoryId) {
+        this.categoryId = categoryId;
+    }
+
+    public BigDecimal getDeductionPrice() {
+        return deductionPrice;
+    }
+
+    public void setDeductionPrice(BigDecimal deductionPrice) {
+        this.deductionPrice = deductionPrice;
+    }
+
     @Override
     public String toString() {
         return "QueryGoodsVO{" +
@@ -432,6 +452,7 @@ public class QueryGoodsVO {
                 ", activity='" + activity + '\'' +
                 ", productId='" + productId + '\'' +
                 ", deductionScore=" + deductionScore +
+                ", deductionPrice=" + deductionPrice +
                 '}';
     }
 

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

@@ -161,7 +161,7 @@ public interface OrderService {
 
     OrderEntity queryObjectByOrderSn(String orderSn);
 
-    R orderRefund(OrderEntity orderInfo, String sessionId, SysUserEntity user) throws Exception;
+    R orderRefund(OrderEntity orderInfo) throws Exception;
 
     int queryOffilineOrderTotal(Query query);
 
@@ -244,4 +244,11 @@ public interface OrderService {
      * @return      结果
      */
     int updateBuyerPayCheck(Map<String, Object> wxMap);
+
+    /**
+     * 支付单重推
+     * @param orderSn
+     * @return
+     */
+    R resendWayHkBill(String orderSn) throws Exception;
 }

+ 27 - 0
kmall-admin/src/main/java/com/kmall/admin/service/haikong/HaiKongMemberOrderSyncResendService.java

@@ -39,4 +39,31 @@ public interface HaiKongMemberOrderSyncResendService {
     List<HaiKongMemberOrderSyncResendEntity> queryListByResendStatus();
 
     void updateResendStatusBatch(List<HaiKongMemberOrderSyncResendEntity> entities);
+
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<HaiKongMemberOrderSyncResendEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param id 主键
+     * @return 实体
+     */
+    HaiKongMemberOrderSyncResendEntity queryObject(Integer id);
+
+
 }

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

@@ -4,6 +4,7 @@ import com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeDetailRecordEntity
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author lhm
@@ -39,4 +40,20 @@ public interface HaiKongMemberScoreChangeDetailRecordService {
      */
     int saveBatch(List<HaiKongMemberScoreChangeDetailRecordEntity> entities);
 
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<HaiKongMemberScoreChangeDetailRecordEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
 }

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

@@ -5,6 +5,7 @@ import com.kmall.admin.entity.haikong.IntegralGoBackEntity;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author lhm
@@ -37,4 +38,20 @@ public interface HaiKongMemberScoreChangeRecordService {
      */
     void updateResendStatusBatch(List<HaiKongMemberScoreChangeRecordEntity> entities);
 
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<HaiKongMemberScoreChangeRecordEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
 }

+ 92 - 39
kmall-admin/src/main/java/com/kmall/admin/service/impl/BrandServiceImpl.java

@@ -6,6 +6,7 @@ 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.admin.utils.ValidateUtils;
 import com.kmall.common.utils.MapBeanUtil;
 import com.kmall.common.utils.R;
 import com.kmall.common.utils.RRException;
@@ -59,37 +60,63 @@ public class BrandServiceImpl implements BrandService {
     @Override
     public int save(BrandEntity brand) {
 
-//        // 品牌唯一标识符正则校验
-//        String uniqueIdentifier = brand.getUniqueIdentifier();
-//        String regex = "(^[0-9a-zA-Z_&]{1,10}$)";
-//        if(!Pattern.matches(regex,uniqueIdentifier)){
-//            throw new RuntimeException("请输入正确的品牌唯一简码,有问题的简码:"+uniqueIdentifier);
-//        }
-//
-//        // 如果是正确的,根据唯一简码查询该简码是否存在
-//        BrandEntity brandEntity = brandDao.queryByUniqueIdentifier(uniqueIdentifier);
-//        if(brandEntity != null ){
-//            throw new RuntimeException("该唯一简码已存在,请检查唯一简码,唯一简码:"+uniqueIdentifier);
-//        }
+        // 品牌唯一标识符正则校验
+        String uniqueIdentifier = brand.getUniqueIdentifier();
+        String regex = "(^[0-9a-zA-Z_&-]{1,20}$)";
+        if (StringUtils.isNotBlank(uniqueIdentifier)) {
+            if (!Pattern.matches(regex, uniqueIdentifier)) {
+                throw new RuntimeException("请输入正确的品牌唯一简码,有问题的简码:" + uniqueIdentifier);
+            }
+
+            // 如果是正确的,根据唯一简码查询该简码是否存在
+            BrandEntity brandEntity = brandDao.queryByUniqueIdentifier(uniqueIdentifier);
+            if (brandEntity != null) {
+                throw new RuntimeException("该唯一简码已存在,请检查唯一简码,唯一简码:" + uniqueIdentifier);
+            }
+        }
+
+        // 品牌名称正则校验
+        if (!ValidateUtils.validateSpecialAllowChinese(brand.getName())) {
+            throw new RuntimeException("请输入正确的品牌名称,有问题的品牌名称:" + brand.getName());
+        }
+
+        // 根据名称查询该名称是否存在
+        BrandEntity nameEntity = brandDao.queryByName(brand.getName());
+        if (nameEntity != null) {
+            throw new RuntimeException("该品牌名称已存在,请检查品牌名称,品牌名称:" + brand.getName());
+        }
 
         return brandDao.save(brand);
     }
 
     @Override
     public int update(BrandEntity brand) {
-//
-//        // 品牌唯一标识符正则校验
-//        String uniqueIdentifier = brand.getUniqueIdentifier();
-//        String regex = "(^[0-9a-zA-Z_&]{1,10}$)";
-//        if(!Pattern.matches(regex,uniqueIdentifier)){
-//            throw new RuntimeException("请输入正确的品牌唯一简码,有问题的简码:"+uniqueIdentifier);
-//        }
-//
-//        // 如果是正确的,根据唯一简码查询该简码是否存在
-//        BrandEntity brandEntity = brandDao.queryByUniqueIdentifier(uniqueIdentifier);
-//        if(brandEntity != null && brand.getId().compareTo(brandEntity.getId()) != 0){
-//            throw new RuntimeException("该唯一简码已存在,请检查唯一简码,唯一简码:"+uniqueIdentifier);
-//        }
+
+        // 品牌唯一标识符正则校验
+        String uniqueIdentifier = brand.getUniqueIdentifier();
+        String regex = "(^[0-9a-zA-Z_&-]{1,20}$)";
+        if (StringUtils.isNotBlank(uniqueIdentifier)) {
+            if (!Pattern.matches(regex, uniqueIdentifier)) {
+                throw new RuntimeException("请输入正确的品牌唯一简码,有问题的简码:" + uniqueIdentifier);
+            }
+
+            // 如果是正确的,根据唯一简码查询该简码是否存在
+            BrandEntity brandEntity = brandDao.queryByUniqueIdentifier(uniqueIdentifier);
+            if (brandEntity != null && brand.getId().compareTo(brandEntity.getId()) != 0) {
+                throw new RuntimeException("该唯一简码已存在,请检查唯一简码,唯一简码:" + uniqueIdentifier);
+            }
+        }
+
+        // 品牌名称正则校验
+        if (!ValidateUtils.validateSpecialAllowChinese(brand.getName())) {
+            throw new RuntimeException("请输入正确的品牌名称,有问题的品牌名称:" + brand.getName());
+        }
+
+        // 根据名称查询该名称是否存在
+        BrandEntity nameEntity = brandDao.queryByName(brand.getName());
+        if (nameEntity != null && !nameEntity.getId().equals(brand.getId())) {
+            throw new RuntimeException("该品牌名称已存在,请检查品牌名称,品牌名称:" + brand.getName());
+        }
 
         return brandDao.update(brand);
     }
@@ -241,19 +268,31 @@ public class BrandServiceImpl implements BrandService {
             String name = brandEntity.getName();
             Integer isShow = brandEntity.getIsShow();
             Integer isNew = brandEntity.getIsNew();
-            // 品牌唯一标识符正则校验
             String uniqueIdentifier = brandEntity.getUniqueIdentifier();
+            String simpleDesc = brandEntity.getSimpleDesc();
 
-            if (isShow.intValue() != 0 && isShow.intValue() != 1 && isNew.intValue() != 0 && isNew != 1) {
-                throw new ServiceException("第" + (i + 1) + "行的是否显示或者是否新品牌只可填(0:否 1:是)");
+            if (isShow != 0 && isShow != 1) {
+                throw new ServiceException("第" + (i + 1) + "行的是否显示只可填(0:否 1:是)");
             }
-
-            if (StringUtils.isNotBlank(uniqueIdentifier)) {
-                String regex = "(^[0-9a-zA-Z_&]{1,10}$)";
-                if (!Pattern.matches(regex, uniqueIdentifier)) {
-                    throw new RuntimeException("请输入正确的品牌唯一简码,有问题的简码:" + uniqueIdentifier);
-                }
+            if (isNew != 0 && isNew != 1) {
+                throw new ServiceException("第" + (i + 1) + "行的是否新品牌只可填(0:否 1:是)");
+            }
+            // 品牌唯一标识符正则校验
+            // if (StringUtils.isNotBlank(uniqueIdentifier)) {
+            //     String regex = "(^[0-9a-zA-Z_&]{1,10}$)";
+            //     if (!Pattern.matches(regex, uniqueIdentifier)) {
+            //         throw new ServiceException("第" + (i + 1) + "行的品牌唯一简码包含特殊字符或长度过长");
+            //     }
+            // }
+            // if (!ValidateUtils.validateSpecialAllowChinese(name)) {
+            //     throw new ServiceException("第" + (i + 1) + "行的品牌名称包含特殊字符或长度过长");
+            // }
+            if (StringUtils.isBlank(simpleDesc)) {
+                throw new ServiceException("第" + (i + 1) + "行的描述不能为空");
             }
+            // if (!ValidateUtils.validateSpecialAllowChinese(simpleDesc)) {
+            //     throw new ServiceException("第" + (i + 1) + "行的描述包含特殊字符或长度过长");
+            // }
 
             // 数据库查询是否存在对应名字的对象
             BrandEntity isExist = brandDao.queryByName(name);
@@ -261,9 +300,11 @@ public class BrandServiceImpl implements BrandService {
             // 不存在则添加
             if (isExist == null) {
                 // 如果是正确的,根据唯一简码查询该简码是否存在
-                BrandEntity queryBrandEntity = brandDao.queryByUniqueIdentifier(uniqueIdentifier);
-                if (Objects.nonNull(queryBrandEntity)) {
-                    throw new ServiceException("第" + (i + 1) + "行的该品牌:【" + queryBrandEntity.getName() + "】已存在!");
+                if (StringUtils.isNotBlank(uniqueIdentifier)) {
+                    BrandEntity queryBrandEntity = brandDao.queryByUniqueIdentifier(uniqueIdentifier);
+                    if (Objects.nonNull(queryBrandEntity)) {
+                        throw new ServiceException("第" + (i + 1) + "行的品牌唯一简码:【" + queryBrandEntity.getUniqueIdentifier() + "】已存在!");
+                    }
                 }
 
                 BrandEntity insertBrandEntity = new BrandEntity();
@@ -272,12 +313,24 @@ public class BrandServiceImpl implements BrandService {
                 insertBrandEntity.setUniqueIdentifier(uniqueIdentifier);
                 insertBrandEntity.setIsShow(isShow);
                 insertBrandEntity.setIsNew(isNew);
-                this.save(insertBrandEntity);
+                brandDao.save(insertBrandEntity);
 
             } else {
                 // 存在则修改
+
+                // 判断品牌唯一简码是否存在
+                if (StringUtils.isNotBlank(uniqueIdentifier)) {
+                    BrandEntity queryBrandEntity = brandDao.queryByUniqueIdentifier(uniqueIdentifier);
+                    if (Objects.nonNull(queryBrandEntity) && !queryBrandEntity.getName().equals(name)) {
+                        throw new ServiceException("第" + (i + 1) + "行的品牌唯一简码:【" + queryBrandEntity.getUniqueIdentifier() + "】已存在!");
+                    }
+                }
+
+                Integer id = isExist.getId();
                 BeanUtils.copyProperties(brandEntity, isExist);
-                this.update(isExist);
+                isExist.setId(id);
+                isExist.setUniqueIdentifier(uniqueIdentifier == null ? "" : uniqueIdentifier);
+                brandDao.update(isExist);
             }
         }
     }

+ 10 - 8
kmall-admin/src/main/java/com/kmall/admin/service/impl/CategoryServiceImpl.java

@@ -58,7 +58,7 @@ public class CategoryServiceImpl implements CategoryService {
 
     @Override
     public int save(CategoryEntity category) {
-        if (Dict.Level.item_L1.getItem().equals(category.getLevel())) {
+        if (Dict.Level.item_L1.getItem().equalsIgnoreCase(category.getLevel())) {
             category.setParentId(0);
         } else {
             if (category.getParentId() == null) {
@@ -66,7 +66,7 @@ public class CategoryServiceImpl implements CategoryService {
             }
         }
 
-        Map<String, Object> valideDate = MapBeanUtil.fromObject(category);
+        // Map<String, Object> valideDate = MapBeanUtil.fromObject(category);
 //        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
 //        builder.put("merchSn", "商户");
 //        if("2".equals(category.getShare())){
@@ -76,9 +76,6 @@ public class CategoryServiceImpl implements CategoryService {
 //        if (Integer.valueOf(r.get("code").toString()) != 0) {
 //            throw new RRException(r.get("msg").toString());
 //        }
-        if(category.getLevel().equalsIgnoreCase("L1")){
-            category.setParentId(0);
-        }
 
         return categoryDao.save(category);
     }
@@ -94,8 +91,15 @@ public class CategoryServiceImpl implements CategoryService {
 //        if (Integer.valueOf(r.get("code").toString()) != 0) {
 //            throw new RRException(r.get("msg").toString());
 //        }
-        if(category.getLevel().equalsIgnoreCase("L1")){
+        if (category.getLevel().equalsIgnoreCase(Dict.Level.item_L1.getItem())){
             category.setParentId(0);
+        } else {
+            List<Integer> parentId = new ArrayList<>();
+            parentId.add(category.getId());
+            List<CategoryEntity> list = categoryDao.queryListByParentId(parentId);
+            if (list != null && list.size() > 0) {
+                throw new RRException("该L1分类存在子分类,不允许变更分类级别!");
+            }
         }
 
         return categoryDao.update(category);
@@ -327,8 +331,6 @@ public class CategoryServiceImpl implements CategoryService {
             String level = categoryDto.getLevel();
             // 父节点
             String parentName = categoryDto.getParentName();
-            // 类型
-            Integer type = categoryDto.getType();
 
             // 校验
             if (!ValidateUtils.validateSpecialAllowChinese(name)) {

+ 57 - 159
kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsServiceImpl.java

@@ -804,34 +804,29 @@ public class GoodsServiceImpl implements GoodsService {
                 builder.put("thirdPartyMerchCode", "第三方商户代码");
                 builder.put("goodsBizType", "货品业务类型");
                 builder.put("name", "商品名称");
+                builder.put("prodBarcode", "产品条码");
+                builder.put("sku", "sku");
                 builder.put("isOnSaleStr", "上架");
                 builder.put("goodsUnit", "商品单位");
-                builder.put("isHotStr", "热销");
-                builder.put("prodBarcode", "产品条码");
-//                builder.put("marketPrice", "市场价");
-//                builder.put("retailPrice", "零售价");
-                builder.put("supplierName", "供应商");
-                builder.put("goodsNumber", "商品总库存");
+                builder.put("isHotStr", "是否热销");
+                builder.put("goodsRate", "商品税率");
+                builder.put("brand", "产品品牌");
+                builder.put("uniqueIdentifier", "品牌唯一简码");
+                builder.put("unitName", "计量单位");
+                builder.put("oriCntName", "原产国");
+                builder.put("valueAddedTaxRate", "增值税率");
+                builder.put("goodsNumber", "库存数");
+                builder.put("firstLevel", "一级分类");
+                builder.put("secondLevel", "二级分类");
+                builder.put("warehouseSn", "仓库编码");
+                builder.put("consignorSn", "货主编码");
+                builder.put("warehousSysGoodId", "仓储系统商品ID");
+                builder.put("inventoryType", "库存类型");
+                builder.put("legalUnit1Qty", "第一法定单位数量");
+                builder.put("legalUnit2Qty", "第二法定单位数量");
                 R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
                 if (Integer.valueOf(r.get("code").toString()) != 0) {
                     throw new RRException(r.get("msg").toString());
-                } else {
-                    if (!Dict.orderBizType.item_11.getItem().equals(goodsDto.getGoodsBizType())) {
-                        // 海关信息,普通货物可不添加
-                        builder.put("goodsRate", "商品税率");
-                        builder.put("sku", "SKU");
-//                        builder.put("brand", "产品品牌");
-                        builder.put("unitName", "计量单位");
-                        builder.put("oriCntName", "原产国");
-                        //builder.put("cusGoodsCode", "海关商品编码");
-                        //builder.put("ciqProdModel", "国检规格型号");
-                        //builder.put("cusDeclEle", "海关申报要素");
-                        //builder.put("cusRecCode", "海关备案编号");
-                    }
-                    r = ValidatorUtil.isEmpty(builder.build(), valideDate);
-                    if (Integer.valueOf(r.get("code").toString()) != 0) {
-                        throw new RRException(r.get("msg").toString());
-                    }
                 }
                 //业务类型校验
                 if(!Dict.orderBizType.item_11.getItem().equalsIgnoreCase(goodsDto.getGoodsBizType())){
@@ -850,19 +845,19 @@ public class GoodsServiceImpl implements GoodsService {
                     if(!user.getRoleType().equalsIgnoreCase(Dict.roleType.item_1.getItem())) {
                         if (!merchSn.equalsIgnoreCase(thirdMerchantBizEntity.getMerchSn())) {
                             isFail = true;
-                            failMerchUserGoodsSnList.add(goodsDto.getGoodsSn());
+                            failMerchUserGoodsSnList.add(goodsDto.getGoodsSn().trim());
                         }
                     }
                 }else{//商户不存在
                     isFail = true;
-                    failMerchGoodsSnList.add(goodsDto.getGoodsSn());
+                    failMerchGoodsSnList.add(goodsDto.getGoodsSn().trim());
                 }
 
                 //校验商品信息是否已存在
                 Map<String, Object> map = new HashMap<>();
                 map.put("isSame", "true");
-                map.put("sku", goodsDto.getSku());
-                map.put("goodsSn", goodsDto.getGoodsSn());
+                map.put("sku", goodsDto.getSku().trim());
+                map.put("goodsSn", goodsDto.getGoodsSn().trim());
                 map.put("goodsBizType", goodsDto.getGoodsBizType());
                 List<GoodsEntity> list = querySame(map);
                 if (list != null && list.size() != 0) {
@@ -895,10 +890,10 @@ public class GoodsServiceImpl implements GoodsService {
                         goodsEntity.setSupplierId(supplierEntity.getId());
                     }
                 }
-                //商品配置校验
-                /*
-                 先在redis在查询该品牌是否存在,如果存在获取品牌id,如果不存在,先新增该品牌,在将品牌存入到redis中,在获取品牌id
-                 */
+                 GoodsEntity goodsNew = goodsDao.queryObjectBySnNew(goodsDto.getGoodsSn());
+                 if(goodsNew!=null){
+                     throw new RRException("该商品数据已存在,请勿重复导入:"+goodsNew.getGoodsSn());
+                 }
                 // 获取品牌唯一简码
                 checkBrand(goodsDto, goodsEntity);
                 // 获取二级分类id
@@ -908,7 +903,7 @@ public class GoodsServiceImpl implements GoodsService {
                     SysCusUnitCodeEntity sysCusUnitCodeEntity = sysCusUnitCodeDao.queryObjectByName(goodsDto.getUnitName());
                     if (sysCusUnitCodeEntity == null) {
                         isFail = true;
-                        failUnitGoodsSnList.add(goodsDto.getGoodsSn());
+                        failUnitGoodsSnList.add(goodsDto.getGoodsSn().trim());
                     } else {
                         goodsEntity.setUnitCode(sysCusUnitCodeEntity.getCode());
                     }
@@ -916,7 +911,7 @@ public class GoodsServiceImpl implements GoodsService {
                     SysCusNationCodeEntity sysCusNationCodeEntity = sysCusNationCodeDao.queryObjectByName(goodsDto.getOriCntName());
                     if (sysCusNationCodeEntity == null) {
                         isFail = true;
-                        failNationGoodsSnList.add(goodsDto.getGoodsSn());
+                        failNationGoodsSnList.add(goodsDto.getGoodsSn().trim());
                     } else {
                         goodsEntity.setOriCntCode(sysCusNationCodeEntity.getCode());
                     }
@@ -932,8 +927,8 @@ public class GoodsServiceImpl implements GoodsService {
 
                 goodsEntity.setIsOnSale(Integer.parseInt(goodsDto.getIsOnSaleStr()));
                 goodsEntity.setIsHot(Integer.parseInt(goodsDto.getIsHotStr()));
-                goodsEntity.setGoodsSn(goodsDto.getGoodsSn());
-                goodsEntity.setSku(goodsDto.getSku());
+                goodsEntity.setGoodsSn(goodsDto.getGoodsSn().trim());
+                goodsEntity.setSku(goodsDto.getSku().trim());
                 goodsEntity.setName(goodsDto.getName());
                 goodsEntity.setGoodsUnit(goodsDto.getGoodsUnit());
                 goodsEntity.setGoodsBizType(goodsDto.getGoodsBizType());
@@ -957,14 +952,16 @@ public class GoodsServiceImpl implements GoodsService {
                 goodsEntity.setConsignorSn(goodsDto.getConsignorSn());
                 goodsEntity.setInventoryType(goodsDto.getInventoryType());
                 goodsEntity.setDefectiveProductsGrade(goodsDto.getDefectiveProductsGrade());
-                goodsEntity.setNetWeight(new BigDecimal(goodsDto.getNetWeight()));
+                //goodsEntity.setNetWeight(new BigDecimal(goodsDto.getNetWeight()));
                 goodsEntity.setLegalUnit1Qty(new BigDecimal(goodsDto.getLegalUnit1Qty()));
                 goodsEntity.setLegalUnit2Qty(new BigDecimal(goodsDto.getLegalUnit2Qty()));
-                goodsEntity.setImpConsumTaxRate(new BigDecimal(goodsDto.getImpConsumTaxRate()));
+                if(null!=goodsDto.getImpConsumTaxRate()){
+                 goodsEntity.setImpConsumTaxRate(new BigDecimal(goodsDto.getImpConsumTaxRate()));
+                }
                 goodsEntity.setValueAddedTaxRate(new BigDecimal(goodsDto.getValueAddedTaxRate()));
 
                 if(!isFail){
-                    GoodsEntity goods = goodsDao.queryObjectBySn(goodsDto.getGoodsSn());
+                    GoodsEntity goods = goodsDao.queryObjectBySnNew(goodsDto.getGoodsSn());
                     MngChangeEntity mngChangeEntity = new MngChangeEntity();
                     mngChangeEntity.setThirdPartyMerchCode(goodsEntity.getThirdPartyMerchCode());
                     mngChangeEntity.setChangeReason("更新商户商品总库存");
@@ -978,7 +975,7 @@ public class GoodsServiceImpl implements GoodsService {
                     //新增、修改商品表
                     if(goods!=null) {// 修改商品
                         mngChangeEntity.setOriginalNum(goods.getGoodsNumber());//原库存数
-                        mngChangeEntity.setValidNum(goods.getGoodsNumber() + Integer.parseInt(goodsDto.getGoodsNumber()));//可用数
+                        mngChangeEntity.setValidNum(Integer.parseInt(goodsDto.getGoodsNumber()));//可用数
                         mngChangeEntity.setChangeNum(Integer.parseInt(goodsDto.getGoodsNumber()));//变化数
                         mngChangeEntity.setChangeType(Dict.changeType.item_3.getItem());
                         mngChangeEntity.setGoodsId(goods.getId().intValue());
@@ -1017,7 +1014,7 @@ public class GoodsServiceImpl implements GoodsService {
 
                             // TODO 这里改成批量插入 GoodsSpecificationEntity
                             goodsSpecificationDao.save(goodsSpecification);
-                        }
+                        }else{
                             //                           {
 //                            goodsSpecification.setValue(goodsDto.getCiqProdModel());
                             goodsSpecification.setId(specificationEntity.getId());
@@ -1025,6 +1022,8 @@ public class GoodsServiceImpl implements GoodsService {
 //                            // TODO 这里改成批量更新 GoodsSpecificationEntity
 //                            updateSpecificationList.add(goodsSpecification);
 //                        }
+                        }
+
                         if(product == null){
                             product = new ProductEntity();
                             product.setGoodsSn(goodsDto.getGoodsSn());
@@ -1077,9 +1076,6 @@ public class GoodsServiceImpl implements GoodsService {
                         goodsSpecificationDao.updateBatch(goodsSpecificationEntities);
                     }
                 }
-//                else{
-//                    goodsSpecificationDao.updateBatch(updateSpecificationList);
-//                }
             }
 
 
@@ -1135,103 +1131,26 @@ public class GoodsServiceImpl implements GoodsService {
     }
 
     private void checkCategory(GoodsDto goodsDto, GoodsEntity goodsEntity) {
-        String secondLevel = goodsDto.getSecondLevel(); // 二级分类名称
-        Map<String, String> categoryCache = JedisUtil.getMap(secondLevel);
-        if(categoryCache != null){
-            String categoryId = categoryCache.get("categoryId");
-            String level = categoryCache.get("level");
+        // 二级分类名称
+        String secondLevel = goodsDto.getSecondLevel().trim();
+        String firstLevelName = goodsDto.getFirstLevel().trim();
+        CategoryEntity categoryNew = categoryDao.queryByName(secondLevel);
+        if(categoryNew != null){
+            String categoryId = categoryNew.getId().toString();
+            String level = categoryNew.getLevel();
             if(categoryId == null){
-                CategoryEntity category = categoryDao.queryByName(secondLevel);
-                if (category == null) {
-
-                    // 将该id存入带缓存中
-                    Map<String,String> categoryCacheData = new HashMap<>();
-                    categoryCacheData.put("level",Dict.Level.item_L2.getItem());
-
-                    // 查询数据库中是否有一级分类
-                    String firstLevel = goodsDto.getFirstLevel();
-                    CategoryEntity firstCategory = categoryDao.queryByName(firstLevel);
-                    // if(firstCategory == null){
-                    //     // 一级分类不存在
-                    //     // 新增一级分类
-                    //     CategoryEntity firstCategoryEntity = initCategory(firstLevel, 0, Dict.Level.item_L1);
-                    //     categoryDao.save(firstCategoryEntity);
-                    //     // 新增二级分类
-                    //     CategoryEntity secondCategoryEntity = initCategory(secondLevel, firstCategoryEntity.getId(), Dict.Level.item_L2);
-                    //     categoryDao.save(secondCategoryEntity);
-                    //     categoryId = secondCategoryEntity.getId()+"";
-                    // }else{
-                    //     // 新增二级分类
-                    //     CategoryEntity saveCategoryEntity = initCategory(secondLevel, firstCategory.getId(), Dict.Level.item_L2);
-                    //     categoryDao.save(saveCategoryEntity);
-                    //     categoryId = saveCategoryEntity.getId()+"";
-                    //
-                    // }
-                    categoryCacheData.put("categoryId",categoryId);
-                    JedisUtil.setMap(secondLevel,categoryCacheData,0);
-                    goodsEntity.setCategoryId(Integer.parseInt(categoryId));
-
-                }else if(category != null && Dict.Level.item_L2.getItem().equals(category.getLevel())){
-                    // 缓存中没有,数据库中有,直接存入数据库中查询到的数据
-                    goodsEntity.setCategoryId(category.getId());
-                    // 将该id存入带缓存中
-                    Map<String,String> categoryCacheData = new HashMap<>();
-                    categoryCacheData.put("level",Dict.Level.item_L2.getItem());
-                    categoryCacheData.put("categoryId",category.getId()+"");
-                    JedisUtil.setMap(secondLevel,categoryCacheData,0);
-
-                }else{
-                    throw new RuntimeException("该分类不是二级分类,请检查,对应sku是:"+ goodsDto.getSku()+",分类名称为:"+ goodsDto.getSecondLevel());
-                }
+                   throw new RuntimeException("该分类不是二级分类,请检查,对应sku是:"+ goodsDto.getSku()+",分类名称为:"+ goodsDto.getSecondLevel());
             }else if(Dict.Level.item_L2.getItem().equals(level)){
+                CategoryEntity firstCategory = categoryDao.queryByName(firstLevelName);
+                if(firstCategory==null) {
+                    throw new RuntimeException("该分类不是一级分类,请检查,对应sku是:" + goodsDto.getSku() + ",分类名称为:" + firstLevelName);
+                }
+                goodsEntity.setAttributeCategory(firstCategory.getId());
                 // 二级分类id在缓存中有,直接存入商品
                 goodsEntity.setCategoryId(Integer.parseInt(categoryId));
-            }else {
-                throw new RuntimeException("该分类不是二级分类,请检查,对应sku是:"+ goodsDto.getSku()+",分类名称为:"+ goodsDto.getSecondLevel());
             }
         }else {
-            String categoryId = "";
-            CategoryEntity category = categoryDao.queryByName(secondLevel);
-            if (category == null) {
-                // 将该id存入带缓存中
-                Map<String,String> categoryCacheData = new HashMap<>();
-                categoryCacheData.put("level",Dict.Level.item_L2.getItem());
-
-                // 查询数据库中是否有一级分类
-                String firstLevel = goodsDto.getFirstLevel();
-                CategoryEntity firstCategory = categoryDao.queryByName(firstLevel);
-                // if(firstCategory == null){
-                //     // 一级分类不存在
-                //     // 新增一级分类
-                //     CategoryEntity firstCategoryEntity = initCategory(firstLevel, 0, Dict.Level.item_L1);
-                //     categoryDao.save(firstCategoryEntity);
-                //     // 新增二级分类
-                //     CategoryEntity secondCategoryEntity = initCategory(secondLevel, firstCategoryEntity.getId(), Dict.Level.item_L2);
-                //     categoryDao.save(secondCategoryEntity);
-                //     categoryId = secondCategoryEntity.getId()+"";
-                // }else{
-                //     // 新增二级分类
-                //     CategoryEntity saveCategoryEntity = initCategory(secondLevel, firstCategory.getId(), Dict.Level.item_L2);
-                //     categoryDao.save(saveCategoryEntity);
-                //     categoryId = saveCategoryEntity.getId()+"";
-                //
-                // }
-                categoryCacheData.put("categoryId",categoryId);
-                JedisUtil.setMap(secondLevel,categoryCacheData,0);
-                goodsEntity.setCategoryId(Integer.parseInt(categoryId));
-
-            }else if(category != null && Dict.Level.item_L2.getItem().equals(category.getLevel())){
-                // 缓存中没有,数据库中有,直接存入数据库中查询到的数据
-                goodsEntity.setCategoryId(category.getId());
-                // 将该id存入带缓存中
-                Map<String,String> categoryCacheData = new HashMap<>();
-                categoryCacheData.put("level",Dict.Level.item_L2.getItem());
-                categoryCacheData.put("categoryId",category.getId()+"");
-                JedisUtil.setMap(secondLevel,categoryCacheData,0);
-
-            }else{
                 throw new RuntimeException("该分类不是二级分类,请检查,对应sku是:"+ goodsDto.getSku()+",分类名称为:"+ goodsDto.getSecondLevel());
-            }
         }
     }
 
@@ -1244,18 +1163,9 @@ public class GoodsServiceImpl implements GoodsService {
             if (brandId == null) {
                 Map<String, String> brandCacheData = new HashMap<>();
                 // 数据库里面查询
-                BrandEntity queryBrand = brandService.queryByUniqueIdentifier(uniqueIdentifier);
+                BrandEntity queryBrand = brandService.queryByUniqueIdentifier(uniqueIdentifier.trim());
                 if (queryBrand == null) {
-                    BrandEntity brandEntity = new BrandEntity();
-                    brandEntity.setName(brandName);
-                    brandEntity.setUniqueIdentifier(uniqueIdentifier);
-                    brandEntity.setSimpleDesc(brandName);
-                    brandEntity.setIsShow(1);
-                    brandEntity.setIsNew(0);
-                    brandService.save(brandEntity);
-                    brandCacheData.put("brandId", brandEntity.getId() + "");
-                    brandCacheData.put("brandName", brandName);
-                    goodsEntity.setBrandId(brandEntity.getId());
+                    throw new RuntimeException("该品牌不存在,请检查品牌唯一标识符是否正确:"+uniqueIdentifier);
                 } else {
                     brandCacheData.put("brandId", queryBrand.getId() + "");
                     brandCacheData.put("brandName", queryBrand.getName());
@@ -1268,18 +1178,9 @@ public class GoodsServiceImpl implements GoodsService {
         }else{
             Map<String, String> brandCacheData = new HashMap<>();
             // 数据库里面查询
-            BrandEntity queryBrand = brandService.queryByUniqueIdentifier(uniqueIdentifier);
+            BrandEntity queryBrand = brandService.queryByUniqueIdentifier(uniqueIdentifier.trim());
             if (queryBrand == null) {
-                BrandEntity brandEntity = new BrandEntity();
-                brandEntity.setName(brandName);
-                brandEntity.setUniqueIdentifier(uniqueIdentifier);
-                brandEntity.setSimpleDesc(brandName);
-                brandEntity.setIsShow(1);
-                brandEntity.setIsNew(0);
-                brandService.save(brandEntity);
-                brandCacheData.put("brandId", brandEntity.getId() + "");
-                brandCacheData.put("brandName", brandName);
-                goodsEntity.setBrandId(brandEntity.getId());
+                throw new RuntimeException("该品牌不存在,请检查品牌唯一标识符是否正确:"+uniqueIdentifier);
             } else {
                 brandCacheData.put("brandId", queryBrand.getId() + "");
                 brandCacheData.put("brandName", queryBrand.getName());
@@ -1470,7 +1371,7 @@ public class GoodsServiceImpl implements GoodsService {
                 goodsEntity.setGoodsNumber(Integer.parseInt(goodsDto.getGoodsNumber()));
 
                 if(!isFail){
-                    GoodsEntity goods = goodsDao.queryObjectBySn(goodsDto.getGoodsSn());
+                    GoodsEntity goods = goodsDao.queryObjectBySnNew(goodsDto.getGoodsSn());
 
                     MngChangeEntity mngChangeEntity = new MngChangeEntity();
                     mngChangeEntity.setThirdPartyMerchCode(goodsEntity.getThirdPartyMerchCode());
@@ -2102,9 +2003,6 @@ public class GoodsServiceImpl implements GoodsService {
         return 1;
     }*/
 
-    public GoodsEntity queryObjectBySn(String goodsSn) {
-        return goodsDao.queryObjectBySn(goodsSn);
-    }
 
     /**
      * 全量拉取

+ 4 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/MerchServiceImpl.java

@@ -49,6 +49,10 @@ public class MerchServiceImpl
 
     @Override
     public int update(MerchEntity merch) {
+        if (merch.getSortOrder() == null) {
+            merch.setSortOrder(0);
+        }
+
         MerchEntity tempMerch = merchDao.findByMerchSn(merch.getMerchSn());
         if(tempMerch != null && tempMerch.getId() != merch.getId()){
             throw new RRException("商户编号已经存在");

文件差異過大導致無法顯示
+ 338 - 175
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java


+ 93 - 185
kmall-admin/src/main/java/com/kmall/admin/service/impl/ProductStoreRelaServiceImpl.java

@@ -1,14 +1,11 @@
 package com.kmall.admin.service.impl;
 
-import com.alibaba.fastjson.JSON;
 import com.google.common.collect.ImmutableBiMap;
-import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.kmall.admin.dao.*;
 import com.kmall.admin.dao.mk.dist.MkDistSellAllocationDao;
 import com.kmall.admin.dto.StoreGoodsDto;
 import com.kmall.admin.entity.*;
-import com.kmall.admin.entity.kmall2eccs.KtoEccsEntity;
 import com.kmall.admin.entity.mk.dist.MkDistSellAllocationEntity;
 import com.kmall.admin.fromcomm.entity.SysUserEntity;
 import com.kmall.admin.service.BrandService;
@@ -207,8 +204,8 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
             // 修改产品
             if(product == null){
                 product = new ProductEntity();
-                product.setGoodsSn(goodsEntity.getGoodsSn());
-                product.setGoodsSpecificationNameValue(goodsSpecification.getValue());
+                product.setGoodsSn(goodsEntity.getGoodsSn().trim());
+                product.setGoodsSpecificationNameValue(goodsSpecification.getValue().trim());
                 product.setGoodsSpecificationIds(goodsSpecification.getId().toString());
                 product.setGoodsId(goodsEntity.getId());
                 product.setGoodsNumber(goodsEntity.getGoodsNumber());
@@ -216,7 +213,7 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
                 productDao.save(product);
             }else{
                 product.setGoodsSpecificationIds(goodsSpecification.getId().toString());
-                product.setGoodsSpecificationNameValue(goodsSpecification.getValue());
+                product.setGoodsSpecificationNameValue(goodsSpecification.getValue().trim());
                 productDao.update(product);
             }
         }
@@ -263,7 +260,7 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
         productStoreRela.setAttributeCategory(categoryDao.queryObject(productStoreRela.getCategoryId()).getParentId());
         productStoreRela.setProductId(product.getId());
         productStoreRela.setGoodsBizType(goodsEntity.getGoodsBizType());
-        productStoreRela.setSku(goodsEntity.getSku());
+        productStoreRela.setSku(goodsEntity.getSku().trim());
         productStoreRela.setCreaterSn(user.getUserId().toString());
         productStoreRela.setCreateTime(new Date());
         productStoreRela.setModerSn(user.getUserId().toString());
@@ -902,11 +899,30 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
 
             for (int i = 0; i < storeGoodsDtoList.size(); i++) {
                 StoreGoodsDto storeGoodsDto = storeGoodsDtoList.get(i);
+
+                Map<String, Object> valideDate = MapBeanUtil.fromObject(storeGoodsDto);
+                ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+                builder.put("storeName", "门店名称");
+                builder.put("goodsSn", "sku");
+                builder.put("stockNum", "库存");
+                builder.put("categoryName", "一级分类");
+                builder.put("attributeCategory", "二级分类");
+                builder.put("brandName", "品牌");
+                builder.put("uniqueIdentifier", "品牌唯一简码");
+                builder.put("retailPrice", "零售价(税后)");
+                builder.put("marketPrice", "市场价");
+                builder.put("bottomLinePrice", "底线价");
+                builder.put("exitRegionNumber", "出区数");
+                R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+                if (Integer.valueOf(r.get("code").toString()) != 0) {
+                    throw new RRException(r.get("msg").toString());
+                }
+
                 ProductStoreRelaEntity storeRelaEntity = new ProductStoreRelaEntity();
                 StoreEntity store = storeDao.queryObjectByName(storeGoodsDto.getStoreName().trim());
                 storeRelaEntity.setExitRegionNumber(storeGoodsDto.getExitRegionNumber());
                 storeRelaEntity.setStoreId(store.getId());
-                GoodsEntity goodsEntity = goodsDao.queryObjectBySn(storeGoodsDto.getGoodsSn());
+                GoodsEntity goodsEntity = goodsDao.queryObjectBySnNew(storeGoodsDto.getGoodsSn().trim());
                 if (goodsEntity != null) {
                     storeRelaEntity.setGoodsId(goodsEntity.getId());
                 }else{
@@ -914,130 +930,24 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
                 }
 
                 // 获取分类id
-                String firstLevelName = storeGoodsDto.getCategoryName();
-                String secondLevelName = storeGoodsDto.getAttributeCategory();
-                Map<String, String> categoryCache = JedisUtil.getMap(secondLevelName);
-                if(categoryCache != null){
-                    String categoryId = categoryCache.get("categoryId");
-                    String level = categoryCache.get("level");
-
-                    String firstLevelCategoryId = "";
-                    String secondLevelCategoryId = "";
-
+                String firstLevelName = storeGoodsDto.getCategoryName().trim();
+                String secondLevelName = storeGoodsDto.getAttributeCategory().trim();
+                CategoryEntity categoryNew = categoryDao.queryByName(secondLevelName);
+                if(categoryNew != null){
+                    String categoryId = categoryNew.getId().toString();
+                    String level = categoryNew.getLevel();
                     if(categoryId == null){
-                        CategoryEntity category = categoryDao.queryByName(secondLevelName);
-                        if (category == null) {
-
-                            // 查询数据库中是否有一级分类
-                            CategoryEntity firstCategory = categoryDao.queryByName(firstLevelName);
-                            if(firstCategory == null){
-                                // 一级分类不存在
-                                // 新增一级分类
-                                CategoryEntity firstCategoryEntity = initCategory(firstLevelName, 0, Dict.Level.item_L1);
-                                categoryDao.save(firstCategoryEntity);
-                                // 新增二级分类
-                                CategoryEntity secondCategoryEntity = initCategory(secondLevelName, firstCategoryEntity.getId(), Dict.Level.item_L2);
-                                categoryDao.save(secondCategoryEntity);
-                                categoryId = secondCategoryEntity.getId()+"";
-
-                                firstLevelCategoryId = firstCategoryEntity.getId() + "";
-                                secondLevelCategoryId = secondCategoryEntity.getId()+"";
-                            }else{
-                                // 新增二级分类
-                                CategoryEntity saveCategoryEntity = initCategory(secondLevelName, firstCategory.getId(), Dict.Level.item_L2);
-                                categoryDao.save(saveCategoryEntity);
-                                firstLevelCategoryId = firstCategory.getId() + "";
-                                secondLevelCategoryId = saveCategoryEntity.getId()+"";
-
-                            }
-                            // 存储一级分类
-                            set2Redis(firstLevelName, firstLevelCategoryId, Dict.Level.item_L1);
-                            // 存储二级分类
-                            set2Redis(secondLevelName, secondLevelCategoryId, Dict.Level.item_L2);
-
-                            // 设置一级、二级分类id
-
-                            storeRelaEntity.setAttributeCategory(Integer.parseInt(firstLevelCategoryId));
-                            storeRelaEntity.setCategoryId(Integer.parseInt(secondLevelCategoryId));
-
-                        }else if(category != null && Dict.Level.item_L2.getItem().equals(category.getLevel())){
-                            // 缓存中没有,数据库中有,直接存入数据库中查询到的数据
-                            storeRelaEntity.setCategoryId(category.getId());
-                            // 将该id存入带缓存中
-                            CategoryEntity firstCategory = categoryDao.queryByName(firstLevelName);
-                            // 存储一级分类
-                            set2Redis(firstLevelName, firstCategory.getId()+"", Dict.Level.item_L1);
-                            // 存储二级分类
-                            set2Redis(secondLevelName, category.getId() + "", Dict.Level.item_L2);
-
-                            // 设置一级、二级分类id
-                            storeRelaEntity.setAttributeCategory(firstCategory.getId());
-                            storeRelaEntity.setCategoryId(category.getId());
-
-                        }else{
-                            throw new RuntimeException("该分类不是二级分类,请检查,对应sku是:"+ storeGoodsDto.getGoodsSn()+",分类名称为:"+ storeGoodsDto.getAttributeCategory());
-                        }
+                        throw new RuntimeException("该分类不是二级分类,请检查,对应条码是:"+ storeGoodsDto.getGoodsSn()+",分类名称为:"+ storeGoodsDto.getAttributeCategory());
                     }else if(Dict.Level.item_L2.getItem().equals(level)){
-                        // 二级分类id在缓存中有,直接存入商品
-                        Map<String, String> firstCategoryCache = JedisUtil.getMap(firstLevelName);
-                        storeRelaEntity.setAttributeCategory(Integer.parseInt(firstCategoryCache.get("categoryId")));
-                        storeRelaEntity.setCategoryId(Integer.parseInt(categoryId));
-                    }else {
-                        throw new RuntimeException("该分类不是二级分类,请检查,对应sku是:"+ storeGoodsDto.getGoodsSn()+",分类名称为:"+ storeGoodsDto.getAttributeCategory());
-                    }
-                }else {
-                    String firstLevelCategoryId = "";
-                    String secondLevelCategoryId = "";
-                    CategoryEntity category = categoryDao.queryByName(secondLevelName);
-                    if (category == null) {
-
-
-                        // 查询数据库中是否有一级分类
                         CategoryEntity firstCategory = categoryDao.queryByName(firstLevelName);
-                        if(firstCategory == null){
-                            // 一级分类不存在
-                            // 新增一级分类
-                            CategoryEntity firstCategoryEntity = initCategory(firstLevelName, 0, Dict.Level.item_L1);
-                            categoryDao.save(firstCategoryEntity);
-                            // 新增二级分类
-                            CategoryEntity secondCategoryEntity = initCategory(secondLevelName, firstCategoryEntity.getId(), Dict.Level.item_L2);
-                            categoryDao.save(secondCategoryEntity);
-                            firstLevelCategoryId = firstCategoryEntity.getId() + "";
-                            secondLevelCategoryId = secondCategoryEntity.getId()+"";
-                        }else{
-                            // 新增二级分类
-                            CategoryEntity saveCategoryEntity = initCategory(secondLevelName, firstCategory.getId(), Dict.Level.item_L2);
-                            categoryDao.save(saveCategoryEntity);
-                            firstLevelCategoryId = firstCategory.getId() + "";
-                            secondLevelCategoryId = saveCategoryEntity.getId()+"";
-
+                        if(firstCategory==null) {
+                            throw new RuntimeException("该分类不是一级分类,请检查,对应条码是:" + storeGoodsDto.getGoodsSn() + ",分类名称为:" + firstLevelName);
                         }
-                        // 存储一级分类
-                        set2Redis(firstLevelName, firstLevelCategoryId, Dict.Level.item_L1);
-                        // 存储二级分类
-                        set2Redis(secondLevelName, secondLevelCategoryId, Dict.Level.item_L2);
-
-                        // 设置一级、二级分类id
-                        storeRelaEntity.setAttributeCategory(Integer.parseInt(firstLevelCategoryId));
-                        storeRelaEntity.setCategoryId(Integer.parseInt(secondLevelCategoryId));
-
-                    }else if(category != null && Dict.Level.item_L2.getItem().equals(category.getLevel())){
-                        // 缓存中没有,数据库中有,直接存入数据库中查询到的数据
-                        // 将该id存入带缓存中
-                        CategoryEntity firstCategory = categoryDao.queryByName(firstLevelName);
-                        // 存储一级分类
-                        set2Redis(firstLevelName, firstCategory.getId()+"", Dict.Level.item_L1);
-                        // 存储二级分类
-                        set2Redis(secondLevelName, category.getId() + "", Dict.Level.item_L2);
-
-                        // 设置一级、二级分类id
                         storeRelaEntity.setAttributeCategory(firstCategory.getId());
-                        storeRelaEntity.setCategoryId(category.getId());
-
-
-                    }else{
-                        throw new RuntimeException("该分类不是二级分类,请检查,对应sku是:"+ storeGoodsDto.getGoodsSn()+",分类名称为:"+ storeGoodsDto.getAttributeCategory());
+                        storeRelaEntity.setCategoryId(Integer.parseInt(categoryId));
                     }
+                }else {
+                        throw new RuntimeException("该分类不是二级分类,请检查,对应条码是:"+ storeGoodsDto.getGoodsSn()+",分类名称为:"+ storeGoodsDto.getAttributeCategory());
                 }
 
                 checkBrand(storeGoodsDto, storeRelaEntity);
@@ -1045,13 +955,16 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
                 storeRelaEntity.setRetailPrice(new BigDecimal(storeGoodsDto.getRetailPrice()));
                 storeRelaEntity.setBottomLinePrice(storeGoodsDto.getBottomLinePrice());
                 storeRelaEntity.setStockNum(Integer.valueOf(storeGoodsDto.getStockNum()));
-
+//                String strCheck = productStoreRelaDao.queryproductStoreByName(storeRelaEntity.getSku(),storeRelaEntity.getStoreId());
+//                if(strCheck!=null&&!"".equals(strCheck)){
+//                    throw new RuntimeException("该商品在当前账号所属门店已存在,请勿重复导入!"+storeRelaEntity.getGoodsSn());
+//                }
                 ProductStoreRelaEntity productStoreRelaEntity = productStoreRelaDao.queryByGoodsIdAndStoreId(storeRelaEntity.getStoreId(), storeRelaEntity.getGoodsId());
                 if (Objects.isNull(productStoreRelaEntity)) {
                     ((ProductStoreRelaService) AopContext.currentProxy()).save(storeRelaEntity);
                 }else{
                     storeRelaEntity.setId(productStoreRelaEntity.getId());
-                    storeRelaEntity.setStockNum(productStoreRelaEntity.getStockNum()+Integer.valueOf(storeGoodsDto.getStockNum()));
+                    storeRelaEntity.setStockNum(productStoreRelaEntity.getStockNum());
                     ((ProductStoreRelaService) AopContext.currentProxy()).update(storeRelaEntity);
                 }
 
@@ -1091,18 +1004,9 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
             if (brandId == null) {
                 Map<String, String> brandCacheData = new HashMap<>();
                 // 数据库里面查询
-                BrandEntity queryBrand = brandService.queryByUniqueIdentifier(uniqueIdentifier);
+                BrandEntity queryBrand = brandService.queryByUniqueIdentifier(uniqueIdentifier.trim());
                 if (queryBrand == null) {
-                    BrandEntity brandEntity = new BrandEntity();
-                    brandEntity.setName(brandName);
-                    brandEntity.setUniqueIdentifier(uniqueIdentifier);
-                    brandEntity.setSimpleDesc(brandName);
-                    brandEntity.setIsShow(1);
-                    brandEntity.setIsNew(0);
-                    brandService.save(brandEntity);
-                    brandCacheData.put("brandId", brandEntity.getId() + "");
-                    brandCacheData.put("brandName", brandName);
-                    storeRelaEntity.setBrandId(brandEntity.getId());
+                    throw new RuntimeException("该品牌不存在,请检查品牌唯一标识符是否正确:"+uniqueIdentifier);
                 } else {
                     brandCacheData.put("brandId", queryBrand.getId() + "");
                     brandCacheData.put("brandName", queryBrand.getName());
@@ -1115,18 +1019,9 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
         }else{
             Map<String, String> brandCacheData = new HashMap<>();
             // 数据库里面查询
-            BrandEntity queryBrand = brandService.queryByUniqueIdentifier(uniqueIdentifier);
+            BrandEntity queryBrand = brandService.queryByUniqueIdentifier(uniqueIdentifier.trim());
             if (queryBrand == null) {
-                BrandEntity brandEntity = new BrandEntity();
-                brandEntity.setName(brandName);
-                brandEntity.setUniqueIdentifier(uniqueIdentifier);
-                brandEntity.setSimpleDesc(brandName);
-                brandEntity.setIsShow(1);
-                brandEntity.setIsNew(0);
-                brandService.save(brandEntity);
-                brandCacheData.put("brandId", brandEntity.getId() + "");
-                brandCacheData.put("brandName", brandName);
-                storeRelaEntity.setBrandId(brandEntity.getId());
+                throw new RuntimeException("该品牌不存在,请检查品牌唯一标识符是否正确:"+uniqueIdentifier);
             } else {
                 brandCacheData.put("brandId", queryBrand.getId() + "");
                 brandCacheData.put("brandName", queryBrand.getName());
@@ -1137,70 +1032,83 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
     }
 
     /**
-     * 这里调用当前bean的save()和update(),事务会失效
+     * 这里调用当前bean的save()和update(),事务会失效,【修改库存】
      */
     @Override
     @Transactional
     public int uploadExcelByCover(List<StoreGoodsDto> storeGoodsDtoList) {
         if (storeGoodsDtoList != null && storeGoodsDtoList.size() > 0) {
+
             for (int i = 0; i < storeGoodsDtoList.size(); i++) {
                 StoreGoodsDto storeGoodsDto = storeGoodsDtoList.get(i);
+
+                Map<String, Object> valideDate = MapBeanUtil.fromObject(storeGoodsDto);
+                ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+                builder.put("storeName", "门店名称");
+                builder.put("goodsSn", "sku");
+                builder.put("stockNum", "库存");
+                builder.put("categoryName", "一级分类");
+                builder.put("attributeCategory", "二级分类");
+                builder.put("brandName", "品牌");
+                builder.put("uniqueIdentifier", "品牌唯一简码");
+                builder.put("retailPrice", "零售价(税后)");
+                builder.put("marketPrice", "市场价");
+                builder.put("bottomLinePrice", "底线价");
+                builder.put("exitRegionNumber", "出区数");
+                R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+                if (Integer.valueOf(r.get("code").toString()) != 0) {
+                    throw new RRException(r.get("msg").toString());
+                }
+
                 ProductStoreRelaEntity storeRelaEntity = new ProductStoreRelaEntity();
                 StoreEntity store = storeDao.queryObjectByName(storeGoodsDto.getStoreName().trim());
-
+                storeRelaEntity.setExitRegionNumber(storeGoodsDto.getExitRegionNumber());
                 storeRelaEntity.setStoreId(store.getId());
-                GoodsEntity goodsEntity = goodsDao.queryObjectBySn(storeGoodsDto.getGoodsSn());
+                GoodsEntity goodsEntity = goodsDao.queryObjectBySnNew(storeGoodsDto.getGoodsSn());
                 if (goodsEntity != null) {
                     storeRelaEntity.setGoodsId(goodsEntity.getId());
                 }else{
                     throw new RRException("商品[" + storeGoodsDto.getGoodsSn() + "]未录入系统");
                 }
-                CategoryEntity parentCategoryEntity = categoryDao.queryObjectByName(storeGoodsDto.getCategoryName(), store.getMerchSn(),0);
-                CategoryEntity categoryEntity;//二级分类
-                if (parentCategoryEntity != null) {
-                    categoryEntity = categoryDao.queryObjectByName(storeGoodsDto.getAttributeCategory(), store.getMerchSn(),parentCategoryEntity.getId());
-                    if (categoryEntity == null) {
-                        categoryEntity = initSaveCategoryEntity(storeGoodsDto.getAttributeCategory(), store.getMerchSn(), parentCategoryEntity.getId());
-                        categoryDao.save(categoryEntity);
-                        categoryEntity = categoryDao.queryObjectByName(storeGoodsDto.getAttributeCategory(), store.getMerchSn(),parentCategoryEntity.getId());
-                    }
-                }else{
-//                    throw new RRException("商品[" + storeGoodsDto.getGoodsSn() + "]的一级类别输入有误");
-                    // 如果没有一级分类就自动创建一二级分类
-                    parentCategoryEntity = initSaveCategoryEntity(storeGoodsDto.getCategoryName(), store.getMerchSn(),0);
-                    categoryDao.save(parentCategoryEntity);
-                    // 保存后再查出来
-                    parentCategoryEntity = categoryDao.queryObjectByName(storeGoodsDto.getCategoryName(), store.getMerchSn(),0);
-                    categoryEntity = initSaveCategoryEntity(storeGoodsDto.getAttributeCategory(),store.getMerchSn(),parentCategoryEntity.getId());
-                    categoryDao.save(categoryEntity);
-                    categoryEntity = categoryDao.queryObjectByName(storeGoodsDto.getAttributeCategory(), store.getMerchSn(),parentCategoryEntity.getId());
-                }
-
-                storeRelaEntity.setCategoryId(parentCategoryEntity.getId());
-                storeRelaEntity.setAttributeCategory(categoryEntity.getId());
 
-                BrandEntity brandEntity = brandDao.queryObjectByName(storeGoodsDto.getBrandName(), store.getMerchSn(),storeRelaEntity.getAttributeCategory());
-                if (brandEntity == null) {
-                    // throw new RRException("商品[" + storeGoodsDto.getGoodsSn() + "]的品牌输入有误");
-                    brandEntity = initSaveBrandEntity(storeGoodsDto.getBrandName(), store.getMerchSn(),storeRelaEntity.getAttributeCategory());
-                    brandDao.save(brandEntity);
-                    brandEntity = brandDao.queryObjectByName(storeGoodsDto.getBrandName(), store.getMerchSn(),storeRelaEntity.getAttributeCategory());
+                // 获取分类id
+                String firstLevelName = storeGoodsDto.getCategoryName().trim();
+                String secondLevelName = storeGoodsDto.getAttributeCategory().trim();
+                CategoryEntity categoryNew = categoryDao.queryByName(secondLevelName);
+                if(categoryNew != null){
+                    String categoryId = categoryNew.getId().toString();
+                    String level = categoryNew.getLevel();
+                    if(categoryId == null){
+                        throw new RuntimeException("该分类不是二级分类,请检查,对应条码是:"+ storeGoodsDto.getGoodsSn()+",分类名称为:"+ storeGoodsDto.getAttributeCategory());
+                    }else if(Dict.Level.item_L2.getItem().equals(level)){
+                        CategoryEntity firstCategory = categoryDao.queryByName(firstLevelName);
+                        if(firstCategory==null) {
+                            throw new RuntimeException("该分类不是一级分类,请检查,对应条码是:" + storeGoodsDto.getGoodsSn() + ",分类名称为:" + firstLevelName);
+                        }
+                        storeRelaEntity.setAttributeCategory(firstCategory.getId());
+                        storeRelaEntity.setCategoryId(Integer.parseInt(categoryId));
+                    }
+                }else {
+                    throw new RuntimeException("该分类不是二级分类,请检查,对应条码是:"+ storeGoodsDto.getGoodsSn()+",分类名称为:"+ storeGoodsDto.getAttributeCategory());
                 }
 
-                storeRelaEntity.setBrandId(brandEntity.getId());
+                checkBrand(storeGoodsDto, storeRelaEntity);
                 storeRelaEntity.setMarketPrice(new BigDecimal(storeGoodsDto.getMarketPrice()));
                 storeRelaEntity.setRetailPrice(new BigDecimal(storeGoodsDto.getRetailPrice()));
                 storeRelaEntity.setBottomLinePrice(storeGoodsDto.getBottomLinePrice());
                 storeRelaEntity.setStockNum(Integer.valueOf(storeGoodsDto.getStockNum()));
                 ProductStoreRelaEntity productStoreRelaEntity = productStoreRelaDao.queryByGoodsIdAndStoreId(storeRelaEntity.getStoreId(), storeRelaEntity.getGoodsId());
                 if (Objects.isNull(productStoreRelaEntity)) {
-                    save(storeRelaEntity);
+                    throw new RuntimeException("该商品不存在无法修改库存:"+ storeRelaEntity.getGoodsSn());
                 }else{
                     storeRelaEntity.setId(productStoreRelaEntity.getId());
                     storeRelaEntity.setStockNum(productStoreRelaEntity.getStockNum()+Integer.valueOf(storeGoodsDto.getStockNum()));
-                    update(storeRelaEntity);
+                    ((ProductStoreRelaService) AopContext.currentProxy()).update(storeRelaEntity);
                 }
+
             }
+
+
         }else{
             throw new RRException("导入数据为空,或者检查数据是否为空");
         }

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

@@ -50,6 +50,8 @@ public class SupplierServiceImpl implements SupplierService {
     public int save(SupplierEntity supplier) {
         if(StringUtils.isEmpty(supplier.getLevelMerchSn())){
             throw new RRException("一级商户编号不能为空");
+        } else if (StringUtils.isEmpty(supplier.getThirdPartyMerchCode())) {
+            throw new RRException("第三方商户不能为空");
         }else{
             MerchEntity merchEntity = merchDao.findByMerchSn(supplier.getLevelMerchSn());
             if(merchEntity != null){
@@ -68,8 +70,14 @@ public class SupplierServiceImpl implements SupplierService {
 
     @Override
     public int update(SupplierEntity supplier) {
+        if (supplier.getSortOrder() == null) {
+            supplier.setSortOrder(0);
+        }
+
         if(StringUtils.isEmpty(supplier.getLevelMerchSn())){
             throw new RRException("一级商户编号不能为空");
+        } else if (StringUtils.isEmpty(supplier.getThirdPartyMerchCode())) {
+            throw new RRException("第三方商户不能为空");
         }else{
             MerchEntity merchEntity = merchDao.findByMerchSn(supplier.getLevelMerchSn());
             if(merchEntity != null){

+ 16 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/haikong/HaiKongMemberOrderSyncResendServiceImpl.java

@@ -69,4 +69,20 @@ public class HaiKongMemberOrderSyncResendServiceImpl implements HaiKongMemberOrd
     public void updateResendStatusBatch(List<HaiKongMemberOrderSyncResendEntity> entities) {
         haiKongMemberOrderSyncResendDao.updateResendStatusBatch(entities);
     }
+
+    @Override
+    public List<HaiKongMemberOrderSyncResendEntity> queryList(Map<String, Object> map) {
+        return haiKongMemberOrderSyncResendDao.queryListNew(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return haiKongMemberOrderSyncResendDao.queryTotalNew(map);
+    }
+
+    @Override
+    public HaiKongMemberOrderSyncResendEntity queryObject(Integer id) {
+        return haiKongMemberOrderSyncResendDao.queryObject(id);
+    }
+
 }

+ 11 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/haikong/HaiKongMemberScoreChangeDetailRecordServiceImpl.java

@@ -8,6 +8,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author lhm
@@ -70,4 +71,14 @@ public class HaiKongMemberScoreChangeDetailRecordServiceImpl implements HaiKongM
         });
         return haiKongMemberScoreChangeDetailRecordDao.saveBatch(entities);
     }
+
+    @Override
+    public List<HaiKongMemberScoreChangeDetailRecordEntity> queryList(Map<String, Object> map) {
+        return haiKongMemberScoreChangeDetailRecordDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return haiKongMemberScoreChangeDetailRecordDao.queryTotal(map);
+    }
 }

+ 11 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/haikong/HaiKongMemberScoreChangeRecordServiceImpl.java

@@ -8,6 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 会员积分变动业务
@@ -77,4 +78,14 @@ public class HaiKongMemberScoreChangeRecordServiceImpl implements HaiKongMemberS
     public void updateResendStatusBatch(List<HaiKongMemberScoreChangeRecordEntity> entities) {
         haiKongMemberScoreChangeRecordDao.updateResendStatusBatch(entities);
     }
+
+    @Override
+    public List<HaiKongMemberScoreChangeRecordEntity> queryList(Map<String, Object> map) {
+        return haiKongMemberScoreChangeRecordDao.queryListNew(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return haiKongMemberScoreChangeRecordDao.queryTotalNew(map);
+    }
 }

+ 35 - 1
kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/MkActivitiesScoreServiceImpl.java

@@ -6,7 +6,9 @@ import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.dao.mk.MkActivitiesScoreDao;
 import com.kmall.admin.dto.ScoreReductionDTO;
 import com.kmall.admin.entity.mk.MkActivitiesScoreEntity;
+import com.kmall.admin.fromcomm.entity.SysUserEntity;
 import com.kmall.admin.service.mk.MkActivitiesScoreService;
+import com.kmall.admin.utils.ShiroUtils;
 import com.kmall.common.utils.*;
 import org.springframework.aop.framework.AopContext;
 import org.springframework.beans.BeanUtils;
@@ -17,6 +19,7 @@ import org.springframework.util.CollectionUtils;
 
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 
 /**
@@ -48,11 +51,25 @@ public class MkActivitiesScoreServiceImpl implements MkActivitiesScoreService {
 
     @Override
     public int save(MkActivitiesScoreEntity mkActivitiesScore) {
+
+        SysUserEntity user = ShiroUtils.getUserEntity();
+
+        mkActivitiesScore.setCreaterSn(user.getUserId() + "");
+        mkActivitiesScore.setCreateTime(new Date());
+        mkActivitiesScore.setModerSn(user.getUserId() + "");
+        mkActivitiesScore.setUpdateTime(mkActivitiesScore.getCreateTime());
+
         return mkActivitiesScoreDao.save(mkActivitiesScore);
     }
 
     @Override
     public int update(MkActivitiesScoreEntity mkActivitiesScore) {
+
+        SysUserEntity user = ShiroUtils.getUserEntity();
+
+        mkActivitiesScore.setModerSn(user.getUserId() + "");
+        mkActivitiesScore.setUpdateTime(new Date());
+
         return mkActivitiesScoreDao.update(mkActivitiesScore);
     }
 
@@ -80,6 +97,13 @@ public class MkActivitiesScoreServiceImpl implements MkActivitiesScoreService {
         if (!CollectionUtils.isEmpty(scoreReductionDTOList)) {
             List<MkActivitiesScoreEntity> mkActivitiesScoreEntities = new ArrayList<>();
 
+            Set<String> rejectSet = scoreReductionDTOList.stream().map(ScoreReductionDTO::getReject).collect(Collectors.toSet());
+            if (CollectionUtils.isEmpty(rejectSet)) {
+                throw new RRException("是否参与字段不能为空!");
+            }
+            if (rejectSet.size() > 1) {
+                throw new RRException("请检查是否参与字段,必须为参与或者不参与!不能既有参与又有不参与!");
+            }
             scoreReductionDTOList.forEach(scoreReductionDTO -> {
                 Map<String, Object> valideDate = MapBeanUtil.fromObject(scoreReductionDTO);
                 // 校验excel传入的数据
@@ -87,7 +111,6 @@ public class MkActivitiesScoreServiceImpl implements MkActivitiesScoreService {
                 builder.put("storeId", "门店编号");
                 builder.put("sku", "商品SKU");
                 builder.put("prodBarcode", "商品条码");
-                builder.put("scoreLimit", "抵扣比例");
                 builder.put("reject", "是否参与");
                 builder.put("deadlineStr", "截止日期");
 
@@ -159,4 +182,15 @@ public class MkActivitiesScoreServiceImpl implements MkActivitiesScoreService {
     public List<MkActivitiesScoreEntity> queryDetailByTime(Date date) {
         return mkActivitiesScoreDao.queryDetailByTime(date);
     }
+
+    /**
+     * 查询积分抵扣活动信息
+     *
+     * @param mkaIdList 活动id集合
+     * @return 活动
+     */
+    @Override
+    public List<MkActivitiesScoreEntity> queryActivityInfoByMkaIdList(List<Long> mkaIdList) {
+        return mkActivitiesScoreDao.queryActivityInfoByMkaIdList(mkaIdList);
+    }
 }

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

@@ -84,7 +84,7 @@ public class MkActivitiesServiceImpl implements MkActivitiesService {
 
         MkActivitiesAssociationEntity mkActivitiesAssociation = new MkActivitiesAssociationEntity();
         BeanUtils.copyProperties(mkActivities, mkActivitiesAssociation);
-        mkActivitiesAssociationDao.update(mkActivitiesAssociation);
+        mkActivitiesAssociationDao.updateByMkaId(mkActivitiesAssociation);
 
         return 1;
     }

+ 11 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/MkActivityFormServiceImpl.java

@@ -6,6 +6,7 @@ import com.kmall.admin.entity.mk.MkActivityFormEntity;
 import com.kmall.admin.fromcomm.entity.SysUserEntity;
 import com.kmall.admin.service.mk.MkActivityFormService;
 import com.kmall.admin.utils.ShiroUtils;
+import com.kmall.common.utils.RRException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -44,6 +45,11 @@ public class MkActivityFormServiceImpl implements MkActivityFormService {
     public int save(MkActivityFormEntity mkActivityForm) {
         SysUserEntity user = ShiroUtils.getUserEntity();
 
+        MkActivityFormEntity isExistEntity = mkActivityFormDao.queryObjectByMkCode(mkActivityForm.getMkCode());
+        if (isExistEntity != null) {
+            throw new RRException("活动代码已存在!");
+        }
+
         mkActivityForm.setCreaterSn(user.getUserId().toString());
         mkActivityForm.setCreateTime(new Date());
         return mkActivityFormDao.save(mkActivityForm);
@@ -51,6 +57,11 @@ public class MkActivityFormServiceImpl implements MkActivityFormService {
 
     @Override
     public int update(MkActivityFormEntity mkActivityForm) {
+        MkActivityFormEntity isExistEntity = mkActivityFormDao.queryObjectByMkCode(mkActivityForm.getMkCode());
+        if (isExistEntity != null && !isExistEntity.getMmId().equals(mkActivityForm.getMmId())) {
+            throw new RRException("活动代码已存在!");
+        }
+
         return mkActivityFormDao.update(mkActivityForm);
     }
 

+ 39 - 9
kmall-admin/src/main/java/com/kmall/admin/service/impl/vip/Mall2PointsRulesServiceImpl.java

@@ -1,12 +1,15 @@
 package com.kmall.admin.service.impl.vip;
 
+import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.dao.CategoryDao;
 import com.kmall.admin.dao.ProductStoreRelaDao;
 import com.kmall.admin.dao.StoreDao;
+import com.kmall.admin.dto.GoodsDto;
 import com.kmall.admin.dto.Mall2RulesDto;
+import com.kmall.admin.entity.GoodsEntity;
 import com.kmall.admin.entity.vip.Mall2DetilEntity;
 import com.kmall.admin.haikong.vo.PointsRulesAndDetailVO;
-import com.kmall.common.utils.Query;
+import com.kmall.common.utils.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -83,29 +86,32 @@ public class Mall2PointsRulesServiceImpl implements Mall2PointsRulesService {
     public void rulesUploadDetil(List<Mall2RulesDto> pointsRulesList, Long mkaId) {
         Integer pointsType = mall2PointsRulesDao.queryRulesDetilId(mkaId);
         if(pointsRulesList.size()>0){
-            pointsRulesList.forEach(mall2RulesDto -> {
+            for(Mall2RulesDto mall2RulesDto : pointsRulesList) {
+                //校验参数
+                checkMsg(pointsType,mall2RulesDto);
                 switch (pointsType) {
                     //门店
                     case 0:
-                        mall2RulesDto.setRulesId(storeDao.queryObjectRulesByName(mall2RulesDto.getPointsRulesName().trim())+"");
+                        mall2RulesDto.setRulesId(storeDao.queryObjectRulesByName(mall2RulesDto.getPointsRulesName().trim()) + "");
                         break;
                     //商品类别
                     case 1:
-                        mall2RulesDto.setRulesId(categoryDao.queryObjectCategoryByName(mall2RulesDto.getPointsRulesName().trim())+"");
+                        mall2RulesDto.setRulesId(categoryDao.queryObjectCategoryByName(mall2RulesDto.getPointsRulesName().trim()) + "");
                         break;
                     //商品
                     case 2:
                         //获取门店ID
                         Long id = storeDao.queryObjectRulesByName(mall2RulesDto.getStoreName().trim());
                         mall2RulesDto.setStoreId(id);
-                        mall2RulesDto.setRulesId(productStoreRelaDao.queryproductStoreByName(mall2RulesDto.getPointsRulesName().trim(),id));
+                        mall2RulesDto.setRulesId(productStoreRelaDao.queryproductStoreByName(mall2RulesDto.getPointsRulesName().trim(), id));
                         break;
                     default:
                         break;
                 }
                 mall2RulesDto.setMkaId(mkaId);
                 mall2RulesDto.setPointsRulesType(pointsType);
-            });
+
+            }
             if(pointsRulesList.size()>0){
                 mall2PointsRulesDao.saveMall2PointsRulesDetil(pointsRulesList);
             }
@@ -120,8 +126,8 @@ public class Mall2PointsRulesServiceImpl implements Mall2PointsRulesService {
      */
     @Override
     public List<Mall2RulesDto> queryDetilList(Query query) {
-        Long id = Long.parseLong(query.get("mkaId")+"");
-        List<Mall2RulesDto> mall2DetilEntities = mall2PointsRulesDao.querymall2PointsRulesDetil(id);
+        //Long id = Long.parseLong(query.get("mkaId")+"");
+        List<Mall2RulesDto> mall2DetilEntities = mall2PointsRulesDao.querymall2PointsRulesDetil(query);
         return mall2DetilEntities;
 
     }
@@ -150,7 +156,31 @@ public class Mall2PointsRulesServiceImpl implements Mall2PointsRulesService {
     @Override
     public int querymall2PointsRulesDetilTotal(Query query) {
         Long id = Long.parseLong(query.get("mkaId")+"");
-        Map<String,Object> map = new HashMap<>();
         return mall2PointsRulesDao.querymall2PointsRulesDetilTotal(id);
     }
+
+    /**
+     * 导入参数校验
+     * @param mall2RulesDto
+     */
+    private void checkMsg(Integer pointsType,Mall2RulesDto mall2RulesDto){
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(mall2RulesDto);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("rulesType", "积分规则类型");
+        if(pointsType==0){
+            builder.put("pointsRulesName", "门店");
+        }else if(pointsType==1){
+            builder.put("pointsRulesName", "商品分类");
+        }else if(pointsType==2){
+            builder.put("pointsRulesName", "商品");
+            builder.put("storeName", "对应的商品门店");
+        }else{
+            throw new RRException("导入异常,请检查导入数据是否正确");
+        }
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+
+    }
 }

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

@@ -103,4 +103,11 @@ public interface MkActivitiesScoreService {
      * @return      sku
      */
     List<MkActivitiesScoreEntity> queryDetailByTime(Date date);
+
+    /**
+     * 查询积分抵扣活动信息
+     * @param mkaIdList 活动id集合
+     * @return          活动
+     */
+    List<MkActivitiesScoreEntity> queryActivityInfoByMkaIdList(List<Long> mkaIdList);
 }

+ 1 - 0
kmall-admin/src/main/java/com/kmall/admin/service/vip/Mall2PointsRulesService.java

@@ -5,6 +5,7 @@ import com.kmall.admin.entity.vip.Mall2DetilEntity;
 import com.kmall.admin.entity.vip.Mall2PointsRulesEntity;
 import com.kmall.admin.haikong.vo.PointsRulesAndDetailVO;
 import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;

+ 2 - 0
kmall-admin/src/main/java/com/kmall/admin/task/TestTask.java

@@ -16,6 +16,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.HashMap;
@@ -56,4 +57,5 @@ public class TestTask {
     }
 
 
+
 }

+ 0 - 1
kmall-admin/src/main/resources/XmlTemplate/CategoryDtoList.xml

@@ -12,7 +12,6 @@
                 <mapping row="1" col="4">categoryDto.isShow</mapping>
                 <mapping row="1" col="5">categoryDto.level</mapping>
                 <mapping row="1" col="6">categoryDto.parentName</mapping>
-                <mapping row="1" col="7">categoryDto.type</mapping>
             </section>
             <loopbreakcondition>
                 <rowcheck offset="0">

+ 1 - 1
kmall-admin/src/main/resources/XmlTemplate/GoodsDtoList.xml

@@ -35,7 +35,7 @@
                 <mapping row="1" col="25">GoodsDto.warehousSysGoodId</mapping>
                 <mapping row="1" col="26">GoodsDto.inventoryType</mapping>
                 <mapping row="1" col="27">GoodsDto.defectiveProductsGrade</mapping>
-                <mapping row="1" col="28">GoodsDto.netWeight</mapping>
+<!--                <mapping row="1" col="28">GoodsDto.netWeight</mapping>-->
             </section>
             <loopbreakcondition>
                 <rowcheck offset="0">

+ 2 - 3
kmall-admin/src/main/resources/XmlTemplate/ScoreReductionDTOList.xml

@@ -8,9 +8,8 @@
                 <mapping row="1" col="0">ScoreReductionDTO.storeId</mapping>
                 <mapping row="1" col="1">ScoreReductionDTO.prodBarcode</mapping>
                 <mapping row="1" col="2">ScoreReductionDTO.sku</mapping>
-                <mapping row="1" col="3">ScoreReductionDTO.scoreLimit</mapping>
-                <mapping row="1" col="4">ScoreReductionDTO.reject</mapping>
-                <mapping row="1" col="5">ScoreReductionDTO.deadlineStr</mapping>
+                <mapping row="1" col="3">ScoreReductionDTO.reject</mapping>
+                <mapping row="1" col="4">ScoreReductionDTO.deadlineStr</mapping>
             </section>
             <loopbreakcondition>
                 <rowcheck offset="0">

+ 0 - 1
kmall-admin/src/main/resources/XmlTemplate/StoreGoodsDtoList.xml

@@ -12,7 +12,6 @@
                 <mapping row="1" col="4">StoreGoodsDto.attributeCategory</mapping>
                 <mapping row="1" col="5">StoreGoodsDto.brandName</mapping>
                 <mapping row="1" col="6">StoreGoodsDto.uniqueIdentifier</mapping>
-<!--                <mapping row="1" col="6">StoreGoodsDto.freightName</mapping>-->
                 <mapping row="1" col="7">StoreGoodsDto.retailPrice</mapping>
                 <mapping row="1" col="8">StoreGoodsDto.marketPrice</mapping>
                 <mapping row="1" col="9">StoreGoodsDto.bottomLinePrice</mapping>

+ 9 - 2
kmall-admin/src/main/resources/mybatis/mapper/CashierDao.xml

@@ -62,6 +62,9 @@
 		<if test="machineCode != null and machineCode.trim() != ''">
 			AND cashier.machine_code LIKE concat('%',#{machineCode},'%')
 		</if>
+		<if test="storeName != null and storeName.trim() != ''">
+			AND store.store_name LIKE concat('%',#{storeName},'%')
+		</if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
                 order by ${sidx} ${order}
@@ -76,10 +79,14 @@
 	</select>
 
  	<select id="queryTotal" resultType="int">
-		select count(*) from mall2_cashier
+		select count(*) from mall2_cashier cashier
+		left join mall_store store on cashier.shop_sn = store.id
 		WHERE 1=1
 		<if test="machineCode != null and machineCode.trim() != ''">
-			AND machine_code LIKE concat('%',#{machineCode},'%')
+			AND cashier.machine_code LIKE concat('%',#{machineCode},'%')
+		</if>
+		<if test="storeName != null and storeName.trim() != ''">
+			AND store.store_name LIKE concat('%',#{storeName},'%')
 		</if>
 	</select>
 

+ 33 - 19
kmall-admin/src/main/resources/mybatis/mapper/GoodsDao.xml

@@ -85,6 +85,7 @@
         <result column="prod_name" property="prodName" />
         <result column="prod_record_name" property="prodRecordName" />
         <result column="exit_region_number" property="exitRegionNumber"/>
+        <result column="net_weight" property="netWeight"/>
     </resultMap>
 
     <select id="queryObject" resultType="com.kmall.admin.entity.GoodsEntity">
@@ -152,7 +153,7 @@
         LEFT JOIN mall_store s ON s.id = psr1.store_id
         LEFT JOIN third_merchant_biz mb on s.third_party_merch_code = mb.third_party_merch_code
         LEFT JOIN third_merchant_biz mb2 ON a.third_party_merch_code = mb2.third_party_merch_code
-        where a.id = #{id} and psr1.store_id = #{storeId}
+        where a.is_delete=0 and a.id = #{id} and psr1.store_id = #{storeId}
     </select>
 
     <select id="queryGoodsByGoodsSnAndStoreId" resultMap="goodsMap">
@@ -206,7 +207,7 @@
         LEFT JOIN mall_store s ON s.id = psr1.store_id
         LEFT JOIN third_merchant_biz mb on s.third_party_merch_code = mb.third_party_merch_code
         LEFT JOIN third_merchant_biz mb2 ON a.third_party_merch_code = mb2.third_party_merch_code
-        where a.goods_sn = #{goodsSn} and psr1.store_id = #{storeId}
+        where a.is_delete=0 and a.goods_sn = #{goodsSn} and psr1.store_id = #{storeId}
     </select>
 
     <select id="queryObjectByProdBarcodeAndBizType" resultType="com.kmall.admin.entity.GoodsEntity">
@@ -217,7 +218,7 @@
             mall_goods a
         LEFT JOIN mall_product_store_rela r ON r.goods_id = a.id
         inner join mall_store s on r.store_id=s.id
-        where a.prod_barcode = #{prodBarcode} and a.goods_biz_type = 11 and r.store_id = #{storeId}
+        where a.is_delete=0 and a.prod_barcode = #{prodBarcode} and a.goods_biz_type = 11 and r.store_id = #{storeId}
     </select>
 
 
@@ -229,7 +230,7 @@
             mall_goods a
         LEFT JOIN mall_product_store_rela r ON r.goods_id = a.id
         inner join mall_store s on r.store_id=s.id
-        where a.prod_barcode = #{prodBarcode}  and r.store_id = #{storeId}
+        where a.is_delete=0 and a.prod_barcode = #{prodBarcode}  and r.store_id = #{storeId}
         and r.stock_num > 0
         limit 1
     </select>
@@ -253,18 +254,18 @@
 
     <select id="queryGoodsDetailsByProdBarcode" resultType="com.kmall.admin.dto.GoodsDetailsDto">
         SELECT distinct
-        a.goods_sn as GoodsSn, a.goods_sn as sku, m.retail_price as retailPrice,a.prod_barcode as prodBarcode,a.name,a.brand,a.goods_desc as goodsDesc,a.goods_unit as goodsUnit,a.goods_rate as goodsRate,a.primary_pic_url ,m.stock_num as stockNum,r.value as specification
+        a.goods_sn as GoodsSn, a.goods_sn as sku, m.retail_price as retailPrice,a.prod_barcode as prodBarcode,a.name,a.brand,a.goods_desc as goodsDesc,a.goods_unit as goodsUnit,a.goods_rate as goodsRate,a.primary_pic_url ,m.stock_num as stockNum,a.goods_unit as specification
         ,a.hs_code as hsCode , a.legal_unit1_qty as legalUnit1Qty , a.legal_unit2_qty as legalUnit2Qty,a.ciq_prod_model as ciqProdModel,a.to_be_restored, m.exit_region_number as exitRegionNumber,
         a.warehouse_sn as warehouseSn, a.consignor_sn as consignorSn, a.warehous_sys_good_id as warehouseSysGoodId
         FROM
             mall_goods a
         LEFT JOIN mall_goods_specification r ON r.goods_id = a.id
-        left join mall_product_store_rela m on m.goods_id = a.id and r.goods_id = m.goods_id and a.is_on_sale = 1
+        left join mall_product_store_rela m on m.goods_id = a.id and r.goods_id = m.goods_id and a.is_on_sale = 1 and a.is_delete=0
         where a.prod_barcode = #{prodBarcode} and m.store_id = #{storeId}
         <if test="sku != null and sku != ''">
             and a.sku=#{sku}
         </if>
-        and m.stock_num > 0 order by m.stock_num desc
+        and m.stock_num > 0 and a.is_delete = 0 order by m.stock_num desc
         limit 1
     </select>
 
@@ -272,7 +273,7 @@
         SELECT distinct
         a.goods_sn as GoodsSn,m.retail_price as retailPrice,a.prod_barcode as prodBarcode,a.name,
         a.brand,a.goods_desc as goodsDesc,a.goods_unit as goodsUnit,a.goods_rate as goodsRate,a.primary_pic_url ,
-        m.stock_num as stockNum,r.value as specification
+        m.stock_num as stockNum,a.goods_unit as specification
         ,a.hs_code as hsCode , a.legal_unit1_qty as legalUnit1Qty , a.legal_unit2_qty as legalUnit2Qty,
         a.ciq_prod_model as ciqProdModel,a.to_be_restored,a.sku as sku,a.name,a.market_price as marketPrice
         FROM
@@ -280,7 +281,7 @@
         LEFT JOIN mall_goods_specification r ON r.goods_id = a.id
         left join mall_product_store_rela m on m.goods_id = a.id and r.goods_id = m.goods_id
         where a.prod_barcode = #{prodBarcode} and m.store_id = #{storeId}
-        and m.stock_num > 0 and a.is_on_sale = 1 order by m.stock_num desc
+        and m.stock_num > 0 and a.is_on_sale = 1 and a.is_delete = 0 order by m.stock_num desc
 
     </select>
 
@@ -292,10 +293,18 @@
         FROM
             mall_goods a
         LEFT JOIN mall_goods_group g ON g.goods_id = a.id
-        AND g.open_status != 3
+        AND g.open_status != 3 and a.is_delete=0
         where a.goods_sn = #{goodsSn}
     </select>
 
+    <select id="queryObjectBySnNew" resultType="com.kmall.admin.entity.GoodsEntity">
+        SELECT
+            a.*
+        FROM
+            mall_goods a
+        where a.is_delete=0 and a.is_on_sale=1 and a.sku = #{goodsSn}
+    </select>
+
     <select id="queryList" resultType="com.kmall.admin.entity.GoodsEntity">
         select * from (
         select
@@ -507,6 +516,7 @@
 			`brand`,
 			`brand_id`,
 			`category_id`,
+			 attribute_category,
 			`goods_number`,
 			`keywords`,
 			`goods_brief`,
@@ -578,6 +588,7 @@
 			#{brand},
 			#{brandId},
 			#{categoryId},
+			#{attributeCategory},
 			#{goodsNumber},
 			#{keywords},
 			#{goodsBrief},
@@ -653,6 +664,7 @@
             <if test="brand != null">`brand` = #{brand},</if>
             <if test="brandId != null">`brand_id` = #{brandId},</if>
             <if test="categoryId != null">`category_id` = #{categoryId},</if>
+            <if test="attributeCategory != null">`attribute_category` = #{attributeCategory},</if>
             <if test="goodsNumber != null">`goods_number` = #{goodsNumber},</if>
             <if test="keywords != null">`keywords` = #{keywords},</if>
             <if test="goodsBrief != null">`goods_brief` = #{goodsBrief},</if>
@@ -738,6 +750,7 @@
             INNER JOIN mall_supplier s
         WHERE
             g.category_id = c.id
+            and g.is_delete=0
             and g.supplier_id = s.id
             AND (g.goods_sn=#{keyword} OR g.prod_barcode=#{keyword})
     </select>
@@ -805,7 +818,7 @@
             g.prod_barcode as barCode
         from
             mall_goods g
-        left join mall_product_store_rela rela on g.id = rela.goods_id
+        left join mall_product_store_rela rela on g.id = rela.goods_id and g.is_delete = 0
         <where>
             <if test="sku != null and sku != ''">
                and g.sku = #{sku}
@@ -824,13 +837,13 @@
     <select id="queryByBarcode" resultType="com.kmall.admin.entity.GoodsEntity">
         select *
         from mall_goods
-        where prod_barcode = #{barCode}
+        where is_delete = 0 and prod_barcode = #{barCode}
     </select>
 
     <select id="queryBySku" resultType="com.kmall.admin.entity.GoodsEntity">
         select *
         from mall_goods
-        where sku = #{sku}
+        where is_delete = 0 and sku = #{sku}
     </select>
 
     <select id="queryListByBarcode" resultType="com.kmall.admin.entity.GoodsEntity">
@@ -841,7 +854,7 @@
             mall_goods a
         LEFT JOIN mall_product_store_rela r ON r.goods_id = a.id
         inner join mall_store s on r.store_id=s.id
-        where a.prod_barcode = #{prodBarcode}  and r.store_id = #{storeId} and a.sku = #{sku} and a.is_on_sale = 1
+        where a.prod_barcode = #{prodBarcode}  and r.store_id = #{storeId} and a.sku = #{sku} and a.is_on_sale = 1 and a.is_delete = 0
         and r.stock_num > 0 order by r.stock_num desc
     </select>
 
@@ -868,7 +881,7 @@
     <select id="queryListBySku" resultType="com.kmall.admin.entity.GoodsEntity">
          select *
         from mall_goods
-        where sku = #{sku}
+        where is_delete = 0 and sku = #{sku}
     </select>
     <select id="queryNonSyncOmsGoodsRateSkuList" resultType="com.kmall.admin.entity.GoodsEntity">
         select *
@@ -883,7 +896,7 @@
     </select>
 
     <select id="queryByBarcodeAndSku" resultType="com.kmall.admin.entity.GoodsEntity">
-        select * from mall_goods where
+        select * from mall_goods where is_delete = 0 and
         goods_sn = #{goodsSn} and prod_barcode = #{prodBarcode}
     </select>
 
@@ -896,7 +909,7 @@
             m.store_id as storeId
         FROM
             mall_goods a
-        left join mall_product_store_rela m on m.goods_id = a.id
+        left join mall_product_store_rela m on m.goods_id = a.id and a.is_delete = 0
         <where>
             a.cus_rec_code in
             <foreach collection="hdCodeSet" item="item" open="(" close=")" separator=",">
@@ -1163,7 +1176,7 @@
             mall_goods a
         LEFT JOIN mall_product_store_rela r ON r.goods_id = a.id
         inner join mall_store s on r.store_id=s.id
-        where a.prod_barcode = #{prodBarcode}  and r.store_id = #{storeId} and a.sku = #{sku} and a.is_on_sale = 1
+        where a.prod_barcode = #{prodBarcode}  and r.store_id = #{storeId} and a.sku = #{sku} and a.is_on_sale = 1 and a.is_delete = 0
         and r.stock_num > 0 order by r.stock_num desc
     </select>
 
@@ -1171,12 +1184,13 @@
         SELECT
             a.id,a.sku,a.goods_number,a.goods_sn,a.name,a.list_pic_url,a.prod_barcode,r.market_price storeMarketPrice, r.retail_price as retailPrice,r.retail_price storeRetailPrice ,r.stock_num,s.store_name,r.product_id as productId,s.id 'storeId',a.goods_rate as goodsRate,
             a.hs_code as hsCode , a.legal_unit1_qty as legalUnit1Qty , a.legal_unit2_qty as legalUnit2Qty,a.ciq_prod_model as ciqProdModel,a.to_be_restored, r.stock_num, r.exit_region_number as exitRegionNumber,
-            a.category_id as categoryId, a.brand_id as brandId, a.net_weight as netWeight
+            a.category_id as categoryId, a.brand_id as brandId,a.net_weight as netWeight
         FROM
             mall_goods a
         LEFT JOIN mall_product_store_rela r ON r.goods_id = a.id
         inner join mall_store s on r.store_id=s.id
         where
+        a.is_delete = 0 and
         a.is_on_sale = 1
         and
         <foreach collection="list" item="item" open="(" separator=" or " close=")">

+ 1 - 2
kmall-admin/src/main/resources/mybatis/mapper/HaiKongResendMsgDao.xml

@@ -11,9 +11,7 @@
 			interface_type,
 			request_msg,
 			response_msg,
-			resend_num,
 			resend_time,
-			last_resend_time,
 			is_valid
 		)
 		values
@@ -23,6 +21,7 @@
 			#{interfaceType},
 			#{requestMsg},
 			#{responseMsg},
+			sysdate(),
 			#{isValid}
 		)
 	</insert>

+ 3 - 1
kmall-admin/src/main/resources/mybatis/mapper/OrderDao.xml

@@ -412,11 +412,13 @@
         o.actual_price,
         o.order_price,
         o.pay_time,
-        o.pay_flag
+        o.pay_flag,
+        c.pick_up_code_sn
         from mall_order o
         LEFT JOIN mall_store s on o.store_id = s.id
         LEFT JOIN mall_order_goods g ON o.id = g.order_id
         LEFT JOIN mall_user u ON o.user_id = u.id
+        LEFT JOIN mall_pick_up_code c on c.order_sn = o.order_sn
         WHERE 1=1
         <if test="storeId != null and storeId != ''">
             AND o.store_id = #{storeId}

+ 2 - 0
kmall-admin/src/main/resources/mybatis/mapper/OrderGoodsDao.xml

@@ -216,6 +216,7 @@
             `settle_price`,
             `sku`,
             `deduction_score`,
+            `deduction_price`,
             `order_biz_type`,
             `activity`,
             `creater_sn`,
@@ -247,6 +248,7 @@
                 #{item.settlePrice},
                 #{item.sku,jdbcType=VARCHAR},
                 #{item.deductionScore},
+                #{item.deductionPrice},
                 #{item.orderBizType,jdbcType=VARCHAR},
                 #{item.activity},
                 #{item.createrSn,jdbcType=VARCHAR},

+ 1 - 0
kmall-admin/src/main/resources/mybatis/mapper/OrderProcessRecordDao.xml

@@ -95,6 +95,7 @@
 		`shipment_succ_time`,
 		`process_content`,
 		`customs_send_sms_status`,
+		customs_msg as clearMsg,
 		r.`tstm`,
 		o.ali_trade_no as pay_transaction_id
 		from mall_order_process_record r inner join mall_order o on r.order_sn = o.order_sn

+ 6 - 0
kmall-admin/src/main/resources/mybatis/mapper/ProductDao.xml

@@ -61,6 +61,9 @@
         <if test="goodsName != null and goodsName.trim() != ''">
             AND mall_goods.name LIKE concat('%',#{goodsName},'%')
         </if>
+        <if test="goodsSn != null and goodsSn.trim() != ''">
+            AND mall_goods.goods_sn LIKE concat('%',#{goodsSn},'%')
+        </if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
                 order by ${sidx} ${order}
@@ -87,6 +90,9 @@
         <if test="goodsSpecificationIds != null and goodsSpecificationIds != ''">
             AND mall_product.goods_specification_ids = #{goodsSpecificationIds}
         </if>
+        <if test="goodsSn != null and goodsSn.trim() != ''">
+            AND mall_goods.goods_sn LIKE concat('%',#{goodsSn},'%')
+        </if>
     </select>
 
     <insert id="save" parameterType="com.kmall.admin.entity.ProductEntity" useGeneratedKeys="true" keyProperty="id">

+ 2 - 1
kmall-admin/src/main/resources/mybatis/mapper/StoreMngChangeDao.xml

@@ -81,7 +81,8 @@
     		c.`mod_time`,
 			s.store_name storeName,
 			g.name goodsName,
-			m.merch_name merchName
+			m.merch_name merchName,
+		    c.order_sn as orderSn
 		from mall_store_mng_change c left join mall_merch m on c.merch_sn = m.merch_sn
 		left join mall_store s on s.id = c.store_id
 		left join mall_goods g on c.goods_id = g.id

+ 15 - 13
kmall-admin/src/main/resources/mybatis/mapper/StoreSmsConfigDao.xml

@@ -38,19 +38,21 @@
 
 	<select id="queryList" resultType="com.kmall.admin.entity.StoreSmsConfigEntity">
 		select
-    		`id`,
-    		`store_id`,
-    		`merch_sn`,
-    		`send_start_time`,
-    		`send_end_time`,
-    		`is_valid`,
-		`is_enable`,
-    		`creater_sn`,
-    		`create_time`,
-    		`moder_sn`,
-    		`mod_time`,
-    		`tstm`
-		from mall_store_sms_config
+			config.`id`,
+			config.`store_id`,
+			config.`merch_sn`,
+			config.`send_start_time`,
+			config.`send_end_time`,
+			config.`is_valid`,
+			config.`is_enable`,
+			config.`creater_sn`,
+			config.`create_time`,
+			config.`moder_sn`,
+			config.`mod_time`,
+			config.`tstm`,
+		    store.`store_name`
+		from mall_store_sms_config config
+		left join mall_store store on config.store_id = store.id
 		WHERE 1=1
 		<if test="name != null and name.trim() != ''">
 			AND name LIKE concat('%',#{name},'%')

+ 7 - 9
kmall-admin/src/main/resources/mybatis/mapper/UserDao.xml

@@ -32,13 +32,11 @@
 
     <select id="queryList" resultType="com.kmall.admin.entity.UserEntity">
         SELECT DISTINCT
-        mall_user.*
-        ,mall_user_level.NAME levelName
-        FROM
-        mall_user
-        LEFT JOIN mall_user_level ON mall_user.user_level_id = mall_user_level.id
-        LEFT JOIN mall_merch_user mu ON mall_user.id = mu.user_id
-        LEFT JOIN mall_store s on mu.store_id = s.id
+            mu1.*
+            FROM
+            mall_store s
+        LEFT JOIN mall_merch_user mu ON s.id = mu.store_id
+        LEFT JOIN mall_user mu1 on mu1.id = mu.user_id
         WHERE 1=1
         <if test="storeId != null and storeId != ''">
             and mu.store_id = #{storeId}
@@ -50,10 +48,10 @@
             AND s.third_party_merch_code = #{thirdPartyMerchCode}
         </if>
         <if test="username != null and username.trim() != ''">
-            and mall_user.username like concat('%',#{username},'%')
+            and mu1.username like concat('%',#{username},'%')
         </if>
         <if test="mobile != null and mobile.trim() != ''">
-            and mall_user.mobile like concat('%',#{mobile},'%')
+            and mu1.mobile like concat('%',#{mobile},'%')
         </if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">

+ 96 - 2
kmall-admin/src/main/resources/mybatis/mapper/cuspay/MerchNotiMapper.xml

@@ -50,7 +50,7 @@
     select
     <include refid="Base_Column_List" />
     from merch_noti
-    where code = #{code,jdbcType=VARCHAR} and all_pay_no = #{allPayNo,jdbcType=VARCHAR} and cus_decl_status = #{cusDeclStatus,jdbcType=VARCHAR}
+    where code = #{code,jdbcType=VARCHAR} and all_pay_no = #{allPayNo,jdbcType=VARCHAR}
     <if test="allSubOrderNo != null" >
       and all_sub_order_no = #{allSubOrderNo}
     </if>
@@ -342,6 +342,100 @@
     where noti_sn = #{notiSn,jdbcType=VARCHAR}
   </update>
 
+  <update id="updateByorderSn" parameterType="com.kmall.admin.cuspay.entity.merch.MerchNoti" >
+    update merch_noti
+    <set >
+      <if test="allPaySn != null" >
+        all_pay_sn = #{allPaySn,jdbcType=VARCHAR},
+      </if>
+      <if test="merchSn != null" >
+        merch_sn = #{merchSn,jdbcType=VARCHAR},
+      </if>
+      <if test="merchName != null" >
+        merch_name = #{merchName,jdbcType=VARCHAR},
+      </if>
+      <if test="merchErpOrderSn != null" >
+        merch_erp_order_sn = #{merchErpOrderSn,jdbcType=VARCHAR},
+      </if>
+      <if test="platSn != null" >
+        plat_sn = #{platSn,jdbcType=VARCHAR},
+      </if>
+      <if test="platName != null" >
+        plat_name = #{platName,jdbcType=VARCHAR},
+      </if>
+      <if test="thirdPartyMerchCode != null" >
+        third_party_merch_code = #{thirdPartyMerchCode,jdbcType=VARCHAR},
+      </if>
+      <if test="thirdPartyMerchName != null" >
+        third_party_merch_name = #{thirdPartyMerchName,jdbcType=VARCHAR},
+      </if>
+      <if test="allMerchId != null" >
+        all_merch_id = #{allMerchId,jdbcType=VARCHAR},
+      </if>
+      <if test="allOrderNo != null" >
+        all_order_no = #{allOrderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="allPayNo != null" >
+        all_pay_no = #{allPayNo,jdbcType=VARCHAR},
+      </if>
+      <if test="allSubOrderNo != null" >
+        all_sub_order_no = #{allSubOrderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="allSubOrderId != null" >
+        all_sub_order_id = #{allSubOrderId,jdbcType=VARCHAR},
+      </if>
+      <if test="payChnlFlag != null" >
+        pay_chnl_flag = #{payChnlFlag,jdbcType=VARCHAR},
+      </if>
+      <if test="buyerPayerCheck != null" >
+        buyer_payer_check = #{buyerPayerCheck,jdbcType=CHAR},
+      </if>
+      <if test="notiCount != null" >
+        noti_count = #{notiCount,jdbcType=INTEGER},
+      </if>
+      <if test="isStoped != null" >
+        is_stoped = #{isStoped,jdbcType=CHAR},
+      </if>
+      <if test="cusDeclStatus != null" >
+        cus_decl_status = #{cusDeclStatus,jdbcType=CHAR},
+      </if>
+      <if test="notiStatue != null" >
+        noti_statue = #{notiStatue,jdbcType=CHAR},
+      </if>
+      <if test="code != null" >
+        code = #{code,jdbcType=VARCHAR},
+      </if>
+      <if test="msg != null" >
+        msg = #{msg,jdbcType=VARCHAR},
+      </if>
+      <if test="notifyUrl != null" >
+        notify_url = #{notifyUrl,jdbcType=VARCHAR},
+      </if>
+      <if test="remark != null" >
+        remark = #{remark,jdbcType=VARCHAR},
+      </if>
+      <if test="createrSn != null" >
+        creater_sn = #{createrSn,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null" >
+        create_time = #{createTime,jdbcType=VARCHAR},
+      </if>
+      <if test="moderSn != null" >
+        moder_sn = #{moderSn,jdbcType=VARCHAR},
+      </if>
+      <if test="modTime != null" >
+        mod_time = #{modTime,jdbcType=VARCHAR},
+      </if>
+      <if test="tstm != null" >
+        tstm = #{tstm,jdbcType=TIMESTAMP},
+      </if>
+      <if test="orderSn != null" >
+        order_sn = #{orderSn,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where order_sn = #{orderSn,jdbcType=VARCHAR}
+  </update>
+
   <select id="selectMerchNotis" resultMap="BaseResultMap" parameterType="java.lang.Integer">
     SELECT
     <include refid="Base_Column_List"/>
@@ -442,7 +536,7 @@
           third_party_merch_code = #{item.thirdPartyMerchCode,jdbcType=VARCHAR},
         </if>
         <if test="item.thirdPartyMerchName != null" >
-          third_party_merch_name = #{thirdPartyMerchName,jdbcType=VARCHAR},
+          third_party_merch_name = #{item.thirdPartyMerchName,jdbcType=VARCHAR},
         </if>
         <if test="item.allMerchId != null" >
           all_merch_id = #{item.allMerchId,jdbcType=VARCHAR},

+ 39 - 0
kmall-admin/src/main/resources/mybatis/mapper/haikong/HaiKongMemberOrderSyncResendDao.xml

@@ -128,4 +128,43 @@
         </foreach>
     </delete>
 
+    <select id="queryListNew" resultType="com.kmall.admin.entity.haikong.HaiKongMemberOrderSyncResendEntity">
+        select
+        `id`,
+        `open_id`,
+        `phone`,
+        `consume_date`,
+        `order_amount`,
+        `order_no`,
+        `order_score`,
+        `member_sys_order_id`,
+        `resend_status`,
+        `last_resend_time`,
+        `create_time`
+        from haikong_member_order_sync_resend
+        WHERE 1=1
+        <if test="orderNo != null and orderNo.trim() != ''">
+            AND `order_no` LIKE concat('%',#{orderNo},'%')
+        </if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+            <otherwise>
+                order by id desc
+            </otherwise>
+        </choose>
+        <if test="offset != null and limit != null">
+            limit #{offset}, #{limit}
+        </if>
+    </select>
+
+    <select id="queryTotalNew" resultType="int">
+        select count(*) from haikong_member_order_sync_resend
+        WHERE 1=1
+        <if test="orderNo != null and orderNo.trim() != ''">
+            AND `order_no` LIKE concat('%',#{orderNo},'%')
+        </if>
+    </select>
+
 </mapper>

+ 41 - 0
kmall-admin/src/main/resources/mybatis/mapper/haikong/HaiKongMemberScoreChangeDetailRecordDao.xml

@@ -95,4 +95,45 @@
         delete from haikong_member_score_change_detail_record where order_sn = #{orderSn}
     </delete>
 
+    <select id="queryList" resultType="com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeDetailRecordEntity">
+        select
+        `id`,
+        `order_sn`,
+        `product_barcode`,
+        `sku`,
+        `retail_price`,
+        `actual_price`,
+        `sell_volume`,
+        `deduction_score`,
+        `gift_score`,
+        `generate_rules`,
+        `generate_ratio`,
+        `create_time`,
+        `modify_time`
+        from haikong_member_score_change_detail_record
+        WHERE 1=1
+        <if test="orderSn != null and orderSn.trim() != ''">
+            AND `order_sn` LIKE concat('%',#{orderSn},'%')
+        </if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+            <otherwise>
+                order by id desc
+            </otherwise>
+        </choose>
+        <if test="offset != null and limit != null">
+            limit #{offset}, #{limit}
+        </if>
+    </select>
+
+    <select id="queryTotal" resultType="int">
+        select count(*) from haikong_member_score_change_detail_record
+        WHERE 1=1
+        <if test="orderSn != null and orderSn.trim() != ''">
+            AND `order_sn` LIKE concat('%',#{orderSn},'%')
+        </if>
+    </select>
+
 </mapper>

+ 39 - 0
kmall-admin/src/main/resources/mybatis/mapper/haikong/HaiKongMemberScoreChangeRecordDao.xml

@@ -136,4 +136,43 @@
         where out_biz_no = #{orderSn}
     </select>
 
+    <select id="queryListNew" resultType="com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeRecordEntity">
+        select
+        `id`,
+        `open_id`,
+        `score`,
+        `out_biz_no`,
+        `change_reason`,
+        `change_event`,
+        `change_id`,
+        `statement_id`,
+        `create_time`,
+        `modify_time`,
+        `resend_status`
+        from haikong_member_score_change_record
+        WHERE 1=1
+        <if test="outBizNo != null and outBizNo.trim() != ''">
+            AND `out_biz_no` LIKE concat('%',#{outBizNo},'%')
+        </if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+            <otherwise>
+                order by id desc
+            </otherwise>
+        </choose>
+        <if test="offset != null and limit != null">
+            limit #{offset}, #{limit}
+        </if>
+    </select>
+
+    <select id="queryTotalNew" resultType="int">
+        select count(*) from haikong_member_score_change_record
+        WHERE 1=1
+        <if test="outBizNo != null and outBizNo.trim() != ''">
+            AND `out_biz_no` LIKE concat('%',#{outBizNo},'%')
+        </if>
+    </select>
+
 </mapper>

+ 11 - 5
kmall-admin/src/main/resources/mybatis/mapper/haikong/HaikongSendOrderInfoDetailRecordDao.xml

@@ -55,8 +55,11 @@
 			`tax_price`
 		from haikong_send_order_info_detail_record
 		WHERE 1=1
-		<if test="name != null and name.trim() != ''">
-			AND name LIKE concat('%',#{name},'%')
+		<if test="orderId != null and orderId.trim() != ''">
+			AND `order_id` LIKE concat('%',#{orderId},'%')
+		</if>
+		<if test="barcode != null and barcode.trim() != ''">
+			AND `barcode` LIKE concat('%',#{barcode},'%')
 		</if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
@@ -96,9 +99,12 @@
  	<select id="queryTotal" resultType="int">
 		select count(*) from haikong_send_order_info_detail_record
 		WHERE 1=1
-        <if test="name != null and name.trim() != ''">
-            AND name LIKE concat('%',#{name},'%')
-        </if>
+		<if test="orderId != null and orderId.trim() != ''">
+			AND `order_id` LIKE concat('%',#{orderId},'%')
+		</if>
+		<if test="barcode != null and barcode.trim() != ''">
+			AND `barcode` LIKE concat('%',#{barcode},'%')
+		</if>
 	</select>
 	 
 	<insert id="save" parameterType="com.kmall.admin.entity.haikong.HaiKongSendOrderInfoDetailRecordEntity" useGeneratedKeys="true" keyProperty="id">

+ 5 - 5
kmall-admin/src/main/resources/mybatis/mapper/haikong/HaikongSendOrderInfoRecordDao.xml

@@ -138,8 +138,8 @@
     		`resend_status`
 		from haikong_send_order_info_record
 		WHERE 1=1
-		<if test="name != null and name.trim() != ''">
-			AND name LIKE concat('%',#{name},'%')
+		<if test="outerOrderNo != null and outerOrderNo.trim() != ''">
+			AND `outer_order_no` LIKE concat('%',#{outerOrderNo},'%')
 		</if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
@@ -192,9 +192,9 @@
  	<select id="queryTotal" resultType="int">
 		select count(*) from haikong_send_order_info_record
 		WHERE 1=1
-        <if test="name != null and name.trim() != ''">
-            AND name LIKE concat('%',#{name},'%')
-        </if>
+		<if test="outerOrderNo != null and outerOrderNo.trim() != ''">
+			AND `outer_order_no` LIKE concat('%',#{outerOrderNo},'%')
+		</if>
 	</select>
 	 
 	<insert id="save" parameterType="com.kmall.admin.entity.haikong.HaiKongSendOrderInfoRecordEntity" useGeneratedKeys="true" keyProperty="id">

+ 15 - 0
kmall-admin/src/main/resources/mybatis/mapper/mk/MkActivitiesAssociationDao.xml

@@ -143,6 +143,21 @@
 		</foreach>
 	</delete>
 
+	<update id="updateByMkaId" parameterType="com.kmall.admin.entity.mk.MkActivitiesAssociationEntity">
+		update mk_activities_association
+		<set>
+			<if test="mkCode != null">`mk_code` = #{mkCode}, </if>
+			<if test="merchSn != null">`merch_sn` = #{merchSn}, </if>
+			<if test="thirdMerchSn != null">`third_merch_sn` = #{thirdMerchSn}, </if>
+			<if test="mkaStoreId != null">`mka_store_id` = #{mkaStoreId}, </if>
+			<if test="mkaStatus != null">`mka_status` = #{mkaStatus}, </if>
+			<if test="mkaStartTime != null">`mka_start_time` = #{mkaStartTime}, </if>
+			<if test="mkdEndTime != null">`mkd_end_time` = #{mkdEndTime}, </if>
+			<if test="mkaEndEarly != null">`mka_end_early` = #{mkaEndEarly}, </if>
+			<if test="mkdEndEarlyTime != null">`mkd_end_early_time` = #{mkdEndEarlyTime}</if>
+		</set>
+		where `mka_id` = #{mkaId}
+	</update>
 
 
 </mapper>

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

@@ -131,7 +131,7 @@
 			<if test="createTime != null">`create_time` = #{createTime}, </if>
 			<if test="createrSn != null">`creater_sn` = #{createrSn}, </if>
 			<if test="updateTime != null">`update_time` = #{updateTime}, </if>
-			<if test="moderSn != null">`moder_sn` = #{moderSn}</if>
+			<if test="moderSn != null">`moder_sn` = #{moderSn},</if>
 			<if test="priority != null">`priority` = #{priority}</if>
 		</set>
 		where mka_id = #{mkaId}

+ 16 - 10
kmall-admin/src/main/resources/mybatis/mapper/mk/MkActivitiesScoreDao.xml

@@ -8,7 +8,6 @@
         <result property="prodBarcode" column="prod_barcode"/>
         <result property="sku" column="sku"/>
         <result property="storeId" column="store_id"/>
-        <result property="scoreLimit" column="score_limit"/>
         <result property="mkaId" column="mka_id"/>
         <result property="deadline" column="deadline"/>
         <result property="reject" column="reject"/>
@@ -24,7 +23,6 @@
 			`prod_barcode`,
 			`sku`,
 			`store_id`,
-			`score_limit`,
 			`mka_id`,
 			`deadline`,
 			`reject`,
@@ -42,7 +40,6 @@
     		`prod_barcode`,
     		`sku`,
     		`store_id`,
-    		`score_limit`,
     		`mka_id`,
     		`deadline`,
     		`reject`,
@@ -55,6 +52,9 @@
 		<if test="name != null and name.trim() != ''">
 			AND name LIKE concat('%',#{name},'%')
 		</if>
+		<if test="prodBarcode != null and prodBarcode.trim() != ''">
+			AND `prod_barcode` LIKE concat('%',#{prodBarcode},'%')
+		</if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
                 order by ${sidx} ${order}
@@ -74,6 +74,9 @@
         <if test="name != null and name.trim() != ''">
             AND name LIKE concat('%',#{name},'%')
         </if>
+		<if test="prodBarcode != null and prodBarcode.trim() != ''">
+			AND `prod_barcode` LIKE concat('%',#{prodBarcode},'%')
+		</if>
 	</select>
 
 	<select id="queryEntityByProdBarcodeAndSkuAndStoreIdAndTime"
@@ -83,7 +86,6 @@
     		`prod_barcode`,
     		`sku`,
     		`store_id`,
-    		`score_limit`,
     		`mka_id`,
     		`deadline`,
     		`reject`,
@@ -101,7 +103,6 @@
     		`prod_barcode`,
     		`sku`,
     		`store_id`,
-    		`score_limit`,
     		`mka_id`,
     		`deadline`,
     		`reject`,
@@ -113,12 +114,21 @@
 		where deadline &gt; #{date}
 	</select>
 
+    <select id="queryActivityInfoByMkaIdList" resultType="com.kmall.admin.entity.mk.MkActivitiesScoreEntity">
+		select
+    		*
+		from mk_activities_score
+		where mka_id in
+		<foreach collection="list" item="item" open="(" separator="," close=")">
+			#{item}
+		</foreach>
+	</select>
+
     <insert id="save" parameterType="com.kmall.admin.entity.mk.MkActivitiesScoreEntity" useGeneratedKeys="true" keyProperty="id">
 		insert into mk_activities_score(
 			`prod_barcode`,
 			`sku`,
 			`store_id`,
-			`score_limit`,
 			`mka_id`,
 			`deadline`,
 			`reject`,
@@ -130,7 +140,6 @@
 			#{prodBarcode},
 			#{sku},
 			#{storeId},
-			#{scoreLimit},
 			#{mkaId},
 			#{deadline},
 			#{reject},
@@ -145,7 +154,6 @@
 			`prod_barcode`,
 			`sku`,
 			`store_id`,
-			`score_limit`,
 			`mka_id`,
 			`deadline`,
 			`reject`,
@@ -159,7 +167,6 @@
 				#{item.prodBarcode},
 				#{item.sku},
 				#{item.storeId},
-				#{item.scoreLimit},
 				#{item.mkaId},
 				#{item.deadline},
 				#{item.reject},
@@ -177,7 +184,6 @@
 			<if test="prodBarcode != null">`prod_barcode` = #{prodBarcode}, </if>
 			<if test="sku != null">`sku` = #{sku}, </if>
 			<if test="storeId != null">`store_id` = #{storeId}, </if>
-			<if test="scoreLimit != null">`score_limit` = #{scoreLimit}, </if>
 			<if test="mkaId != null">`mka_id` = #{mkaId}, </if>
 			<if test="deadline != null">`deadline` = #{deadline}, </if>
 			<if test="reject != null">`reject` = #{reject}, </if>

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

@@ -153,5 +153,16 @@
 		</if>
 	</select>
 
+	<select id="queryObjectByMkCode" resultType="com.kmall.admin.entity.mk.MkActivityFormEntity">
+		select
+			`mm_id`,
+			`mk_name`,
+			`mk_code`,
+			`create_time`,
+			`creater_sn`
+		from mk_activity_form
+		where mk_code = #{mkCode}
+	</select>
+
 
 </mapper>

+ 27 - 0
kmall-admin/src/main/resources/mybatis/mapper/vip/Mall2MemberConsumptionRecordsDao.xml

@@ -110,6 +110,33 @@
 		</if>
 	</select>
 
+	<select id="queryObjectByOrderSn"
+			resultType="com.kmall.admin.entity.vip.Mall2MemberConsumptionRecordsEntity">
+		select
+			`mmcr_id`,
+			`user_id`,
+			`order_sn`,
+			`consumption_time`,
+			`shop_sn`,
+			`is_use_birthday_offer`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`,
+			`deduction_score`,
+			`member_code`,
+			`member_phone`,
+			`order_total_price`,
+			`score_deduction_price`,
+			`score_limit`,
+			`before_score`,
+			`after_score`,
+			`order_gift_score`
+		from mall2_member_consumption_records
+		where `order_sn` = #{orderSn}
+	</select>
+
 	<insert id="save" parameterType="com.kmall.admin.entity.vip.Mall2MemberConsumptionRecordsEntity" useGeneratedKeys="true" keyProperty="id">
 		insert into mall2_member_consumption_records(
 			`mmcr_id`,

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

@@ -180,7 +180,7 @@
 
 	</insert>
 
-	<select id="querymall2PointsRulesDetil" parameterType="java.lang.Long" resultType="com.kmall.admin.dto.Mall2RulesDto">
+	<select id="querymall2PointsRulesDetil" resultType="com.kmall.admin.dto.Mall2RulesDto">
 		select
 		     id,
              father_id as mkaId,
@@ -189,7 +189,10 @@
 			 points_store_name as storeName
 		from mall2_points_rules_detil
 		WHERE
-		father_id = #{id}
+		father_id = #{mkaId}
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
 	</select>
 
 	<select id="querymall2PointsRulesDetilTotal" parameterType="java.lang.Long" resultType="java.lang.Integer">

+ 1 - 0
kmall-admin/src/main/resources/spring/spring-shiro.xml

@@ -67,6 +67,7 @@
         <property name="filterChainDefinitions">
             <value>
                 /orderProRecordExternal/**=anon
+                /sys/oss/**=anon
                 /goods/number/**=anon
                 /statics/**=anon
                 /api/**=anon

+ 3 - 0
kmall-admin/src/main/webapp/WEB-INF/page/cashier/cashierManager.html

@@ -12,6 +12,9 @@
                 <i-col span="4">
                     <i-input v-model="q.machineCode" @on-enter="query" placeholder="机器码"/>
                 </i-col>
+                <i-col span="4">
+                    <i-input v-model="q.storeName" @on-enter="query" placeholder="门店名称"/>
+                </i-col>
                 <i-button @click="query">查询</i-button>
                 <i-button @click="reloadSearch">重置</i-button>
             </div>

+ 2 - 2
kmall-admin/src/main/webapp/WEB-INF/page/compared/payorderinfo.html

@@ -44,8 +44,8 @@
                 </i-col>-->
                <!-- <a href="../statics/file/alipay_pay_order.xls">支付宝模板下载</a>&nbsp;&nbsp;&nbsp;&nbsp;
                 <a href="../statics/file/weixin_pay_order.xls">微信模板下载</a>-->
-                <!--<a href="../statics/file/ali_yyyy_mm_dd_v1.0.0.xls">支付宝模板下载</a>&nbsp;&nbsp;&nbsp;&nbsp;
-                <a href="../statics/file/wx_yyyy_mm_dd_v1.0.0.xls">微信模板下载</a>-->
+                <!--<a href="../statics/file/ali.xls">支付宝模板下载</a>&nbsp;&nbsp;&nbsp;&nbsp;
+                <a href="../statics/file/wx.xls">微信模板下载</a>-->
             </div>
         </Row>
 	    <table id="jqGrid"></table>

+ 78 - 0
kmall-admin/src/main/webapp/WEB-INF/page/haikong/haikongmemberordersyncresend.html

@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>会员同步消费订单记录</title>
+    #parse("sys/header.html")
+</head>
+<body>
+<div id="rrapp" v-cloak>
+	<div v-show="showList">
+        <Row :gutter="16">
+            <div class="search-group">
+                <i-col span="4">
+                    <i-input v-model="q.orderNo" @on-enter="query" placeholder="订单编号"/>
+                </i-col>
+                <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
+            </div>
+            <div class="buttons-group">
+                #if($shiro.hasPermission("haikongmemberordersyncresend:save"))
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                #end
+                #if($shiro.hasPermission("haikongmemberordersyncresend:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                #end
+                #if($shiro.hasPermission("haikongmemberordersyncresend:delete"))
+                <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
+                #end
+            </div>
+        </Row>
+	    <table id="jqGrid"></table>
+	    <div id="jqGridPager"></div>
+    </div>
+
+    <Card v-show="!showList">
+        <p slot="title">{{title}}</p>
+		<i-form ref="formValidate" :model="haikongMemberOrderSyncResend" :rules="ruleValidate" :label-width="80">
+            <Form-item label="海控会员系统会员唯一标识open_id" prop="openId">
+                <i-input v-model="haikongMemberOrderSyncResend.openId" placeholder="海控会员系统会员唯一标识open_id"/>
+            </Form-item>
+            <Form-item label="会员手机号,与open_id必传其一" prop="phone">
+                <i-input v-model="haikongMemberOrderSyncResend.phone" placeholder="会员手机号,与open_id必传其一"/>
+            </Form-item>
+            <Form-item label="消费时间" prop="consumeDate">
+                <i-input v-model="haikongMemberOrderSyncResend.consumeDate" placeholder="消费时间"/>
+            </Form-item>
+            <Form-item label="订单金额" prop="orderAmount">
+                <i-input v-model="haikongMemberOrderSyncResend.orderAmount" placeholder="订单金额"/>
+            </Form-item>
+            <Form-item label="订单编号" prop="orderNo">
+                <i-input v-model="haikongMemberOrderSyncResend.orderNo" placeholder="订单编号"/>
+            </Form-item>
+            <Form-item label="订单抵扣积分数量" prop="orderScore">
+                <i-input v-model="haikongMemberOrderSyncResend.orderScore" placeholder="订单抵扣积分数量"/>
+            </Form-item>
+            <Form-item label="会员系统订单id,请求成功返回" prop="memberSysOrderId">
+                <i-input v-model="haikongMemberOrderSyncResend.memberSysOrderId" placeholder="会员系统订单id,请求成功返回"/>
+            </Form-item>
+            <Form-item label="重发状态,0:等待重发 1:重发成功 2:重发失败 3:无需重发" prop="resendStatus">
+                <i-input v-model="haikongMemberOrderSyncResend.resendStatus" placeholder="重发状态,0:等待重发 1:重发成功 2:重发失败 3:无需重发"/>
+            </Form-item>
+            <Form-item label="最后一次重发时间" prop="lastResendTime">
+                <i-input v-model="haikongMemberOrderSyncResend.lastResendTime" placeholder="最后一次重发时间"/>
+            </Form-item>
+            <Form-item label="创建时间" prop="createTime">
+                <i-input v-model="haikongMemberOrderSyncResend.createTime" 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>
+                <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>
+            </Form-item>
+        </i-form>
+	</Card>
+</div>
+
+<script src="${rc.contextPath}/js/haikong/haikongmemberordersyncresend.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 84 - 0
kmall-admin/src/main/webapp/WEB-INF/page/haikong/haikongmemberscorechangedetailrecord.html

@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>会员积分变动记录详情表</title>
+    #parse("sys/header.html")
+</head>
+<body>
+<div id="rrapp" v-cloak>
+	<div v-show="showList">
+        <Row :gutter="16">
+            <div class="search-group">
+                <i-col span="4">
+                    <i-input v-model="q.orderSn" @on-enter="query" placeholder="订单编号"/>
+                </i-col>
+                <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
+            </div>
+            <div class="buttons-group">
+                #if($shiro.hasPermission("haikongmemberscorechangedetailrecord:save"))
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                #end
+                #if($shiro.hasPermission("haikongmemberscorechangedetailrecord:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                #end
+                #if($shiro.hasPermission("haikongmemberscorechangedetailrecord:delete"))
+                <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
+                #end
+            </div>
+        </Row>
+	    <table id="jqGrid"></table>
+	    <div id="jqGridPager"></div>
+    </div>
+
+    <Card v-show="!showList">
+        <p slot="title">{{title}}</p>
+		<i-form ref="formValidate" :model="haikongMemberScoreChangeDetailRecord" :rules="ruleValidate" :label-width="80">
+            <Form-item label="订单编号" prop="orderSn">
+                <i-input v-model="haikongMemberScoreChangeDetailRecord.orderSn" placeholder="订单编号"/>
+            </Form-item>
+            <Form-item label="条码" prop="productBarcode">
+                <i-input v-model="haikongMemberScoreChangeDetailRecord.productBarcode" placeholder="条码"/>
+            </Form-item>
+            <Form-item label="sku" prop="sku">
+                <i-input v-model="haikongMemberScoreChangeDetailRecord.sku" placeholder="sku"/>
+            </Form-item>
+            <Form-item label="零售价" prop="retailPrice">
+                <i-input v-model="haikongMemberScoreChangeDetailRecord.retailPrice" placeholder="零售价"/>
+            </Form-item>
+            <Form-item label="实际支付价,该sku实际支付价格" prop="actualPrice">
+                <i-input v-model="haikongMemberScoreChangeDetailRecord.actualPrice" placeholder="实际支付价,该sku实际支付价格"/>
+            </Form-item>
+            <Form-item label="销售数" prop="sellVolume">
+                <i-input v-model="haikongMemberScoreChangeDetailRecord.sellVolume" placeholder="销售数"/>
+            </Form-item>
+            <Form-item label="分摊抵扣积分" prop="deductionScore">
+                <i-input v-model="haikongMemberScoreChangeDetailRecord.deductionScore" placeholder="分摊抵扣积分"/>
+            </Form-item>
+            <Form-item label="赠送积分" prop="giftScore">
+                <i-input v-model="haikongMemberScoreChangeDetailRecord.giftScore" placeholder="赠送积分"/>
+            </Form-item>
+            <Form-item label="生成规则:0:门店 1:分类 2:商品 3:无规则" prop="generateRules">
+                <i-input v-model="haikongMemberScoreChangeDetailRecord.generateRules" placeholder="生成规则:0:门店 1:分类 2:商品 3:无规则"/>
+            </Form-item>
+            <Form-item label="生成规则比例" prop="generateRatio">
+                <i-input v-model="haikongMemberScoreChangeDetailRecord.generateRatio" placeholder="生成规则比例"/>
+            </Form-item>
+            <Form-item label="创建时间" prop="createTime">
+                <i-input v-model="haikongMemberScoreChangeDetailRecord.createTime" placeholder="创建时间"/>
+            </Form-item>
+            <Form-item label="修改时间" prop="modifyTime">
+                <i-input v-model="haikongMemberScoreChangeDetailRecord.modifyTime" 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>
+                <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>
+            </Form-item>
+        </i-form>
+	</Card>
+</div>
+
+<script src="${rc.contextPath}/js/haikong/haikongmemberscorechangedetailrecord.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 78 - 0
kmall-admin/src/main/webapp/WEB-INF/page/haikong/haikongmemberscorechangerecord.html

@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>会员积分变动记录表</title>
+    #parse("sys/header.html")
+</head>
+<body>
+<div id="rrapp" v-cloak>
+	<div v-show="showList">
+        <Row :gutter="16">
+            <div class="search-group">
+                <i-col span="4">
+                    <i-input v-model="q.outBizNo" @on-enter="query" placeholder="订单号"/>
+                </i-col>
+                <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
+            </div>
+            <div class="buttons-group">
+                #if($shiro.hasPermission("haikongmemberscorechangerecord:save"))
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                #end
+                #if($shiro.hasPermission("haikongmemberscorechangerecord:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                #end
+                #if($shiro.hasPermission("haikongmemberscorechangerecord:delete"))
+                <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
+                #end
+            </div>
+        </Row>
+	    <table id="jqGrid"></table>
+	    <div id="jqGridPager"></div>
+    </div>
+
+    <Card v-show="!showList">
+        <p slot="title">{{title}}</p>
+		<i-form ref="formValidate" :model="haikongMemberScoreChangeRecord" :rules="ruleValidate" :label-width="80">
+            <Form-item label="openid" prop="openId">
+                <i-input v-model="haikongMemberScoreChangeRecord.openId" placeholder="openid"/>
+            </Form-item>
+            <Form-item label="会员积分 变动值,对应change_event在会员事件定义为非固定积分值事件时需要传该参数" prop="score">
+                <i-input v-model="haikongMemberScoreChangeRecord.score" placeholder="会员积分 变动值,对应change_event在会员事件定义为非固定积分值事件时需要传该参数"/>
+            </Form-item>
+            <Form-item label="订单号" prop="outBizNo">
+                <i-input v-model="haikongMemberScoreChangeRecord.outBizNo" placeholder="订单号"/>
+            </Form-item>
+            <Form-item label="积分变动描述" prop="changeReason">
+                <i-input v-model="haikongMemberScoreChangeRecord.changeReason" placeholder="积分变动描述"/>
+            </Form-item>
+            <Form-item label="积分变动事件,event_add/event_subtract(增/减)" prop="changeEvent">
+                <i-input v-model="haikongMemberScoreChangeRecord.changeEvent" placeholder="积分变动事件,event_add/event_subtract(增/减)"/>
+            </Form-item>
+            <Form-item label="自定义积分变动唯一标识" prop="changeId">
+                <i-input v-model="haikongMemberScoreChangeRecord.changeId" placeholder="自定义积分变动唯一标识"/>
+            </Form-item>
+            <Form-item label="积分变动流水id,请求成功后返回" prop="statementId">
+                <i-input v-model="haikongMemberScoreChangeRecord.statementId" placeholder="积分变动流水id,请求成功后返回"/>
+            </Form-item>
+            <Form-item label="" prop="createTime">
+                <i-input v-model="haikongMemberScoreChangeRecord.createTime" placeholder=""/>
+            </Form-item>
+            <Form-item label="" prop="modifyTime">
+                <i-input v-model="haikongMemberScoreChangeRecord.modifyTime" placeholder=""/>
+            </Form-item>
+            <Form-item label="重发状态,0:等待重发 1:重发成功 2:重发失败 3:无需重发" prop="resendStatus">
+                <i-input v-model="haikongMemberScoreChangeRecord.resendStatus" placeholder="重发状态,0:等待重发 1:重发成功 2:重发失败 3:无需重发"/>
+            </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>
+                <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>
+            </Form-item>
+        </i-form>
+	</Card>
+</div>
+
+<script src="${rc.contextPath}/js/haikong/haikongmemberscorechangerecord.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 87 - 0
kmall-admin/src/main/webapp/WEB-INF/page/haikong/haikongsendorderinfodetailrecord.html

@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>推送订单明细记录</title>
+    #parse("sys/header.html")
+</head>
+<body>
+<div id="rrapp" v-cloak>
+	<div v-show="showList">
+        <Row :gutter="16">
+            <div class="search-group">
+                <i-col span="4">
+                    <i-input v-model="q.orderId" @on-enter="query" placeholder="订单id"/>
+                </i-col>
+                <i-col span="4">
+                    <i-input v-model="q.barcode" @on-enter="query" placeholder="条码"/>
+                </i-col>
+                <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
+            </div>
+            <div class="buttons-group">
+                #if($shiro.hasPermission("haikongsendorderinfodetailrecord:save"))
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                #end
+                #if($shiro.hasPermission("haikongsendorderinfodetailrecord:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                #end
+                #if($shiro.hasPermission("haikongsendorderinfodetailrecord:delete"))
+                <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
+                #end
+            </div>
+        </Row>
+	    <table id="jqGrid"></table>
+	    <div id="jqGridPager"></div>
+    </div>
+
+    <Card v-show="!showList">
+        <p slot="title">{{title}}</p>
+		<i-form ref="formValidate" :model="haikongSendOrderInfoDetailRecord" :rules="ruleValidate" :label-width="80">
+            <Form-item label="订单id" prop="orderId">
+                <i-input v-model="haikongSendOrderInfoDetailRecord.orderId" placeholder="订单id"/>
+            </Form-item>
+            <Form-item label="图片地址" prop="imageUrl">
+                <i-input v-model="haikongSendOrderInfoDetailRecord.imageUrl" placeholder="图片地址"/>
+            </Form-item>
+            <Form-item label="明细商品货号,填sku" prop="bn">
+                <i-input v-model="haikongSendOrderInfoDetailRecord.bn" placeholder="明细商品货号,填sku"/>
+            </Form-item>
+            <Form-item label="条码" prop="barcode">
+                <i-input v-model="haikongSendOrderInfoDetailRecord.barcode" placeholder="条码"/>
+            </Form-item>
+            <Form-item label="商品名" prop="name">
+                <i-input v-model="haikongSendOrderInfoDetailRecord.name" placeholder="商品名"/>
+            </Form-item>
+            <Form-item label="明细商品的成本,填零售价" prop="cost">
+                <i-input v-model="haikongSendOrderInfoDetailRecord.cost" placeholder="明细商品的成本,填零售价"/>
+            </Form-item>
+            <Form-item label="销售价" prop="price">
+                <i-input v-model="haikongSendOrderInfoDetailRecord.price" placeholder="销售价"/>
+            </Form-item>
+            <Form-item label="商品编码" prop="itemcode">
+                <i-input v-model="haikongSendOrderInfoDetailRecord.itemcode" placeholder="商品编码"/>
+            </Form-item>
+            <Form-item label="明细商品总额,销售价*数量" prop="amount">
+                <i-input v-model="haikongSendOrderInfoDetailRecord.amount" placeholder="明细商品总额,销售价*数量"/>
+            </Form-item>
+            <Form-item label="明细商品购买数量" prop="nums">
+                <i-input v-model="haikongSendOrderInfoDetailRecord.nums" placeholder="明细商品购买数量"/>
+            </Form-item>
+            <Form-item label="是否含税 固定传true" prop="isTax">
+                <i-input v-model="haikongSendOrderInfoDetailRecord.isTax" placeholder="是否含税 固定传true"/>
+            </Form-item>
+            <Form-item label="税金" prop="taxPrice">
+                <i-input v-model="haikongSendOrderInfoDetailRecord.taxPrice" 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>
+                <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>
+            </Form-item>
+        </i-form>
+	</Card>
+</div>
+
+<script src="${rc.contextPath}/js/haikong/haikongsendorderinfodetailrecord.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 132 - 0
kmall-admin/src/main/webapp/WEB-INF/page/haikong/haikongsendorderinforecord.html

@@ -0,0 +1,132 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>推送订单信息记录</title>
+    #parse("sys/header.html")
+</head>
+<body>
+<div id="rrapp" v-cloak>
+	<div v-show="showList">
+        <Row :gutter="16">
+            <div class="search-group">
+                <i-col span="4">
+                    <i-input v-model="q.outerOrderNo" @on-enter="query" placeholder="订单编号"/>
+                </i-col>
+                <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
+            </div>
+            <div class="buttons-group">
+                #if($shiro.hasPermission("haikongsendorderinforecord:save"))
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                #end
+                #if($shiro.hasPermission("haikongsendorderinforecord:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                #end
+                #if($shiro.hasPermission("haikongsendorderinforecord:delete"))
+                <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
+                #end
+            </div>
+        </Row>
+	    <table id="jqGrid"></table>
+	    <div id="jqGridPager"></div>
+    </div>
+
+    <Card v-show="!showList">
+        <p slot="title">{{title}}</p>
+		<i-form ref="formValidate" :model="haikongSendOrderInfoRecord" :rules="ruleValidate" :label-width="80">
+            <Form-item label="订单编号" prop="outerOrderNo">
+                <i-input v-model="haikongSendOrderInfoRecord.outerOrderNo" placeholder="订单编号"/>
+            </Form-item>
+            <Form-item label="支付方式[wxpay|wxpayinapp|wxpayinwxapp|alipay|alipayguarantee|alipayqr|chinapay|chinapayclient|code|offine]" prop="payApp">
+                <i-input v-model="haikongSendOrderInfoRecord.payApp" placeholder="支付方式[wxpay|wxpayinapp|wxpayinwxapp|alipay|alipayguarantee|alipayqr|chinapay|chinapayclient|code|offine]"/>
+            </Form-item>
+            <Form-item label="配送方式,默认SF" prop="dlytypeCode">
+                <i-input v-model="haikongSendOrderInfoRecord.dlytypeCode" placeholder="配送方式,默认SF"/>
+            </Form-item>
+            <Form-item label="收货人" prop="consigneeName">
+                <i-input v-model="haikongSendOrderInfoRecord.consigneeName" placeholder="收货人"/>
+            </Form-item>
+            <Form-item label="收货地址省份" prop="consigneeAreaProvince">
+                <i-input v-model="haikongSendOrderInfoRecord.consigneeAreaProvince" placeholder="收货地址省份"/>
+            </Form-item>
+            <Form-item label="收货地址城市" prop="consigneeAreaCity">
+                <i-input v-model="haikongSendOrderInfoRecord.consigneeAreaCity" placeholder="收货地址城市"/>
+            </Form-item>
+            <Form-item label="收货地址地区" prop="consigneeAreaCounty">
+                <i-input v-model="haikongSendOrderInfoRecord.consigneeAreaCounty" placeholder="收货地址地区"/>
+            </Form-item>
+            <Form-item label="收货地址详细地址" prop="consigneeAddress">
+                <i-input v-model="haikongSendOrderInfoRecord.consigneeAddress" placeholder="收货地址详细地址"/>
+            </Form-item>
+            <Form-item label="收货人的邮编" prop="consigneeZip">
+                <i-input v-model="haikongSendOrderInfoRecord.consigneeZip" placeholder="收货人的邮编"/>
+            </Form-item>
+            <Form-item label="收货人的联系电话" prop="consigneeTel">
+                <i-input v-model="haikongSendOrderInfoRecord.consigneeTel" placeholder="收货人的联系电话"/>
+            </Form-item>
+            <Form-item label="收货人的邮箱" prop="consigneeEmail">
+                <i-input v-model="haikongSendOrderInfoRecord.consigneeEmail" placeholder="收货人的邮箱"/>
+            </Form-item>
+            <Form-item label="收货人的手机号" prop="consigneeMobile">
+                <i-input v-model="haikongSendOrderInfoRecord.consigneeMobile" placeholder="收货人的手机号"/>
+            </Form-item>
+            <Form-item label="订单商品总重量(克)" prop="weight">
+                <i-input v-model="haikongSendOrderInfoRecord.weight" placeholder="订单商品总重量(克)"/>
+            </Form-item>
+            <Form-item label="订单包含商品数量" prop="quantity">
+                <i-input v-model="haikongSendOrderInfoRecord.quantity" placeholder="订单包含商品数量"/>
+            </Form-item>
+            <Form-item label="订单应付总金额" prop="orderTotal">
+                <i-input v-model="haikongSendOrderInfoRecord.orderTotal" placeholder="订单应付总金额"/>
+            </Form-item>
+            <Form-item label="下单的平台,['pc','mobile','wx','ios','android','store','other']" prop="platform">
+                <i-input v-model="haikongSendOrderInfoRecord.platform" placeholder="下单的平台,['pc','mobile','wx','ios','android','store','other']"/>
+            </Form-item>
+            <Form-item label="支付货币金额" prop="money">
+                <i-input v-model="haikongSendOrderInfoRecord.money" placeholder="支付货币金额"/>
+            </Form-item>
+            <Form-item label="付款方式 online=在线支付 offline=线下支付 deposit=预付款支付" prop="payMode">
+                <i-input v-model="haikongSendOrderInfoRecord.payMode" placeholder="付款方式 online=在线支付 offline=线下支付 deposit=预付款支付"/>
+            </Form-item>
+            <Form-item label="发送给支付企业的原始请求" prop="request">
+                <i-input v-model="haikongSendOrderInfoRecord.request" placeholder="发送给支付企业的原始请求"/>
+            </Form-item>
+            <Form-item label="支付成功后回调的原始请求" prop="response">
+                <i-input v-model="haikongSendOrderInfoRecord.response" placeholder="支付成功后回调的原始请求"/>
+            </Form-item>
+            <Form-item label="支付平台流水号" prop="outTradeNo">
+                <i-input v-model="haikongSendOrderInfoRecord.outTradeNo" placeholder="支付平台流水号"/>
+            </Form-item>
+            <Form-item label="口岸代码  4600" prop="seaportCode">
+                <i-input v-model="haikongSendOrderInfoRecord.seaportCode" placeholder="口岸代码  4600"/>
+            </Form-item>
+            <Form-item label="跨境商品平台来源 1:广州跨境通保税 2:自营保税    填1" prop="seaportPlatform">
+                <i-input v-model="haikongSendOrderInfoRecord.seaportPlatform" placeholder="跨境商品平台来源 1:广州跨境通保税 2:自营保税    填1"/>
+            </Form-item>
+            <Form-item label="订购人身份证号码" prop="identityCard">
+                <i-input v-model="haikongSendOrderInfoRecord.identityCard" placeholder="订购人身份证号码"/>
+            </Form-item>
+            <Form-item label="订购人姓名" prop="identityName">
+                <i-input v-model="haikongSendOrderInfoRecord.identityName" placeholder="订购人姓名"/>
+            </Form-item>
+            <Form-item label="订购人手机号" prop="identityMobile">
+                <i-input v-model="haikongSendOrderInfoRecord.identityMobile" placeholder="订购人手机号"/>
+            </Form-item>
+            <Form-item label="订单产品信息,json字符串" prop="orderProductInfo">
+                <i-input v-model="haikongSendOrderInfoRecord.orderProductInfo" placeholder="订单产品信息,json字符串"/>
+            </Form-item>
+            <Form-item label="重发状态,0:等待重发 1:重发成功 2:重发失败 3:无需重发" prop="resendStatus">
+                <i-input v-model="haikongSendOrderInfoRecord.resendStatus" placeholder="重发状态,0:等待重发 1:重发成功 2:重发失败 3:无需重发"/>
+            </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>
+                <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>
+            </Form-item>
+        </i-form>
+	</Card>
+</div>
+
+<script src="${rc.contextPath}/js/haikong/haikongsendorderinforecord.js?_${date.systemTime}"></script>
+</body>
+</html>

部分文件因文件數量過多而無法顯示