Browse Source

订单修改

liweifan 3 years ago
parent
commit
4eed5aec03

+ 3 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/sdk/WithdrawSdk.java

@@ -101,7 +101,7 @@ public class WithdrawSdk {
             if (StringUtils.equals(jsonObject.getString("return_code"), "T")) {
             if (StringUtils.equals(jsonObject.getString("return_code"), "T")) {
                 return true;
                 return true;
             }
             }
-            throw new ThirdpartyException("合同签署失败:{}", jsonObject.getString("content"));
+            throw new ThirdpartyException("合同签署失败:{}", jsonObject.getString("return_message"));
         } catch (IOException e) {
         } catch (IOException e) {
             logger.error("请求[合同签署]接口报错", e);
             logger.error("请求[合同签署]接口报错", e);
             throw new ThirdpartyException("请求[合同签署]接口报错:{}", e.getMessage());
             throw new ThirdpartyException("请求[合同签署]接口报错:{}", e.getMessage());
@@ -203,6 +203,8 @@ public class WithdrawSdk {
             String returnCode = String.valueOf(mapTypes.get("return_code"));
             String returnCode = String.valueOf(mapTypes.get("return_code"));
             if (returnCode.equals("T")){
             if (returnCode.equals("T")){
                 return HttpResponseResult.succeed(true);
                 return HttpResponseResult.succeed(true);
+            }else{
+                return HttpResponseResult.failed(String.valueOf(mapTypes.get("return_message")));
             }
             }
         } catch (IOException e) {
         } catch (IOException e) {
             logger.info("发送失败:{}", e);
             logger.info("发送失败:{}", e);

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserOrderRefundService.java

@@ -64,7 +64,7 @@ public interface UserOrderRefundService extends IService<UserOrderRefund>  {
 	HttpResponseResult<UserOrderRefundBill> orderRefund(String orderNo, String reason);
 	HttpResponseResult<UserOrderRefundBill> orderRefund(String orderNo, String reason);
 
 
 	/**
 	/**
-	 * 交易失败退款(退已完成的订单)
+	 * 交易失败退款(交易原路退还)
 	 * @param data
 	 * @param data
 	 * @param reason
 	 * @param reason
 	 * @return
 	 * @return

+ 11 - 8
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java

@@ -1668,14 +1668,6 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
                 List<Long> ids = practiceList.stream().map(CourseScheduleStudentVo::getCourseId).collect(Collectors.toList());
                 List<Long> ids = practiceList.stream().map(CourseScheduleStudentVo::getCourseId).collect(Collectors.toList());
                 repliedDao.deleteBatch(ids);
                 repliedDao.deleteBatch(ids);
                 repliedDao.insertBatch(practiceList);
                 repliedDao.insertBatch(practiceList);
-
-                //清除缓存
-                for (CourseScheduleStudentVo practice : practiceList) {
-                    //清除学生统计缓存
-                    redissonClient.getBucket(CacheNameEnum.STUDENT_TOTAL.getRedisKey(practice.getStudentId())).delete();
-                    //清除老师统计缓存
-                    redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(practice.getTeacherId())).delete();
-                }
             }
             }
 
 
             //更新琴房课学生最近结课时间
             //更新琴房课学生最近结课时间
@@ -1717,6 +1709,17 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
                 pianoRoomTimeDao.updateBatch(roomTimeList);
                 pianoRoomTimeDao.updateBatch(roomTimeList);
             }
             }
 
 
+            List<CourseScheduleStudentVo> courseList = userList.stream()
+                    .filter(s -> (s.getType().equals(CourseScheduleEnum.PRACTICE.getCode()) || s.getType().equals(CourseScheduleEnum.PIANO_ROOM_CLASS.getCode()) ))
+                    .collect(Collectors.toList());
+
+            //清除缓存
+            for (CourseScheduleStudentVo practice : courseList) {
+                //清除学生统计缓存
+                redissonClient.getBucket(CacheNameEnum.STUDENT_TOTAL.getRedisKey(practice.getStudentId())).delete();
+                //清除老师统计缓存
+                redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(practice.getTeacherId())).delete();
+            }
             //课程状态更新为COMPLETE
             //课程状态更新为COMPLETE
             baseMapper.updateEndTime(userList);
             baseMapper.updateEndTime(userList);
         }
         }

+ 6 - 9
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderPaymentServiceImpl.java

@@ -23,6 +23,7 @@ import com.yonge.toolset.payment.base.enums.PayChannelEnum;
 import com.yonge.toolset.payment.base.enums.PaymentClientEnum;
 import com.yonge.toolset.payment.base.enums.PaymentClientEnum;
 import com.yonge.toolset.payment.base.enums.TradeStatusEnum;
 import com.yonge.toolset.payment.base.enums.TradeStatusEnum;
 import com.yonge.toolset.payment.base.model.*;
 import com.yonge.toolset.payment.base.model.*;
+import com.yonge.toolset.payment.base.model.callback.ExecutePaymentCallBack;
 import com.yonge.toolset.payment.base.model.callback.PaymentCallBack;
 import com.yonge.toolset.payment.base.model.callback.PaymentCallBack;
 import com.yonge.toolset.payment.core.props.PaymentProperties;
 import com.yonge.toolset.payment.core.props.PaymentProperties;
 import com.yonge.toolset.payment.core.service.PaymentClient;
 import com.yonge.toolset.payment.core.service.PaymentClient;
@@ -95,7 +96,6 @@ public class UserOrderPaymentServiceImpl extends ServiceImpl<UserOrderPaymentDao
         if (null == orderPayment) {
         if (null == orderPayment) {
             return true;
             return true;
         }
         }
-
         //更新付款单
         //更新付款单
         orderPayment.setStatus(TradeStatusEnum.close);
         orderPayment.setStatus(TradeStatusEnum.close);
         orderPayment.setPayFailMsg(StringUtil.isEmpty(reason) ? "交易取消" : reason);
         orderPayment.setPayFailMsg(StringUtil.isEmpty(reason) ? "交易取消" : reason);
@@ -129,9 +129,8 @@ public class UserOrderPaymentServiceImpl extends ServiceImpl<UserOrderPaymentDao
         return true;
         return true;
     }
     }
 
 
-
     @Override
     @Override
-    public HttpResponseResult<OrderPayRes> createOrderPayment(OrderPayReq payReq, UserOrderVo detail) throws Exception {
+    public HttpResponseResult<OrderPayRes> createOrderPayment(OrderPayReq payReq, UserOrderVo detail) {
         OrderPayRes orderPayRes = new OrderPayRes();
         OrderPayRes orderPayRes = new OrderPayRes();
         //支付订单号生成
         //支付订单号生成
         Long paymentNo = idGeneratorService.generatorId("paymentNo");
         Long paymentNo = idGeneratorService.generatorId("paymentNo");
@@ -173,6 +172,7 @@ public class UserOrderPaymentServiceImpl extends ServiceImpl<UserOrderPaymentDao
                 payment.setExpend(expend);
                 payment.setExpend(expend);
             }
             }
         }
         }
+        closePaymentAndReqOpen(payment.getOrderNo(), "用户发起了新的付款请求");
 
 
         //付款请求
         //付款请求
         BaseResult<Payment> paymentResBaseResult = paymentClient.executePayment(payment);
         BaseResult<Payment> paymentResBaseResult = paymentClient.executePayment(payment);
@@ -205,7 +205,7 @@ public class UserOrderPaymentServiceImpl extends ServiceImpl<UserOrderPaymentDao
             } else if (TradeStatusEnum.failed.equals(data.getStatus())) {//支付失败
             } else if (TradeStatusEnum.failed.equals(data.getStatus())) {//支付失败
                 paymentFailedHandle(data, data.getErrMsg());
                 paymentFailedHandle(data, data.getErrMsg());
             }
             }
-        }else if (!userOrderVo.getStatus().equals(OrderStatusEnum.PAID)) {
+        } else if (!userOrderVo.getStatus().equals(OrderStatusEnum.PAID)) {
             //原路退还
             //原路退还
             orderRefundService.orderFailRefund(data, userOrderVo.getOrderNo(), "订单已超时,金额原路退回");
             orderRefundService.orderFailRefund(data, userOrderVo.getOrderNo(), "订单已超时,金额原路退回");
         }
         }
@@ -271,9 +271,6 @@ public class UserOrderPaymentServiceImpl extends ServiceImpl<UserOrderPaymentDao
         }
         }
         if (detail.getStatus().equals(OrderStatusEnum.WAIT_PAY) || detail.getStatus().equals(OrderStatusEnum.PAYING)) {
         if (detail.getStatus().equals(OrderStatusEnum.WAIT_PAY) || detail.getStatus().equals(OrderStatusEnum.PAYING)) {
             userOrderService.orderSuccess(detail, data);
             userOrderService.orderSuccess(detail, data);
-        } else if (!detail.getStatus().equals(OrderStatusEnum.PAID)) {
-            //原路退还
-            orderRefundService.orderFailRefund(data, detail.getOrderNo(), "订单已超时,金额原路退回");
         }
         }
 
 
         //处理支付完成签署协议
         //处理支付完成签署协议
@@ -349,8 +346,8 @@ public class UserOrderPaymentServiceImpl extends ServiceImpl<UserOrderPaymentDao
         if (null == orderPayment) {
         if (null == orderPayment) {
             return;
             return;
         }
         }
-        orderPayment.setStatus(TradeStatusEnum.failed);
-        orderPayment.setPayFailMsg("支付关单回调失败-" + data.getErrMsg());
+        orderPayment.setCloseStatus(TradeStatusEnum.failed);
+        orderPayment.setCloseFailMsg("支付关单回调失败-" + data.getErrMsg());
         orderPayment.setUpdateTime(new Date());
         orderPayment.setUpdateTime(new Date());
         updateById(orderPayment);
         updateById(orderPayment);
     }
     }

+ 105 - 24
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java

@@ -2,8 +2,10 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.enums.*;
 import com.yonge.cooleshow.biz.dal.enums.*;
+import com.yonge.toolset.payment.base.model.callback.ExecutePaymentCallBack;
 import com.yonge.toolset.payment.util.DistributedLock;
 import com.yonge.toolset.payment.util.DistributedLock;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
@@ -120,7 +122,6 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         //视频课购买
         //视频课购买
         orderSuccess.put(GoodTypeEnum.VIDEO, recordService::buyVideoCourseSuccess);
         orderSuccess.put(GoodTypeEnum.VIDEO, recordService::buyVideoCourseSuccess);
 
 
-
         //曲目购买
         //曲目购买
         orderSuccess.put(GoodTypeEnum.MUSIC, musicSheetService::buyMusicSheetSuccess);
         orderSuccess.put(GoodTypeEnum.MUSIC, musicSheetService::buyMusicSheetSuccess);
 
 
@@ -192,11 +193,8 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
                 && !OrderStatusEnum.PAYING.equals(detail.getStatus())) {
                 && !OrderStatusEnum.PAYING.equals(detail.getStatus())) {
             return HttpResponseResult.failed("订单已关闭");
             return HttpResponseResult.failed("订单已关闭");
         }
         }
-        Boolean close = orderPaymentService.closePaymentAndReqOpen(payReq.getOrderNo(), "用户取消订单");
-        if (close) {
-            //关闭订单
-            doOrderCancel(detail, OrderStatusEnum.CLOSE, StringUtil.isEmpty(payReq.getReason()) ? "用户取消订单" : payReq.getReason());
-        }
+        //关闭或完成订单
+        closeOrSuccessOrder(payReq.getOrderNo());
         return HttpResponseResult.succeed(true);
         return HttpResponseResult.succeed(true);
     }
     }
 
 
@@ -259,6 +257,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         Long orderNo = idGeneratorService.generatorId("orderNo");
         Long orderNo = idGeneratorService.generatorId("orderNo");
         orderReq.setOrderNo(Long.toString(orderNo));
         orderReq.setOrderNo(Long.toString(orderNo));
         //验证参数,必须验证参数
         //验证参数,必须验证参数
+        BigDecimal actualPrice = BigDecimal.ZERO;
         for (OrderReq.OrderReqInfo info : orderReq.getOrderInfos()) {
         for (OrderReq.OrderReqInfo info : orderReq.getOrderInfos()) {
             Function<OrderReq.OrderReqInfo, HttpResponseResult<OrderCreateRes>> createFunction = orderCreate.get(info.getGoodType());
             Function<OrderReq.OrderReqInfo, HttpResponseResult<OrderCreateRes>> createFunction = orderCreate.get(info.getGoodType());
             if (Objects.isNull(createFunction)) {
             if (Objects.isNull(createFunction)) {
@@ -280,10 +279,18 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
             BigDecimal couponAmount = BigDecimal.ZERO;
             BigDecimal couponAmount = BigDecimal.ZERO;
             createRes.setActualPrice(createRes.getExpectPrice().subtract(couponAmount).setScale(2, RoundingMode.HALF_UP));
             createRes.setActualPrice(createRes.getExpectPrice().subtract(couponAmount).setScale(2, RoundingMode.HALF_UP));
             createRes.setCouponAmount(couponAmount);
             createRes.setCouponAmount(couponAmount);
+            //累计实际支付金额
+            actualPrice = actualPrice.add(createRes.getActualPrice());
 
 
             info.setCreateRes(createRes);
             info.setCreateRes(createRes);
         }
         }
 
 
+        //验证金额
+        if (actualPrice.setScale(2, RoundingMode.HALF_UP)
+                .compareTo(orderReq.getActualPrice().setScale(2, RoundingMode.HALF_UP)) != 0) {
+            return HttpResponseResult.failed("订单金额校验不通过");
+        }
+
         //验证成功后,订单入库
         //验证成功后,订单入库
         UserOrderVo orderVo = insertOrder(orderReq);
         UserOrderVo orderVo = insertOrder(orderReq);
 
 
@@ -322,12 +329,8 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         try {
         try {
             return doOrderPay(payReq, detail);
             return doOrderPay(payReq, detail);
         } catch (BizException e) {
         } catch (BizException e) {
-            //入订单付款表,同时修改订单状态
-            doOrderCancel(detail, OrderStatusEnum.FAIL, e.getMessage());
             return HttpResponseResult.failed(e.getMessage());
             return HttpResponseResult.failed(e.getMessage());
         } catch (Exception e) {
         } catch (Exception e) {
-            //入订单付款表,同时修改订单状态
-            doOrderCancel(detail, OrderStatusEnum.FAIL, e.getMessage());
             return HttpResponseResult.failed("付款失败");
             return HttpResponseResult.failed("付款失败");
         }
         }
     }
     }
@@ -370,6 +373,10 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
 
 
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     void pollingCancelOrder(String orderNo) {
     void pollingCancelOrder(String orderNo) {
+        closeOrSuccessOrder(orderNo);
+    }
+
+    private void closeOrSuccessOrder(String orderNo) {
         UserOrderVo detail = detail(orderNo, null);
         UserOrderVo detail = detail(orderNo, null);
         if (null == detail) {
         if (null == detail) {
             return;
             return;
@@ -388,11 +395,29 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
             param.setId(detail.getTransNo());
             param.setId(detail.getTransNo());
             param.setPaymentNo(detail.getPaymentNo());
             param.setPaymentNo(detail.getPaymentNo());
             BaseResult<Payment> res = paymentClient.queryPayment(param);
             BaseResult<Payment> res = paymentClient.queryPayment(param);
+            Payment queryPaymentData = res.getData();
+
             //支付成功
             //支付成功
-            if (res.getStatus() && TradeStatusEnum.succeeded.getCode().equals(res.getData().getStatus())
+            if (res.getStatus() && TradeStatusEnum.succeeded.getCode().equals(queryPaymentData.getStatus())
                     && (OrderStatusEnum.WAIT_PAY.equals(detail.getStatus()) || OrderStatusEnum.PAYING.equals(detail.getStatus()))) {
                     && (OrderStatusEnum.WAIT_PAY.equals(detail.getStatus()) || OrderStatusEnum.PAYING.equals(detail.getStatus()))) {
                 //订单已经完成,则完成订单
                 //订单已经完成,则完成订单
                 orderSuccess(detail);
                 orderSuccess(detail);
+                //付款单改为已完成状态
+                userOrderPayment.setTransNo(queryPaymentData.getId());
+                userOrderPayment.setStatus(TradeStatusEnum.succeeded);
+                userOrderPayment.setUpdateTime(new Date());
+                userOrderPayment.setArrivalTime(new Date());
+                userOrderPayment.setBackPayAmt(
+                        new BigDecimal(queryPaymentData.getPayAmt()));
+
+                ExecutePaymentCallBack executePaymentCallBack = queryPaymentData.getExecutePaymentCallBack();
+                if (null != executePaymentCallBack) {
+                    userOrderPayment.setArrivalTime(executePaymentCallBack.getTradeTime());
+                    userOrderPayment.setBackPayAmt(
+                            new BigDecimal(executePaymentCallBack.getPayAmt()));
+                    userOrderPayment.setFeeAmt(new BigDecimal(executePaymentCallBack.getFeeAmt()));
+                }
+                orderPaymentService.updateById(userOrderPayment);
             } else {
             } else {
                 //关闭订单付款单
                 //关闭订单付款单
                 Boolean close = orderPaymentService.closePaymentAndReqOpen(orderNo, "订单超时");
                 Boolean close = orderPaymentService.closePaymentAndReqOpen(orderNo, "订单超时");
@@ -401,21 +426,79 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
                     doOrderCancel(detail, OrderStatusEnum.CLOSE, "订单超时");
                     doOrderCancel(detail, OrderStatusEnum.CLOSE, "订单超时");
                 }
                 }
             }
             }
+        } else if (TradeStatusEnum.succeeded.equals(userOrderPayment.getStatus())) {
+            //订单已经完成,则完成订单
+            orderSuccess(detail);
+        } else if (TradeStatusEnum.failed.equals(userOrderPayment.getStatus())) {
+            //入订单付款表,同时修改订单状态
+            doOrderCancel(detail, OrderStatusEnum.FAIL, userOrderPayment.getPayFailMsg());
+        } else if (TradeStatusEnum.close.equals(userOrderPayment.getStatus())) {
+            //关闭订单
+            doOrderCancel(detail, OrderStatusEnum.CLOSE, "订单超时");
+        }
+    }
+
+    /**
+     * 判断订单是否完成,若订单已完成则完成订单
+     *
+     * @param orderNo
+     * @return 可以继续支付 true
+     */
+    private Boolean checkAndSuccessOrder(String orderNo) {
+        UserOrderVo detail = detail(orderNo, null);
+        if (null == detail) {
+            return true;
+        }
+        if (!OrderStatusEnum.WAIT_PAY.equals(detail.getStatus())
+                && !OrderStatusEnum.PAYING.equals(detail.getStatus())) {
+            return false;
+        }
+        UserOrderPayment userOrderPayment = orderPaymentService.detailByTransNoOrPaymentNo(detail.getTransNo(), detail.getPaymentNo());
+        if (null == userOrderPayment) {
+            return true;
+        }
+
+        Payment param = new Payment(detail.getOpenType(),
+                PaymentClientEnum.valueOf(userOrderPayment.getPaymentClient()), detail.getPayChannel());
+        param.setId(detail.getTransNo());
+        param.setPaymentNo(detail.getPaymentNo());
+        BaseResult<Payment> res = paymentClient.queryPayment(param);
+        Payment queryPaymentData = res.getData();
+
+        //支付成功
+        if (res.getStatus() && TradeStatusEnum.succeeded.getCode().equals(queryPaymentData.getStatus())
+                && (OrderStatusEnum.WAIT_PAY.equals(detail.getStatus()) || OrderStatusEnum.PAYING.equals(detail.getStatus()))) {
+            //订单已经完成,则完成订单
+            orderSuccess(detail, null);
+            //付款单改为已完成状态
+            userOrderPayment.setTransNo(queryPaymentData.getId());
+            userOrderPayment.setStatus(TradeStatusEnum.succeeded);
+            userOrderPayment.setUpdateTime(new Date());
+            userOrderPayment.setArrivalTime(new Date());
+            userOrderPayment.setBackPayAmt(
+                    new BigDecimal(queryPaymentData.getPayAmt()));
+
+            ExecutePaymentCallBack executePaymentCallBack = queryPaymentData.getExecutePaymentCallBack();
+            if (null != executePaymentCallBack) {
+                userOrderPayment.setArrivalTime(executePaymentCallBack.getTradeTime());
+                userOrderPayment.setBackPayAmt(
+                        new BigDecimal(executePaymentCallBack.getPayAmt()));
+                userOrderPayment.setFeeAmt(new BigDecimal(executePaymentCallBack.getFeeAmt()));
+            }
+            orderPaymentService.updateById(userOrderPayment);
+            return false;
         }
         }
+        return true;
     }
     }
 
 
     private HttpResponseResult<OrderPayRes> doOrderPay(OrderPayReq payReq, UserOrderVo detail) throws Exception {
     private HttpResponseResult<OrderPayRes> doOrderPay(OrderPayReq payReq, UserOrderVo detail) throws Exception {
-        /*UserOrderPayment orderPayment = orderPaymentService.detailByOrderNo(payReq.getOrderNo(), payReq.getPayChannel(), TradeStatusEnum.pending);
-        //当前渠道已经有创建支付请求
-        if (null != orderPayment && !StringUtil.isEmpty(orderPayment.getPayInfo())) {
-            OrderPayRes orderPayRes = new OrderPayRes();
-            orderPayRes.setPay_amt(orderPayment.getPayAmt().toString());
-            orderPayRes.setPay_info(orderPayment.getPayInfo());
-            orderPayRes.setPayChannel(orderPayment.getPayChannel());
-            orderPayRes.setPaymentNo(orderPayment.getPaymentNo());
-            return HttpResponseResult.succeed(orderPayRes);
-        }*/
-        return orderPaymentService.createOrderPayment(payReq, detail);
+        Boolean aBoolean = checkAndSuccessOrder(payReq.getOrderNo());
+        if (aBoolean) {
+            return orderPaymentService.createOrderPayment(payReq, detail);
+        } else {
+            return HttpResponseResult.failed("订单状态异常");
+        }
+
     }
     }
 
 
     /***
     /***
@@ -679,13 +762,11 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
             //清除商家统计缓存
             //清除商家统计缓存
             Long merchId = orderDetailVo.getMerchId();
             Long merchId = orderDetailVo.getMerchId();
             if (merchId != null && merchId != 0) {
             if (merchId != null && merchId != 0) {
-                //redissonClient.getBucket(CacheNameEnum.TEACHER_SUBJECT_ITEM.getRedisKey(merchId)).delete();
                 redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(merchId)).delete();
                 redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(merchId)).delete();
             }
             }
         }
         }
         //清除买家统计缓存
         //清除买家统计缓存
         if (ClientEnum.STUDENT.getCode().equals(detail.getPaymentClient())) {
         if (ClientEnum.STUDENT.getCode().equals(detail.getPaymentClient())) {
-            //redissonClient.getBucket(CacheNameEnum.STUDENT_SUBJECT_ITEM.getRedisKey(detail.getUserId())).delete();
             redissonClient.getBucket(CacheNameEnum.STUDENT_TOTAL.getRedisKey(detail.getUserId())).delete();
             redissonClient.getBucket(CacheNameEnum.STUDENT_TOTAL.getRedisKey(detail.getUserId())).delete();
         } else if (ClientEnum.TEACHER.getCode().equals(detail.getPaymentClient())) {
         } else if (ClientEnum.TEACHER.getCode().equals(detail.getPaymentClient())) {
             redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(detail.getUserId())).delete();
             redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(detail.getUserId())).delete();

+ 13 - 0
toolset/toolset-payment/src/main/java/com/yonge/toolset/payment/base/model/Payment.java

@@ -3,6 +3,7 @@ package com.yonge.toolset.payment.base.model;
 import com.yonge.toolset.payment.base.enums.OpenEnum;
 import com.yonge.toolset.payment.base.enums.OpenEnum;
 import com.yonge.toolset.payment.base.enums.PayChannelEnum;
 import com.yonge.toolset.payment.base.enums.PayChannelEnum;
 import com.yonge.toolset.payment.base.enums.PaymentClientEnum;
 import com.yonge.toolset.payment.base.enums.PaymentClientEnum;
+import com.yonge.toolset.payment.base.model.callback.ExecutePaymentCallBack;
 
 
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -86,6 +87,10 @@ public class Payment extends Base {
      * @updateTime 2022/5/11 19:27
      * @updateTime 2022/5/11 19:27
      */
      */
     private String payInfo;
     private String payInfo;
+    /**
+     * 支付方法回调对象
+     */
+    private ExecutePaymentCallBack executePaymentCallBack;
 
 
     public Payment(OpenEnum openType, PaymentClientEnum paymentClient, PayChannelEnum payChannel) {
     public Payment(OpenEnum openType, PaymentClientEnum paymentClient, PayChannelEnum payChannel) {
         super(openType, paymentClient, payChannel);
         super(openType, paymentClient, payChannel);
@@ -186,4 +191,12 @@ public class Payment extends Base {
     public void setOrderDetils(List<OrderDetil> orderDetils) {
     public void setOrderDetils(List<OrderDetil> orderDetils) {
         this.orderDetils = orderDetils;
         this.orderDetils = orderDetils;
     }
     }
+
+    public ExecutePaymentCallBack getExecutePaymentCallBack() {
+        return executePaymentCallBack;
+    }
+
+    public void setExecutePaymentCallBack(ExecutePaymentCallBack executePaymentCallBack) {
+        this.executePaymentCallBack = executePaymentCallBack;
+    }
 }
 }