From 7b65fb8c1001850e468a51c2d9af474621ce7115 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期二, 19 三月 2024 18:11:45 +0800
Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/PlayPai into 2.0

---
 cloud-server-account/src/main/java/com/dsh/account/model/BillingRequest.java                                   |    2 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java                       |    2 
 cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java                                          |    4 
 cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java        |    9 
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java                |   41 +
 cloud-server-course/src/main/java/com/dsh/course/util/PayMoneyUtil.java                                        |    4 
 cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java                                  |  108 ++--
 cloud-server-activity/src/main/java/com/dsh/activity/model/UserCouponPayment.java                              |    3 
 cloud-server-other/src/main/java/com/dsh/other/model/BillingRequestOfType.java                                 |    2 
 cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java                     |    2 
 cloud-server-activity/src/main/java/com/dsh/activity/entity/ConsumeDetail.java                                 |    2 
 cloud-server-course/src/main/java/com/dsh/course/model/GetCoursePackagePaymentConfig.java                      |   15 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java                       |    6 
 cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/ConsumeDetail.java               |    4 
 cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserPointsMerchandiseMapper.java                   |    2 
 cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java                           |   19 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java            |    6 
 cloud-server-course/src/main/java/com/dsh/course/entity/AddCoursePackageOrderStudent.java                      |   19 
 cloud-server-account/src/main/java/com/dsh/account/controller/PaymentCallbackController.java                   |    4 
 cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java                              |    4 
 cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserPointsMerchandise.java       |   41 +
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java                   |   10 
 cloud-server-other/src/main/java/com/dsh/other/model/SiteBookingVo.java                                        |  149 ++++++
 cloud-server-competition/src/main/resources/mapper/PaymentCompetitionMapper.xml                                |   12 
 cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/AddCoursePackageOrderStudent.java  |   19 
 cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/GetCoursePackagePaymentConfig.java |   15 
 cloud-server-account/src/main/java/com/dsh/account/model/BillingRequestOfType.java                             |    2 
 cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java                         |   39 +
 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java                   |    3 
 cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java            |   20 
 cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java                                  |    4 
 cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/CoursePackageOrder.java            |  105 ++++
 cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java                                      |    2 
 cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java                 |   20 
 cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponPaymentController.java               |    1 
 cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/BillingRequest.java               |    2 
 cloud-server-other/src/main/resources/mapper/SiteBookingMapper.xml                                             |    7 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java                       |  463 ++++++++++----------
 cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml                                |   36 +
 cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java                               |   24 
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java            |    7 
 cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java                              |   52 ++
 cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java     |    9 
 cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageOrder.java                                |    5 
 cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java                                |    2 
 cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java               |   18 
 46 files changed, 931 insertions(+), 394 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
index 65c40ba..7ca773e 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
@@ -518,15 +518,18 @@
     @PostMapping("/base/appUser/updateAppUser")
     public void updateAppUser(@RequestBody TAppUser appUser) {
         try {
+            TAppUser appUser1 = appUserService.getById(appUser.getId());
             appUserService.updateById(appUser);
-            UserIntegralChanges userIntegralChanges = new UserIntegralChanges();
-            userIntegralChanges.setAppUserId(appUser.getId());
-            userIntegralChanges.setOldIntegral(appUser.getIntegral() + appUser.getPoints());
-            userIntegralChanges.setType(5);
-            userIntegralChanges.setNewIntegral(appUser.getIntegral());
-            userIntegralChanges.setInsertTime(new Date());
-            userIntegralChanges.setCategory(2);
-            userIntegralChangesService.save(userIntegralChanges);
+            if(appUser.getIntegral().compareTo(appUser1.getIntegral()) != 0){
+                UserIntegralChanges userIntegralChanges = new UserIntegralChanges();
+                userIntegralChanges.setAppUserId(appUser.getId());
+                userIntegralChanges.setOldIntegral(appUser1.getIntegral());
+                userIntegralChanges.setType(5);
+                userIntegralChanges.setNewIntegral(appUser.getIntegral());
+                userIntegralChanges.setInsertTime(new Date());
+                userIntegralChanges.setCategory(2);
+                userIntegralChangesService.save(userIntegralChanges);
+            }
 
         } catch (Exception e) {
             e.printStackTrace();
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 24963ef..513f351 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
@@ -152,7 +152,7 @@
                 String out_trade_no = map.get("out_trade_no");
                 String transaction_id = map.get("transaction_id");
                 String result = map.get("result");
-                ResultUtil resultUtil = tappService.exchangeAddPaymentCallback(out_trade_no, transaction_id, 1);
+                ResultUtil resultUtil = tappService.exchangeAddPaymentCallback(out_trade_no, transaction_id);
                 if (resultUtil.getCode() == 200) {
                     PrintWriter out = response.getWriter();
                     out.write(result);
@@ -180,7 +180,7 @@
             if (null != map) {
                 String out_trade_no = map.get("out_trade_no");
                 String trade_no = map.get("trade_no");
-                ResultUtil resultUtil = tappService.exchangeAddPaymentCallback(out_trade_no, trade_no, 2);
+                ResultUtil resultUtil = tappService.exchangeAddPaymentCallback(out_trade_no, trade_no);
                 if (resultUtil.getCode() == 200) {
                     PrintWriter out = response.getWriter();
                     out.write("success");
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserPointsMerchandise.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserPointsMerchandise.java
index c86181f..f0022ae 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserPointsMerchandise.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserPointsMerchandise.java
@@ -7,6 +7,7 @@
 import lombok.Data;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -63,22 +64,23 @@
      * 领取时间
      */
     @TableField("insertTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date insertTime;
     /**
-     * 现金支付方式(1=微信2支付宝)
+     * 现金支付方式(1=积分兑换,2=积分+现金)
      */
     @TableField("payType")
     private Integer payType;
+    /**
+     * 商品数量
+     */
+    @TableField("goodsNumber")
+    private Integer goodsNumber;
     /**
      * code
      */
     @TableField("code")
     private String code;
-    /**
-     * orderNumber
-     */
-    @TableField("orderNumber")
-    private String orderNumber;
     /**
      * 现金的支付状态
      */
@@ -94,6 +96,31 @@
      */
     @TableField("state")
     private Integer state;
-
+    /**
+     * 积分支付数量
+     */
+    @TableField("integral")
+    private Integer integral;
+    /**
+     * 现金支付金额
+     */
+    @TableField("cash")
+    private BigDecimal cash;
+    /**
+     * 现金支付方式(1=微信,2=支付宝)
+     */
+    @TableField("cashPayType")
+    private Integer cashPayType;
+    /**
+     * 第三方支付流水号
+     */
+    @TableField("orderNumber")
+    private String orderNumber;
+    /**
+     * 支付时间
+     */
+    @TableField("paymentTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date paymentTime;
 
 }
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 c08af8a..936321b 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
@@ -63,7 +63,7 @@
     void updatePaymentCoursePackage(@RequestBody TCoursePackagePayment coursePackagePayment);
 
     @PostMapping("/base/coursePack/savePaymentCoursePackage")
-    public boolean savePaymentCoursePackage(@RequestBody TCoursePackagePayment packagePayment);
+    Long savePaymentCoursePackage(@RequestBody CoursePackageOrder coursePackageOrder);
 
 
     @PostMapping("/base/coursePack/orderClass")
@@ -96,4 +96,22 @@
 //    Integer getClassHour(Integer courseConfigId);
 
 
+    @PostMapping("/course/addCoursePackageOrderStudent")
+    void addCoursePackageOrderStudent(@RequestBody AddCoursePackageOrderStudent addCoursePackageOrderStudent);
+
+
+    @PostMapping("/course/getCoursePackageOrderByCode")
+    CoursePackageOrder getCoursePackageOrderByCode(@RequestBody String code);
+
+
+    @PostMapping("/course/updateCoursePackageOrder")
+    void updateCoursePackageOrder(@RequestBody CoursePackageOrder coursePackageOrder);
+
+
+    @PostMapping("/course/getCoursePackagePaymentConfig")
+    CoursePackagePaymentConfig getCoursePackagePaymentConfig(@RequestBody GetCoursePackagePaymentConfig getCoursePackagePaymentConfig);
+
+
+    @PostMapping("/base/coursePack/getCoursePackageOrder")
+    List<CoursePackageOrder> getCoursePackageOrder(@RequestBody BillingDataRequestVo requestVo);
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/AddCoursePackageOrderStudent.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/AddCoursePackageOrderStudent.java
new file mode 100644
index 0000000..e611cdb
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/AddCoursePackageOrderStudent.java
@@ -0,0 +1,19 @@
+package com.dsh.account.feignclient.course.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @date 2024/3/19 14:32
+ */
+@Data
+public class AddCoursePackageOrderStudent {
+    /**
+     * 购买记录id
+     */
+    private Long coursePackageOrderId;
+    /**
+     * 课包配置
+     */
+    private CoursePackagePaymentConfig coursePackagePaymentConfig;
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/CoursePackageOrder.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/CoursePackageOrder.java
new file mode 100644
index 0000000..9a272e1
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/CoursePackageOrder.java
@@ -0,0 +1,105 @@
+package com.dsh.account.feignclient.course.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/11/25 11:45
+ */
+@Data
+public class CoursePackageOrder {
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 业务编号
+     */
+    private String code;
+    /**
+     * 用户id
+     */
+    private Integer appUserId;
+    /**
+     * 学员ids
+     */
+    private String studentIds;
+    /**
+     * 课包id
+     */
+    private Integer coursePackageId;
+    /**
+     * 支付方式(1=微信,2=支付宝,3=玩湃币,4=积分,5=积分+微信,6=积分+支付宝)
+     */
+    private Integer payType;
+    /**
+     * 课时数
+     */
+    private Integer classHours;
+    /**
+     * 原价
+     */
+    private Double originalPrice;
+    /**
+     * 优惠券id
+     */
+    private Long userCouponId;
+    /**
+     * 现金支付价格
+     */
+    private BigDecimal cashPayment;
+    /**
+     * 玩湃币价格/积分
+     */
+    private Integer playPaiCoin;
+    /**
+     * 支付用户类型(1=用户,2=管理员)
+     */
+    private Integer payUserType;
+    /**
+     * 支付状态(1=待支付,2=已支付)
+     */
+    private Integer payStatus;
+    /**
+     * 第三方支付流水号
+     */
+    private String orderNumber;
+    /**
+     * 支付用户id
+     */
+    private Integer payUserId;
+    /**
+     * 课程状态(1=正常,2=已退课)
+     */
+    private Integer status;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date insertTime;
+    /**
+     * 平台手动支付时使用
+     */
+    private String payUserName;
+    /**
+     * 销售人员(线下购课添加购课订单时使用)
+     */
+    private String salesName;
+    /**
+     * 订单类型(1=购买订单,2=积分商品兑换订单)
+     */
+    @TableField("orderType")
+    private Integer orderType;
+
+    @TableField(exist = false)
+    private Integer type;
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/GetCoursePackagePaymentConfig.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/GetCoursePackagePaymentConfig.java
new file mode 100644
index 0000000..b767520
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/GetCoursePackagePaymentConfig.java
@@ -0,0 +1,15 @@
+package com.dsh.account.feignclient.course.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @date 2024/3/19 15:32
+ */
+@Data
+public class GetCoursePackagePaymentConfig {
+
+    private Integer coursePackageId;
+
+    private Integer classHours;
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/BillingRequest.java b/cloud-server-account/src/main/java/com/dsh/account/model/BillingRequest.java
index 53edee7..5bb5fa1 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/model/BillingRequest.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/BillingRequest.java
@@ -18,4 +18,6 @@
      * 金额
      */
     private double amount;
+
+    private Long dateTime;
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/BillingRequestOfType.java b/cloud-server-account/src/main/java/com/dsh/account/model/BillingRequestOfType.java
index 6572ea5..4082713 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/model/BillingRequestOfType.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/BillingRequestOfType.java
@@ -24,4 +24,6 @@
 
     private String time1;
 
+    private Long dateTime;
+
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/ConsumeDetail.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/ConsumeDetail.java
index bfd3eb9..1b04407 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/ConsumeDetail.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/ConsumeDetail.java
@@ -19,4 +19,8 @@
     @ApiModelProperty(value = "1充值 2扣除")
     private Integer type;
 
+    private Long time;
+
+    private Long dateTime;
+
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java b/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
index 99e1e4c..339e7b0 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
@@ -161,7 +161,7 @@
 
 
 
-    ResultUtil exchangeAddPaymentCallback(String code, String orderNumber, Integer payType);
+    ResultUtil exchangeAddPaymentCallback(String code, String orderNumber);
 
     List<StoreResponse> queryStoresOfExchange(Integer goodsType, Integer pointsMerId);
 
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java b/cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java
index dbb6be6..a1d1753 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java
@@ -31,7 +31,7 @@
      * @param vo
      * @throws Exception
      */
-    void saveUserIntegralChanges(SaveUserIntegralChangesVo vo) throws Exception;
+    void saveUserIntegralChanges(SaveUserIntegralChangesVo vo);
 
     List<ExchangeDetailsResponse> queryExchangeGoodsdetails(Integer userIdFormRedis, Integer useType, Integer goodType);
 
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
index 00b51ee..1214233 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -50,6 +50,7 @@
 import com.dsh.account.service.IRefereeService;
 import com.dsh.account.service.TAppGiftService;
 import com.dsh.account.service.TAppUserService;
+import com.dsh.account.service.UserIntegralChangesService;
 import com.dsh.account.util.*;
 import com.dsh.account.util.akeylogin.Md5Util;
 import com.dsh.account.vo.GroupCityInfoVO;
@@ -151,13 +152,14 @@
 
     @Resource
     private SiteClient stClient;
-    @Autowired
+
+    @Resource
     private TAppUserMapper appUserMapper;
 
     @Autowired
     private TAppGiftService appGiftService;
 
-    @Autowired
+    @Resource
     private IntroduceRewardsClient introduceRewardsClient;
 
     private String aliAppid = "2021004105665036";//支付宝appid
@@ -185,6 +187,9 @@
 
     @Resource
     private WorldCupPaymentClinet worldCupPaymentClinet;
+
+    @Autowired
+    private UserIntegralChangesService userIntegralChangesService;
 
 
 
@@ -813,6 +818,7 @@
                 consumeDetail.setConsumeTime(paymentCompetition.getTime());
                 consumeDetail.setConsumeAmount("-" + paymentCompetition.getAmount());
                 consumeDetail.setType(2);
+                consumeDetail.setDateTime(paymentCompetition.getDateTime());
                 details.add(consumeDetail);
             }
         }
@@ -825,37 +831,21 @@
                 consumeDetail.setConsumeTime(paymentCompetition.getTime());
                 consumeDetail.setConsumeAmount("+" + paymentCompetition.getAmount());
                 consumeDetail.setType(1);
+                consumeDetail.setDateTime(paymentCompetition.getDateTime());
                 details.add(consumeDetail);
             }
         }
-//            3.课包购买
-//        BillingRequestVo amountPayRecord = paymentClient.getAmountPayRecord(requestVo);
-//        if (ToolUtil.isNotEmpty(amountPayRecord.getRequests())){
-//            for (BillingRequest coursePackagePayment : amountPayRecord.getRequests()) {
-//                ConsumeDetail consumeDetail = new ConsumeDetail();
-//                consumeDetail.setConsumeName(RechargeRecordEnum.COURSE_PACKAGE_PURCHASE.getMsg());
-//                consumeDetail.setConsumeTime(coursePackagePayment.getTime());
-//                consumeDetail.setConsumeAmount("-" + coursePackagePayment.getAmount());
-//                consumeDetail.setType(2);
-//                details.add(consumeDetail);
-//            }
-//        }
 
-        //2.0
-        List<CourseCounsum> courseCounsums = paymentClient.getConsumes(requestVo);
+        //3.课包购买
+        List<CoursePackageOrder> coursePackageOrder = paymentClient.getCoursePackageOrder(requestVo);
 
-        for (CourseCounsum courseCounsum : courseCounsums) {
+        for (CoursePackageOrder order : coursePackageOrder) {
             ConsumeDetail consumeDetail = new ConsumeDetail();
-            String[] split = courseCounsum.getReason().split(";");
-            consumeDetail.setConsumeName(split[0]);
-            consumeDetail.setConsumeTime(simpleDateFormat.format(courseCounsum.getInsertTime()));
-//            if (courseCounsum.getChangeType()==3){
-            consumeDetail.setConsumeAmount("-" + split[1]);
+            consumeDetail.setConsumeName("课程报名");
+            consumeDetail.setConsumeTime(simpleDateFormat.format(order.getInsertTime()));
+            consumeDetail.setConsumeAmount("-" + order.getCashPayment());
             consumeDetail.setType(2);
-//            }
-//
-//            consumeDetail.setConsumeAmount("-" + coursePackagePayment.getAmount());
-//            consumeDetail.setType(2);
+            consumeDetail.setDateTime(order.getInsertTime().getTime());
             details.add(consumeDetail);
         }
 
@@ -870,23 +860,25 @@
                     consumeDetail.setConsumeAmount("-" + booking.getAmount());
                     consumeDetail.setConsumeTime(booking.getTime());
                     consumeDetail.setType(2);
+                    consumeDetail.setDateTime(booking.getDateTime());
                     details.add(consumeDetail);
                 } else {
                     ConsumeDetail consumeDetail1 = new ConsumeDetail();
                     consumeDetail1.setConsumeName(RechargeRecordEnum.CANCEL_VENUE_RESERVATION.getMsg());
                     consumeDetail1.setConsumeAmount("+" + booking.getAmount());
                     consumeDetail1.setConsumeTime(booking.getTime());
+                    consumeDetail1.setDateTime(booking.getDateTime());
                     consumeDetail1.setType(1);
                     details.add(consumeDetail1);
+
                     ConsumeDetail consumeDetail2 = new ConsumeDetail();
                     consumeDetail2.setConsumeName(RechargeRecordEnum.VENUE_RESERVATION.getMsg());
                     consumeDetail2.setConsumeAmount("-" + booking.getAmount());
                     consumeDetail2.setConsumeTime(booking.getTime1());
                     consumeDetail2.setType(2);
+                    consumeDetail2.setDateTime(booking.getDateTime());
                     details.add(consumeDetail2);
-
                 }
-//                details.add(consumeDetail);
             }
         }
 
@@ -903,6 +895,7 @@
                 consumeDetail.setConsumeTime(simpleDateFormat.format(vipPayment.getInsertTime()));
                 consumeDetail.setConsumeAmount("-" + vipPayment.getAmount());
                 consumeDetail.setType(2);
+                consumeDetail.setDateTime(vipPayment.getPayTime().getTime());
                 details.add(consumeDetail);
             }
         }
@@ -918,6 +911,7 @@
                 consumeDetail.setConsumeTime(simpleDateFormat.format(rechargeRecord.getInsertTime()));
                 consumeDetail.setConsumeAmount("-" + rechargeRecord.getAmount());
                 consumeDetail.setType(2);
+                consumeDetail.setDateTime(rechargeRecord.getPayTime().getTime());
                 details.add(consumeDetail);
             }
         }
