Browse Source

feature 增加用户取消付款的逻辑

xiahan 2 months ago
parent
commit
f1cc4ddad1

+ 1 - 0
zhsw-wechat-common/src/main/java/com/rongwei/wechat/system/utils/SaveConstans.java

@@ -158,6 +158,7 @@ public class SaveConstans {
         public static final String A_LI_PAY = "alipay";
 
         public static final String SUCCESS = "success";
+        public static final String CANCEL = "cancel";
     }
 
     public static final List<String> MONTH_ENG = new ArrayList<String>() {{

+ 3 - 1
zhsw-wechat-common/src/main/java/com/rongwei/wechat/system/wechat/PayMentService.java

@@ -17,5 +17,7 @@ import java.math.BigDecimal;
 public interface PayMentService {
     R paymentInitiation(WxPrepayOrderVo vo);
 
-    ResponseEntity<String> prepayNotice(PrepayNoticeVo prepayNoticeVo, String dskey, BigDecimal amount,String userNum) throws IOException;
+    ResponseEntity<String> prepayNotice(PrepayNoticeVo prepayNoticeVo, String dskey, BigDecimal amount, String userNum) throws IOException;
+
+    R cancel(String orderNo, String type);
 }

+ 21 - 7
zhsw-wechat-common/src/main/java/com/rongwei/wechat/system/wechat/impl/PayMentServiceImpl.java

@@ -45,8 +45,7 @@ import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
 
-import static com.rongwei.wechat.system.utils.SaveConstans.PayType.SUCCESS;
-import static com.rongwei.wechat.system.utils.SaveConstans.PayType.WE_CHAT;
+import static com.rongwei.wechat.system.utils.SaveConstans.PayType.*;
 
 /**
  * PayMentServiceImpl class
@@ -260,12 +259,12 @@ public class PayMentServiceImpl implements PayMentService {
                     .eq(SwPaymentInitRecordDo::getOrderno, outTradeNo), false);
             String zdIds = null;
             if (paymentInitRecordDo != null) {
-                zdIds =StringUtils.isBlank(paymentInitRecordDo.getBillid()) ? null : paymentInitRecordDo.getBillid();
+                zdIds = StringUtils.isBlank(paymentInitRecordDo.getBillid()) ? null : paymentInitRecordDo.getBillid();
                 swPaymentInitRecordService.update(new LambdaUpdateWrapper<SwPaymentInitRecordDo>()
-                        .eq(SwPaymentInitRecordDo::getId,paymentInitRecordDo.getId())
-                        .set(SwPaymentInitRecordDo::getState,SUCCESS)
-                        .set(SwPaymentInitRecordDo::getCallbackcontent,transaction.toString())
-                        .set(BaseDo::getModifydate,new Date())
+                        .eq(SwPaymentInitRecordDo::getId, paymentInitRecordDo.getId())
+                        .set(SwPaymentInitRecordDo::getState, SUCCESS)
+                        .set(SwPaymentInitRecordDo::getCallbackcontent, transaction.toString())
+                        .set(BaseDo::getModifydate, new Date())
                 );
             }
 
@@ -284,4 +283,19 @@ public class PayMentServiceImpl implements PayMentService {
         }
         return ResponseEntity.status(HttpStatus.OK).body("");
     }
+
+    @Override
+    public R cancel(String orderNo, String type) {
+        if (StringUtils.isBlank(orderNo) || StringUtils.isBlank(type)) {
+            log.error("订单取消参数异常");
+        }
+        swPaymentInitRecordService.update(new LambdaUpdateWrapper<SwPaymentInitRecordDo>()
+                .eq(SwPaymentInitRecordDo::getOrderno, orderNo)
+                .eq(SwPaymentInitRecordDo::getPaytype, type)
+                .set(SwPaymentInitRecordDo::getState, CANCEL)
+                .set(SwPaymentInitRecordDo::getCallbackcontent, "用户手动取消付款时间为:" + LocalDateTime.now())
+                .set(BaseDo::getModifydate, new Date())
+        );
+        return null;
+    }
 }

+ 16 - 4
zhsw-wechat-server/src/main/java/com/rongwei/wechat/system/controller/weChat/PayMentController.java

@@ -38,10 +38,22 @@ public class PayMentController {
      */
     @PostMapping("/record/create")
     private R createRecord(@RequestBody CreatePaymentRecordVo createPaymentRecordVo) {
-        log.debug("开始生成微信缴费记录.参数为:{}",createPaymentRecordVo);
+        log.debug("开始生成微信缴费记录.参数为:{}", createPaymentRecordVo);
         return paymentRecordService.createRecord(createPaymentRecordVo);
     }
 
+    /**
+     * 生成缴费记录
+     *
+     * @param createPaymentRecordVo
+     * @return
+     */
+    @PostMapping("/cancel/{orderNo}/{type}")
+    private R cancel(@PathVariable("orderNo") String orderNo,@PathVariable("type") String type) {
+        log.debug("用户手动取消付款,商户订单号为:{},渠道:{}", orderNo,type);
+        return payMentService.cancel(orderNo,type);
+    }
+
     /**
      * 预下单
      *
@@ -50,7 +62,7 @@ public class PayMentController {
      */
     @PostMapping("/prepayOrder")
     public R prepayOrder(@RequestBody WxPrepayOrderVo vo) {
-        log.debug("开始生成微信缴费预下单.参数为:{}",vo);
+        log.debug("开始生成微信缴费预下单.参数为:{}", vo);
         return payMentService.paymentInitiation(vo);
     }
 
@@ -62,7 +74,7 @@ public class PayMentController {
      */
     @PostMapping("/prepay/notice/{dskey}/{amount}/{userNum}")
     public ResponseEntity<String> prepayNotice(@RequestBody PrepayNoticeVo prepayNoticeVo, @PathVariable("dskey") String dskey,
-                                               @PathVariable("amount") BigDecimal amount,@PathVariable("userNum") String userNum) {
-        return payMentService.prepayNotice(prepayNoticeVo, dskey,amount,userNum);
+                                               @PathVariable("amount") BigDecimal amount, @PathVariable("userNum") String userNum) {
+        return payMentService.prepayNotice(prepayNoticeVo, dskey, amount, userNum);
     }
 }