lisy
2023-07-14 a1d8bead115c7749571dacbdea01f4b2c6caf4d0
积分商城的兑换支付功能开发
14个文件已修改
2个文件已添加
348 ■■■■ 已修改文件
cloud-server-account/src/main/java/com/dsh/account/controller/PaymentCallbackController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/PointsMerchandise.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserPointsMerchandise.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePackageConfigClient.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/CoursePackagePaymentConfig.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/TCoursePackagePayment.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java 210 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/model/CoursePackage.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/PaymentCallbackController.java
@@ -141,7 +141,7 @@
     * @param response
     */
    @ResponseBody
    @PostMapping("/base/appUser/addVipPaymentWeChatCallback")
    @PostMapping("/base/pointMer/exchangeGoodPaymentWeChatCallback")
    public void addVipPaymentWeChatCallback(HttpServletRequest request, HttpServletResponse response){
        try {
            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
@@ -169,7 +169,7 @@
     * @param response
     */
    @ResponseBody
    @PostMapping("/base/appUser/addVipPaymentAliCallback")
    @PostMapping("/base/pointMer/exchangeGoodPaymentAliCallback")
    public void addVipPaymentAliCallback(HttpServletRequest request, HttpServletResponse response){
        try {
            Map<String, String> map = payMoneyUtil.alipayCallback(request);
cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
@@ -365,7 +365,7 @@
            if(null == userIdFormRedis){
                return ResultUtil.tokenErr();
            }
            return tauService.productRedemptionOperation(userIdFormRedis,goodId,goodsType,nums,exchangeType,payType);
            return tauService.productRedemptionOperation(userIdFormRedis,goodId,goodsType,nums,exchangeType,payType,stuIds);
        }catch (Exception e){
            return ResultUtil.runErr();
        }
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/PointsMerchandise.java
@@ -104,5 +104,9 @@
     * 添加时间
     */
    private Date insertTime;
    /**
     * 课包支付配置id
     */
    private Integer coursePackageConfigId;
}
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserPointsMerchandise.java
@@ -1,15 +1,7 @@
package com.dsh.account.feignclient.activity.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
@@ -21,73 +13,57 @@
 * @since 2023-06-29
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_user_points_merchandise")
public class UserPointsMerchandise extends Model<UserPointsMerchandise> {
public class UserPointsMerchandise{
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.INPUT)
    private Long id;
    /**
     * 优惠券id
     */
    @TableField("pointsMerchandiseId")
    private Integer pointsMerchandiseId;
    /**
     * 用户id
     */
    @TableField("userId")
    private Integer userId;
    /**
     * 核销人员id
     */
    @TableField("verificationUserId")
    private Integer verificationUserId;
    /**
     * 核销门店id
     */
    @TableField("verifiStoreId")
    private Integer verifiStoreId;
    /**
     * 核销时间
     */
    @TableField("verificationTime")
    private Date verificationTime;
    /**
     * 状态(1=待核销,2=已核销)
     */
    @TableField("status")
    private Integer status;
    /**
     * 领取时间
     */
    @TableField("insertTime")
    private Date insertTime;
    /**
     * 现金支付方式(1=微信2支付宝)
     */
    @TableField("payType")
    private Integer payType;
    /**
     * code
     * 现金支付的交易凭证
     */
    @TableField("code")
    private String code;
    /**
     * orderNumber
     * 现金支付的交易订单号
     */
    @TableField("orderNumber")
    private String orderNumber;
    @Override
    protected Serializable pkVal() {
        return this.id;
    }
    /**
     * 现金的支付状态(1=待支付 2=已支付)
     */
    private Integer payStatus;
}
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePackageConfigClient.java
New file
@@ -0,0 +1,18 @@
package com.dsh.account.feignclient.course;
import com.dsh.account.feignclient.course.model.CoursePackagePaymentConfig;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@FeignClient(value = "mb-cloud-course")
public interface CoursePackageConfigClient {
    @PostMapping("/base/coursePack/getCoursePackageConfig")
    List<CoursePackagePaymentConfig> getCourseConfigList(@RequestBody Integer coursePackageId);
}
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java
@@ -55,4 +55,8 @@
    @PostMapping("/base/coursePack/obtainStudentClassDetails")
    List<RecordAppoint> obtainStudentClassDetailsData(@RequestBody Integer stuId);
    @PostMapping("/base/coursePack/getCoursePackagePaymentOfCode")
    List<TCoursePackagePayment> getCoursePackagePaymentOfCode(@RequestBody String code);
}
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/CoursePackagePaymentConfig.java
New file
@@ -0,0 +1,31 @@
package com.dsh.account.feignclient.course.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @date 2023/6/29 10:42
 */
@Data
public class CoursePackagePaymentConfig {
    /**
     * 主键
     */
    private Integer id;
    /**
     * 课包id
     */
    private Integer coursePackageId;
    /**
     * 课时数
     */
    private Integer classHours;
    /**
     * 现金支付价格
     */
    private Double cashPayment;
    /**
     * 玩湃币价格
     */
    private Integer playPaiCoin;
}
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/TCoursePackagePayment.java
@@ -25,7 +25,7 @@
     */
    private Integer coursePackageId;
    /**
     * 支付方式(1=微信 2=支付宝 3=玩湃币)
     * 支付方式(1=微信,2=支付宝,3=玩湃币,4=积分,5=积分+微信,6=积分+支付宝)
     */
    private Integer payType;
    /**
cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
@@ -128,7 +128,7 @@
    StuAndStoreResponse queryAppUserDefaultStuAndStore(Integer userIdFormRedis ,Integer pointsMerId, String lat, String lon,Integer isCourse);
    ResultUtil productRedemptionOperation(Integer userIdFormRedis, Integer goodId, Integer goodsType,Integer nums,Integer exchangeType,Integer payType);
    ResultUtil productRedemptionOperation(Integer userIdFormRedis, Integer goodId, Integer goodsType,Integer nums,Integer exchangeType,Integer payType,List<Integer> stuIds);
    ResultUtil exchangeAddPaymentCallback(String code, String orderNumber,Integer payType);
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -12,12 +12,15 @@
import com.dsh.account.feignclient.competition.DeductionCompetitionsClient;
import com.dsh.account.feignclient.competition.model.PaymentCompetition;
import com.dsh.account.feignclient.course.CoursePackageClient;
import com.dsh.account.feignclient.course.CoursePackageConfigClient;
import com.dsh.account.feignclient.course.CoursePaymentClient;
import com.dsh.account.feignclient.course.model.*;
import com.dsh.account.feignclient.other.ImgConfigClient;
import com.dsh.account.feignclient.other.RechargeConfigClient;
import com.dsh.account.feignclient.other.StoreClient;
import com.dsh.account.feignclient.other.model.*;
import com.dsh.account.feignclient.other.model.Store;
import com.dsh.account.feignclient.other.model.StoreDetailOfCourse;
import com.dsh.account.feignclient.other.model.TImgConfig;
import com.dsh.account.mapper.*;
import com.dsh.account.model.AddAppUserVo;
import com.dsh.account.model.JoinPlayPaiVo;
@@ -112,6 +115,12 @@
    @Resource
    private MerChandiseStoreClient mcsClient;
    @Resource
    private CoursePackageConfigClient cpconClient;
    @Autowired
    private PayMoneyUtil payMoneyUtil;
    @Override
    public ClassInfoVo queryUserOfStus(Integer id,String latitude,String longitude) {
@@ -784,7 +793,7 @@
    }
    @Override
    public ResultUtil productRedemptionOperation(Integer userIdFormRedis, Integer goodId, Integer goodsType,Integer nums,Integer exchangeType,Integer payType) {
    public ResultUtil productRedemptionOperation(Integer userIdFormRedis, Integer goodId, Integer goodsType,Integer nums,Integer exchangeType,Integer payType,List<Integer> stuIds) {
        PointsMerchandise merchandise = mcClient.selectPointsMerchandiseById(goodId);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
        String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
@@ -812,14 +821,34 @@
        this.baseMapper.updateById(tAppUser);
//        现金支付
        if (exchangeType == 1){
//            积分兑换
        if (exchangeType == 2) {
            switch (goodsType){
                case 2:
                    for (int i = 0; i < nums; i++) {
                    for (int i = 0; i < stuIds.size(); i++) {
                        List<CoursePackagePaymentConfig> courseConfigList = cpconClient.getCourseConfigList(merchandise.getCoursePackageId());
                        TCoursePackagePayment packagePayment = new TCoursePackagePayment();
//                        packagePayment.setAppUserId();
                        // TODO: 2023/7/14
                        packagePayment.setAppUserId(userIdFormRedis);
                        packagePayment.setStudentId(stuIds.get(i));
                        packagePayment.setCoursePackageId(merchandise.getCoursePackageId());
                        for (CoursePackagePaymentConfig coursePackagePaymentConfig : courseConfigList) {
                            if (Objects.equals(coursePackagePaymentConfig.getId(),merchandise.getCoursePackageConfigId())){
                                packagePayment.setClassHours(coursePackagePaymentConfig.getClassHours());
                                packagePayment.setTotalClassHours(coursePackagePaymentConfig.getClassHours());
                                packagePayment.setLaveClassHours(coursePackagePaymentConfig.getClassHours());
                                packagePayment.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
                                break;
                            }
                        }
                        packagePayment.setPlayPaiCoin(merchandise.getIntegral());
                        packagePayment.setAbsencesNumber(0);
                        packagePayment.setPayUserType(1);
                        packagePayment.setPayStatus(1);
                        packagePayment.setPayUserId(userIdFormRedis);
                        packagePayment.setStatus(1);
                        packagePayment.setState(1);
                        packagePayment.setInsertTime(new Date());
                        packagePayment.setCode(code);
                        paymentClient.savePaymentCoursePackage(packagePayment);
                    }
                    break;
@@ -836,29 +865,149 @@
                default:
                    break;
            }
        }else {
            switch (payType){
                case 1:
                    return WechatPayment(merchandise.getCash(),code);
                    try {
                        if (merchandise.getType() == 2){
                            return WechatPayment(merchandise.getCash().multiply(new BigDecimal(stuIds.size())),code);
                        }else {
                            return WechatPayment(merchandise.getCash().multiply(new BigDecimal(nums)),code);
                        }
                    }catch (Exception e){
                        return ResultUtil.runErr();
                    }
                case 2:
                    return AlipayPayment(merchandise.getCash(),code);
                    if (merchandise.getType() == 2){
                        AlipayPayment(merchandise.getCash().multiply(new BigDecimal(stuIds.size())),code);
                    }else {
                        AlipayPayment(merchandise.getCash().multiply(new BigDecimal(nums)),code);
                    }
                    break;
                default:
                    break;
            }
        }
        return null;
        return ResultUtil.success();
    }
    private ResultUtil AlipayPayment(BigDecimal cash, String code) {
        return ResultUtil.success();
        ResultUtil alipay = payMoneyUtil.alipay("课包续费", "", "", code, cash.toString(),
                "/base/pointMer/exchangeGoodPaymentAliCallback");
        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);
                            List<UserPointsMerchandise> userPointsMerchandises = mcClient.queryUserPointMerchaseByCode(code);
                            if(userPointsMerchandises.get(0).getPayStatus() == 2){
                                break;
                            }
                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryALIOrder(code);
                            if(resultUtil.getCode() == 200 && userPointsMerchandises.get(0).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)){
                                    for (UserPointsMerchandise userPointsMerchandise : userPointsMerchandises) {
                                        userPointsMerchandise.setPayStatus(2);
                                        userPointsMerchandise.setOrderNumber(tradeNo);
                                        userPointsMerchandise.setPayType(2);
                                        mcClient.updateDetailsUserPointMercase(userPointsMerchandise);
                                    }
                                    break;
                                }
                                if("WAIT_BUYER_PAY".equals(s)){
                                    num++;
                                }
                            }
                        }
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                }
            }).start();
        }
        return alipay;
    }
    private ResultUtil WechatPayment(BigDecimal cash, String code) {
        return ResultUtil.success();
    private ResultUtil WechatPayment(BigDecimal cash, String code) throws Exception {
        ResultUtil weixinpay = payMoneyUtil.weixinpay("课包", "", code, cash.toString(),
                "/base/pointMer/exchangeGoodPaymentWeChatCallback", "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);
                            List<UserPointsMerchandise> userPointsMerchandises = mcClient.queryUserPointMerchaseByCode(code);
                            if(userPointsMerchandises.get(0).getPayStatus() == 2){
                                break;
                            }
                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(code, "");
                            if(resultUtil.getCode() == 200 && userPointsMerchandises.get(0).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)){
                                    for (UserPointsMerchandise userPointsMerchandise : userPointsMerchandises) {
                                        userPointsMerchandise.setPayStatus(2);
                                        userPointsMerchandise.setOrderNumber(transaction_id);
                                        userPointsMerchandise.setPayType(1);
                                        mcClient.updateDetailsUserPointMercase(userPointsMerchandise);
                                    }
                                    break;
                                }
                                if("USERPAYING".equals(s)){
                                    num++;
                                }
                            }
                        }
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                }
            }).start();
        }
        return weixinpay;
    }
    @Override
@@ -867,17 +1016,22 @@
        if (userPointsMerchandises.size() > 1){
            for (int i = 0; i < userPointsMerchandises.size(); i++) {
                userPointsMerchandises.get(i).setOrderNumber(orderNumber+ "-" + (i+1));
                userPointsMerchandises.get(i).setPayType(payType);
                userPointsMerchandises.get(i).setPayStatus(2);
                mcClient.updateDetailsUserPointMercase(userPointsMerchandises.get(i));
                Integer pointsMerchandiseId = userPointsMerchandises.get(i).getPointsMerchandiseId();
                PointsMerchandise pointsMerchandise = mcClient.selectPointsMerchandiseById(pointsMerchandiseId);
                switch (pointsMerchandise.getType()){
                    case 2:
                        TCoursePackagePayment packagePayment = new TCoursePackagePayment();
//                        packagePayment.setAppUserId();
                        paymentClient.savePaymentCoursePackage(packagePayment);
                        List<TCoursePackagePayment> coursePackagePaymentOfCode = paymentClient.getCoursePackagePaymentOfCode(code);
                        for (TCoursePackagePayment coursePackagePayment : coursePackagePaymentOfCode) {
                            coursePackagePayment.setPayStatus(2);
                            coursePackagePayment.setPayType(payType);
                            coursePackagePayment.setOrderNumber(orderNumber);
                            coursePackagePayment.setCashPayment(pointsMerchandise.getCash());
                            paymentClient.updatePaymentCoursePackage(coursePackagePayment);
                        }
                        break;
                    case 4:
                        UserCoupon coupon = new UserCoupon();
@@ -893,16 +1047,22 @@
            }
        }else {
            userPointsMerchandises.get(0).setOrderNumber(orderNumber);
            userPointsMerchandises.get(0).setPayType(payType);
            userPointsMerchandises.get(0).setPayStatus(2);
            mcClient.updateDetailsUserPointMercase(userPointsMerchandises.get(0));
            Integer pointsMerchandiseId = userPointsMerchandises.get(0).getPointsMerchandiseId();
            PointsMerchandise pointsMerchandise = mcClient.selectPointsMerchandiseById(pointsMerchandiseId);
            switch (pointsMerchandise.getType()){
                case 2:
                    TCoursePackagePayment packagePayment = new TCoursePackagePayment();
                    List<TCoursePackagePayment> coursePackagePaymentOfCode = paymentClient.getCoursePackagePaymentOfCode(code);
//                    packagePayment.setAppUserId();
                    paymentClient.savePaymentCoursePackage(packagePayment);
                    TCoursePackagePayment packagePayment =coursePackagePaymentOfCode.get(0);
                    packagePayment.setPayStatus(2);
                    packagePayment.setPayType(payType);
                    packagePayment.setOrderNumber(orderNumber);
                    packagePayment.setCashPayment(pointsMerchandise.getCash());
                    paymentClient.updatePaymentCoursePackage(packagePayment);
                    break;
                case 4:
                    UserCoupon coupon = new UserCoupon();
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -171,12 +171,13 @@
                    detailsVo.setBelongs(courseOfStore.getStoreName()+"可用");
                }
                List<CoursePackagePaymentConfig> courseConfigList = cpcfigClient.getCourseConfigList(coursePackage.getId());
                int redul = 0;
                for (CoursePackagePaymentConfig coursePackagePaymentConfig : courseConfigList) {
                    redul = redul + coursePackagePaymentConfig.getClassHours();
                    if (Objects.equals(coursePackagePaymentConfig.getId(), merchandise.getCoursePackageConfigId())){
                        detailsVo.setCourseHours(coursePackagePaymentConfig.getClassHours());
                        break;
                }
                detailsVo.setCourseHours(redul);
                }
                detailsVo.setStartTime(format.format(merchandise.getStartTime()));
                detailsVo.setEndTime(format.format(merchandise.getEndTime()));
cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java
@@ -149,7 +149,11 @@
     */
    @TableField("insertTime")
    private Date insertTime;
    /**
     * 课包支付配置id
     */
    @TableField("coursePackageConfigId")
    private Integer coursePackageConfigId;
    @Override
    protected Serializable pkVal() {
cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java
@@ -83,7 +83,11 @@
     */
    @TableField("orderNumber")
    private String orderNumber;
    /**
     * 现金的支付状态
     */
    @TableField("payStatus")
    private Integer payStatus;
    @Override
    protected Serializable pkVal() {
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/model/CoursePackage.java
@@ -81,7 +81,7 @@
     */
    private Integer sort;
    /**
     * 支付方式(1=微信 2=支付宝 3=玩湃币)
     * 支付方式(1=微信,2=支付宝,3=玩湃币,4=积分,5=积分+微信,6=积分+支付宝)
     */
    private Integer payType;
    /**
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -700,4 +700,12 @@
                .eq("coursePackageId",coursePackageId));
    }
    @PostMapping("/base/coursePack/getCoursePackagePaymentOfCode")
    public List<TCoursePackagePayment> getCoursePackagePaymentOfCode(@RequestBody String code){
        return packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
                .eq("code",code));
    }
}
cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java
@@ -61,4 +61,8 @@
    @PostMapping("/base/coursePack/obtainStudentClassDetails")
    List<RecordAppoint> obtainStudentClassDetailsData(@RequestBody Integer stuId);
    @PostMapping("/base/coursePack/getCoursePackagePaymentOfCode")
    List<TCoursePackagePayment> getCoursePackagePaymentOfCode(@RequestBody String code);
}