@@ -927,31 +921,6 @@
         List<ConsumeDetail> consumeDetails = mcClient.getConsumeDetails(requestVo);
         details.addAll(consumeDetails);
 
-
-        if (details.size() > 0) {
-            Collections.sort(details, new Comparator<ConsumeDetail>() {
-                @Override
-                public int compare(ConsumeDetail record1, ConsumeDetail record2) {
-                    SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd HH:mm");
-                    Date date1 = null;
-                    Date date2 = null;
-                    try {
-                        date1 = dateFormat.parse(record1.getConsumeTime());
-                        date2 = dateFormat.parse(record2.getConsumeTime());
-                    } catch (ParseException e) {
-                        e.printStackTrace();
-                    }
-                    // 倒序排序
-                    return date2.compareTo(date1);
-                }
-            });
-
-            if (ToolUtil.isNotEmpty(recordId)) {
-                details = details.stream()
-                        .filter(response -> Objects.equals(response.getType(), recordId))
-                        .collect(Collectors.toList());
-            }
-        }
 
         //世界杯
         GetWorldCupPayment getWorldCupPayment = new GetWorldCupPayment();
@@ -967,6 +936,7 @@
                 consumeDetail.setConsumeTime(simpleDateFormat.format(cupPayment.getCreateTime()));
                 consumeDetail.setConsumeAmount("-" + cupPayment.getAmount());
                 consumeDetail.setType(2);
+                consumeDetail.setDateTime(cupPayment.getPayTime().getTime());
                 details.add(consumeDetail);
             }else{
                 consumeDetail = new ConsumeDetail();
@@ -974,6 +944,7 @@
                 consumeDetail.setConsumeTime(simpleDateFormat.format(cupPayment.getCreateTime()));
                 consumeDetail.setConsumeAmount("-" + cupPayment.getAmount());
                 consumeDetail.setType(2);
+                consumeDetail.setDateTime(cupPayment.getPayTime().getTime());
                 details.add(consumeDetail);
 
                 consumeDetail = new ConsumeDetail();
@@ -981,7 +952,23 @@
                 consumeDetail.setConsumeTime(simpleDateFormat.format(cupPayment.getCreateTime()));
                 consumeDetail.setConsumeAmount("+" + cupPayment.getRefundAmount());
                 consumeDetail.setType(1);
+                consumeDetail.setDateTime(cupPayment.getRefundTime().getTime());
                 details.add(consumeDetail);
+            }
+        }
+
+        if (details.size() > 0) {
+            Collections.sort(details, new Comparator<ConsumeDetail>() {
+                @Override
+                public int compare(ConsumeDetail record1, ConsumeDetail record2) {
+                    return record1.getDateTime().compareTo(record2.getDateTime()) * -1;
+                }
+            });
+
+            if (ToolUtil.isNotEmpty(recordId)) {
+                details = details.stream()
+                        .filter(response -> Objects.equals(response.getType(), recordId))
+                        .collect(Collectors.toList());
             }
         }
 
@@ -1487,118 +1474,136 @@
                 return ResultUtil.error("超过发放数量");
             }
 
