From 643d431548ddb65a904a45d024fe04ea3ec49276 Mon Sep 17 00:00:00 2001
From: lisy <linlangsur163@163.com>
Date: 星期二, 11 七月 2023 17:58:45 +0800
Subject: [PATCH] 开始上课的支付功能

---
 cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java                           |    2 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java                  |  196 +++++++++++++++++++++--
 cloud-server-course/src/main/java/com/dsh/course/model/vo/request/PlayPaiGoldCoursePackage.java           |   22 ++
 cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java                     |   20 ++
 cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/PlayPaiGoldCoursePackage.java |   22 ++
 cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/TCoursePackagePayment.java    |   10 +
 cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/model/CoursePackage.java          |    2 
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java           |   75 ++++++++-
 cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/ClasspaymentRequest.java         |    2 
 cloud-server-account/src/main/java/com/dsh/account/controller/PaymentCallbackController.java              |   58 ++++++
 cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java            |   16 ++
 11 files changed, 385 insertions(+), 40 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/PaymentCallbackController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/PaymentCallbackController.java
index fad5bff..0338221 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/PaymentCallbackController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/PaymentCallbackController.java
@@ -1,9 +1,18 @@
 package com.dsh.account.controller;
 
 
+import com.dsh.account.service.TStudentService;
+import com.dsh.account.util.PayMoneyUtil;
+import com.dsh.account.util.ResultUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.PrintWriter;
+import java.util.Map;
 
 /**
  * 支付回调控制器
@@ -15,21 +24,58 @@
 public class PaymentCallbackController {
 
 
+    @Autowired
+    private PayMoneyUtil payMoneyUtil;
+
+    @Autowired
+    private TStudentService tstuService;
+
     /**
      * 支付宝支付回调接口
      */
