Browse Source

Merge remote-tracking branch 'upsteam/master'

zhh 3 năm trước cách đây
mục cha
commit
472e3606ea
28 tập tin đã thay đổi với 344 bổ sung293 xóa
  1. 9 89
      kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java
  2. 1 1
      kmall-admin/src/main/java/com/kmall/admin/controller/OrderProcessRecordExternalController.java
  3. 1 1
      kmall-admin/src/main/java/com/kmall/admin/controller/SysOssController.java
  4. 10 6
      kmall-admin/src/main/java/com/kmall/admin/cuspay/biz/ali/AliCusDeclareBiz.java
  5. 15 4
      kmall-admin/src/main/java/com/kmall/admin/cuspay/biz/merch/MerchantNoticeBiz.java
  6. 13 5
      kmall-admin/src/main/java/com/kmall/admin/cuspay/biz/wx/WxCusDeclareBiz.java
  7. 9 30
      kmall-admin/src/main/java/com/kmall/admin/cuspay/biz/wx/WxCusDeclareQueryBiz.java
  8. 2 0
      kmall-admin/src/main/java/com/kmall/admin/cuspay/service/MerchNotiService.java
  9. 5 0
      kmall-admin/src/main/java/com/kmall/admin/cuspay/service/impl/MerchNotiServiceImpl.java
  10. 6 1
      kmall-admin/src/main/java/com/kmall/admin/cuspay/task/AliPayCuspayTask.java
  11. 3 0
      kmall-admin/src/main/java/com/kmall/admin/dao/cuspay/merch/MerchNotiMapper.java
  12. 2 1
      kmall-admin/src/main/java/com/kmall/admin/dao/vip/Mall2PointsRulesDao.java
  13. 1 0
      kmall-admin/src/main/java/com/kmall/admin/dto/Mall2RulesDto.java
  14. 1 1
      kmall-admin/src/main/java/com/kmall/admin/service/OrderService.java
  15. 1 10
      kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsServiceImpl.java
  16. 98 59
      kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java
  17. 2 23
      kmall-admin/src/main/java/com/kmall/admin/service/impl/ProductStoreRelaServiceImpl.java
  18. 2 2
      kmall-admin/src/main/java/com/kmall/admin/service/impl/vip/Mall2PointsRulesServiceImpl.java
  19. 2 0
      kmall-admin/src/main/java/com/kmall/admin/task/TestTask.java
  20. 96 2
      kmall-admin/src/main/resources/mybatis/mapper/cuspay/MerchNotiMapper.xml
  21. 2 2
      kmall-admin/src/main/resources/mybatis/mapper/vip/Mall2PointsRulesDao.xml
  22. 1 0
      kmall-admin/src/main/resources/spring/spring-shiro.xml
  23. 33 33
      kmall-admin/src/main/webapp/WEB-INF/page/mk/mall2RulesDetil.html
  24. 16 16
      kmall-admin/src/main/webapp/js/sale/sale.js
  25. 7 5
      kmall-admin/src/main/webapp/js/shop/offilineOrderList.js
  26. 4 0
      kmall-manager/src/main/resources/conf/db.properties
  27. 1 1
      kmall-manager/src/main/resources/conf/wx-global.properties
  28. 1 1
      kmall-manager/src/main/resources/conf/wx-mp.properties

+ 9 - 89
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("订单不存在");
+            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("订单已退款");
-        }
-
-        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);

+ 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/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("上传文件不能为空");

+ 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);
 
         // 持久化商户通知数据

+ 15 - 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,17 @@ 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);
             }
             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);
     }
 }

+ 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);
 }

+ 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);
 

+ 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

+ 1 - 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);
 

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

@@ -1165,16 +1165,7 @@ public class GoodsServiceImpl implements GoodsService {
                 // 数据库里面查询
                 BrandEntity queryBrand = brandService.queryByUniqueIdentifier(uniqueIdentifier);
                 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());