-
-            for (int i = 0; i < goodsNums; i++) {
-//            新增积分商品兑换记录
-                UserPointsMerchandise pointsMerchandise = new UserPointsMerchandise();
-                pointsMerchandise.setPointsMerchandiseId(exchangeType.getGoodId());
-                pointsMerchandise.setUserId(userIdFormRedis);
-                if (exchangeType.getGoodsType() == 2) {
-                    pointsMerchandise.setStatus(2);
-                    pointsMerchandise.setVerificationTime(new Date());
-                } else {
-                    pointsMerchandise.setStatus(1);
-                }
-                pointsMerchandise.setState(1);
-                if (exchangeType.getExchangeType() == 1) {
-                    pointsMerchandise.setPayStatus(2);
-                } else {
-                    pointsMerchandise.setPayStatus(1);
-                }
-                if (merchandise.getUseScope() == 3) {
-                    if (exchangeType.getGoodsType() == 2) {
-                        CoursePackage coursePackage = cpageClient.queryCoursePackageById(merchandise.getCoursePackageId());
-                        pointsMerchandise.setStoreId(coursePackage.getStoreId());
-                    } else {
-                        pointsMerchandise.setStoreId(exchangeType.getStoreId());
-                    }
-                }
-                pointsMerchandise.setCode(code);
-                pointsMerchandise.setInsertTime(new Date());
-                returnId = mcClient.saveDetailsUserPointMercase(pointsMerchandise);
+            //新增积分商品兑换记录
+            UserPointsMerchandise pointsMerchandise = new UserPointsMerchandise();
+            pointsMerchandise.setPointsMerchandiseId(exchangeType.getGoodId());
+            pointsMerchandise.setUserId(userIdFormRedis);
+            pointsMerchandise.setGoodsNumber(goodsNums);
+            if (exchangeType.getGoodsType() == 2) {
+                pointsMerchandise.setStatus(2);
+                pointsMerchandise.setVerificationTime(new Date());
+            } else {
+                pointsMerchandise.setStatus(1);
             }
+            pointsMerchandise.setState(1);
+            if (exchangeType.getExchangeType() == 1) {
+                pointsMerchandise.setPayStatus(2);
+                pointsMerchandise.setPaymentTime(new Date());
+            } else {
+                pointsMerchandise.setPayStatus(1);
+            }
+            if (merchandise.getUseScope() == 3) {
+                if (exchangeType.getGoodsType() == 2) {
+                    CoursePackage coursePackage = cpageClient.queryCoursePackageById(merchandise.getCoursePackageId());
+                    pointsMerchandise.setStoreId(coursePackage.getStoreId());
+                } else {
+                    pointsMerchandise.setStoreId(exchangeType.getStoreId());
+                }
+            }
+            pointsMerchandise.setCode(code);
+            pointsMerchandise.setInsertTime(new Date());
+            pointsMerchandise.setPayType(exchangeType.getExchangeType());
+            pointsMerchandise.setIntegral(merchandise.getIntegral() * goodsNums);
+            if(exchangeType.getExchangeType() == 2){
+                pointsMerchandise.setCash(merchandise.getCash());
+                pointsMerchandise.setCashPayType(exchangeType.getPayType());
+            }
+            returnId = mcClient.saveDetailsUserPointMercase(pointsMerchandise);
+
 
             switch (exchangeType.getExchangeType()) {
 //            积分
                 case 1:
-                    boolean b = true;
-                    for (int i = 0; i < goodsNums; i++) {
-                        b = dealAppUserIntegral(userIdFormRedis, tAppUser, merchandise.getIntegral());
+                    boolean b = dealAppUserIntegral(userIdFormRedis, tAppUser, merchandise.getIntegral() * goodsNums);
+                    if (b) switch (exchangeType.getGoodsType()) {
+                        case 2:
+                            code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
+                            List<CoursePackagePaymentConfig> courseConfigList = cpconClient.getCourseConfigList(merchandise.getCoursePackageId());
+                            CoursePackageOrder coursePackageOrder = new CoursePackageOrder();
+                            coursePackageOrder.setCode(code);
+                            coursePackageOrder.setAppUserId(userIdFormRedis);
+                            String ids = exchangeType.getStuIds().stream().map(s -> {
+                                return String.valueOf(s);
+                            }).collect(Collectors.joining(";"));
+                            coursePackageOrder.setStudentIds(ids);
+                            coursePackageOrder.setCoursePackageId(merchandise.getCoursePackageId());
+                            coursePackageOrder.setPayType(4);
+                            CoursePackagePaymentConfig config = null;
+                            for (CoursePackagePaymentConfig coursePackagePaymentConfig : courseConfigList) {
+                                if (coursePackagePaymentConfig.getId().compareTo(merchandise.getCoursePackageConfigId()) == 0) {
+                                    coursePackageOrder.setClassHours(coursePackagePaymentConfig.getClassHours());
+                                    coursePackageOrder.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
+
+                                    config = coursePackagePaymentConfig;
+                                    break;
+                                }
+                            }
+                            coursePackageOrder.setPlayPaiCoin(merchandise.getIntegral());
+                            coursePackageOrder.setPayUserType(1);
+                            coursePackageOrder.setPayStatus(2);
+                            coursePackageOrder.setPayUserId(userIdFormRedis);
+                            coursePackageOrder.setStatus(1);
+                            coursePackageOrder.setState(1);
+                            coursePackageOrder.setInsertTime(new Date());
+                            coursePackageOrder.setOrderType(2);
+                            Long coursePackageOrderId = paymentClient.savePaymentCoursePackage(coursePackageOrder);
+
+                            AddCoursePackageOrderStudent addCoursePackageOrderStudent = new AddCoursePackageOrderStudent();
+                            addCoursePackageOrderStudent.setCoursePackageOrderId(coursePackageOrderId);
+                            addCoursePackageOrderStudent.setCoursePackagePaymentConfig(config);
+                            paymentClient.addCoursePackageOrderStudent(addCoursePackageOrderStudent);
+                            break;
+                        case 4:
+                            for (int i = 0; i < goodsNums; i++) {
+                                UserCoupon coupon = new UserCoupon();
+                                coupon.setCouponId(exchangeType.getGoodId());
+                                coupon.setUserId(userIdFormRedis);
+                                coupon.setStatus(1);
+                                coupon.setInsertTime(new Date());
+                                ucponClient.insertToAppuserCoupon(coupon);
+                            }
+                            break;
+                        default:
+                            break;
                     }
-                    if (b) {
-                        switch (exchangeType.getGoodsType()) {
-                            case 2:
-                                Integer stuNums = 0;
-                                if (ToolUtil.isNotEmpty(exchangeType.getStuIds())) {
-                                    stuNums = exchangeType.getStuIds().size();
-                                } else {
-                                    stuNums = 1;
-                                }
-                                for (int i = 0; i < stuNums; i++) {
-                                    List<CoursePackagePaymentConfig> courseConfigList = cpconClient.getCourseConfigList(merchandise.getCoursePackageId());
-                                    TCoursePackagePayment packagePayment = new TCoursePackagePayment();
-                                    packagePayment.setAppUserId(userIdFormRedis);
-                                    packagePayment.setStudentId(exchangeType.getStuIds().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(2);
-                                    packagePayment.setPayUserId(userIdFormRedis);
-                                    packagePayment.setStatus(1);
-                                    packagePayment.setState(1);
-                                    packagePayment.setCode(code);
-                                    packagePayment.setInsertTime(new Date());
-//                                    paymentClient.savePaymentCoursePackage(packagePayment);
-
-                                    OrderDto orderDto = new OrderDto();
-                                    orderDto.setAppUserId(userIdFormRedis);
-                                    String joinedString = String.join(",", exchangeType.getStuIds().stream().map(Object::toString).collect(Collectors.toList()));
-                                    orderDto.setStuIds(joinedString);
-                                    orderDto.setClassId(merchandise.getCoursePackageId());
-                                    orderDto.setClassHours(packagePayment.getClassHours());
-                                    paymentClient.orderClass(orderDto);
-
-
-                                }
-                                break;
-                            case 4:
-                                for (int i = 0; i < goodsNums; i++) {
-                                    UserCoupon coupon = new UserCoupon();
-                                    coupon.setCouponId(exchangeType.getGoodId());
-                                    coupon.setUserId(userIdFormRedis);
-                                    coupon.setStatus(1);
-                                    coupon.setInsertTime(new Date());
-                                    ucponClient.insertToAppuserCoupon(coupon);
-                                }
-                                break;
-                            default:
-                                break;
-                        }
-                    } else {
+                    else {
                         return ResultUtil.error("用户积分不足!");
                     }
                     break;
                 case 2:
 //                积分+现金
-                    boolean dealt = true;
-                    for (int i = 0; i < goodsNums; i++) {
-                        dealt = dealAppUserIntegral(userIdFormRedis, tAppUser, merchandise.getIntegral());
-                    }
-
                     switch (exchangeType.getPayType()) {
                         case 1:
                             try {
                                 if (merchandise.getType() == 2) {
+                                    List<CoursePackagePaymentConfig> courseConfigList = cpconClient.getCourseConfigList(merchandise.getCoursePackageId());
+                                    CoursePackageOrder coursePackageOrder = new CoursePackageOrder();
+                                    coursePackageOrder.setCode(code);
+                                    coursePackageOrder.setAppUserId(userIdFormRedis);
+                                    String ids = exchangeType.getStuIds().stream().map(s -> {
+                                        return String.valueOf(s);
+                                    }).collect(Collectors.joining(";"));
+                                    coursePackageOrder.setStudentIds(ids);
+                                    coursePackageOrder.setCoursePackageId(merchandise.getCoursePackageId());
+                                    coursePackageOrder.setPayType(5);
+                                    CoursePackagePaymentConfig config = null;
+                                    for (CoursePackagePaymentConfig coursePackagePaymentConfig : courseConfigList) {
+                                        if (coursePackagePaymentConfig.getId().compareTo(merchandise.getCoursePackageConfigId()) == 0) {
+                                            coursePackageOrder.setClassHours(coursePackagePaymentConfig.getClassHours());
+                                            coursePackageOrder.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
+                                            break;
+                                        }
+                                    }
+                                    coursePackageOrder.setCashPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())));
+                                    coursePackageOrder.setPlayPaiCoin(merchandise.getIntegral() * exchangeType.getStuIds().size());
+                                    coursePackageOrder.setPayUserType(1);
+                                    coursePackageOrder.setPayStatus(1);
+                                    coursePackageOrder.setPayUserId(userIdFormRedis);
+                                    coursePackageOrder.setStatus(1);
+                                    coursePackageOrder.setState(1);
+                                    coursePackageOrder.setInsertTime(new Date());
+                                    coursePackageOrder.setOrderType(2);
+                                    paymentClient.savePaymentCoursePackage(coursePackageOrder);
                                     return WechatPayment(merchandise.getType(), merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
                                 } else {
                                     return WechatPayment(merchandise.getType(), merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
@@ -1662,7 +1667,8 @@
     public ResultUtil weChatPaymentCoupon(String body, UserCouponPayment userCouponPayment) throws Exception {
         String code = userCouponPayment.getCode();
         Double cash = userCouponPayment.getCash();
-        ResultUtil weixinpay = payMoneyUtil.weixinpay(body, "", code, cash.toString(), "/base/coupon/weChatPaymentCouponCallback", "APP", "");
+        ResultUtil weixinpay = payMoneyUtil.weixinpay(body, "", code, cash.toString(),
+                "/base/coupon/weChatPaymentCouponCallback", "APP", "");
         if (weixinpay.getCode() == 200) {
             new Thread(new Runnable() {
                 @Override
@@ -1692,7 +1698,7 @@
                                 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) {
+                                if ("REFUND".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10) {
                                     //有待支付的订单,这里不处理
                                     userCouponPayment1.setStatus(-1);
                                     userCouponPaymentClient.updateUserCouponPayment(userCouponPayment1);
@@ -1719,7 +1725,7 @@
                                     }
                                     break;
                                 }
-                                if ("USERPAYING".equals(s)) {
+                                if ("USERPAYING".equals(s) || "NOTPAY".equals(s)) {
                                     num++;
                                 }
                             }
@@ -1745,7 +1751,8 @@
         String code = userCouponPayment.getCode();
         Double cash = userCouponPayment.getCash();
 
-        ResultUtil alipay = payMoneyUtil.alipay(smid, body, "",String.valueOf(userCouponPayment.getId()), code, cash.toString(), "/base/coupon/aliPaymentCouponCallback");
+        ResultUtil alipay = payMoneyUtil.alipay(smid, body, "",String.valueOf(userCouponPayment.getId()), code, cash.toString(),
+                "/base/coupon/aliPaymentCouponCallback");
         if (alipay.getCode() == 200) {
             new Thread(new Runnable() {
                 @Override
@@ -1846,9 +1853,13 @@
 
         if(null != userCouponPayment1.getIntegral() && 0 != userCouponPayment1.getIntegral()){
             //扣积分
-            TAppUser user = appUserService.getById(userCouponPayment1.getUserId());
-            user.setIntegral(user.getIntegral() - userCouponPayment1.getIntegral().intValue());
-            appUserService.updateById(user);
+            SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+            vo.setAppUserId(userCouponPayment1.getUserId());
+            vo.setIntegral(userCouponPayment1.getIntegral().intValue() * -1);
+            vo.setRemark("兑换优惠券");
+            vo.setType(2);
+            userIntegralChangesService.saveUserIntegralChanges(vo);
+
         }
         return ResultUtil.success();
     }
@@ -2058,12 +2069,12 @@
                             int min = 5000;
                             wait += (min * num);
                             Thread.sleep(wait);
-                            List<UserPointsMerchandise> userPointsMerchandises = mcClient.queryUserPointMerchaseByCode(code);
-                            if (userPointsMerchandises.get(0).getPayStatus() == 2) {
+                            UserPointsMerchandise userPointsMerchandise = mcClient.queryUserPointMerchaseByCode(code).get(0);
+                            if (userPointsMerchandise.getPayStatus() == 2) {
                                 break;
                             }
                             ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(code, "");
-                            if (resultUtil.getCode() == 200 && userPointsMerchandises.get(0).getPayStatus() == 1) {
+                            if (resultUtil.getCode() == 200 && userPointsMerchandise.getPayStatus() == 1) {
                                 /**
                                  * SUCCESS—支付成功,
                                  * REFUND—转入退款,
@@ -2076,20 +2087,42 @@
                                 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) {
+                                if ("REFUND".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10) {
                                     mcClient.deletePaymentRecord(code);
                                     break;
                                 }
                                 if ("SUCCESS".equals(s)) {
-                                    for (UserPointsMerchandise userPointsMerchandise : userPointsMerchandises) {
-                                        userPointsMerchandise.setPayStatus(2);
-                                        userPointsMerchandise.setOrderNumber(transaction_id);
-                                        userPointsMerchandise.setPayType(1);
-                                        mcClient.updateDetailsUserPointMercase(userPointsMerchandise);
+                                    userPointsMerchandise.setPayStatus(2);
+                                    userPointsMerchandise.setOrderNumber(transaction_id);
+                                    userPointsMerchandise.setPayType(1);
+                                    mcClient.updateDetailsUserPointMercase(userPointsMerchandise);
+
+                                    TAppUser tAppUser = baseMapper.selectById(userPointsMerchandise.getUserId());
+                                    dealAppUserIntegral(userPointsMerchandise.getUserId(), tAppUser, userPointsMerchandise.getIntegral());
+
+                                    //课程
+                                    if(type == 2){
+                                        CoursePackageOrder coursePackageOrder1 = paymentClient.getCoursePackageOrderByCode(code);
+                                        if(null != coursePackageOrder1){
+                                            coursePackageOrder1.setPayStatus(2);
+                                            coursePackageOrder1.setOrderNumber(transaction_id);
+                                            coursePackageOrder1.setAppUserId(null);
+                                            paymentClient.updateCoursePackageOrder(coursePackageOrder1);
+
+                                            GetCoursePackagePaymentConfig getCoursePackagePaymentConfig = new GetCoursePackagePaymentConfig();
+                                            getCoursePackagePaymentConfig.setCoursePackageId(coursePackageOrder1.getCoursePackageId());
+                                            getCoursePackagePaymentConfig.setClassHours(coursePackageOrder1.getClassHours());
+                                            CoursePackagePaymentConfig coursePackagePaymentConfig = paymentClient.getCoursePackagePaymentConfig(getCoursePackagePaymentConfig);
+
+                                            AddCoursePackageOrderStudent addCoursePackageOrderStudent = new AddCoursePackageOrderStudent();
+                                            addCoursePackageOrderStudent.setCoursePackageOrderId(coursePackageOrder1.getId());
+                                            addCoursePackageOrderStudent.setCoursePackagePaymentConfig(coursePackagePaymentConfig);
+                                            paymentClient.addCoursePackageOrderStudent(addCoursePackageOrderStudent);
+                                        }
                                     }
                                     break;
                                 }
-                                if ("USERPAYING".equals(s)) {
+                                if ("USERPAYING".equals(s) || "NOTPAY".equals(s)) {
                                     num++;
                                 }
                             }
@@ -2104,75 +2137,43 @@
     }
 
     @Override
-    public ResultUtil exchangeAddPaymentCallback(String code, String orderNumber, Integer payType) {
-        List<UserPointsMerchandise> userPointsMerchandises = mcClient.queryUserPointMerchaseByCode(code);
-        if (userPointsMerchandises.get(0).getPayStatus() == 2) {
+    public ResultUtil exchangeAddPaymentCallback(String code, String orderNumber) {
+        UserPointsMerchandise userPointsMerchandise = mcClient.queryUserPointMerchaseByCode(code).get(0);
+        if (userPointsMerchandise.getPayStatus() == 2) {
             return ResultUtil.success();
         }
-        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:
-                        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();
-                        coupon.setCouponId(userPointsMerchandises.get(0).getPointsMerchandiseId());
-                        coupon.setUserId(userPointsMerchandises.get(0).getUserId());
-                        coupon.setStatus(1);
-                        coupon.setInsertTime(new Date());
-                        ucponClient.insertToAppuserCoupon(coupon);
-                        break;
-                    default:
-                        break;
-                }
+        userPointsMerchandise.setOrderNumber(orderNumber);
+        userPointsMerchandise.setPayStatus(2);
+        userPointsMerchandise.setPaymentTime(new Date());
+        mcClient.updateDetailsUserPointMercase(userPointsMerchandise);
+
+        TAppUser tAppUser = baseMapper.selectById(userPointsMerchandise.getUserId());
+        dealAppUserIntegral(userPointsMerchandise.getUserId(), tAppUser, userPointsMerchandise.getIntegral());
+
+        Integer pointsMerchandiseId = userPointsMerchandise.getPointsMerchandiseId();
+        PointsMerchandise pointsMerchandise = mcClient.selectPointsMerchandiseById(pointsMerchandiseId);
+        if(pointsMerchandise.getType() == 2){
+            //课程
+            CoursePackageOrder coursePackageOrder1 = paymentClient.getCoursePackageOrderByCode(code);
+            if(null != coursePackageOrder1){
+                coursePackageOrder1.setPayStatus(2);
+                coursePackageOrder1.setOrderNumber(orderNumber);
+                coursePackageOrder1.setAppUserId(null);
+                paymentClient.updateCoursePackageOrder(coursePackageOrder1);
+
+                GetCoursePackagePaymentConfig getCoursePackagePaymentConfig = new GetCoursePackagePaymentConfig();
+                getCoursePackagePaymentConfig.setCoursePackageId(coursePackageOrder1.getCoursePackageId());
+                getCoursePackagePaymentConfig.setClassHours(coursePackageOrder1.getClassHours());
+                CoursePackagePaymentConfig coursePackagePaymentConfig = paymentClient.getCoursePackagePaymentConfig(getCoursePackagePaymentConfig);
+
+                AddCoursePackageOrderStudent addCoursePackageOrderStudent = new AddCoursePackageOrderStudent();
+                addCoursePackageOrderStudent.setCoursePackageOrderId(coursePackageOrder1.getId());
+                addCoursePackageOrderStudent.setCoursePackagePaymentConfig(coursePackagePaymentConfig);
+                paymentClient.addCoursePackageOrderStudent(addCoursePackageOrderStudent);
             }
-        } 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:
-                    List<TCoursePackagePayment> coursePackagePaymentOfCode = paymentClient.getCoursePackagePaymentOfCode(code);
-
-                    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();
-                    coupon.setCouponId(userPointsMerchandises.get(0).getPointsMerchandiseId());
-                    coupon.setUserId(userPointsMerchandises.get(0).getUserId());
-                    coupon.setStatus(1);
-                    coupon.setInsertTime(new Date());
-                    ucponClient.insertToAppuserCoupon(coupon);
-                    break;
-                default:
-                    break;
-            }
-
         }
+
         return ResultUtil.success();
     }
 
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 20e67ad..9219575 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
@@ -387,7 +387,7 @@
         packagePayment.setStatus(1);
         packagePayment.setState(1);
         packagePayment.setInsertTime(new Date());
-        couPayClient.savePaymentCoursePackage(packagePayment);
+//        couPayClient.savePaymentCoursePackage(packagePayment);
 
         Integer hour = couPayClient.getClassHour(request.getCourseConfigId());
 
@@ -451,7 +451,7 @@
                                 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) {
+                                if ("REFUND".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10) {
                                     coursePackagePayment.setState(3);
                                     couPayClient.delPaymentCoursePackage(coursePackagePayment.getId());
                                     break;
@@ -464,7 +464,7 @@
                                     couPayClient.updatePaymentCoursePackage(coursePackagePayment);
                                     break;
                                 }
-                                if ("USERPAYING".equals(s)) {
+                                if ("USERPAYING".equals(s) || "NOTPAY".equals(s)) {
                                     num++;
                                 }
                             }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
index a01d251..3e1b4cd 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
@@ -95,12 +95,12 @@
                         detail.setDetailsType(1);
                         break;
                     case 6:
-                        detail.setConsumeAmount("" + (userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
+                        detail.setConsumeAmount("+" + (userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
                         detail.setConsumeName("参与社区世界杯");
                         detail.setDetailsType(2);
                         break;
                     case 7:
-                        detail.setConsumeAmount("" + (userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
+                        detail.setConsumeAmount("+" + (userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
                         detail.setConsumeName("社区世界杯获胜");
                         detail.setDetailsType(2);
                         break;
@@ -133,7 +133,7 @@
      * @throws Exception
      */
     @Override
-    public void saveUserIntegralChanges(SaveUserIntegralChangesVo vo) throws Exception {
+    public void saveUserIntegralChanges(SaveUserIntegralChangesVo vo) {
         TAppUser appUser = tauMapper.selectById(vo.getAppUserId());
         UserIntegralChanges userIntegralChanges = new UserIntegralChanges();
         userIntegralChanges.setAppUserId(vo.getAppUserId());
diff --git a/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java b/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
index 9af98bc..d38da4b 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
@@ -86,7 +86,7 @@
 
     private String alipay_root_cert_path = "C:/cert/alipay/user/alipay_root_cert_path.crt";//支付宝CA根证书文件路径
 
-    private String certPath = "C:\\cert\\1523106371_20211206_cert\\apiclient_cert.p12";//微信证书
+    private String certPath = "C:\\Users\\Admin\\Desktop\\weixin_cert\\apiclient_cert.p12";//微信证书
 
 
     /**
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
index 896d87c..b3ea633 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -1363,7 +1363,6 @@
     @PostMapping("/base/pointMerchars/updateDetailsUserPointMercase")
     public void updateDetailsUserPointMercase(@RequestBody UserPointsMerchandise merchandise) {
         merchandise.setUserId(null);
-        merchandise.setPointsMerchandiseId(null);
         upmseService.updateById(merchandise);
     }
 
@@ -1442,8 +1441,6 @@
     @PostMapping("/base/pointMerchars/getConsumeDetails")
     public List<ConsumeDetail> getConsumeDetails(@RequestBody BillingDataRequestVo requestVo) {
         return upmseService.getConsumeDetails(requestVo);
-
-
     }
 
 
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponPaymentController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponPaymentController.java
index 01209fb..59f176a 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponPaymentController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponPaymentController.java
@@ -51,6 +51,7 @@
     @ResponseBody
     @PostMapping("/userCouponPayment/updateUserCouponPayment")
     public void updateUserCouponPayment(@RequestBody UserCouponPayment userCouponPayment){
+        userCouponPayment.setUserId(null);
         userCouponPaymentService.updateById(userCouponPayment);
     }
 }
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/ConsumeDetail.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/ConsumeDetail.java
index 96bc0bd..829cfcb 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/entity/ConsumeDetail.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/ConsumeDetail.java
@@ -19,4 +19,6 @@
     @ApiModelProperty(value = "1充值 2扣除")
     private Integer type;
 
+    private Long dateTime;
+
 }
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java
index a9096e4..9c229b0 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java
@@ -11,6 +11,7 @@
 import lombok.experimental.Accessors;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -72,20 +73,20 @@
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date insertTime;
     /**
-     * 现金支付方式(1=微信2支付宝)
+     * 现金支付方式(1=积分兑换,2=积分+现金)
      */
     @TableField("payType")
     private Integer payType;
+    /**
+     * 商品数量
+     */
+    @TableField("goodsNumber")
+    private Integer goodsNumber;
     /**
      * code
      */
     @TableField("code")
     private String code;
-    /**
-     * orderNumber
-     */
-    @TableField("orderNumber")
-    private String orderNumber;
     /**
      * 现金的支付状态
      */
@@ -101,6 +102,32 @@
      */
     @TableField("state")
     private Integer state;
+    /**
+     * 积分支付数量
+     */
+    @TableField("integral")
+    private Integer integral;
+    /**
+     * 现金支付金额
+     */
+    @TableField("cash")
+    private BigDecimal cash;
+    /**
+     * 现金支付方式(1=微信,2=支付宝)
+     */
+    @TableField("cashPayType")
+    private Integer cashPayType;
+    /**
+     * 第三方支付流水号
+     */
+    @TableField("orderNumber")
+    private String orderNumber;
+    /**
+     * 支付时间
+     */
+    @TableField("paymentTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date paymentTime;
 
 
     @Override
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserPointsMerchandiseMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserPointsMerchandiseMapper.java
index 45cc535..db8de27 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserPointsMerchandiseMapper.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserPointsMerchandiseMapper.java
@@ -28,4 +28,6 @@
     Object changeState(List<Integer> ids, Integer state);
 
     List<ConsumeDetail> getConsumeDetails(BillingDataRequestVo requestVo);
+
+    List<ConsumeDetail> getConsumeDetails1(BillingDataRequestVo requestVo);
 }
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/UserCouponPayment.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/UserCouponPayment.java
index ee18da6..e2eb729 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/model/UserCouponPayment.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/UserCouponPayment.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.util.Date;
@@ -69,10 +70,12 @@
      * 支付时间
      */
     @TableField("paymentTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date paymentTime;
     /**
      * 添加时间
      */
     @TableField("insertTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date insertTime;
 }
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java
index 53b18ea..03c44e2 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java
@@ -25,8 +25,12 @@
  */
 @Service
 public class UserPointsMerchandiseServiceImpl extends ServiceImpl<UserPointsMerchandiseMapper, UserPointsMerchandise> implements UserPointsMerchandiseService {
+
     @Autowired
     private UserPointsMerchandiseMapper userPointsMerchandiseMapper;
+
+
+
 
     @Override
     public List<PointMerchandiseIncomeVo> getAmount() {
@@ -42,6 +46,9 @@
 
     @Override
     public List<ConsumeDetail> getConsumeDetails(BillingDataRequestVo requestVo) {
-        return this.baseMapper.getConsumeDetails(requestVo);
+        List<ConsumeDetail> consumeDetails = this.baseMapper.getConsumeDetails(requestVo);
+        List<ConsumeDetail> consumeDetails1 = this.baseMapper.getConsumeDetails1(requestVo);
+        consumeDetails.addAll(consumeDetails1);
+        return consumeDetails;
     }
 }
diff --git a/cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml b/cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml
index 2cba3eb..6e93a78 100644
--- a/cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml
+++ b/cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml
@@ -26,18 +26,18 @@
 
         SELECT
         CASE tm.type
-        WHEN 1 THEN '实体购买'
-        WHEN 2 THEN '课包购买'
-        WHEN 3 THEN '门票购买'
-        WHEN 4 THEN '优惠券购买'
+        WHEN 1 THEN '兑换实体商品'
+        WHEN 2 THEN '兑换运动营商品'
+        WHEN 3 THEN '兑换门票'
+        WHEN 4 THEN '兑换优惠券'
         END AS consumeName ,DATE_FORMAT(pm.insertTime, '%m-%d %H:%i')as `consumeTime`,2 as type,CONCAT('-',tm.cash) as
-        consumeAmount
+        consumeAmount,
+        UNIX_TIMESTAMP(pm.insertTime) * 1000 as dateTime
         FROM t_user_points_merchandise pm
         LEFT JOIN t_points_merchandise tm ON tm.id = pm.pointsMerchandiseId
         WHERE pm.payStatus = 2 and pm.state = 1 and pm.pointsMerchandiseId IN(
-        SELECT id
-        FROM t_points_merchandise WHERE redemptionMethod IN (2,3)
-
+            SELECT id
+            FROM t_points_merchandise WHERE redemptionMethod IN (2,3)
         )
         <if test="null != monthStart and '' != monthStart and null != monthEnd and '' != monthEnd">
             and DATE_FORMAT(pm.insertTime, '%Y-%m-%d %H:%i:%s') between #{monthStart} and #{monthEnd}
@@ -45,7 +45,23 @@
         <if test="null != appUserId and '' != appUserId ">
             and pm.userId = #{appUserId}
         </if>
-
-
     </select>
+
+    <select id="getConsumeDetails1" resultType="com.dsh.activity.entity.ConsumeDetail">
+        SELECT
+        '兑换优惠券' AS consumeName ,
+        DATE_FORMAT(paymentTime, '%m-%d %H:%i') as `consumeTime`,
+        2 as type,
+        CONCAT('-',cash) as consumeAmount,
+        UNIX_TIMESTAMP(paymentTime) * 1000 as dateTime
+        FROM t_user_coupon_payment
+        where status = 2 and payType = 2
+        <if test="null != monthStart and '' != monthStart and null != monthEnd and '' != monthEnd">
+            and DATE_FORMAT(paymentTime, '%Y-%m-%d %H:%i:%s') between #{monthStart} and #{monthEnd}
+        </if>
+        <if test="null != appUserId and '' != appUserId ">
+            and userId = #{appUserId}
+        </if>
+    </select>
+
 </mapper>
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
index 01fbc2a..8b004c1 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
@@ -570,8 +570,9 @@
                 String code = map.get("out_refund_no");
                 String refund_id = map.get("refund_id");
                 String result = map.get("result");
-                PaymentCompetition paymentCompetition = paymentCompetitionService.getOne(new QueryWrapper<PaymentCompetition>().eq("code", code).eq("payType", 1));
-                if (paymentCompetition.getPayStatus() == 1) {
+                PaymentCompetition paymentCompetition = paymentCompetitionService.getOne(new QueryWrapper<PaymentCompetition>()
+                        .eq("code", code).eq("payType", 1));
+                if (paymentCompetition.getPayStatus() == 2) {
                     paymentCompetition.setPayStatus(3);
                     paymentCompetition.setRefundTime(new Date());
                     paymentCompetition.setRefundOrderNo(refund_id);
@@ -581,11 +582,12 @@
                     Competition competition = cttService.getById(paymentCompetition.getCompetitionId());
                     competition.setApplicantsNumber(competition.getApplicantsNumber() - 1);
                     cttService.updateById(competition);
+
+                    PrintWriter out = response.getWriter();
+                    out.write(result);
+                    out.flush();
+                    out.close();
                 }
-                PrintWriter out = response.getWriter();
-                out.write(result);
-                out.flush();
-                out.close();
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -787,7 +789,8 @@
 
                 String payOrderNo = paymentCompetition.getPayOrderNo();
                 if (paymentCompetition.getPayType() == 1) {//微信支付
-                    Map<String, String> map = payMoneyUtil.wxRefund(payOrderNo, code, amount.toString(), amount.toString(), "/base/competition/weChatCancelPaymentCompetitionCallback");
+                    Map<String, String> map = payMoneyUtil.wxRefund(payOrderNo, code, amount.toString(), amount.toString(),
+                            "/base/competition/weChatCancelPaymentCompetitionCallback");
                     String return_code = map.get("return_code");
                     if (!"SUCCESS".equals(return_code)) {
 //                        return ResultUtil.error(map.get("return_msg"));
@@ -795,6 +798,7 @@
                     }
                     String refund_id = map.get("refund_id");
                     paymentCompetition.setRefundOrderNo(refund_id);
+                    paymentCompetition.setAppUserId(null);
                     paymentCompetitionService.updateById(paymentCompetition);
                     storeClient.addBackRecord(paymentCompetition.getAmount() + "_" + paymentCompetition.getAppUserId());
 
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/BillingRequest.java b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/BillingRequest.java
index fa729ec..13619e8 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/BillingRequest.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/BillingRequest.java
@@ -17,4 +17,6 @@
      * 金额
      */
     private double amount;
+
+    private Long dateTime;
 }
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java
index 10ed3c8..9159174 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java
@@ -80,6 +80,10 @@
     private PayMoneyUtil payMoneyUtil;
 
 
+    @Autowired
+    private CompetitionService cttService;
+
+
     private String aliAppid = "2021004105665036";//支付宝appid
 
     private String appPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";//支付宝开发者应用私钥
@@ -362,7 +366,8 @@
      * @throws Exception
      */
     public ResultUtil weChatPaymentCompetition(String code, BigDecimal money) throws Exception {
-        ResultUtil weixinpay = payMoneyUtil.weixinpay("报名赛事", "", code, money.toString(), "/base/competition/weChatPaymentCompetitionCallback", "APP", "");
+        ResultUtil weixinpay = payMoneyUtil.weixinpay("报名赛事", "", code, money.toString(),
+                "/base/competition/weChatPaymentCompetitionCallback", "APP", "");
         if (weixinpay.getCode() == 200) {
             new Thread(new Runnable() {
                 @Override
@@ -393,7 +398,7 @@
                                 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) {
+                                if ("REFUND".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10) {
                                     paymentCompetition.setAppUserId(null);
                                     paymentCompetition.setState(3);
                                     userCompetitionService.remove(new QueryWrapper<UserCompetition>().eq("paymentCompetitionId", paymentCompetition.getId()));
@@ -405,9 +410,13 @@
                                     paymentCompetition.setPayTime(new Date());
                                     paymentCompetition.setPayOrderNo(transaction_id);
                                     paymentCompetitionService.updateById(paymentCompetition);
+
+                                    Competition competition = cttService.getById(paymentCompetition.getCompetitionId());
+                                    competition.setApplicantsNumber(competition.getApplicantsNumber() + 1);
+                                    cttService.updateById(competition);
                                     break;
                                 }
-                                if ("USERPAYING".equals(s)) {
+                                if ("USERPAYING".equals(s) || "NOTPAY".equals(s)) {
                                     num++;
                                 }
                             }
@@ -475,6 +484,11 @@
                                     paymentCompetition.setPayTime(new Date());
                                     paymentCompetition.setPayOrderNo(tradeNo);
                                     paymentCompetitionService.updateById(paymentCompetition);
+
+                                    Competition competition = cttService.getById(paymentCompetition.getCompetitionId());
+                                    competition.setApplicantsNumber(competition.getApplicantsNumber() + 1);
+                                    cttService.updateById(competition);
+
                                     // 结算资金到商户账号
                                     payMoneyUtil.confirm(smid,code,tradeNo,money.toString());
                                     //分账
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java
index 45d3a29..60b0405 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java
@@ -65,7 +65,8 @@
 
     @Resource
     private StudentClient studentClient;
-    @Autowired
+
+    @Resource
     private PaymentCompetitionMapper paymentCompetitionMapper;
 
 
@@ -247,18 +248,18 @@
 
         String payOrderNo = paymentCompetition.getPayOrderNo();
         if (paymentCompetition.getPayType() == 1) {//微信支付
-            Map<String, String> map = payMoneyUtil.wxRefund(payOrderNo, code, amount.toString(), amount.toString(), "/base/competition/weChatCancelPaymentCompetitionCallback");
+            Map<String, String> map = payMoneyUtil.wxRefund(payOrderNo, code, amount.toString(), amount.toString(),
+                    "/base/competition/weChatCancelPaymentCompetitionCallback");
             String return_code = map.get("return_code");
             if (!"SUCCESS".equals(return_code)) {
                 return ResultUtil.error(map.get("return_msg"));
             }
             String refund_id = map.get("refund_id");
             paymentCompetition.setRefundOrderNo(refund_id);
+            paymentCompetition.setAppUserId(null);
             this.updateById(paymentCompetition);
 
             storeClient.addBackRecord(paymentCompetition.getAmount() + "_" + paymentCompetition.getAppUserId());
-
-
         }
         if (paymentCompetition.getPayType() == 2) {//支付宝支付
             Map<String, String> map = payMoneyUtil.aliRefund(payOrderNo, amount.toString());
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java b/cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java
index f82dbde..fc97d88 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java
@@ -57,7 +57,7 @@
 
     private String key = "6f5e0c2dcabfa9c27b5da5836a362fef";//微信商户号
 
-    private String callbackPath = "http://8.137.22.229:56666/competition";//支付回调网关地址
+    private String callbackPath = "http://221.182.45.100:56666/competition";//支付回调网关地址
 
     private String app_cert_path = "C:/cert/alipay/user/app_cert_path.crt";//应用公钥证书路径
 
@@ -65,7 +65,7 @@
 
     private String alipay_root_cert_path = "C:/cert/alipay/user/alipay_root_cert_path.crt";//支付宝CA根证书文件路径
 
-    private String certPath = "C:\\cert\\1523106371_20211206_cert\\apiclient_cert.p12";//微信证书
+    private String certPath = "C:\\Users\\Admin\\Desktop\\weixin_cert\\apiclient_cert.p12";//微信证书
 
 
     /**
diff --git a/cloud-server-competition/src/main/resources/mapper/PaymentCompetitionMapper.xml b/cloud-server-competition/src/main/resources/mapper/PaymentCompetitionMapper.xml
index 78cf329..1b11f9a 100644
--- a/cloud-server-competition/src/main/resources/mapper/PaymentCompetitionMapper.xml
+++ b/cloud-server-competition/src/main/resources/mapper/PaymentCompetitionMapper.xml
@@ -35,8 +35,10 @@
         order by a.insertTime desc limit #{pageNo}, #{pageSize}
     </select>
     <select id="queryDatas" resultType="com.dsh.competition.feignclient.model.BillingRequest">
-        SELECT DATE_FORMAT(insertTime, '%m-%d %H:%i')as `time`,
-        amount
+        SELECT
+        DATE_FORMAT(insertTime, '%m-%d %H:%i')as `time`,
+        amount,
+        UNIX_TIMESTAMP(payTime) * 1000 as dateTime
         from t_payment_competition
         where payStatus in (2,3) and payType in (1,2)
         <if test="null != monthStart and '' != monthStart and null != monthEnd and '' != monthEnd">
@@ -47,8 +49,10 @@
         </if>
     </select>
     <select id="queryCancelDatas" resultType="com.dsh.competition.feignclient.model.BillingRequest">
-        SELECT DATE_FORMAT(refundTime, '%m-%d %H:%i')as `time`,
-        amount
+        SELECT
+        DATE_FORMAT(refundTime, '%m-%d %H:%i')as `time`,
+        amount,
+        UNIX_TIMESTAMP(refundTime) * 1000 as dateTime
         from t_payment_competition
         where payStatus = 3 and payType in (1,2)
         <if test="null != monthStart and '' != monthStart and null != monthEnd and '' != monthEnd">
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
index 4a29199..437749b 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
@@ -59,11 +59,14 @@
 
     @Autowired
     private TCoursePackageDiscountService discountService;
+
     @Autowired
     private ICoursePackagePaymentConfigService coursePackagePaymentConfigService;
 
     @Autowired
     private ICoursePackageOrderService coursePackageOrderService;
+
+
 
     /**
      * 上/下架 1为上架 2为下架 3为删除
@@ -595,4 +598,53 @@
 
         return map1;
     }
+
+
+    /**
+     * 课包支付成功后排课操作
+     * @param addCoursePackageOrderStudent
+     */
+    @PostMapping("/course/addCoursePackageOrderStudent")
+    public void addCoursePackageOrderStudent(@RequestBody AddCoursePackageOrderStudent addCoursePackageOrderStudent){
+        coursePackageService.addCoursePackageOrderStudent(addCoursePackageOrderStudent.getCoursePackageOrderId(), addCoursePackageOrderStudent.getCoursePackagePaymentConfig());
+    }
+
+
+    /**
+     * 根据code获取待支付数据
+     * @param code
+     * @return
+     */
+    @PostMapping("/course/getCoursePackageOrderByCode")
+    public CoursePackageOrder getCoursePackageOrderByCode(@RequestBody String code){
+        CoursePackageOrder coursePackageOrder = coursePackageOrderService.getOne(new QueryWrapper<CoursePackageOrder>()
+                .eq("code", code).eq("state", 1));
+        return coursePackageOrder;
+    }
+
+
+    /**
+     * 修改数据
+     * @param coursePackageOrder
+     */
+    @PostMapping("/course/updateCoursePackageOrder")
+    public void updateCoursePackageOrder(@RequestBody CoursePackageOrder coursePackageOrder){
+        coursePackageOrder.setAppUserId(null);
+        coursePackageOrderService.updateById(coursePackageOrder);
+    }
+
+
+    /**
+     * 获取课包配置
+     * @param getCoursePackagePaymentConfig
+     * @return
+     */
+    @PostMapping("/course/getCoursePackagePaymentConfig")
+    public CoursePackagePaymentConfig getCoursePackagePaymentConfig(@RequestBody GetCoursePackagePaymentConfig getCoursePackagePaymentConfig){
+        CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getOne(new QueryWrapper<CoursePackagePaymentConfig>()
+                .eq("coursePackageId", getCoursePackagePaymentConfig.getCoursePackageId())
+                .eq("classHours", getCoursePackagePaymentConfig.getClassHours())
+        );
+        return coursePackagePaymentConfig;
+    }
 }
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 4c8939c..effc10e 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
@@ -133,8 +133,6 @@
 
     private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm");
 
-
-
     @Autowired
     private ICoursePackageOrderStudentService coursePackageOrderStudentService;
 
@@ -143,6 +141,16 @@
 
     @Resource
     private AppUserClient appuClient;
+
+    @Autowired
+    private CourseCounsumService courseCounsumService;
+
+    @Autowired
+    private TCoursePackagePaymentService coursePackagePaymentService;
+
+
+
+
 
 
     /**
@@ -194,6 +202,7 @@
         coursePackageOrder.setStatus(1);
         coursePackageOrder.setState(1);
         coursePackageOrder.setInsertTime(new Date());
+        coursePackageOrder.setOrderType(1);
         coursePackageOrder.setSalesName(packagePayment.getSalesName());
         coursePackageOrderService.save(coursePackageOrder);
         // 生成排课数据
@@ -689,11 +698,7 @@
     }
 
 
-    @Autowired
-    private CourseCounsumService courseCounsumService;
 
-    @Autowired
-    private TCoursePackagePaymentService coursePackagePaymentService;
 
     @PostMapping("/base/coursePack/getRecord")
     public List<PurchaseRecordVo> getRecord(@RequestBody RecordTimeRequest recordTimeRequest) {
@@ -1572,9 +1577,9 @@
     }
 
     @PostMapping("/base/coursePack/savePaymentCoursePackage")
-    public boolean savePaymentCoursePackage(@RequestBody TCoursePackagePayment packagePayment) {
-
-        return packagePaymentService.save(packagePayment);
+    public Long savePaymentCoursePackage(@RequestBody CoursePackageOrder coursePackageOrder) {
+        coursePackageOrderService.save(coursePackageOrder);
+        return coursePackageOrder.getId();
     }
 
 
@@ -2374,17 +2379,31 @@
     @PostMapping("/base/coursePack/getConsumes")
     List<CourseCounsum> getConsumes(@RequestBody BillingDataRequestVo requestVo) {
         Integer[] integers = {2, 3};
-        QueryWrapper<CourseCounsum> courseCounsumQueryWrapper = new QueryWrapper<CourseCounsum>().in("changeType", integers).eq("appUserId", requestVo.getAppUserId());
+        QueryWrapper<CourseCounsum> courseCounsumQueryWrapper = new QueryWrapper<CourseCounsum>()
+                .in("changeType", integers).eq("appUserId", requestVo.getAppUserId());
         if (requestVo.getMonthEnd() != null) {
             courseCounsumQueryWrapper.ge("insertTime", requestVo.getMonthStart());
             courseCounsumQueryWrapper.le("insertTime", requestVo.getMonthEnd());
         }
         return courseCounsumService.list(courseCounsumQueryWrapper);
-
     }
 
 
     @ResponseBody
+    @PostMapping("/base/coursePack/getCoursePackageOrder")
+    public List<CoursePackageOrder> getCoursePackageOrder(@RequestBody BillingDataRequestVo requestVo){
+        QueryWrapper<CoursePackageOrder> wrapper = new QueryWrapper<CoursePackageOrder>().eq("appUserId", requestVo.getAppUserId())
+                .in("payType", Arrays.asList(1, 2, 5, 6)).eq("payStatus", 2).eq("state", 1).eq("orderType", 1);
+        return coursePackageOrderService.list(wrapper);
+    }
+
+
+
+
+
+
+
+    @ResponseBody
     @PostMapping("/base/coursePack/weeksOfCourseDetailsList")
     public HashMap<String, Object> weeksOfCourseDetailsList(@RequestBody CourseDetailReq courseDetailReq) {
         HashMap<String, Object> map = new HashMap<>();
diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/AddCoursePackageOrderStudent.java b/cloud-server-course/src/main/java/com/dsh/course/entity/AddCoursePackageOrderStudent.java
new file mode 100644
index 0000000..e71a036
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/AddCoursePackageOrderStudent.java
@@ -0,0 +1,19 @@
+package com.dsh.course.entity;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @date 2024/3/19 14:32
+ */
+@Data
+public class AddCoursePackageOrderStudent {
+    /**
+     * 购买记录id
+     */
+    private Long coursePackageOrderId;
+    /**
+     * 课包配置
+     */
+    private CoursePackagePaymentConfig coursePackagePaymentConfig;
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageOrder.java b/cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageOrder.java
index 5682f84..15072c0 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageOrder.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageOrder.java
@@ -115,6 +115,11 @@
      */
     @TableField("salesName")
     private String salesName;
+    /**
+     * 订单类型(1=购买订单,2=积分商品兑换订单)
+     */
+    @TableField("orderType")
+    private Integer orderType;
 
     @TableField(exist = false)
     private Integer type;
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/GetCoursePackagePaymentConfig.java b/cloud-server-course/src/main/java/com/dsh/course/model/GetCoursePackagePaymentConfig.java
new file mode 100644
index 0000000..ff81c61
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/GetCoursePackagePaymentConfig.java
@@ -0,0 +1,15 @@
+package com.dsh.course.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @date 2024/3/19 15:32
+ */
+@Data
+public class GetCoursePackagePaymentConfig {
+
+    private Integer coursePackageId;
+
+    private Integer classHours;
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
index 80a884e..67c3418 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -843,6 +843,7 @@
             newPayment.setPayType(request.getPayType());
             newPayment.setState(1);
             newPayment.setInsertTime(new Date());
+            newPayment.setOrderType(1);
             coursePackageOrderService.save(newPayment);
             code = newPayment.getCode();
         }
@@ -931,7 +932,7 @@
                                 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) {
+                                if ("REFUND".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10) {
                                     //有待支付的订单,这里不处理
 //                                    coursePackageOrder1.setState(3);
 //                                    coursePackageOrderService.updateById(coursePackageOrder1);
@@ -951,7 +952,7 @@
                                     coursePackageService.addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig);
                                     break;
                                 }
-                                if ("USERPAYING".equals(s)) {
+                                if ("USERPAYING".equals(s) || "NOTPAY".equals(s)) {
                                     num++;
                                 }
                             }
@@ -1225,7 +1226,7 @@
         coursePackageOrderService.updateById(coursePackageOrder1);
 
         CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getOne(new QueryWrapper<CoursePackagePaymentConfig>()
-                .eq("coursePackageId", coursePackageOrder1.getId())
+                .eq("coursePackageId", coursePackageOrder1.getCoursePackageId())
                 .eq("classHours", coursePackageOrder1.getClassHours())
         );
         coursePackageService.addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig);
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
index f45f843..c4e2001 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -930,6 +930,7 @@
             coursePackageOrder.setStatus(1);
             coursePackageOrder.setState(1);
             coursePackageOrder.setInsertTime(new Date());
+            coursePackageOrder.setOrderType(1);
             coursePackageOrderService.save(coursePackageOrder);
             orderId = coursePackageOrder.getId();
         }else{
@@ -942,7 +943,8 @@
             coursePackageOrderService.updateById(coursePackageOrder);
         }
 
-        ResultUtil weixinpay = payMoneyUtil.weixinpay("报名运动营", coursePackagePaymentConfig.getId().toString(), code, paymentPrice.toString(), "/base/course/weChatPaymentCourseCallback", "APP", "");
+        ResultUtil weixinpay = payMoneyUtil.weixinpay("报名运动营", coursePackagePaymentConfig.getId().toString(), code, paymentPrice.toString(),
+                "/base/course/weChatPaymentCourseCallback", "APP", "");
         if (weixinpay.getCode() == 200) {
             String finalCode = code;
             new Thread(new Runnable() {
@@ -974,7 +976,7 @@
                                 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) {
+                                if ("REFUND".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10) {
                                     //有待支付的订单,这里不处理
 //                                    coursePackageOrder1.setState(3);
 //                                    coursePackageOrderService.updateById(coursePackageOrder1);
@@ -989,7 +991,7 @@
                                     addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig);
                                     break;
                                 }
-                                if ("USERPAYING".equals(s)) {
+                                if ("USERPAYING".equals(s) || "NOTPAY".equals(s)) {
                                     num++;
                                 }
                             }
@@ -1036,6 +1038,7 @@
             coursePackageOrder.setStatus(1);
             coursePackageOrder.setState(1);
             coursePackageOrder.setInsertTime(new Date());
+            coursePackageOrder.setOrderType(1);
             coursePackageOrderService.save(coursePackageOrder);
         }else {
             CoursePackageOrder coursePackageOrder = coursePackageOrderService.getById(paymentCourseVo.getOrderId());
@@ -1249,6 +1252,7 @@
             coursePackageOrder.setStatus(1);
             coursePackageOrder.setState(1);
             coursePackageOrder.setInsertTime(new Date());
+            coursePackageOrder.setOrderType(1);
             coursePackageOrderService.save(coursePackageOrder);
             orderId = coursePackageOrder.getId();
         }else{
diff --git a/cloud-server-course/src/main/java/com/dsh/course/util/PayMoneyUtil.java b/cloud-server-course/src/main/java/com/dsh/course/util/PayMoneyUtil.java
index a86bf68..d521003 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/util/PayMoneyUtil.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/util/PayMoneyUtil.java
@@ -61,7 +61,7 @@
 
     private String key = "6f5e0c2dcabfa9c27b5da5836a362fef";//微信商户号
 
-    private String callbackPath = "http://8.137.22.229:56666/course";//支付回调网关地址
+    private String callbackPath = "http://221.182.45.100:56666/course";//支付回调网关地址
 
     private String app_cert_path = "C:/cert/alipay/user/app_cert_path.crt";//应用公钥证书路径
 
@@ -69,7 +69,7 @@
 
     private String alipay_root_cert_path = "C:/cert/alipay/user/alipay_root_cert_path.crt";//支付宝CA根证书文件路径
 
-    private String certPath = "C:\\cert\\1523106371_20211206_cert\\apiclient_cert.p12";//微信证书
+    private String certPath = "C:\\Users\\Admin\\Desktop\\weixin_cert\\apiclient_cert.p12";//微信证书
 
     public ResultUtil confirm(String smid,String code, String outTradeNo, String amount) {
         AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java
index d122afc..7624579 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java
@@ -56,7 +56,7 @@
 
     private String alipay_root_cert_path = "C:/cert/alipay/user/alipay_root_cert_path.crt";//支付宝CA根证书文件路径
 
-    private String certPath = "C:\\cert\\1523106371_20211206_cert\\apiclient_cert.p12";//微信证书
+    private String certPath = "C:\\Users\\Admin\\Desktop\\weixin_cert\\apiclient_cert.p12";//微信证书
     String signType =  "RSA2" ;
     String serverHost =  "openchannel.alipay.com" ;
 
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java
index fa5e993..c2abaf0 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java
@@ -230,7 +230,7 @@
                                         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) {
+                                        if ("REFUND".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10) {
                                             break;
                                         }
                                         if ("SUCCESS".equals(s)) {
@@ -244,7 +244,7 @@
                                             Integer integer = startGame(uid, gameId, spaceId, sutuId);
                                             break;
                                         }
-                                        if ("USERPAYING".equals(s)) {
+                                        if ("USERPAYING".equals(s) || "NOTPAY".equals(s)) {
                                             num++;
                                         }
                                     }
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
index d4259cd..8c26b25 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
@@ -24,6 +24,7 @@
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.*;
@@ -62,8 +63,31 @@
 
     @Resource
     private UserCouponClient userCouponClient;
-    @Autowired
+
+    @Resource
     private CityManagerClient cityManagerClient;
+
+    @Autowired
+    private TGameConfigService gameConfigService;
+
+    @Autowired
+    private TGameRecordService gameRecordService;
+
+    @Resource
+    private CourseRecordClient courseRecordClient;
+
+    @Autowired
+    private RedisUtil redisUtil;
+
+
+
+
+
+
+
+
+
+
 
     /**
      * 通过运营商id查询运营商对应的支付宝商户号
@@ -226,9 +250,6 @@
         }
     }
 
-    @Autowired
-    private RedisUtil redisUtil;
-
     @ResponseBody
     @PostMapping("/base/site/querySiteTimes")
     @ApiOperation(value = "获取场地详情时间段数据", tags = {"用户—预约场地"})
@@ -289,20 +310,6 @@
         }
     }
 
-//        public ResultUtil<List<QuerySiteTimes>> querySiteTimes(Integer id, String day, String halfName, String siteName) throws Exception {
-//
-//        if (redisUtil.acquireLock(day,day)) {
-//            try {
-//                List<QuerySiteTimes> list = siteService.querySiteTimes(id, day,halfName,siteName);
-//            return ResultUtil.success(list);
-//            } finally {
-//                redisUtil.releaseLock(day);
-//            }
-//        } else {
-//            return ResultUtil.error("系统繁忙,请稍后再试!");
-//        }
-//
-//    }
 
 
     /**
@@ -326,11 +333,12 @@
                     siteBooking.setStatus(1);
                     siteBooking.setPayOrderNo(transaction_id);
                     siteBookingService.updateById(siteBooking);
+
+                    PrintWriter out = response.getWriter();
+                    out.write(result);
+                    out.flush();
+                    out.close();
                 }
-                PrintWriter out = response.getWriter();
-                out.write(result);
-                out.flush();
-                out.close();
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -347,7 +355,6 @@
     @PostMapping("/base/site/aliPaymentSiteCallback")
     public void aliPaymentSiteCallback(HttpServletRequest request, HttpServletResponse response) {
         try {
-            System.out.println("回调回调回调");
             Map<String, String> map = payMoneyUtil.alipayCallback(request);
             if (null != map) {
                 String code = map.get("out_trade_no");
@@ -359,24 +366,21 @@
                     siteBooking.setStatus(1);
                     siteBooking.setPayOrderNo(trade_no);
                     siteBookingService.updateById(siteBooking);
+                    PrintWriter out = response.getWriter();
+                    out.write("success");
+                    out.flush();
+                    out.close();
                 }
-                PrintWriter out = response.getWriter();
-                out.write("success");
-                out.flush();
-                out.close();
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
 
-    @Autowired
-    private TGameConfigService gameConfigService;
-    @Autowired
-    private TGameRecordService gameRecordService;
 
-    @Resource
-    private CourseRecordClient courseRecordClient;
+
+
+
     /**
      * 启动游戏支付宝回调
      *
@@ -387,10 +391,8 @@
     @PostMapping("/base/site/gameCallback")
     public void gameCallback(HttpServletRequest request, HttpServletResponse response) {
         try {
-            System.out.println("回调回调回调");
             Map<String, String> map = payMoneyUtil.alipayCallback(request);
             if (null != map) {
-
                 String code = map.get("passback_params");
                 String trade_no = map.get("trade_no");
                 String[] s = code.split("_");
@@ -412,7 +414,6 @@
                 }
                 gameRecordService.updateBatchById(list);
 
-                System.err.println("===========游戏回调游戏回调=========" + i);
                 PrintWriter out = response.getWriter();
                 out.write("success");
                 out.flush();
@@ -477,10 +478,10 @@
     public ResultUtil<Map<String, Object>> queryMySiteById(Integer id) {
         try {
             HashMap<String, Object> map = new HashMap<>();
-            SiteBooking byId = siteBookingService.getById(id);
-            Integer storeId = byId.getStoreId();
+            SiteBooking siteBooking = siteBookingService.getById(id);
+            Integer storeId = siteBooking.getStoreId();
             Store byId1 = service.getById(storeId);
-            Site site = siteService.getById(byId.getSiteId());
+            Site site = siteService.getById(siteBooking.getSiteId());
             map.put("siteName", byId1.getName());
             SiteType siteType = siteTypeService.getById(site.getSiteTypeId());
             map.put("siteType", siteType.getName());
@@ -490,29 +491,30 @@
             map.put("name", site.getName());
 
 
-            List<Integer> ids = getIds(byId.getSiteId());
-            byId.setStorePhone(byId1.getPhone());
+            List<Integer> ids = getIds(siteBooking.getSiteId());
+            siteBooking.setStorePhone(byId1.getPhone());
 
             //拼接开始结束时间
-            Date startTime = byId.getStartTime();
-            Date endTime = byId.getEndTime();
+            Date startTime = siteBooking.getStartTime();
+            Date endTime = siteBooking.getEndTime();
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
             String startTimeString = sdf.format(startTime);
             String endTimeString = sdf.format(endTime);
             String result = startTimeString + "-" + endTimeString.substring(11);
-            byId.setTimes(result);
+            siteBooking.setTimes(result);
 
 
-            byId.setSid(Arrays.asList(storeId));
-//            List<Site> list = siteService.list(new LambdaQueryWrapper<Site>()
-//                    .eq(Site::getStoreId, storeId)
-//                    .eq(Site::getSign, 1));
-//            List<Integer> collect = list.stream().map(Site::getId).collect(Collectors.toList());
-            Integer siteId = byId.getSiteId();
+            siteBooking.setSid(Arrays.asList(storeId));
+            Integer siteId = siteBooking.getSiteId();
             ArrayList<Integer> list1 = new ArrayList<>();
             list1.add(siteId);
-            byId.setRid(list1);
-            map.put("data", byId);
+            siteBooking.setRid(list1);
+            SiteBookingVo siteBookingVo = new SiteBookingVo();
+            BeanUtils.copyProperties(siteBooking, siteBookingVo);
+            siteBookingVo.setStartTime(siteBooking.getStartTime().getTime());
+            siteBookingVo.setEndTime(siteBooking.getEndTime().getTime());
+            siteBookingVo.setPayTime(siteBooking.getPayTime().getTime());
+            map.put("data", siteBookingVo);
             map.put("ids", ids);
             return ResultUtil.success(map);
         } catch (Exception e) {
@@ -553,8 +555,6 @@
             if (null == uid) {
                 return ResultUtil.tokenErr();
             }
-
-
             return siteService.cancelMySite(uid, id);
         } catch (Exception e) {
             e.printStackTrace();
diff --git a/cloud-server-other/src/main/java/com/dsh/other/model/BillingRequestOfType.java b/cloud-server-other/src/main/java/com/dsh/other/model/BillingRequestOfType.java
index e1fdff2..571387e 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/model/BillingRequestOfType.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/model/BillingRequestOfType.java
@@ -23,4 +23,6 @@
      * 金额
      */
     private double amount;
+
+    private Long dateTime;
 }
diff --git a/cloud-server-other/src/main/java/com/dsh/other/model/SiteBookingVo.java b/cloud-server-other/src/main/java/com/dsh/other/model/SiteBookingVo.java
new file mode 100644
index 0000000..145155d
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/model/SiteBookingVo.java
@@ -0,0 +1,149 @@
+package com.dsh.other.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @date 2024/3/19 10:15
+ */
+@Data
+public class SiteBookingVo {
+    /**
+     * 主键
+     */
+    private Integer id;
+    /**
+     * 业务流水号
+     */
+    private String orderNo;
+    /**
+     * 省
+     */
+    private String province;
+    /**
+     * 省编号
+     */
+    private String provinceCode;
+    /**
+     * 市名称
+     */
+    private String city;
+    /**
+     * 市编号
+     */
+    private String cityCode;
+    /**
+     * 门店id
+     */
+    private Integer storeId;
+    /**
+     * 场地id
+     */
+    private Integer siteId;
+    /**
+     * 用户id
+     */
+    private Integer appUserId;
+    /**
+     * 预约时段
+     */
+    private String times;
+    /**
+     * 预约开始时间
+     */
+    @ApiModelProperty("预约开始时间")
+    private Long startTime;
+    /**
+     * 预约结束
+     */
+    @ApiModelProperty("预约结束时间")
+    private Long endTime;
+    /**
+     * 预约人
+     */
+    @ApiModelProperty("预约人")
+    private String booker;
+    /**
+     * 联系方式
+     */
+    @ApiModelProperty("联系方式")
+    private String phone;
+    /**
+     * 支付方式(1=微信,2=支付宝,3=玩湃比,4=手动支付)
+     */
+    private Integer payType;
+    /**
+     * 支付时间
+     */
+    @ApiModelProperty("支付时间")
+    private Long payTime;
+    /**
+     * 支付金额
+     */
+    @ApiModelProperty("支付金额")
+    private Double payMoney;
+    /**
+     * 优惠券id
+     */
+    private Long userCouponId;
+    /**
+     * 状态(0=待支付,1=待核销,2=已到店,3=已完成,4=已过期,5=已取消)
+     */
+    @ApiModelProperty("0=待支付,1=待核销,2=已到店,3=已完成,4=已过期,5=已取消")
+    private Integer status;
+    /**
+     * 第三方支付流水号
+     */
+    private String payOrderNo;
+    /**
+     * 手动支付操作用户id
+     */
+    private Integer payUserId;
+    /**
+     * 取消用户id
+     */
+    private Integer cancelUserId;
+    /**
+     * 取消凭证
+     */
+    private String voucher;
+    /**
+     * 取消备注
+     */
+    private String remark;
+    /**
+     * 取消时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date cancelTime;
+    /**
+     * 第三方取消退款流水号
+     */
+    private String refundOrderNo;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date insertTime;
+    @ApiModelProperty("场地名称")
+    private String nextName;
+    @ApiModelProperty("半场 是否半场 1是 2否")
+    private Integer isHalf;
+    @ApiModelProperty("半场名称 ")
+    private String halfName;
+    private Integer goType;
+    private String money;
+    private String storePhone;
+    private List<Integer> sid;
+    private List<Integer> rid;
+    private Integer addType;
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
index 898316d..767ab40 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
@@ -360,7 +360,6 @@
                 payMoney = new BigDecimal(site.getPlayPaiCoinOne()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
             }
             if (appUser.getPlayPaiCoins().compareTo(payMoney.intValue()) < 0) {
-
                 return new ResultUtil(3, "玩湃币不足");
             }
         } else {
@@ -368,18 +367,14 @@
                 payMoney = new BigDecimal(site.getCashPrice()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
             } else {
                 payMoney = new BigDecimal(site.getCashPriceOne()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
-
             }
         }
 
         //校验优惠券
         Long couponId = reservationSite.getCouponId();
         if (couponId != null && couponId != 0) {
-
             if (null != couponId && reservationSite.getPayType() != 3) {
                 UserCoupon userCoupon = userCouponClient.queryUserCouponById(new QueryUserCouponByIdAndUserId(reservationSite.getCouponId(), uid));
-
-
                 if (userCoupon != null && userCoupon.getStatus() == 2) {
                     return ResultUtil.error("优惠券已被核销");
                 }
@@ -441,7 +436,6 @@
 
         if (reservationSite.getPayType() == 1) {//微信支付
             ResultUtil resultUtil = weChatPaymentSite(payMoney, siteBooking);
-
             return resultUtil;
         }
         if (reservationSite.getPayType() == 2) {//支付宝支付
@@ -449,9 +443,6 @@
         }
         if (reservationSite.getPayType() == 3) {//玩湃币支付
             if (reservationSite.getIsHalf() == 2) {
-
-
-
                 return playPaiCoinPaymentSite(appUser, Double.valueOf(site.getPlayPaiCoin()), siteBooking);
             } else {
                 return playPaiCoinPaymentSite(appUser, site.getPlayPaiCoinOne(), siteBooking);
@@ -471,7 +462,8 @@
     public ResultUtil weChatPaymentSite(Double paymentPrice, SiteBooking siteBooking) throws Exception {
         String code = siteBooking.getOrderNo();
         Integer id = siteBooking.getId();
-        ResultUtil weixinpay = payMoneyUtil.weixinpay("预约场地", id.toString(), code, paymentPrice.toString(), "/base/site/weChatPaymentSiteCallback", "APP", "");
+        ResultUtil weixinpay = payMoneyUtil.weixinpay("预约场地", id.toString(), code, paymentPrice.toString(),
+                "/base/site/weChatPaymentSiteCallback", "APP", "");
         if (weixinpay.getCode() == 200) {
             new Thread(new Runnable() {
                 @Override
@@ -501,7 +493,7 @@
                                 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) {
+                                if ("REFUND".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10) {
                                     break;
                                 }
                                 if ("SUCCESS".equals(s)) {
@@ -511,7 +503,7 @@
                                     siteBookingService.updateById(siteBooking);
                                     break;
                                 }
-                                if ("USERPAYING".equals(s)) {
+                                if ("USERPAYING".equals(s) || "NOTPAY".equals(s)) {
                                     num++;
                                 }
                             }
@@ -691,7 +683,6 @@
         }
 
         if (siteBooking.getStatus() == 0) {
-//            return ResultUtil.error("请先进行支付");
             siteBooking.setStatus(5);
             siteBookingService.updateById(siteBooking);
             AppUser appUser = appUserClient.queryAppUser(siteBooking.getAppUserId());
@@ -708,12 +699,13 @@
             return ResultUtil.error("不能进行取消操作");
         }
         if (siteBooking.getPayType() == 1) {//微信支付
-            Map<String, String> map = payMoneyUtil.wxRefund(siteBooking.getPayOrderNo(), siteBooking.getOrderNo(), siteBooking.getPayMoney().toString(), siteBooking.getPayMoney().toString(), "/base/site/cancelMySiteCallback");
+            Map<String, String> map = payMoneyUtil.wxRefund(siteBooking.getPayOrderNo(), siteBooking.getOrderNo(), siteBooking.getPayMoney().toString(),
+                    siteBooking.getPayMoney().toString(), "/base/site/cancelMySiteCallback");
             if (null == map) {
                 return ResultUtil.error("取消退款异常");
             }
-            String result_code = map.get("result_code");
-            if (!"SUCCESS".equals(result_code)) {
+            String return_code = map.get("return_code");
+            if (!"SUCCESS".equals(return_code)) {
                 return ResultUtil.error(map.get("return_msg"));
             }
             siteBooking.setCancelUserId(uid);
diff --git a/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java b/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java
index c2aa6dd..9692051 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java
@@ -60,7 +60,7 @@
 
     private String key = "6f5e0c2dcabfa9c27b5da5836a362fef";//微信商户号
 
-    private String callbackPath = "http://8.137.22.229:56666/other";//支付回调网关地址
+    private String callbackPath = "http://221.182.45.100:56666/other";//支付回调网关地址
 
     private String app_cert_path = "C:/cert/alipay/user/app_cert_path.crt";//应用公钥证书路径
 
@@ -68,7 +68,7 @@
 
     private String alipay_root_cert_path = "C:/cert/alipay/user/alipay_root_cert_path.crt";//支付宝CA根证书文件路径
 
-    private String certPath = "C:\\cert\\1523106371_20211206_cert\\apiclient_cert.p12";//微信证书
+    private String certPath = "C:\\Users\\Admin\\Desktop\\weixin_cert\\apiclient_cert.p12";//微信证书
 
 
 
diff --git a/cloud-server-other/src/main/resources/mapper/SiteBookingMapper.xml b/cloud-server-other/src/main/resources/mapper/SiteBookingMapper.xml
index 36b048b..dcc63cd 100644
--- a/cloud-server-other/src/main/resources/mapper/SiteBookingMapper.xml
+++ b/cloud-server-other/src/main/resources/mapper/SiteBookingMapper.xml
@@ -4,9 +4,12 @@
 
 
     <select id="queryDatas" resultType="com.dsh.other.model.BillingRequestOfType">
-        SELECT DATE_FORMAT(insertTime, '%m-%d %H:%i')as `time`,DATE_FORMAT(payTime, '%m-%d %H:%i')as `time1`,
+        SELECT
+        DATE_FORMAT(insertTime, '%m-%d %H:%i')as `time`,
+        DATE_FORMAT(payTime, '%m-%d %H:%i')as `time1`,
         payMoney as amount,
-        `status`
+        `status`,
+        UNIX_TIMESTAMP(payTime) * 1000 as dateTime
         from t_site_booking
         where payType != 3 and status != 0
         <if test="null != monthStart and '' != monthStart and null != monthEnd and '' != monthEnd">

--
Gitblit v1.7.1