-    @PostMapping("/v1")
-    public void alipayCallback(){
-
+    @PostMapping("/base/coursePackage/alipayPaymentCallback")
+    public void alipayCallback(HttpServletRequest request, HttpServletResponse response){
+        try {
+            Map<String, String> map = payMoneyUtil.alipayCallback(request);
+            if(null != map){
+                String out_trade_no = map.get("out_trade_no");
+                String transaction_id = map.get("transaction_id");
+                ResultUtil resultUtil = tstuService.insertVipPaymentCallback(out_trade_no, transaction_id);
+                if(resultUtil.getCode() == 200){
+                    PrintWriter out = response.getWriter();
+                    out.write("success");
+                    out.flush();
+                    out.close();
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
     }
 
 
     /**
      * 微信支付回调接口
      */
-    @PostMapping("/v2")
-    public void weChatCallback(){
-
+    @PostMapping("/base/coursePackage/wechatPaymentCallback")
+    public void weChatCallback(HttpServletRequest request, HttpServletResponse response){
+        try {
+            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
+            if(null != map){
+                String out_trade_no = map.get("out_trade_no");
+                String transaction_id = map.get("transaction_id");
+                String result = map.get("result");
+                ResultUtil resultUtil = tstuService.insertVipPaymentCallback(out_trade_no, transaction_id);
+                if(resultUtil.getCode() == 200){
+                    PrintWriter out = response.getWriter();
+                    out.write(result);
+                    out.flush();
+                    out.close();
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
     }
 
 
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java
index 55af25f..9030b72 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java
@@ -33,4 +33,20 @@
 
     @PostMapping("/base/coursePack/allPaymentCourseList")
     public List<TCoursePackagePayment> getAppuserCourseList(@RequestBody Integer appUserId);
+
+    @PostMapping("/coursePackagePayment/courseRenewPlayPaiPay")
+    public int paymentWanpaiRenewCourse(@RequestBody PlayPaiGoldCoursePackage coursePackage);
+
+    @PostMapping("/base/coursePack/getPaymentCoursePackage")
+    public TCoursePackagePayment getCoursePackagePaymentByCode(@RequestBody String code);
+
+    @PostMapping("/base/coursePack/delPaymentCoursePackage")
+    public boolean delPaymentCoursePackage(@RequestBody Integer payId);
+
+    @PostMapping("/base/coursePack/updatePaymentCoursePackage")
+    void updatePaymentCoursePackage(TCoursePackagePayment coursePackagePayment);
+
+    @PostMapping("/base/coursePack/savePaymentCoursePackage")
+    public boolean savePaymentCoursePackage(@RequestBody TCoursePackagePayment packagePayment);
+
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/PlayPaiGoldCoursePackage.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/PlayPaiGoldCoursePackage.java
new file mode 100644
index 0000000..d1ff02a
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/PlayPaiGoldCoursePackage.java
@@ -0,0 +1,22 @@
+package com.dsh.account.feignclient.course.model;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class PlayPaiGoldCoursePackage {
+
+    @ApiModelProperty(value = "支付配置id")
+    Integer coursePayConfigId;
+
+    @ApiModelProperty(value = "学员id")
+    Integer stuId;
+
+    @ApiModelProperty(value = "课包id")
+    Integer coursePackageId;
+
+    @ApiModelProperty(value = "code")
+    String code;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/TCoursePackagePayment.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/TCoursePackagePayment.java
index f0dfe8e..4c867d1 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/TCoursePackagePayment.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/TCoursePackagePayment.java
@@ -25,7 +25,7 @@
      */
     private Integer coursePackageId;
     /**
-     * 支付方式(1=现金,2=玩湃币)
+     * 支付方式(1=微信 2=支付宝 3=玩湃币)
      */
     private Integer payType;
     /**
@@ -88,5 +88,13 @@
      * 添加时间
      */
     private Date insertTime;
+    /**
+     * 业务编号
+     */
+    private String code;
+    /**
+     * 原价
+     */
+    private Double originalPrice;
 
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/ClasspaymentRequest.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/ClasspaymentRequest.java
index 5604edd..12d69b7 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/ClasspaymentRequest.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/ClasspaymentRequest.java
@@ -25,7 +25,7 @@
     private Integer conponId;
 
     @ApiModelProperty(value = "课时id")
-    private Long courseConfigId;
+    private Integer courseConfigId;
 
     @ApiModelProperty(value = "支付金额")
     private BigDecimal payAmount;
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java b/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
index dcd9be9..d8cc797 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
@@ -73,4 +73,6 @@
 
     ResultUtil renewClassPayment(Integer userIdFormRedis, ClasspaymentRequest request);
 
+    ResultUtil insertVipPaymentCallback(String outTradeNo, String transactionId);
+
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
index 4ab69ac..e55dcac 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
@@ -37,10 +37,8 @@
 import com.dsh.account.model.vo.sourceDetail.CourseDetailsOfContinuationResp;
 import com.dsh.account.model.vo.sourceDetail.RecordTimeRequest;
 import com.dsh.account.service.TStudentService;
-import com.dsh.account.util.DateTimeHelper;
-import com.dsh.account.util.DateUtil;
-import com.dsh.account.util.ResultUtil;
-import com.dsh.account.util.ToolUtil;
+import com.dsh.account.util.*;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -99,6 +97,10 @@
 
     @Resource
     private ParticipantClient participantClient;
+
+
+    @Autowired
+    private PayMoneyUtil payMoneyUtil;
 
 
 
@@ -374,35 +376,183 @@
 
     @Override
     public ResultUtil renewClassPayment(Integer userIdFormRedis, ClasspaymentRequest request) {
-        // TODO: 2023/7/5 续课支付
-        switch (request.getPayType()){
-            case 1:
-                WeChatPayment();
-                break;
-            case 2:
-                AlipayPayment();
-                break;
-            case 3:
-                PlaypaiGoldPayment();
-                break;
-            default:
-                break;
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
+
+        TCoursePackagePayment packagePayment = new TCoursePackagePayment();
+        packagePayment.setCode(code);
+        packagePayment.setAppUserId(userIdFormRedis);
+        packagePayment.setStudentId(request.getStuId());
+        packagePayment.setCoursePackageId(request.getLessonId());
+        packagePayment.setPayType(request.getPayType());
+        packagePayment.setAbsencesNumber(0);
+        packagePayment.setPayUserType(1);
+        packagePayment.setPayStatus(1);
+        packagePayment.setPayUserId(userIdFormRedis);
+        packagePayment.setStatus(1);
+        packagePayment.setState(1);
+        packagePayment.setInsertTime(new Date());
+        couPayClient.savePaymentCoursePackage(packagePayment);
+
+        try {
+            switch (request.getPayType()) {
+                case 1:
+                    return WeChatPayment(code,request.getPayAmount());
+                case 2:
+                    return AlipayPayment(code,request.getPayAmount());
+                case 3:
+                    int i = PlaypaiGoldPayment(code,request);
+                    switch (i){
+                        case 1:
+                            return ResultUtil.success();
+                        case 2:
+                            return ResultUtil.error("用户未登录!");
+                        case 3:
+                            return ResultUtil.error("续课失败,玩湃币不足,请充值");
+                        case 4:
+                            return ResultUtil.error("续课失败,请联系管理员");
+                    }
+                default:
+                    break;
+            }
+        }catch (Exception e){
+            ResultUtil.runErr();
         }
         return ResultUtil.success();
     }
 
 
-    public void WeChatPayment(){
-
+    public ResultUtil WeChatPayment(String code,BigDecimal amount) throws Exception {
+        ResultUtil weixinpay = payMoneyUtil.weixinpay("课包续费", "", code, amount.toString(),
+                "/base/coursePackage/wechatPaymentCallback", "APP", "");
+        if(weixinpay.getCode() == 200){
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    try {
+                        int num = 1;
+                        int wait = 0;
+                        while (num <= 10){
+                            int min = 5000;
+                            wait += (min * num);
+                            Thread.sleep(wait);
+                            TCoursePackagePayment coursePackagePayment = couPayClient.getCoursePackagePaymentByCode(code);
+                            if(coursePackagePayment.getPayStatus() == 2){
+                                break;
+                            }
+                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(code, "");
+                            if(resultUtil.getCode() == 200 && coursePackagePayment.getPayStatus() == 1){
+                                /**
+                                 * SUCCESS—支付成功,
+                                 * REFUND—转入退款,
+                                 * NOTPAY—未支付,
+                                 * CLOSED—已关闭,
+                                 * REVOKED—已撤销(刷卡支付),
+                                 * USERPAYING--用户支付中,
+                                 * PAYERROR--支付失败(其他原因,如银行返回失败)
+                                 */
+                                Map<String, String> data1 = resultUtil.getData();
+                                String s = data1.get("trade_state");
+                                String transaction_id = data1.get("transaction_id");
+                                if("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10){
+                                    coursePackagePayment.setState(3);
+                                    couPayClient.delPaymentCoursePackage(coursePackagePayment.getId());
+                                    break;
+                                }
+                                if("SUCCESS".equals(s)){
+                                    coursePackagePayment.setPayStatus(2);
+                                    coursePackagePayment.setOrderNumber(transaction_id);
+                                    couPayClient.updatePaymentCoursePackage(coursePackagePayment);
+                                    break;
+                                }
+                                if("USERPAYING".equals(s)){
+                                    num++;
+                                }
+                            }
+                        }
+                    }catch (Exception e){
+                        e.printStackTrace();
+                    }
+                }
+            }).start();
+        }
+        return weixinpay;
     }
 
-    public void AlipayPayment(){
-
+    public ResultUtil AlipayPayment(String code,BigDecimal amount){
+        ResultUtil alipay = payMoneyUtil.alipay("课包续费", "", "", code, amount.toString(),
+                "/base/coursePackage/alipayPaymentCallback");
+        if(alipay.getCode() == 200){
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    try {
+                        int num = 1;
+                        int wait = 0;
+                        while (num <= 10){
+                            int min = 5000;
+                            wait += (min * num);
+                            Thread.sleep(wait);
+                            TCoursePackagePayment coursePackagePayment = couPayClient.getCoursePackagePaymentByCode(code);
+                            if(coursePackagePayment.getPayStatus() == 2){
+                                break;
+                            }
+                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryALIOrder(code);
+                            if(resultUtil.getCode() == 200 && coursePackagePayment.getPayStatus() == 1){
+                                /**
+                                 * WAIT_BUYER_PAY(交易创建,等待买家付款)、
+                                 * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、
+                                 * TRADE_SUCCESS(交易支付成功)、
+                                 * TRADE_FINISHED(交易结束,不可退款)
+                                 */
+                                Map<String, String> data1 = resultUtil.getData();
+                                String s = data1.get("tradeStatus");
+                                String tradeNo = data1.get("tradeNo");
+                                if("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10){
+                                    coursePackagePayment.setState(3);
+                                    couPayClient.delPaymentCoursePackage(coursePackagePayment.getId());
+                                    break;
+                                }
+                                if("TRADE_SUCCESS".equals(s)){
+                                    coursePackagePayment.setPayStatus(2);
+                                    coursePackagePayment.setOrderNumber(tradeNo);
+                                    couPayClient.updatePaymentCoursePackage(coursePackagePayment);
+                                    break;
+                                }
+                                if("WAIT_BUYER_PAY".equals(s)){
+                                    num++;
+                                }
+                            }
+                        }
+                    }catch (Exception e){
+                        e.printStackTrace();
+                    }
+                }
+            }).start();
+        }
+        return alipay;
     }
 
-    public void PlaypaiGoldPayment(){
-
+    public int PlaypaiGoldPayment(String code,ClasspaymentRequest request){
+        PlayPaiGoldCoursePackage paiGoldCoursePackage = new PlayPaiGoldCoursePackage();
+        paiGoldCoursePackage.setCoursePackageId(request.getLessonId());
+        paiGoldCoursePackage.setStuId(request.getStuId());
+        paiGoldCoursePackage.setCoursePayConfigId(request.getCourseConfigId());
+        paiGoldCoursePackage.setCode(code);
+        return couPayClient.paymentWanpaiRenewCourse(paiGoldCoursePackage);
     }
 
 
+    @Override
+    public ResultUtil insertVipPaymentCallback(String code, String orderNumber) {
+        TCoursePackagePayment coursePackagePayment = couPayClient.getCoursePackagePaymentByCode(code);
+        if(coursePackagePayment.getPayStatus() != 1){
+            return ResultUtil.success();
+        }
+        coursePackagePayment.setPayStatus(2);
+        coursePackagePayment.setOrderNumber(orderNumber);
+        couPayClient.updatePaymentCoursePackage(coursePackagePayment);
+        return ResultUtil.success();
+    }
+
 }
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/model/CoursePackage.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/model/CoursePackage.java
index 3d6097c..1b31933 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/model/CoursePackage.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/model/CoursePackage.java
@@ -81,7 +81,7 @@
      */
     private Integer sort;
     /**
-     * 支付方式(1=现金,2=玩湃币)
+     * 支付方式(1=微信 2=支付宝 3=玩湃币)
      */
     private Integer payType;
     /**
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
index 795f430..39fbb54 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -3,23 +3,19 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.dsh.course.entity.*;
+import com.dsh.course.feignclient.account.AppUserClient;
+import com.dsh.course.feignclient.account.model.AppUser;
 import com.dsh.course.feignclient.model.*;
 import com.dsh.course.model.BaseVo;
 import com.dsh.course.model.dto.DiscountJsonDto;
 import com.dsh.course.model.vo.CourseDetailRequest;
 import com.dsh.course.model.vo.RegisterCourseVo;
-import com.dsh.course.model.vo.request.ClasspaymentRequest;
-import com.dsh.course.model.vo.request.CourseOfAfterRequest;
-import com.dsh.course.model.vo.request.CourseWithDetailsRequest;
-import com.dsh.course.model.vo.request.UpdateCourseVideoStatusRequest;
+import com.dsh.course.model.vo.request.*;
 import com.dsh.course.model.vo.response.AppUserVideoResponse;
 import com.dsh.course.model.vo.response.CourseDetailsResponse;
 import com.dsh.course.model.vo.response.CourseOfVideoResponse;
 import com.dsh.course.service.*;
-import com.dsh.course.util.DateUtil;
-import com.dsh.course.util.ResultUtil;
-import com.dsh.course.util.StrUtils;
-import com.dsh.course.util.TokenUtil;
+import com.dsh.course.util.*;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import io.swagger.annotations.Api;
@@ -67,6 +63,9 @@
     private CancelledClassesService cacService;
 
     @Autowired
+    private ICoursePackagePaymentConfigService icppcService;
+
+    @Autowired
     private UserVideoDetailsService uvdsService;
 
     @Autowired
@@ -82,6 +81,9 @@
 
     @Autowired
     private CancelledClassesService cancelledClassesService;
+
+    @Autowired
+    private AppUserClient appuClient;
 
     private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm");
 
@@ -620,4 +622,61 @@
             e.printStackTrace();
         }
     }
+
+
+    /**
+     * 课包续费玩湃币支付
+     * @param
+     */
+    @PostMapping("/coursePackagePayment/courseRenewPlayPaiPay")
+    public int paymentWanpaiRenewCourse(@RequestBody PlayPaiGoldCoursePackage coursePackage){
+        try {
+            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
+            if (null == userIdFormRedis){
+                return 2;
+            }
+            CoursePackagePaymentConfig paymentConfig = icppcService.getById(coursePackage.getCoursePayConfigId());
+            AppUser appUser = appuClient.queryAppUser(userIdFormRedis);
+            if (appUser.getPlayPaiCoins() < paymentConfig.getPlayPaiCoin()){
+                return 3;
+            }
+            TCoursePackagePayment packagePayment = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>()
+                    .eq("code",coursePackage.getCode() ));
+            packagePayment.setPayStatus(2);
+            packagePayment.setPayUserId(userIdFormRedis);
+            packagePayment.setClassHours(paymentConfig.getClassHours());
+            packagePayment.setPlayPaiCoin(paymentConfig.getPlayPaiCoin());
+            packagePayment.setTotalClassHours(paymentConfig.getClassHours());
+            packagePayment.setLaveClassHours(paymentConfig.getClassHours());
+            packagePaymentService.updateById(packagePayment);
+
+            appUser.setPlayPaiCoins(appUser.getPlayPaiCoins()-paymentConfig.getPlayPaiCoin());
+            appuClient.updateAppUser(appUser);
+        } catch (Exception e) {
+            return 4;
+        }
+        return 1;
+    }
+
+    @PostMapping("/base/coursePack/getPaymentCoursePackage")
+    public TCoursePackagePayment getCoursePackagePaymentByCode(@RequestBody String code){
+        return packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>()
+                .eq("code",code));
+    }
+
+    @PostMapping("/base/coursePack/delPaymentCoursePackage")
+    public boolean delPaymentCoursePackage(@RequestBody Integer payId){
+        return packagePaymentService.removeById(payId);
+    }
+    @PostMapping("/base/coursePack/updatePaymentCoursePackage")
+    public boolean updatePaymentCoursePackage(@RequestBody TCoursePackagePayment packagePayment){
+        return packagePaymentService.update(packagePayment,new QueryWrapper<TCoursePackagePayment>()
+                .eq("id",packagePayment.getId()));
+    }
+
+    @PostMapping("/base/coursePack/savePaymentCoursePackage")
+    public boolean savePaymentCoursePackage(@RequestBody TCoursePackagePayment packagePayment){
+        return packagePaymentService.save(packagePayment);
+    }
+
 }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java
index 68b1d06..3c6311a 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java
@@ -3,6 +3,7 @@
 
 import com.dsh.course.entity.TCoursePackagePayment;
 import com.dsh.course.feignclient.model.*;
+import com.dsh.course.model.vo.request.PlayPaiGoldCoursePackage;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -35,4 +36,23 @@
 
     @PostMapping("/base/coursePack/allPaymentCourseList")
     public List<TCoursePackagePayment> getAppuserCourseList(@RequestBody Integer appUserId);
+
+
+    @PostMapping("/coursePackagePayment/courseRenewPlayPaiPay")
+    public int paymentWanpaiRenewCourse(@RequestBody PlayPaiGoldCoursePackage coursePackage);
+
+    @PostMapping("/base/coursePack/getPaymentCoursePackage")
+    public TCoursePackagePayment getCoursePackagePaymentByCode(@RequestBody String payId);
+
+
+    @PostMapping("/base/coursePack/delPaymentCoursePackage")
+    public boolean delPaymentCoursePackage(@RequestBody Integer payId);
+
+    @PostMapping("/base/coursePack/updatePaymentCoursePackage")
+    public boolean updatePaymentCoursePackage(@RequestBody TCoursePackagePayment packagePayment);
+
+
+    @PostMapping("/base/coursePack/savePaymentCoursePackage")
+    public boolean savePaymentCoursePackage(@RequestBody TCoursePackagePayment packagePayment);
+
 }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/PlayPaiGoldCoursePackage.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/PlayPaiGoldCoursePackage.java
new file mode 100644
index 0000000..37cd6cc
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/PlayPaiGoldCoursePackage.java
@@ -0,0 +1,22 @@
+package com.dsh.course.model.vo.request;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class PlayPaiGoldCoursePackage {
+
+    @ApiModelProperty(value = "支付配置id")
+    Integer coursePayConfigId;
+
+    @ApiModelProperty(value = "学员id")
+    Integer stuId;
+
+    @ApiModelProperty(value = "课包id")
+    Integer coursePackageId;
+
+    @ApiModelProperty(value = "课包id")
+    String code;
+
+}

--
Gitblit v1.7.1