+ 98 - 59
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -2500,23 +2500,23 @@ public class OrderServiceImpl implements OrderService {
 
             processRecordEntity.setPaymentStartTime(new Date());
             // 判断是微信的支付码还是支付宝的支付码
-//            if (parCode.startsWith("28")) {
-//                // 支付宝支付
-//                try {
-//                    AliPay(user, parCode, order, processRecordEntity, orderWXPayRecordCurrent, store);
-//                } catch (Exception e) {
-//                    LOGGER.error("支付宝支付出现异常!订单号:【{}】", order.getOrder_sn(), e);
-//                    throw e;
-//                }
-//            } else {
-//                // 微信支付
-//                try {
-//                    wxPay(user, parCode, resultObj, order, processRecordEntity, orderWXPayRecordCurrent, store);
-//                } catch (Exception e) {
-//                    e.printStackTrace();
-//                    throw e;
-//                }
-//            }
+            if (parCode.startsWith("28")) {
+                // 支付宝支付
+                try {
+                    AliPay(user, parCode, order, processRecordEntity, orderWXPayRecordCurrent, store);
+                } catch (Exception e) {
+                    LOGGER.error("支付宝支付出现异常!订单号:【{}】", order.getOrder_sn(), e);
+                    throw e;
+                }
+            } else {
+                // 微信支付
+                try {
+                    wxPay(user, parCode, resultObj, order, processRecordEntity, orderWXPayRecordCurrent, store);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    throw e;
+                }
+            }
 
             processRecordEntity.setPaymentStartTime(new Date());
 
@@ -2749,9 +2749,9 @@ public class OrderServiceImpl implements OrderService {
             JedisUtil.del(Constants.WAREHOUSE_STOCK_MAP_KEY + "_" + storeId);
 
             // TODO 推单测试用
-            order.setPayApp("wxpay");
-            order.setRequest("1111111111111111111");
-            order.setResponse("2222222222222222222");
+//            order.setPayApp("wxpay");
+//            order.setRequest("1111111111111111111");
+//            order.setResponse("2222222222222222222");
             // 推单
             sendOrderInfoToVmcShop(order, orderGoodsVoList);
 
@@ -2872,7 +2872,7 @@ public class OrderServiceImpl implements OrderService {
         payInfoDTO.setPayMode("offline");
         payInfoDTO.setRequest(order.getRequest());
         payInfoDTO.setResponse(order.getResponse());
-        payInfoDTO.setOutTradeNo(order.getOrder_sn());
+        payInfoDTO.setOutTradeNo(order.getAliTradeNo());
         return payInfoDTO;
     }
 
@@ -2962,7 +2962,7 @@ public class OrderServiceImpl implements OrderService {
         LOGGER.info("调用阿里支付接口的同步返回结果:" + responseJson);
         order.setResponse(responseJson);
         order.setPayApp("alipay");
-
+        order.setAliTradeNo(aliPayMicropayApiResult.getTradeNo());
         // 修改订单状态
         //当支付成功时,修改订单,并把其他支付记录撤销
         if (AliPayUtil.AliPayTradeState.SUCC.getCode().equals(aliPayMicropayApiResult.getCode())) {
@@ -2974,19 +2974,7 @@ public class OrderServiceImpl implements OrderService {
             processRecordEntity.setPaymentSuccTime(aliPayMicropayApiResult.getGmtPayment());
             processRecordEntity.setPayTransactionId(aliPayMicropayApiResult.getTradeNo());
 
-            // 组装支付单信息
-            Map<String, Object> orderSendCusParams = new HashMap<>();
-            orderSendCusParams.put("merchSn", order.getMerchSn());
-            orderSendCusParams.put("orderSn", order.getOrder_sn());
-            orderSendCusParams.put("merchName", order.getMerchName());
-            orderSendCusParams.put("thirdPartyMerchCode", store.getThirdPartyMerchCode());
-            orderSendCusParams.put("thirdPartyMerchName", store.getThirdPartyMerchName());
-            orderSendCusParams.put("tradeNo", order.getAliTradeNo());
-            orderSendCusParams.put("amount", order.getActual_price());
-
-            // 将支付单信息发送到当前项目下的 cuspay
-            aliCusDeclareBiz.biz(orderSendCusParams);
-
+            sendAliPayInfo(order, store);
 
             // 系统繁忙
         } else if (AliPayUtil.AliPayTradeState.SERVER_FAIL.getCode().equals(aliPayMicropayApiResult.getCode())) {
@@ -3060,6 +3048,21 @@ public class OrderServiceImpl implements OrderService {
 
     }
 
+    private void sendAliPayInfo(OrderVo order, StoreEntity store) {
+        // 组装支付单信息
+        Map<String, Object> orderSendCusParams = new HashMap<>();
+        orderSendCusParams.put("merchSn", order.getMerchSn());
+        orderSendCusParams.put("orderSn", order.getOrder_sn());
+        orderSendCusParams.put("merchName", order.getMerchName());
+        orderSendCusParams.put("thirdPartyMerchCode", store.getThirdPartyMerchCode());
+        orderSendCusParams.put("thirdPartyMerchName", store.getThirdPartyMerchName());
+        orderSendCusParams.put("tradeNo", order.getAliTradeNo());
+        orderSendCusParams.put("amount", order.getActual_price());
+
+        // 将支付单信息发送到当前项目下的 cuspay
+        aliCusDeclareBiz.biz(orderSendCusParams);
+    }
+
     /**
      * 微信支付
      */
@@ -3084,16 +3087,19 @@ public class OrderServiceImpl implements OrderService {
         order.setRequest(payOriginInfoDTO.getRequest());
         order.setResponse(payOriginInfoDTO.getResponse());
         order.setPayApp("wxpay");
+        order.setFeeType(wechatMicropayApiResult.getFee_type());
+        order.setAliTradeNo(wechatMicropayApiResult.getTransaction_id());
         resultObj.put("shopName", store.getStoreName()); // 根据门店编号查询
         resultObj.put("userName", user.getUsername());
         // 修改订单状态
         //当支付成功时,修改订单,并把其他支付记录撤销
+        AtomicBoolean atomicBoolean = new AtomicBoolean(false);
         if (WechatUtil.WXTradeState.SUCCESS.getCode().equals(wechatMicropayApiResult.getTrade_state())) {
             //查询当前订单所有的支付记录
             List<OrderWXPayRecordEntity> orderWXPayRecordEntitys =
                     orderWXPayRecordService.getRecordsByOutTradeNo(order.getOrder_sn());
             LOGGER.info("wechatMicropayApiResult.getTransaction_id()" + wechatMicropayApiResult.getTransaction_id());
-
+            order.setPayTransactionId(wechatMicropayApiResult.getTransaction_id());
             Map orderRaram = Maps.newHashMap();
             orderRaram.put("payTransactionId", wechatMicropayApiResult.getTransaction_id());
             orderRaram.put("orderId", order.getId());
@@ -3106,20 +3112,7 @@ public class OrderServiceImpl implements OrderService {
                     new SimpleDateFormat("yyyyMMddHHmmss").parse(wechatMicropayApiResult.getTime_end()));
             processRecordEntity.setPayTransactionId(wechatMicropayApiResult.getTransaction_id());
 
-            // 组装支付单信息
-            Map<String, Object> orderSendCusParams = new HashMap<>();
-            orderSendCusParams.put("merchSn", order.getMerchSn());
-            orderSendCusParams.put("orderSn", order.getOrder_sn());
-            orderSendCusParams.put("merchName", order.getMerchName());
-            orderSendCusParams.put("thirdPartyMerchCode", store.getThirdPartyMerchCode());
-            orderSendCusParams.put("thirdPartyMerchName", store.getThirdPartyMerchName());
-            orderSendCusParams.put("outTradeNo", order.getMerchOrderSn());
-            orderSendCusParams.put("transactionId", order.getPayTransactionId());
-            orderSendCusParams.put("subOrderId", "");   // ccnet原逻辑没有对该字段赋值
-            orderSendCusParams.put("subOrderNo", order.getOrder_sn());
-
-            // 将支付单信息发送到当前项目下的 cuspay
-            wxCusDeclareBiz.biz(orderSendCusParams);
+            atomicBoolean.set(true);
 
             //用户支付中
         } else if (WechatUtil.WXTradeState.USERPAYING.getCode().equals(wechatMicropayApiResult.getTrade_state())) {
@@ -3129,6 +3122,7 @@ public class OrderServiceImpl implements OrderService {
             while (true) {
                 boolean flag = orderQuery(order, processRecordEntity);
                 if (flag) {
+                    atomicBoolean.set(true);
                     break;
                 }
                 try {
@@ -3166,6 +3160,37 @@ public class OrderServiceImpl implements OrderService {
         } else {
             throw new RuntimeException("未支付或支付失败,请联系管理员");
         }
+
+        if (atomicBoolean.get()) {
+            // 推送支付单
+            sendWxPayInfo(order, store);
+        }
+
+    }
+
+    private void sendWxPayInfo(OrderVo order, StoreEntity store) {
+        // 组装支付单信息
+        Map<String, Object> orderSendCusParams = new HashMap<>();
+        orderSendCusParams.put("merchSn", order.getMerchSn());
+        orderSendCusParams.put("orderSn", order.getOrder_sn());
+        orderSendCusParams.put("merchName", order.getMerchName());
+        orderSendCusParams.put("thirdPartyMerchCode", store.getThirdPartyMerchCode());
+        orderSendCusParams.put("thirdPartyMerchName", store.getThirdPartyMerchName());
+        orderSendCusParams.put("outTradeNo", order.getMerchOrderSn());
+        orderSendCusParams.put("transactionId", order.getPayTransactionId());
+        orderSendCusParams.put("subOrderId", "");   // ccnet原逻辑没有对该字段赋值
+        orderSendCusParams.put("subOrderNo", order.getOrder_sn());
+        orderSendCusParams.put("feeType", order.getFeeType());
+        int orderFee = order.getActual_price().multiply(new BigDecimal(100)).intValue();
+        orderSendCusParams.put("orderFee", orderFee);
+        orderSendCusParams.put("productFee", orderFee);
+        orderSendCusParams.put("transportFee", 0);
+        UserEntity userEntity = userService.queryByMobile(order.getMobile());
+        orderSendCusParams.put("certId", userEntity.getIdNo());
+        orderSendCusParams.put("name", order.getPay_name());
+
+        // 将支付单信息发送到当前项目下的 cuspay
+        wxCusDeclareBiz.biz(orderSendCusParams);
     }
 
     /**
@@ -3376,7 +3401,7 @@ public class OrderServiceImpl implements OrderService {
     // 收银端退款的代码
     @Override
     @Transactional
-    public synchronized R orderRefund(OrderEntity order, String sessionId, SysUserEntity user) throws Exception {
+    public synchronized R orderRefund(OrderEntity order) throws Exception {
         OrderEntity orderInfo = order;
         if (null == orderInfo) {
             return R.error("订单不存在");
@@ -3433,7 +3458,7 @@ public class OrderServiceImpl implements OrderService {
                 pickUpCodeService.update(pickUpCodeEntity);
                 //新增退款记录
                 //OrderRefundEntity orderRefund = orderRefundLog("wx453456511","wx453456566","26999",order.getId(),user.getUserId(),order.getMerchOrderSn());
-                OrderRefundEntity orderRefund = orderRefundLog(result.getRefund_id(),result.getOut_trade_no(),result.getRefund_fee(),order.getId(),user.getUserId(),order.getMerchOrderSn());
+                OrderRefundEntity orderRefund = orderRefundLog(result.getRefund_id(),result.getOut_trade_no(),result.getRefund_fee(),order.getId(),order.getMerchOrderSn(),payFlag);
                 orderRefundDao.save(orderRefund);
                 //还原库存,调用免税mall接口退款和积分回退接口
                 restoreInventoryMsMall(order);
@@ -3462,12 +3487,11 @@ public class OrderServiceImpl implements OrderService {
             pickUpCodeEntity.setPickUpCodeStatus(Dict.PickUpCodeStatusEnum.item_3.getStatus());
             pickUpCodeService.update(pickUpCodeEntity);
             //新增退款记录
-            OrderRefundEntity orderRefund = orderRefundLog(userRefund.getTradeNo(),userRefund.getOutTradeNo(),userRefund.getRefundFee(),order.getId(),user.getUserId(),order.getMerchOrderSn());
+            OrderRefundEntity orderRefund = orderRefundLog(userRefund.getTradeNo(),userRefund.getOutTradeNo(),userRefund.getRefundFee(),order.getId(),order.getMerchOrderSn(),payFlag);
             orderRefundDao.save(orderRefund);
             //还原库存,调用免税mall接口退款和积分回退接口
             restoreInventoryMsMall(order);
         }
-        //int ss = 1/0;
         return R.ok("退款成功");
     }
 
@@ -3478,21 +3502,28 @@ public class OrderServiceImpl implements OrderService {
      * @param OutTradeNo
      * @param refundFee
      * @param orderId
-     * @param userId
      * @param merchOrderSn
      * @return
      */
-    private OrderRefundEntity orderRefundLog(String refundId,String OutTradeNo,String refundFee,Long orderId,Long userId,String merchOrderSn){
+    private OrderRefundEntity orderRefundLog(String refundId,String OutTradeNo,String refundFee,Long orderId,String merchOrderSn,String payFlag){
+
         OrderRefundEntity orderRefund = new OrderRefundEntity();
         orderRefund.setRefundId(refundId);
         orderRefund.setOutRefundNo(OutTradeNo);
-        orderRefund.setRefundMoney(BigDecimal.valueOf(Long.valueOf(refundFee)).divide(Constant.ONE_HUNDRED));
+        if(Dict.payFlag.item_weixin.getItem().equals(payFlag)){
+            orderRefund.setRefundMoney(BigDecimal.valueOf(Long.valueOf(refundFee)).divide(Constant.ONE_HUNDRED));
+        }else{
+            orderRefund.setRefundMoney(new BigDecimal(refundFee));
+        }
         orderRefund.setRefundStatus(Integer.parseInt(Dict.RefundStatus.item_2.getItem()));//退款处理中
         orderRefund.setModTime(new Date());
         orderRefund.setRefundTime(new Date());
         orderRefund.setOrderId(orderId.intValue());
-        orderRefund.setUserId(userId.intValue());
-        orderRefund.setRefundId(userId + "");
+        SysUserEntity user = ShiroUtils.getUserEntity();
+        if(user!=null){
+            orderRefund.setUserId(user.getUserId().intValue());
+            orderRefund.setRefundId(user.getUserId() + "");
+        }
         orderRefund.setCreateTime(new Date());
         Integer sum = orderDao.queryObjectByMerchOrderSnHkMall(merchOrderSn);
         if (sum > 1) {//多条订单
@@ -5183,6 +5214,14 @@ public class OrderServiceImpl implements OrderService {
             orderSendCusParams.put("transactionId", orderEntity.getPayTransactionId());
             orderSendCusParams.put("subOrderId", "");   // ccnet原逻辑没有对该字段赋值
             orderSendCusParams.put("subOrderNo", orderEntity.getOrderSn());
+            orderSendCusParams.put("feeType", "CNY");
+            int orderFee = orderEntity.getActualPrice().multiply(new BigDecimal(100)).intValue();
+            orderSendCusParams.put("orderFee", orderFee);
+            orderSendCusParams.put("productFee", orderFee);
+            orderSendCusParams.put("transportFee", 0);
+            UserEntity userEntity = userService.queryByMobile(orderEntity.getMobile());
+            orderSendCusParams.put("certId", userEntity.getIdNo());
+            orderSendCusParams.put("name", orderEntity.getPayName());
 
             // 将支付单信息发送到当前项目下的 cuspay
             wxCusDeclareBiz.biz(orderSendCusParams);

+ 2 - 23
kmall-admin/src/main/java/com/kmall/admin/service/impl/ProductStoreRelaServiceImpl.java

@@ -2,14 +2,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.GoodsDto;
 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;
@@ -1010,16 +1007,7 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
                 // 数据库里面查询
                 BrandEntity queryBrand = brandService.queryByUniqueIdentifier(uniqueIdentifier);
                 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());
@@ -1034,16 +1022,7 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
             // 数据库里面查询
             BrandEntity queryBrand = brandService.queryByUniqueIdentifier(uniqueIdentifier);
             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());

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

@@ -126,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;
 
     }

+ 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 {
     }
 
 
+
 }

+ 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},

+ 2 - 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,7 @@
 			 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>

+ 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

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

@@ -38,40 +38,40 @@
 	    <div id="jqGridPager"></div>
     </Card>
 
-    <Card v-show="!showList">
-        <p slot="title">{{title}}</p>
-		<i-form ref="formValidate" :model="mkActivitiesHalfPrice" :rules="ruleValidate" :label-width="80">
-<!--            <Form-item label="积分规则类型" prop="productName">-->
-<!--                <i-input v-model="mkActivitiesHalfPrice.productName" placeholder="产品中文名"/>-->
+<!--    <Card v-show="!showList">-->
+<!--        <p slot="title">{{title}}</p>-->
+<!--		<i-form ref="formValidate" :model="mkActivitiesHalfPrice" :rules="ruleValidate" :label-width="80">-->
+<!--&lt;!&ndash;            <Form-item label="积分规则类型" prop="productName">&ndash;&gt;-->
+<!--&lt;!&ndash;                <i-input v-model="mkActivitiesHalfPrice.productName" placeholder="产品中文名"/>&ndash;&gt;-->
+<!--&lt;!&ndash;            </Form-item>&ndash;&gt;-->
+<!--            <Form-item label="商品条码" prop="goodsSn">-->
+<!--                <i-select v-model="mall2PointsRules.pointsType" placeholder="商品条码" label-in-value>-->
+<!--                    <i-option v-for="category in categories" :value="category.value"-->
+<!--                              :key="category.value">{{category.name}}-->
+<!--                    </i-option>-->
+<!--                </i-select>-->
 <!--            </Form-item>-->
-            <Form-item label="商品条码" prop="goodsSn">
-                <i-select v-model="mall2PointsRules.pointsType" placeholder="商品条码" label-in-value>
-                    <i-option v-for="category in categories" :value="category.value"
-                              :key="category.value">{{category.name}}
-                    </i-option>
-                </i-select>
-            </Form-item>
-            <Form-item label="门店名称" prop="goodsSn">
-                <i-select v-model="mall2PointsRules.pointsType" placeholder="门店名称" label-in-value>
-                    <i-option v-for="category in categories2" :value="category.value"
-                              :key="category.value">{{category.name}}
-                    </i-option>
-                </i-select>
-            </Form-item>
-            <Form-item label="商品类别" prop="goodsSn">
-                <i-select v-model="mall2PointsRules.pointsType" placeholder="商品类别" label-in-value>
-                    <i-option v-for="category in categories3" :value="category.value"
-                              :key="category.value">{{category.name}}
-                    </i-option>
-                </i-select>
-            </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>
+<!--            <Form-item label="门店名称" prop="goodsSn">-->
+<!--                <i-select v-model="mall2PointsRules.pointsType" placeholder="门店名称" label-in-value>-->
+<!--                    <i-option v-for="category in categories2" :value="category.value"-->
+<!--                              :key="category.value">{{category.name}}-->
+<!--                    </i-option>-->
+<!--                </i-select>-->
+<!--            </Form-item>-->
+<!--            <Form-item label="商品类别" prop="goodsSn">-->
+<!--                <i-select v-model="mall2PointsRules.pointsType" placeholder="商品类别" label-in-value>-->
+<!--                    <i-option v-for="category in categories3" :value="category.value"-->
+<!--                              :key="category.value">{{category.name}}-->
+<!--                    </i-option>-->
+<!--                </i-select>-->
+<!--            </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/mk/mall2RulesDetil.js?_${date.systemTime}"></script>

+ 16 - 16
kmall-admin/src/main/webapp/js/sale/sale.js

@@ -1450,11 +1450,11 @@ function openWebSocket() {
         //无法使用wss,浏览器打开WebSocket时报错
         //ws对应http、wss对应https。
         //kmall测试环境
-        // webSocket = new WebSocket("ws://183.62.225.124:3080/ws/server/"+storeId);
+        webSocket = new WebSocket("ws://183.62.225.124:3080/ws/server/"+storeId);
         //kmall正式环境
-        //webSocket = new WebSocket("ws://8.135.102.238:8080/ws/server/"+storeId);
+        // webSocket = new WebSocket("ws://8.135.102.238:8080/ws/server/"+storeId);
         //kmall本地环境
-        webSocket = new WebSocket("ws://127.0.0.1:8089/ws/server/"+storeId);
+        // webSocket = new WebSocket("ws://127.0.0.1:8089/ws/server/"+storeId);
         // webSocket = new WebSocket("wss://cb.k1net.cn/ws/server/"+storeId);
         if (webSocket.readyState === webSocket.CONNECTING) {
             console.log('1.连接正在打开......');
@@ -1472,19 +1472,19 @@ function openWebSocket() {
         };
         //收到消息事件
         webSocket.onmessage = function (msg) {
-            // var data = Object.assign({}, JSON.parse(msg.data));
-            // console.log('3.接收到服务端信息......data:'+data);
-            // vm.sessionId = data.sessionId;
-            // vm.pickUpCodeList = [];
-            // if(data.pickUpCodeList.length > 0){
-            //     for(var i = 0 ; i < data.pickUpCodeList.length ; i++){
-            //         // console.log(data.pickUpCodeList[i].storeId);
-            //         if(data.pickUpCodeList[i].storeId === storeId){
-            //             vm.pickUpCodeList.push(data.pickUpCodeList[i]);
-            //         }
-            //     }
-            // }
-            // vm.delayResponse = data.delayResponse;
+            var data = Object.assign({}, JSON.parse(msg.data));
+            console.log('3.接收到服务端信息......data:'+data);
+            vm.sessionId = data.sessionId;
+            vm.pickUpCodeList = [];
+            if(data.pickUpCodeList.length > 0){
+                for(var i = 0 ; i < data.pickUpCodeList.length ; i++){
+                    // console.log(data.pickUpCodeList[i].storeId);
+                    if(data.pickUpCodeList[i].storeId === storeId){
+                        vm.pickUpCodeList.push(data.pickUpCodeList[i]);
+                    }
+                }
+            }
+            vm.delayResponse = data.delayResponse;
         };
         //连接关闭事件
         webSocket.onclose = function () {

+ 7 - 5
kmall-admin/src/main/webapp/js/shop/offilineOrderList.js

@@ -443,12 +443,14 @@ let vm = new Vue({
                     url: '../order/offilineRefund',
                     data: params,
                     success: function (r) {
-                        if (r.code === 0) {
-                            alert('退款成功', function (index) {
-                                vm.reload();
-                            });
+                        if (r.code == 0) {
+                            vm.canRefund = true;
+                            alert("退款成功")
+                        } else if (r.code == 500) {
+                            vm.canRefund = true;
+                            alert(r.msg)
                         } else {
-                            alert(r.msg);
+                            alert("退款失败,请联系管理员");
                         }
                     }
                 });

+ 4 - 0
kmall-manager/src/main/resources/conf/db.properties

@@ -13,6 +13,10 @@ jdbc.password=G$Debpk^pn
 #jdbc.url=jdbc:mysql://:3306/kmall-haikong?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
 #jdbc.username=kmall_cw
 #jdbc.password=eb6zHJg%x3
+#\u672C\u5730\u6D4B\u8BD5\u5E93
+#jdbc.url=jdbc:mysql://192.168.1.202:3306/kmall-haikong?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
+#jdbc.username=root
+#jdbc.password=t2GlpD6z
 
 
 # \u901A\u7528\u914D\u7F6E

+ 1 - 1
kmall-manager/src/main/resources/conf/wx-global.properties

@@ -1,7 +1,7 @@
 ########## \u5FAE\u4FE1\u5C0F\u7A0B\u5E8F\u914D\u7F6E ##########
 
 # [dev, prod]
-pay.wx.global.env = prod
+pay.wx.global.env = dev
 
 
 #========== \u5F00\u53D1\u73AF\u5883 ==========

+ 1 - 1
kmall-manager/src/main/resources/conf/wx-mp.properties

@@ -1,7 +1,7 @@
 ########## \u5FAE\u4FE1\u5C0F\u7A0B\u5E8F\u914D\u7F6E ##########
 
 # [dev, prod]
-pay.wx.env=prod
+pay.wx.env=dev
 
 
 #========== \u5F00\u53D1\u73AF\u5883 ==========