From 6676f28a5a6ca65015a2b2c26e804fa998d625c8 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期二, 26 九月 2023 21:37:07 +0800
Subject: [PATCH] 后台代码

---
 cloud-server-account/src/main/java/com/dsh/account/entity/TAppUser.java                                    |    2 
 cloud-server-competition/src/main/java/com/dsh/competition/service/IPaymentCompetitionService.java         |    4 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java        |    7 
 cloud-server-management/src/main/webapp/static/modular/system/finance/RegistrationOrder.js                 |  151 ++
 cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/TStudent.java                   |  109 ++
 cloud-server-management/src/main/java/com/dsh/course/util/UUIDUtil.java                                    |  101 +
 cloud-server-other/src/main/java/com/dsh/other/model/SiteBookingQuery.java                                 |   20 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/IncomeQuery.java                   |   24 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RegisterOrderQuery.java            |   39 
 cloud-server-account/src/main/java/com/dsh/account/model/IncomeQuery.java                                  |   24 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/CompetitionQuery.java   |   20 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/PaymentCompetition.java |   85 +
 cloud-server-other/src/main/java/com/dsh/other/entity/SiteBooking.java                                     |    2 
 cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java                         |    2 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/finance/CancelledClasses.html                  |    4 
 cloud-server-competition/src/main/java/com/dsh/competition/model/TCompetition.java                         |  238 ++++
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RegisterOrderVO.java               |   60 +
 cloud-server-management/src/main/webapp/static/modular/system/finance/cancelledClasses.js                  |   12 
 cloud-server-account/src/main/java/com/dsh/account/model/Student.java                                      |   73 +
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/IncomeVO.java                      |   36 
 cloud-server-account/src/main/resources/mapper/VipPaymentMapper.tld                                        |    1 
 cloud-server-course/src/main/java/com/dsh/course/model/AppUserByNameAndPhoneDTO.java                       |   12 
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java        |   12 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RegisterDataVO.java                |   21 
 cloud-server-account/src/main/java/com/dsh/account/service/IVipPaymentService.java                         |    4 
 cloud-server-account/src/main/resources/mapper/RechargeRecordsMapper.xml                                   |   30 
 cloud-server-other/src/main/java/com/dsh/other/mapper/SiteBookingMapper.java                               |    5 
 cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java |   19 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/account/VipPaymentClient.java             |   23 
 cloud-server-course/src/main/java/com/dsh/course/model/RegisterOrderVO.java                                |   61 +
 cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/TCompetition.java       |  238 ++++
 cloud-server-account/src/main/java/com/dsh/account/model/AppUserByNameAndPhoneDTO.java                     |   12 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/AppUserByNameAndPhoneDTO.java      |   12 
 cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteBookingServiceImpl.java                    |   18 
 cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml                         |   49 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/VipPayment.java             |   78 +
 cloud-server-account/src/main/java/com/dsh/account/entity/VipPayment.java                                  |    2 
 cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java                    |    7 
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java            |   85 +
 cloud-server-account/src/main/java/com/dsh/account/controller/FinanceController.java                       |   19 
 cloud-server-account/src/main/java/com/dsh/account/mapper/RechargeRecordsMapper.java                       |    5 
 cloud-server-course/src/main/java/com/dsh/course/model/RegisterOrderQuery.java                             |   40 
 cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java                       |    9 
 cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java                              |    9 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TFinanceController.java  |  505 +++++++++
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RechargeRecordsVO.java             |    5 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/finance/Income.html                            |   61 +
 cloud-server-course/src/main/java/com/dsh/course/controller/CancelledClassesController.java                |   42 
 cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment_info.js                  |   16 
 cloud-server-other/src/main/java/com/dsh/other/service/ISiteBookingService.java                            |    2 
 cloud-server-competition/src/main/java/com/dsh/competition/mapper/PaymentCompetitionMapper.java            |    6 
 cloud-server-course/src/main/java/com/dsh/course/feignclient/account/StudentClient.java                    |   10 
 cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java                 |    3 
 cloud-server-account/src/main/java/com/dsh/account/mapper/VipPaymentMapper.java                            |    9 
 cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java                       |    8 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java                 |    8 
 cloud-server-competition/src/main/java/com/dsh/competition/entity/PaymentCompetition.java                  |    2 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCoursePackagePayment.java         |    5 
 cloud-server-account/src/main/java/com/dsh/account/model/query/RechargeRecordsQuery.java                   |    6 
 cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment.js                       |    1 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteBooking.java                   |  179 +++
 cloud-server-account/src/main/java/com/dsh/account/service/RechargeRecordsService.java                     |    3 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java                |    6 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RechargeRecordsQuery.java          |    4 
 cloud-server-competition/src/main/resources/mapper/PaymentCompetitionMapper.xml                            |   17 
 cloud-server-management/src/main/webapp/static/modular/system/finance/income.js                            |  150 ++
 cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java                         |    5 
 cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java                              |    3 
 cloud-server-competition/src/main/java/com/dsh/competition/model/CompetitionQuery.java                     |   20 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/other/SiteClient.java                     |   10 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteBookingQuery.java              |   20 
 cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml                                          |   11 
 cloud-server-other/src/main/resources/mapper/SiteBookingMapper.xml                                         |   18 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java                   |    5 
 cloud-server-account/src/main/java/com/dsh/account/model/vo/RechargeRecordsVO.java                         |    4 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java    |   10 
 cloud-server-course/src/main/java/com/dsh/course/feignclient/account/CoachClient.java                      |    2 
 cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackagePaymentConfigMapper.java              |    8 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java            |   12 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/finance/RegistrationOrder.html                 |  106 ++
 cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java                            |    1 
 cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java           |   13 
 82 files changed, 3,003 insertions(+), 77 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 1ceb07a..b983c07 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
@@ -53,6 +53,14 @@
 
 
     /**
+     * 根据用户姓名和电话模糊查询
+     */
+    @ResponseBody
+    @PostMapping("/base/appUser/queryAPPUserByNameAndPhone")
+    public List<TAppUser> queryAPPUserByNameAndPhone(@RequestBody AppUserByNameAndPhoneDTO dto){
+        return appUserService.queryAPPUserByNameAndPhone(dto);
+    }
+    /**
      * 根据用户id获取用户信息
      * @param appUserId
      * @return
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java
index ee2a874..da469f2 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java
@@ -27,7 +27,7 @@
      */
     @PostMapping("/coach/queryCoachListByName")
     @ResponseBody
-    public List<Coach> queryCoachListByName(String name){
+    public List<Coach> queryCoachListByName(@RequestBody String name){
         return service.list(new QueryWrapper<Coach>().like("name",name));
     }
 
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/FinanceController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/FinanceController.java
index 896c7ce..a3e5662 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/FinanceController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/FinanceController.java
@@ -3,16 +3,22 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.dsh.account.entity.CoachType;
+import com.dsh.account.entity.RechargeRecords;
+import com.dsh.account.entity.VipPayment;
+import com.dsh.account.model.IncomeQuery;
 import com.dsh.account.model.query.RechargeRecordsQuery;
 import com.dsh.account.model.query.coachQuery.CoachQuery;
 import com.dsh.account.model.vo.CoachSerchVO;
 import com.dsh.account.model.vo.RechargeRecordsVO;
 import com.dsh.account.service.CoachService;
 import com.dsh.account.service.CoachTypeService;
+import com.dsh.account.service.IVipPaymentService;
 import com.dsh.account.service.RechargeRecordsService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -23,6 +29,8 @@
 public class FinanceController {
     @Autowired
     private RechargeRecordsService rechargeRecordsService;
+    @Autowired
+    private IVipPaymentService vipPaymentService;
 
 
     /**
@@ -31,7 +39,14 @@
     @ResponseBody
     @RequestMapping("/finance/rechargeList")
     public List<RechargeRecordsVO> rechargeList(@RequestBody RechargeRecordsQuery query){
-        List<RechargeRecordsVO> list = rechargeRecordsService.rechargeList(query);
-        return list;
+        return  rechargeRecordsService.rechargeList(query);
+    }
+    /**
+     * 加入会员列表数据
+     */
+    @ResponseBody
+    @RequestMapping("/finance/vipPaymentList")
+    public List<VipPayment> registrationList(@RequestBody IncomeQuery query){
+        return rechargeRecordsService.listAll(query);
     }
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java
index 8be82ce..2d6993a 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java
@@ -154,6 +154,15 @@
     public List<TStudent> queryStudentListByName(@RequestBody String name){
         return studentService.list(new QueryWrapper<TStudent>().eq("state", 1).like("name", name));
     }
+    /**
+     * 根据名称模糊搜索学员
+     * @param name
+     * @return
+     */
+    @PostMapping("/student/queryTStudentListByName")
+    public List<TStudent> queryTStudentListByName(@RequestBody String name){
+        return studentService.list(new QueryWrapper<TStudent>().eq("state", 1).like("name", name));
+    }
 
     /**
      * web端查找学员
diff --git a/cloud-server-account/src/main/java/com/dsh/account/entity/TAppUser.java b/cloud-server-account/src/main/java/com/dsh/account/entity/TAppUser.java
index de8d3b0..34f5430 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/entity/TAppUser.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/entity/TAppUser.java
@@ -23,7 +23,7 @@
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
 @TableName("t_app_user")
-public class TAppUser{
+public class TAppUser {
 
     private static final long serialVersionUID = 1L;
 
diff --git a/cloud-server-account/src/main/java/com/dsh/account/entity/VipPayment.java b/cloud-server-account/src/main/java/com/dsh/account/entity/VipPayment.java
index c6da1e9..c21a751 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/entity/VipPayment.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/entity/VipPayment.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.dsh.account.util.UUIDUtil;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.text.SimpleDateFormat;
@@ -66,6 +67,7 @@
      * 添加时间
      */
     @TableField("insertTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
     private Date insertTime;
 
 
diff --git a/cloud-server-account/src/main/java/com/dsh/account/mapper/RechargeRecordsMapper.java b/cloud-server-account/src/main/java/com/dsh/account/mapper/RechargeRecordsMapper.java
index 019c6b1..42f2e2d 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/mapper/RechargeRecordsMapper.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/mapper/RechargeRecordsMapper.java
@@ -2,10 +2,13 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dsh.account.entity.RechargeRecords;
+import com.dsh.account.entity.VipPayment;
+import com.dsh.account.model.IncomeQuery;
 import com.dsh.account.model.query.RechargeRecordsQuery;
 import com.dsh.account.model.vo.RechargeRecordsVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -19,4 +22,6 @@
 public interface RechargeRecordsMapper extends BaseMapper<RechargeRecords> {
 
     List<RechargeRecordsVO> rechargeList(@Param("query") RechargeRecordsQuery query,@Param("sTime")String sTime,@Param("eTime")String eTime);
+    List<VipPayment> listAll(@Param("query") IncomeQuery query, @Param("sTime")String sTime, @Param("eTime")String eTime, @Param("amount") BigDecimal amount);
+
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java b/cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java
index 9457534..5d3e8ef 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dsh.account.dto.SelectDto;
 import com.dsh.account.entity.TAppUser;
+import com.dsh.account.model.AppUserByNameAndPhoneDTO;
 import com.dsh.account.model.query.appUserQuery.QueryAppUser;
 import com.dsh.account.model.vo.QueryAppUserVO;
 import org.apache.ibatis.annotations.Mapper;
@@ -34,4 +35,6 @@
     List<SelectDto> getSelects(@Param("studentIds") List<Integer> studentIds);
 
     int changeState(@Param("ids") List<Integer> ids,@Param("state") Integer state);
+
+    List<TAppUser> queryAPPUserByNameAndPhone(@Param("query") AppUserByNameAndPhoneDTO dto);
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/mapper/VipPaymentMapper.java b/cloud-server-account/src/main/java/com/dsh/account/mapper/VipPaymentMapper.java
index 7cdfae5..84302f8 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/mapper/VipPaymentMapper.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/mapper/VipPaymentMapper.java
@@ -2,10 +2,19 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dsh.account.entity.VipPayment;
+import com.dsh.account.model.IncomeQuery;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * @author zhibing.pu
  * @date 2023/6/24 10:02
  */
+
 public interface VipPaymentMapper extends BaseMapper<VipPayment> {
+
+
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/AppUserByNameAndPhoneDTO.java b/cloud-server-account/src/main/java/com/dsh/account/model/AppUserByNameAndPhoneDTO.java
new file mode 100644
index 0000000..b2c9bff
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/AppUserByNameAndPhoneDTO.java
@@ -0,0 +1,12 @@
+package com.dsh.account.model;
+
+import lombok.Data;
+
+/**
+ * 通过用户姓名和电话进行模糊查询DTO
+ */
+@Data
+public class AppUserByNameAndPhoneDTO {
+    private String userName;
+    private String phone;
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/IncomeQuery.java b/cloud-server-account/src/main/java/com/dsh/account/model/IncomeQuery.java
new file mode 100644
index 0000000..0806803
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/IncomeQuery.java
@@ -0,0 +1,24 @@
+package com.dsh.account.model;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 收入管理Query
+ */
+@Data
+public class IncomeQuery {
+    // 收入时间
+    private String time;
+    // 收入类型
+    private Integer incomeType;
+    // 用户姓名
+    private String userName;
+    // 收入金额
+    private BigDecimal amount;
+    // 用户ids
+    private List<Integer> userIds;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/Student.java b/cloud-server-account/src/main/java/com/dsh/account/model/Student.java
new file mode 100644
index 0000000..4907004
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/Student.java
@@ -0,0 +1,73 @@
+package com.dsh.account.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zhibing.pu
+ * @date 2023/7/4 23:39
+ */
+@Data
+public class Student {
+    private Integer id;
+    /**
+     * 用户id
+     */
+    private Integer appUserId;
+    /**
+     * 学员姓名
+     */
+    private String name;
+    /**
+     * 学员电话
+     */
+    private String phone;
+    /**
+     * 生日
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date birthday;
+    /**
+     * 性别(1=男,2=女)
+     */
+    private Integer sex;
+    /**
+     * 身高
+     */
+    private Double height;
+    /**
+     * 体重
+     */
+    private Double weight;
+    /**
+     * bmi健康值
+     */
+    private Double bmi;
+    /**
+     * 身份证号
+     */
+    private String idCard;
+    /**
+     * 体侧表
+     */
+    private String lateralSurface;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date insertTime;
+    /**
+     * 头像
+     */
+    private String headImg;
+    /**
+     * 是否默认 1默认 2不是默认
+     */
+    private Integer isDefault;
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/query/RechargeRecordsQuery.java b/cloud-server-account/src/main/java/com/dsh/account/model/query/RechargeRecordsQuery.java
index d229357..466050c 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/model/query/RechargeRecordsQuery.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/query/RechargeRecordsQuery.java
@@ -2,6 +2,9 @@
 
 import lombok.Data;
 
+import java.math.BigDecimal;
+import java.util.List;
+
 /**
  * 充值记录列表查询Query
  */
@@ -16,5 +19,6 @@
      * 1 = 会员 0 =非会员
      */
     private Integer type;
-
+    private List<Integer> userIds;
+    private BigDecimal amount;
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/RechargeRecordsVO.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/RechargeRecordsVO.java
index 6753749..4c6ee5e 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/RechargeRecordsVO.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/RechargeRecordsVO.java
@@ -34,5 +34,9 @@
      * 1 = 会员 2 =非会员
      */
     private Integer type;
+    private Integer appUserId;
+    private Integer state;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date insertTime;
 
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/IVipPaymentService.java b/cloud-server-account/src/main/java/com/dsh/account/service/IVipPaymentService.java
index 4355c9d..3058a52 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/IVipPaymentService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/IVipPaymentService.java
@@ -2,7 +2,10 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.dsh.account.entity.VipPayment;
+import com.dsh.account.model.IncomeQuery;
 import com.dsh.account.util.ResultUtil;
+
+import java.util.List;
 
 
 /**
@@ -26,4 +29,5 @@
      * @throws Exception
      */
     ResultUtil addVipPaymentCallback(String code, String orderNumber) throws Exception;
+
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/RechargeRecordsService.java b/cloud-server-account/src/main/java/com/dsh/account/service/RechargeRecordsService.java
index 2a5d9d0..9b470c6 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/RechargeRecordsService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/RechargeRecordsService.java
@@ -2,6 +2,8 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.dsh.account.entity.RechargeRecords;
+import com.dsh.account.entity.VipPayment;
+import com.dsh.account.model.IncomeQuery;
 import com.dsh.account.model.query.RechargeRecordsQuery;
 import com.dsh.account.model.vo.RechargeRecordsVO;
 import com.dsh.account.model.vo.userBenefitDetail.RechargeDetailsVo;
@@ -28,4 +30,5 @@
     ResultUtil addRechargeCallbackPay(String code, String orderNumber);
 
     List<RechargeRecordsVO> rechargeList(RechargeRecordsQuery query);
+    List<VipPayment> listAll(IncomeQuery query);
 }
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 05e650a..2975b15 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
@@ -147,4 +147,5 @@
 
     Object changeState(AdvertisementChangeStateDTO dto);
 
+    List<TAppUser> queryAPPUserByNameAndPhone(AppUserByNameAndPhoneDTO dto);
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
index 7d77e6b..242d614 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dsh.account.entity.RechargeRecords;
 import com.dsh.account.entity.TAppUser;
+import com.dsh.account.entity.VipPayment;
 import com.dsh.account.enums.RechargeRecordEnum;
 import com.dsh.account.feignclient.competition.DeductionCompetitionsClient;
 import com.dsh.account.feignclient.competition.model.PaymentCompetition;
@@ -15,6 +16,7 @@
 import com.dsh.account.feignclient.other.model.SiteBooking;
 import com.dsh.account.mapper.RechargeRecordsMapper;
 import com.dsh.account.mapper.TAppUserMapper;
+import com.dsh.account.model.IncomeQuery;
 import com.dsh.account.model.query.RechargeRecordsQuery;
 import com.dsh.account.model.vo.RechargeRecordsVO;
 import com.dsh.account.model.vo.userBenefitDetail.RechargeDetailsVo;
@@ -366,6 +368,16 @@
 
     }
 
+    @Override
+    public List<VipPayment> listAll(IncomeQuery query) {
+        String STime = null;
+        String ETime = null;
+        if (StringUtils.hasLength(query.getTime())) {
+            STime = query.getTime().split(" - ")[0] + " 00:00:00";
+            ETime = query.getTime().split(" - ")[1] + " 23:59:59";
+        }
+        return rechargeRecordsMapper.listAll(query,STime,ETime,query.getAmount());
+    }
     public static <T> List<T> pageList(List<T> list, int pageNum, int pageSize) {
         //计算总页数
         int page = list.size() % pageSize == 0 ? list.size() / pageSize : list.size() / pageSize + 1;
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 9dcdaca..d9b18ef 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
@@ -174,6 +174,11 @@
     }
 
     @Override
+    public List<TAppUser> queryAPPUserByNameAndPhone(AppUserByNameAndPhoneDTO dto) {
+        return appUserMapper.queryAPPUserByNameAndPhone(dto);
+    }
+
+    @Override
     public ClassInfoVo queryUserOfStus(Integer id) {
         TAppUser tAppUser = this.baseMapper.selectById(id);
         ClassInfoVo classInfoVo = new ClassInfoVo();
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
index 932f0df..783baee 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
@@ -5,15 +5,19 @@
 import com.dsh.account.entity.TAppUser;
 import com.dsh.account.entity.VipPayment;
 import com.dsh.account.mapper.VipPaymentMapper;
+import com.dsh.account.model.IncomeQuery;
 import com.dsh.account.service.IVipPaymentService;
 import com.dsh.account.service.TAppUserService;
 import com.dsh.account.util.PayMoneyUtil;
 import com.dsh.account.util.ResultUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 
+import java.math.BigDecimal;
 import java.util.Calendar;
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -28,6 +32,8 @@
 
     @Autowired
     private PayMoneyUtil payMoneyUtil;
+    @Autowired
+    private VipPaymentMapper vipPaymentMapper;
 
 
 
@@ -257,4 +263,6 @@
         appUserService.updateById(appUser);
         return ResultUtil.success();
     }
+
+
 }
diff --git a/cloud-server-account/src/main/resources/mapper/RechargeRecordsMapper.xml b/cloud-server-account/src/main/resources/mapper/RechargeRecordsMapper.xml
index d0099e1..6317187 100644
--- a/cloud-server-account/src/main/resources/mapper/RechargeRecordsMapper.xml
+++ b/cloud-server-account/src/main/resources/mapper/RechargeRecordsMapper.xml
@@ -4,19 +4,43 @@
 
 
     <select id="rechargeList" resultType="com.dsh.account.model.vo.RechargeRecordsVO">
-        select t1.*,t2.name,t2.phone from t_recharge_records t1
-        left join t_app_user t2 on t1.appUserId = t2.id
+        select t1.* from t_recharge_records t1
         <where>
+            <if test="query.amount!=null and query.amount!= ''">
+                and t1.amount &lt;= #{query.amount}
+            </if>
             <if test="query.name!=null and query.name!= ''">
                 AND t1.name LIKE concat('%',#{query.name},'%')
             </if>
             <if test="query.phone!=null and query.phone!= ''">
                 and t1.phone LIKE concat('%',#{query.phone},'%')
             </if>
-
             <if test="sTime !=null and sTime!= '' and eTime !=null and eTime!= ''">
                 and t1.insertTime between #{sTime} and #{eTime}
             </if>
+            <if test="query.userIds != null and query.userIds.size()>0">
+                AND t1.appUserId IN
+                <foreach collection="query.userIds" separator="," item="id" open="(" close=")">
+                    #{id}
+                </foreach>
+            </if>
+        </where>
+    </select>
+    <select id="listAll" resultType="com.dsh.account.entity.VipPayment">
+        select t1.* from t_vip_payment t1
+        <where>
+        <if test="amount!=null and amount!= ''">
+            and t1.amount &lt;= #{amount}
+        </if>
+        <if test="query.userIds != null and query.userIds.size()>0">
+            AND t1.appUserId IN
+            <foreach collection="query.userIds" separator="," item="id" open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
+        <if test="sTime !=null and sTime!= '' and eTime !=null and eTime!= ''">
+            and t1.insertTime between #{sTime} and #{eTime}
+        </if>
         </where>
     </select>
 </mapper>
diff --git a/cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml b/cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml
index 2168842..f713086 100644
--- a/cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml
+++ b/cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml
@@ -82,4 +82,15 @@
             </foreach>
         </where>
     </select>
+    <select id="queryAPPUserByNameAndPhone" resultType="com.dsh.account.entity.TAppUser">
+        select * from t_app_user t1
+        <where>
+            <if test="query.userName!=null and query.userName!= ''">
+                AND t1.name LIKE concat('%',#{query.userName},'%')
+            </if>
+            <if test="query.phone!=null and query.phone!= ''">
+                AND t1.phone LIKE concat('%',#{query.phone},'%')
+            </if>
+        </where>
+    </select>
 </mapper>
diff --git a/cloud-server-account/src/main/resources/mapper/VipPaymentMapper.tld b/cloud-server-account/src/main/resources/mapper/VipPaymentMapper.tld
index 0fb4b33..1f48171 100644
--- a/cloud-server-account/src/main/resources/mapper/VipPaymentMapper.tld
+++ b/cloud-server-account/src/main/resources/mapper/VipPaymentMapper.tld
@@ -17,4 +17,5 @@
         <result column="isDefault" property="isDefault" />
     </resultMap>
 
+
 </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 6221f18..57f39c4 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
@@ -11,9 +11,7 @@
 import com.dsh.competition.feignclient.account.AppUserClient;
 import com.dsh.competition.feignclient.account.model.AppUser;
 import com.dsh.competition.feignclient.model.*;
-import com.dsh.competition.model.CompetitionInfo;
-import com.dsh.competition.model.CompetitionListVo;
-import com.dsh.competition.model.PaymentCompetitionVo;
+import com.dsh.competition.model.*;
 import com.dsh.competition.service.CompetitionService;
 import com.dsh.competition.service.IParticipantService;
 import com.dsh.competition.service.IPaymentCompetitionService;
@@ -74,7 +72,14 @@
     @Autowired
     private AppUserClient appUserClient;
 
-
+    /**
+     * 获取赛事报名记录
+     */
+    @ResponseBody
+    @RequestMapping("/base/competition/listAllPayment")
+    public List<PaymentCompetition> listAllPayment(@RequestBody CompetitionQuery query){
+        return paymentCompetitionService.listAll(query);
+    }
     @ResponseBody
     @PostMapping("/base/competition/getPayedCompetitions")
     public BillingRequestVo getAllCompetitionPayRecord(@RequestBody BillingDataRequestVo requestVo){
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/entity/PaymentCompetition.java b/cloud-server-competition/src/main/java/com/dsh/competition/entity/PaymentCompetition.java
index a8f5187..694e2b7 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/entity/PaymentCompetition.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/entity/PaymentCompetition.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;
@@ -79,5 +80,6 @@
      * 添加时间
      */
     @TableField("insertTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
     private Date insertTime;
 }
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/mapper/PaymentCompetitionMapper.java b/cloud-server-competition/src/main/java/com/dsh/competition/mapper/PaymentCompetitionMapper.java
index bbed075..bceea9f 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/mapper/PaymentCompetitionMapper.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/mapper/PaymentCompetitionMapper.java
@@ -1,11 +1,15 @@
 package com.dsh.competition.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.competition.entity.Competition;
 import com.dsh.competition.entity.PaymentCompetition;
 import com.dsh.competition.feignclient.model.BillingRequest;
 import com.dsh.competition.model.CompetitionListVo;
+import com.dsh.competition.model.CompetitionQuery;
+import com.dsh.competition.model.TCompetition;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -34,4 +38,6 @@
                                           @Param("monthStart")String monthStart,
                                           @Param("monthEnd")String monthEnd);
 
+    List<PaymentCompetition> listAll(@Param("query")CompetitionQuery query, @Param("sTime")String sTime, @Param("eTime")String eTime, @Param("amount") BigDecimal amount);
+
 }
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/model/CompetitionQuery.java b/cloud-server-competition/src/main/java/com/dsh/competition/model/CompetitionQuery.java
new file mode 100644
index 0000000..8b15910
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/model/CompetitionQuery.java
@@ -0,0 +1,20 @@
+package com.dsh.competition.model;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 收入管理Query
+ */
+@Data
+public class CompetitionQuery {
+    // 收入时间
+    private String time;
+    // 收入金额
+    private BigDecimal amount;
+    // 用户ids
+    private List<Integer> userIds;
+
+}
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/model/TCompetition.java b/cloud-server-competition/src/main/java/com/dsh/competition/model/TCompetition.java
new file mode 100644
index 0000000..ecb828d
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/model/TCompetition.java
@@ -0,0 +1,238 @@
+package com.dsh.competition.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_competition")
+public class TCompetition extends Model<TCompetition> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * 省
+     */
+    @TableField("province")
+    private String province;
+    /**
+     * 省编号
+     */
+    @TableField("provinceCode")
+    private String provinceCode;
+    /**
+     * 市
+     */
+    @TableField("city")
+    private String city;
+    /**
+     * 市编号
+     */
+    @TableField("cityCode")
+    private String cityCode;
+    /**
+     * 门店id
+     */
+    @TableField("storeId")
+    private String storeId;
+    /**
+     * 赛事名称
+     */
+    @TableField("name")
+    private String name;
+    /**
+     * 开始时间
+     */
+    @TableField("startTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date startTime;
+    /**
+     * 结束时间
+     */
+    @TableField("endTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date endTime;
+    /**
+     * 报名结束时间
+     */
+    @TableField("registerEndTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date registerEndTime;
+    /**
+     * 报名条件(1=全部用户,2=仅限年度会员参与,3=仅限学员参与)
+     */
+    @TableField("registerCondition")
+    private Integer registerCondition;
+    /**
+     * 报名开始年龄
+     */
+    @TableField("startAge")
+    private Integer startAge;
+    /**
+     * 报名结束年龄
+     */
+    @TableField("endAge")
+    private Integer endAge;
+    /**
+     * 现金支付价格
+     */
+    @TableField("cashPrice")
+    private Double cashPrice;
+    /**
+     * 玩湃币支付价格
+     */
+    @TableField("playPaiCoin")
+    private Integer playPaiCoin;
+    /**
+     * 课时支付价格
+     */
+    @TableField("classPrice")
+    private Integer classPrice;
+    /**
+     * 参加地址
+     */
+    @TableField("address")
+    private String address;
+    /**
+     * 经度
+     */
+    @TableField("longitude")
+    private String longitude;
+    /**
+     * 纬度
+     */
+    @TableField("latitude")
+    private String latitude;
+    /**
+     * 报名人数
+     */
+    @TableField("applicantsNumber")
+    private Integer applicantsNumber;
+    /**
+     * 基础人数
+     */
+    @TableField("baseNumber")
+    private Integer baseNumber;
+    /**
+     * 是否需要实名(0=否,1=是)
+     */
+    @TableField("realName")
+    private Integer realName;
+    /**
+     * 赛事封面图
+     */
+    @TableField("coverDrawing")
+    private String coverDrawing;
+    /**
+     * 赛事简介
+     */
+    @TableField("introduction")
+    private String introduction;
+    /**
+     * 赛事图片
+     */
+    @TableField("imgs")
+    private String imgs;
+    /**
+     * 报名须知
+     */
+    @TableField("registrationNotes")
+    private String registrationNotes;
+    /**
+     * 参赛省
+     */
+    @TableField("entryProvince")
+    private String entryProvince;
+    /**
+     * 参赛省编号
+     */
+    @TableField("entryProvinceCode")
+    private String entryProvinceCode;
+    /**
+     * 参赛市
+     */
+    @TableField("entryCity")
+    private String entryCity;
+    /**
+     * 参赛市编号
+     */
+    @TableField("entryCityCode")
+    private String entryCityCode;
+    /**
+     * 参赛地址
+     */
+    @TableField("entryAddress")
+    private String entryAddress;
+    /**
+     * 参赛经度
+     */
+    @TableField("entryLon")
+    private String entryLon;
+    /**
+     * 参赛纬度
+     */
+    @TableField("entryLat")
+    private String entryLat;
+    /**
+     * 审核状态(1=待审核,2=已通过,3=已拒绝)
+     */
+    @TableField("auditStatus")
+    private Integer auditStatus;
+    /**
+     * 审核人id
+     */
+    @TableField("auditUserId")
+    private Integer auditUserId;
+    /**
+     * 审核备注
+     */
+    @TableField("auditRemark")
+    private String auditRemark;
+    /**
+     * 状态(1=未开始,2=已开始,3=已结束,4=已取消)
+     */
+    @TableField("status")
+    private Integer status;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date insertTime;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/service/IPaymentCompetitionService.java b/cloud-server-competition/src/main/java/com/dsh/competition/service/IPaymentCompetitionService.java
index b10b08c..8d19245 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/service/IPaymentCompetitionService.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/IPaymentCompetitionService.java
@@ -1,10 +1,13 @@
 package com.dsh.competition.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.competition.entity.Competition;
 import com.dsh.competition.entity.PaymentCompetition;
 import com.dsh.competition.feignclient.model.BillingRequest;
 import com.dsh.competition.model.CompetitionInfo;
 import com.dsh.competition.model.CompetitionListVo;
+import com.dsh.competition.model.CompetitionQuery;
+import com.dsh.competition.model.TCompetition;
 import com.dsh.competition.util.ResultUtil;
 
 import java.util.List;
@@ -49,4 +52,5 @@
 
     List<BillingRequest> queryCancelDatas(Integer appUserId, String monthStart, String monthEnd);
 
+    List<PaymentCompetition> listAll(CompetitionQuery query);
 }
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 3f62769..180ce8c 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
@@ -16,9 +16,7 @@
 import com.dsh.competition.feignclient.other.StoreClient;
 import com.dsh.competition.feignclient.other.model.Store;
 import com.dsh.competition.mapper.PaymentCompetitionMapper;
-import com.dsh.competition.model.CompetitionInfo;
-import com.dsh.competition.model.CompetitionListVo;
-import com.dsh.competition.model.ParticipantVo;
+import com.dsh.competition.model.*;
 import com.dsh.competition.service.CompetitionService;
 import com.dsh.competition.service.IParticipantService;
 import com.dsh.competition.service.IPaymentCompetitionService;
@@ -26,6 +24,7 @@
 import com.dsh.competition.util.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
@@ -67,6 +66,8 @@
 
     @Resource
     private StudentClient studentClient;
+    @Autowired
+    private PaymentCompetitionMapper paymentCompetitionMapper;
 
 
 
@@ -243,4 +244,16 @@
     public List<BillingRequest> queryCancelDatas(Integer appUserId, String monthStart, String monthEnd) {
         return this.baseMapper.queryCancelDatas(appUserId,monthStart,monthEnd);
     }
+
+    @Override
+    public List<PaymentCompetition> listAll(CompetitionQuery query) {
+        String STime = null;
+        String ETime = null;
+        if (StringUtils.hasLength(query.getTime())) {
+            STime = query.getTime().split(" - ")[0] + " 00:00:00";
+            ETime = query.getTime().split(" - ")[1] + " 23:59:59";
+        }
+
+        return paymentCompetitionMapper.listAll(query,STime,ETime,query.getAmount());
+    }
 }
diff --git a/cloud-server-competition/src/main/resources/mapper/PaymentCompetitionMapper.xml b/cloud-server-competition/src/main/resources/mapper/PaymentCompetitionMapper.xml
index 5084701..a865758 100644
--- a/cloud-server-competition/src/main/resources/mapper/PaymentCompetitionMapper.xml
+++ b/cloud-server-competition/src/main/resources/mapper/PaymentCompetitionMapper.xml
@@ -57,4 +57,21 @@
             and appUserId = #{appUserId}
         </if>
     </select>
+    <select id="listAll" resultType="com.dsh.competition.entity.PaymentCompetition">
+        select * from t_payment_competition t1
+        <where>
+        <if test="query.amount!=null and query.amount!= ''">
+            and t1.amount &lt;= #{query.amount}
+        </if>
+        <if test="query.userIds != null and query.userIds.size()>0">
+            AND t1.appUserId IN
+            <foreach collection="query.userIds" separator="," item="id" open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
+        <if test="sTime !=null and sTime!= '' and eTime !=null and eTime!= ''">
+            and t1.insertTime between #{sTime} and #{eTime}
+        </if>
+        </where>
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CancelledClassesController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CancelledClassesController.java
index ce1da41..4da42ab 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CancelledClassesController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CancelledClassesController.java
@@ -54,30 +54,34 @@
     @ResponseBody
     @PostMapping("/cancelledClasses/listAll")
     public List<CancelClassesVO> listAll(@RequestBody CancelClassesQuery query){
-
         List<CancelClassesVO> res = new ArrayList<>();
-        if (!query.getStudentName().equals("")){
-            List<Integer> s = new ArrayList<>();
-            List<Student> students = studentClient.queryStudentListByName(query.getStudentName());
-            if (students.size()==0){
-                return new ArrayList<>();
+        if (query.getStudentName()!=null){
+            if (!query.getStudentName().equals("")){
+                List<Integer> s = new ArrayList<>();
+                List<Student> students = studentClient.queryStudentListByName(query.getStudentName());
+                if (students.size()==0){
+                    return new ArrayList<>();
+                }
+                for (Student coach : students) {
+                    s.add(coach.getId());
+                }
+                query.setStudentIds(s);
             }
-            for (Student coach : students) {
-                s.add(coach.getId());
-            }
-            query.setStudentIds(s);
         }
-        if (!query.getCoachName().equals("")){
-            List<Integer> c = new ArrayList<>();
-            List<Coach> coaches = coachClient.queryCoachListByName(query.getCoachName());
-            if (coaches.size()==0){
-                return new ArrayList<>();
+        if (query.getCoachName()!=null){
+            if (!query.getCoachName().equals("")){
+                List<Integer> c = new ArrayList<>();
+                List<Coach> coaches = coachClient.queryCoachListByName(query.getCoachName());
+                if (coaches.size()==0){
+                    return new ArrayList<>();
+                }
+                for (Coach coach : coaches) {
+                    c.add(coach.getId());
+                }
+                query.setCoachIds(c);
             }
-            for (Coach coach : coaches) {
-                c.add(coach.getId());
-            }
-            query.setCoachIds(c);
         }
+
         List<CancelClassesVO> result = cancelledClassesService.listAll(query);
         for (CancelClassesVO cancelClassesVO : result) {
             CoursePackageScheduling byId1 = coursePackageSchedulingService.getById(cancelClassesVO.getCoursePackageSchedulingId());
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 309a8cf..d97e7c7 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
@@ -13,6 +13,7 @@
 import com.dsh.course.feignclient.account.model.AppUser;
 import com.dsh.course.feignclient.account.model.Student;
 import com.dsh.course.feignclient.account.model.TCourseInfoRecord;
+import com.dsh.course.feignclient.account.model.TStudent;
 import com.dsh.course.feignclient.activity.CouponClient;
 import com.dsh.course.feignclient.activity.model.Coupon;
 import com.dsh.course.feignclient.model.*;
@@ -123,6 +124,8 @@
     private CoursePackageSchedulingMapper coursePackageSchedulingMapper;
     @Autowired
     private ICoursePackageSchedulingService coursePackageSchedulingService;
+    @Autowired
+    private CoursePackageStudentService coursePackageStudentService;
 
     private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm");
     /**
@@ -134,6 +137,8 @@
         packagePayment.setInsertTime(new Date());
         packagePayment.setInsertTime(new Date());
         Integer studentId = packagePayment.getStudentId();
+        // 添加学员上课记录
+        CoursePackageStudent coursePackageStudent = new CoursePackageStudent();
         TCoursePackagePayment one = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", packagePayment)
                 .orderByDesc("insertTime")
                 .last("LIMIT 1"));
@@ -144,7 +149,7 @@
             // 没有过期
             if (one.getUseTime().after(new Date())){
                 packagePayment.setTotalClassHours(packagePayment.getClassHours()+one.getTotalClassHours());
-                packagePayment.setLaveClassHours(packagePayment.getClassHours()+one.getLaveClassHours());
+                packagePayment.setLaveClassHours(one.getLaveClassHours()-packagePayment.getClassHours());
                 packagePayment.setAbsencesNumber(one.getAbsencesNumber());
             }
             packagePayment.setTotalClassHours(packagePayment.getClassHours());
@@ -214,6 +219,8 @@
                         coursePackageScheduling.setEndDate(endDate.getTime());
                         coursePackageScheduling.setStatus(1);
                         coursePackageSchedulingService.save(coursePackageScheduling);
+                        coursePackageStudent.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+
                         List<CoursePackageScheduling> list1 = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>()
                                 .eq("coursePackageId", coursePackage.getId())
                                 .eq("classDate", classDate.getTime())
@@ -232,7 +239,18 @@
         } catch (ParseException e) {
             e.printStackTrace();
         }
-        return packagePaymentService.save(packagePayment);
+
+        coursePackageStudent.setStudentId(packagePayment.getStudentId());
+        coursePackageStudent.setCoursePackageId(packagePayment.getCoursePackageId());
+
+
+        coursePackageStudent.setSignInOrNot(0);
+        coursePackageStudent.setReservationStatus(1);
+        coursePackageStudent.setInsertTime(new Date());
+        coursePackageStudent.setAppUserId(packagePayment.getAppUserId());
+        packagePaymentService.save(packagePayment);
+        coursePackageStudent.setCoursePackagePaymentId(packagePayment.getId());
+        return coursePackageStudentService.save(coursePackageStudent);
     }
     /**
      * 手动支付
@@ -271,19 +289,19 @@
                 List<AppUser> appUsers = appUserClient.queryAppUserListByName(query.getPayUser());
                 for (AppUser user : appUsers) {
                     if (appUser.getName().equals(user.getName())){
-                        result.add(re);
+                        if (query.getPayStudent()== null || query.getPayStudent().equals("")){
+                        }else{
+                            List<Student> students = studentClient.queryStudentListByName(query.getPayStudent());
+                            for (Student student1 : students) {
+                                if (student.getName().equals(student1.getName())){
+                                    result.add(re);
+                                }
+                            }
+                        }
                     }
                 }
             }
-            if (query.getPayStudent()== null || query.getPayStudent().equals("")){
-            }else{
-                List<Student> students = studentClient.queryStudentListByName(query.getPayStudent());
-                for (Student student1 : students) {
-                    if (student.getName().equals(student1.getName())){
-                        result.add(re);
-                    }
-                }
-            }
+
             if (re.getPayType()!=null){
                 if (re.getPayType()==1){
                     re.setBuyTypeName("微信支付");
@@ -303,6 +321,7 @@
             }
 
             // 如果支付用户类型为管理员 则购买方式则为1线下购买
+            if (re.getPayUserType()!=null){
                 if (re.getPayUserType()== 2){
                     re.setBuyType(1);
                 }else{
@@ -316,6 +335,7 @@
                     }
                 }
             }
+            }
         if (query.getPayStudent()== null || query.getPayStudent().equals("")){
             if (query.getPayUser()== null || query.getPayUser().equals("")){
                 return res;
@@ -328,6 +348,47 @@
     }
 
     /**
+     * 获取报名订单记录列表
+     */
+    @ResponseBody
+    @RequestMapping("/registerOrder/listAllRegister")
+    public List<RegisterOrderVO> listAllRegister(@RequestBody RegisterOrderQuery query){
+        if (query.getStudentName()!=null){
+            if (!query.getStudentName().equals("")){
+                List<TStudent> students1 = studentClient.queryTStudentListByName(query.getStudentName());
+                List<Integer> studentIds = students1.stream().map(TStudent::getId).collect(Collectors.toList());
+                query.setStudentIds(studentIds);
+                if (students1.size()==0){
+                    return new ArrayList<>();
+                }
+            }
+        }
+
+        List<RegisterOrderVO> res = packagePaymentService.listAllRegister(query);
+        List<RegisterOrderVO> result = new ArrayList<>();
+        for (RegisterOrderVO re : res) {
+            if(re.getSalesName()==null){
+                re.setSalesName("无");
+            }
+            if(re.getPayType()!=null){
+                if (re.getPayType() == 3){
+                    re.setPayMoneyAndType(re.getPlayPaiCoin()+"玩湃币");
+                }else{
+                    re.setPayMoneyAndType("¥"+re.getMoney());
+                }
+            }
+            Store store = storeClient.queryStoreById(re.getStoreId());
+            TAppUser appUser = appUserClient.queryAppUser1(re.getAppUserId());
+            Student student = studentClient.queryStudentById(re.getStudentId());
+            re.setPayStudent(student.getName());
+            re.setPayUser(appUser.getName());
+            re.setPhone(appUser.getPhone());
+            re.setStoreName(store.getName());
+        }
+        return res;
+    }
+
+    /**
      * 获取 没有学员信息的图片配置
      * @param stuId 学员id
      * @return  课包列表
diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java b/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java
index 66c684a..ef54715 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java
@@ -159,4 +159,9 @@
      */
     @TableField("payUserName")
     private String payUserName;
+    /**
+     * 销售人员(线下购课添加购课订单时使用)
+     */
+    @TableField("salesName")
+    private String salesName;
 }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java
index 60510a1..10ace86 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java
@@ -3,6 +3,7 @@
 import com.dsh.course.entity.dto.SelectDto;
 import com.dsh.course.feignclient.account.model.AppUser;
 import com.dsh.course.feignclient.account.model.TCourseInfoRecord;
+import com.dsh.course.model.AppUserByNameAndPhoneDTO;
 import com.dsh.course.model.TAppUser;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -18,6 +19,12 @@
 @FeignClient("mb-cloud-account")
 public interface AppUserClient {
 
+
+    /**
+     * 根据用户姓名和电话模糊查询
+     */
+    @PostMapping("/base/appUser/queryAPPUserByNameAndPhone")
+    List<TAppUser> queryAPPUserByNameAndPhone(@RequestBody AppUserByNameAndPhoneDTO dto);
     /**
      * 根据用户id获取用户信息
      * @param appUserId
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/CoachClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/CoachClient.java
index a6b7eed..3da4145 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/CoachClient.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/CoachClient.java
@@ -21,7 +21,7 @@
      * @return
      */
     @PostMapping("/coach/queryCoachListByName")
-    List<Coach> queryCoachListByName(String name);
+    List<Coach> queryCoachListByName(@RequestBody String name);
 
 
 }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/StudentClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/StudentClient.java
index 830c804..dc0c603 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/StudentClient.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/StudentClient.java
@@ -1,9 +1,12 @@
 package com.dsh.course.feignclient.account;
 
 import com.dsh.course.feignclient.account.model.Student;
+import com.dsh.course.feignclient.account.model.TStudent;
 import io.swagger.models.auth.In;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.ResponseBody;
 
 import java.util.List;
 
@@ -40,6 +43,13 @@
      */
     @PostMapping("/student/queryStudentListByName")
     List<Student> queryStudentListByName(String name);
+    /**
+     * 根据名称模糊搜索学员
+     * @param name
+     * @return
+     */
+    @PostMapping("/student/queryTStudentListByName")
+    List<TStudent> queryTStudentListByName(@RequestBody String name);
 
 
 
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/TStudent.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/TStudent.java
new file mode 100644
index 0000000..c82e008
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/TStudent.java
@@ -0,0 +1,109 @@
+package com.dsh.course.feignclient.account.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 学员信息
+ * </p>
+ *
+ * @author administrator
+ * @since 2023-06-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_student")
+public class TStudent {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 用户id
+     */
+    @TableField("appUserId")
+    private Integer appUserId;
+    /**
+     * 学员姓名
+     */
+    @TableField("name")
+    private String name;
+    /**
+     * 学员电话
+     */
+    @TableField("phone")
+    private String phone;
+    /**
+     * 生日
+     */
+    @TableField("birthday")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date birthday;
+    /**
+     * 性别(1=男,2=女)
+     */
+    @TableField("sex")
+    private Integer sex;
+    /**
+     * 身高
+     */
+    @TableField("height")
+    private Double height;
+    /**
+     * 体重
+     */
+    @TableField("weight")
+    private Double weight;
+    /**
+     * bmi健康值
+     */
+    @TableField("bmi")
+    private Double bmi;
+    /**
+     * 身份证号
+     */
+    @TableField("idCard")
+    private String idCard;
+    /**
+     * 体侧表
+     */
+    @TableField("lateralSurface")
+    private String lateralSurface;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date insertTime;
+    /**
+     * 头像
+     */
+    @TableField("headImg")
+    private String headImg;
+    /**
+     * 是否默认 1默认 2不是默认
+     */
+    @TableField("isDefault")
+    private Integer isDefault;
+
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackagePaymentConfigMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackagePaymentConfigMapper.java
index 322d5ed..652e20f 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackagePaymentConfigMapper.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackagePaymentConfigMapper.java
@@ -2,11 +2,10 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dsh.course.entity.CoursePackagePaymentConfig;
-import com.dsh.course.model.CoursePackagePayDTO;
-import com.dsh.course.model.CoursePackagePaymentQuery;
-import com.dsh.course.model.CoursePackagePaymentVO;
+import com.dsh.course.model.*;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -17,4 +16,7 @@
     List<CoursePackagePaymentVO> listAll(@Param("query") CoursePackagePaymentQuery query);
 
     int changeState(@Param("ids") List<Long> ids,@Param("payUserName") String payUserName,@Param("payUserId") Integer payUserId);
+
+    List<RegisterOrderVO> listAllRegister(@Param("query")RegisterOrderQuery query, @Param("sTime")String sTime, @Param("eTime")String eTime, @Param("amount")BigDecimal amount);
+
 }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/AppUserByNameAndPhoneDTO.java b/cloud-server-course/src/main/java/com/dsh/course/model/AppUserByNameAndPhoneDTO.java
new file mode 100644
index 0000000..ad0be1a
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/AppUserByNameAndPhoneDTO.java
@@ -0,0 +1,12 @@
+package com.dsh.course.model;
+
+import lombok.Data;
+
+/**
+ * 通过用户姓名和电话进行模糊查询DTO
+ */
+@Data
+public class AppUserByNameAndPhoneDTO {
+    private String userName;
+    private String phone;
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/RegisterOrderQuery.java b/cloud-server-course/src/main/java/com/dsh/course/model/RegisterOrderQuery.java
new file mode 100644
index 0000000..e264e88
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/RegisterOrderQuery.java
@@ -0,0 +1,40 @@
+package com.dsh.course.model;
+
+import lombok.Data;
+import org.omg.CORBA.PRIVATE_MEMBER;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 报名订单列表查询Query
+ */
+@Data
+public class RegisterOrderQuery {
+    // 省
+    private String province;
+    // 市
+    private String city;
+    // 门店名称
+    private Integer storeId;
+    // 报名时间
+    private String registerTime;
+    // 购买用户
+    private String userName;
+    // 购买用户ids
+    private List<Integer> userIds;
+    // 联系方式
+    private String phone;
+    // 报名学员
+    private String studentName;
+    // 报名学员ids
+    private List<Integer> studentIds;
+    // 课包名称
+    private String coursePackageName;
+    // 销售人员
+    private String salesName;
+    // 订单来源
+    private Integer orderSource;
+    // 订单金额
+    private BigDecimal amount;
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/RegisterOrderVO.java b/cloud-server-course/src/main/java/com/dsh/course/model/RegisterOrderVO.java
new file mode 100644
index 0000000..fc724dc
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/RegisterOrderVO.java
@@ -0,0 +1,61 @@
+package com.dsh.course.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 报名订单列表VO
+ */
+@Data
+public class RegisterOrderVO {
+    /**
+     *
+     {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+     {title: '所在省市', field: 'provinceAndCity', visible: role==1?true:false, align: 'center', valign: 'middle'},
+     {title:  '所属门店', field: 'storeName', visible: role!=3?true:false, align: 'center', valign: 'middle'},
+     {title:  '购买用户', field: 'payUser', visible: true, align: 'center', valign: 'middle'},
+     {title:  '联系方式', field: 'phone', visible: true, align: 'center', valign: 'middle'},
+     {title:  '报名学员', field: 'payStudent', visible: true, align: 'center', valign: 'middle'},
+     {title:  '报名时间', field: 'insertTime', visible: true, align: 'center', valign: 'middle'},
+     {title:  '支付价格', field: 'payMoneyAndType', visible: true, align: 'center', valign: 'middle'},
+     {title:  '课包名称', field: 'coursePackage', visible: true, align: 'center', valign: 'middle'},
+     {title:  '订单来源', field: 'payUserType', visible: true, align: 'center', valign: 'middle',
+     formatter:function (data) {return{1:"线上",2:"线下"}[data]}},
+     {title:  '销售人员', field: 'salesName', visible: true, align: 'center', valign: 'middle'}
+     */
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
+    private Long id;
+    private String provinceAndCity;
+    // 门店id
+    private Integer storeId;
+    private String storeName;
+
+    private String coursePackageName;
+    private Integer coursePackageId;
+    // 用户id
+    private Integer appUserId;
+    private String payUser;
+    private String phone;
+    // 学员id
+    private Integer studentId;
+    private String payStudent;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date insertTime;
+    // 支付金额
+    private BigDecimal money;
+    // 玩湃币价格/积分
+    private Integer playPaiCoin;
+    // 该字段用于展示在前端
+    private String payMoneyAndType;
+    // 订单来源 2 为线下购买 1为线上
+    private Integer payUserType;
+    // 销售人员
+    private String salesName;
+    // 支付方式
+    private Integer payType;
+    private Integer payStatus;
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
index f017ec9..d5ef124 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
@@ -127,4 +127,7 @@
     List<CoursePackagePaymentVO> listAll(CoursePackagePaymentQuery query);
 
     int changeState(CoursePackagePayDTO dto);
+
+    List<RegisterOrderVO> listAllRegister(RegisterOrderQuery query);
+
 }
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 4ab628d..1e78c40 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
@@ -39,6 +39,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StringUtils;
 import org.springframework.web.client.RestTemplate;
 
 import javax.annotation.Resource;
@@ -131,6 +132,17 @@
         return cpConfigMapper.changeState(list,dto.getPayUserName(),dto.getUserId());
     }
 
+    @Override
+    public List<RegisterOrderVO> listAllRegister(RegisterOrderQuery query) {
+        String STime = null;
+        String ETime = null;
+        if (StringUtils.hasLength(query.getRegisterTime())) {
+            STime = query.getRegisterTime().split(" - ")[0] + " 00:00:00";
+            ETime = query.getRegisterTime().split(" - ")[1] + " 23:59:59";
+        }
+        return cpConfigMapper.listAllRegister(query,STime,ETime,query.getAmount());
+    }
+
     /**
      * 获取课包购买人数
      * @param coursePackageId
diff --git a/cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml b/cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml
index 42c3b49..9ea4874 100644
--- a/cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml
+++ b/cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml
@@ -53,5 +53,54 @@
             </if>
         </where>
     </select>
+    <select id="listAllRegister" resultType="com.dsh.course.model.RegisterOrderVO">
+        select t1.id,t1.studentId,t1.payUserType,t1.payStatus,t1.payType,t1.originalPrice,t1.userCouponId,t1.payUserId,t1.giftClassHours,t1.appUserId,t1.cashPayment as money,t1.playPaiCoin,
+        t1.insertTime,
+        CONCAT(t2.province,t2.city) as provinceAndCity,t2.coursePackageTypeId,t2.storeId,t2.name as coursePackageName
+        from t_course_package_payment t1
+        left join t_course_package t2 on t1.coursePackageId = t2.id
+        <where>
+            <if test="query.amount!=null and query.amount!= ''">
+                and t1.cashPayment &lt;= #{query.amount}
+            </if>
+            <if test="query.province!=null and query.province!= ''">
+                and t2.provinceCode = #{query.province}
+            </if>
+            <if test="query.city!=null and query.city!= ''">
+                and t2.cityCode = #{query.city}
+            </if>
+            <if test="query.storeId!=null and query.storeId!= ''">
+                and t2.storeId = #{query.storeId}
+            </if>
+            <if test="sTime !=null and sTime!= '' and eTime !=null and eTime!= ''">
+                and t1.insertTime between #{sTime} and #{eTime}
+            </if>
+
+            <if test="query.userIds != null and query.userIds.size()>0">
+                AND t1.appUserId IN
+                <foreach collection="query.userIds" separator="," item="id" open="(" close=")">
+                    #{id}
+                </foreach>
+            </if>
+
+            <if test="query.studentIds != null and query.studentIds.size()>0">
+                AND t1.studentId IN
+                <foreach collection="query.studentIds" separator="," item="id" open="(" close=")">
+                    #{id}
+                </foreach>
+            </if>
+            <if test="query.coursePackageName!=null and query.coursePackageName!= ''">
+                AND t2.name LIKE concat('%',#{query.coursePackageName},'%')
+            </if>
+            <if test="query.salesName!=null and query.salesName!= ''">
+                AND t1.salesName LIKE concat('%',#{query.salesName},'%')
+            </if>
+
+            <if test="query.orderSource!=null and query.orderSource!= ''">
+                and t1.payUserType = #{query.orderSource}
+            </if>
+            and t1.payStatus = 2
+        </where>
+    </select>
 
 </mapper>
\ No newline at end of file
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java
index 0784709..4605680 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java
@@ -11,6 +11,7 @@
 import com.dsh.course.feignClient.account.model.TAppUser;
 import com.dsh.course.feignClient.other.model.SiteChangeStateVO;
 import com.dsh.guns.modular.system.model.AdvertisementChangeStateDTO;
+import com.dsh.guns.modular.system.model.AppUserByNameAndPhoneDTO;
 import com.dsh.guns.modular.system.model.TStudent;
 import com.dsh.guns.modular.system.model.dto.GiftSearchDto;
 import com.dsh.guns.modular.system.model.dto.SelectDto;
@@ -25,6 +26,11 @@
 
 
     /**
+     * 根据用户姓名和电话模糊查询
+     */
+    @PostMapping("/base/appUser/queryAPPUserByNameAndPhone")
+    List<TAppUser> queryAPPUserByNameAndPhone(@RequestBody AppUserByNameAndPhoneDTO dto);
+    /**
      * 根据用户id获取用户信息
      * @param appUserId
      * @return
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/VipPaymentClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/VipPaymentClient.java
new file mode 100644
index 0000000..8876311
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/VipPaymentClient.java
@@ -0,0 +1,23 @@
+package com.dsh.course.feignClient.account;
+
+import com.dsh.course.feignClient.account.model.VipPayment;
+import com.dsh.guns.modular.system.model.IncomeQuery;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @date 2023/7/4 23:38
+ */
+@FeignClient("mb-cloud-account")
+public interface VipPaymentClient {
+
+    /**
+     * 加入会员列表数据
+     */
+    @RequestMapping("/finance/vipPaymentList")
+    List<VipPayment> registrationList(@RequestBody IncomeQuery query);
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/VipPayment.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/VipPayment.java
new file mode 100644
index 0000000..b67b395
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/VipPayment.java
@@ -0,0 +1,78 @@
+package com.dsh.course.feignClient.account.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dsh.course.util.UUIDUtil;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @author zhibing.pu
+ * @date 2023/6/24 9:58
+ */
+@Data
+@TableName("t_vip_payment")
+public class VipPayment {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 流水号
+     */
+    @TableField("code")
+    private String code;
+    /**
+     * 用户id
+     */
+    @TableField("appUserId")
+    private Integer appUserId;
+    /**
+     * 支付金额
+     */
+    @TableField("amount")
+    private Double amount;
+    /**
+     * 支付方式(1=微信,2=支付宝)
+     */
+    @TableField("payType")
+    private Integer payType;
+    /**
+     * 支付状态(1=待支付,2=已支付)
+     */
+    @TableField("payStatus")
+    private Integer payStatus;
+    /**
+     * 支付时间
+     */
+    @TableField("payTime")
+    private Date payTime;
+    /**
+     * 第三方流水号
+     */
+    @TableField("orderNumber")
+    private String orderNumber;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date insertTime;
+
+
+    public static String CODE(){
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        return sdf.format(new Date()) + UUIDUtil.getNumberRandom(3);
+    }
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java
index c12dce0..70eee48 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java
@@ -5,12 +5,19 @@
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
 
 import java.util.List;
 
 @FeignClient("mb-cloud-competition")
 public interface CompetitionClient {
 
+    /**
+     * 获取赛事报名记录
+     */
+    @RequestMapping("/base/competition/listAllPayment")
+    List<PaymentCompetition> listAllPayment(@RequestBody CompetitionQuery query);
     @PostMapping("/base/competition/queryById")
     Competition queryById(Integer id);
 
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/CompetitionQuery.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/CompetitionQuery.java
new file mode 100644
index 0000000..2076d71
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/CompetitionQuery.java
@@ -0,0 +1,20 @@
+package com.dsh.course.feignClient.competition.model;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 收入管理Query
+ */
+@Data
+public class CompetitionQuery {
+    // 收入时间
+    private String time;
+    // 收入金额
+    private BigDecimal amount;
+    // 用户ids
+    private List<Integer> userIds;
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/PaymentCompetition.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/PaymentCompetition.java
new file mode 100644
index 0000000..dae64a7
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/PaymentCompetition.java
@@ -0,0 +1,85 @@
+package com.dsh.course.feignClient.competition.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zhibing.pu
+ * @date 2023/7/6 16:30
+ */
+@Data
+@TableName("t_payment_competition")
+public class PaymentCompetition {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.NONE)
+    private Long id;
+    /**
+     * 业务流水号
+     */
+    @TableField("code")
+    private String code;
+    /**
+     * 赛事id
+     */
+    @TableField("competitionId")
+    private Integer competitionId;
+    /**
+     * 用户id
+     */
+    @TableField("appUserId")
+    private Integer appUserId;
+    /**
+     * 支付方式(1=微信,2=支付宝,3=玩湃币,4=课时)
+     */
+    @TableField("payType")
+    private Integer payType;
+    /**
+     * 支付金额
+     */
+    @TableField("amount")
+    private Double amount;
+    /**
+     * 支付状态(1=待支付,2=已支付,3=已退款)
+     */
+    @TableField("payStatus")
+    private Integer payStatus;
+    /**
+     * 支付时间
+     */
+    @TableField("payTime")
+    private Date payTime;
+    /**
+     * 第三方支付流水号
+     */
+    @TableField("payOrderNo")
+    private String payOrderNo;
+    /**
+     * 退款时间
+     */
+    @TableField("refundTime")
+    private Date refundTime;
+    /**
+     * 第三方退款流水
+     */
+    @TableField("refundOrderNo")
+    private String refundOrderNo;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date insertTime;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/TCompetition.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/TCompetition.java
new file mode 100644
index 0000000..63139c3
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/TCompetition.java
@@ -0,0 +1,238 @@
+package com.dsh.course.feignClient.competition.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_competition")
+public class TCompetition extends Model<TCompetition> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * 省
+     */
+    @TableField("province")
+    private String province;
+    /**
+     * 省编号
+     */
+    @TableField("provinceCode")
+    private String provinceCode;
+    /**
+     * 市
+     */
+    @TableField("city")
+    private String city;
+    /**
+     * 市编号
+     */
+    @TableField("cityCode")
+    private String cityCode;
+    /**
+     * 门店id
+     */
+    @TableField("storeId")
+    private String storeId;
+    /**
+     * 赛事名称
+     */
+    @TableField("name")
+    private String name;
+    /**
+     * 开始时间
+     */
+    @TableField("startTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date startTime;
+    /**
+     * 结束时间
+     */
+    @TableField("endTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date endTime;
+    /**
+     * 报名结束时间
+     */
+    @TableField("registerEndTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date registerEndTime;
+    /**
+     * 报名条件(1=全部用户,2=仅限年度会员参与,3=仅限学员参与)
+     */
+    @TableField("registerCondition")
+    private Integer registerCondition;
+    /**
+     * 报名开始年龄
+     */
+    @TableField("startAge")
+    private Integer startAge;
+    /**
+     * 报名结束年龄
+     */
+    @TableField("endAge")
+    private Integer endAge;
+    /**
+     * 现金支付价格
+     */
+    @TableField("cashPrice")
+    private Double cashPrice;
+    /**
+     * 玩湃币支付价格
+     */
+    @TableField("playPaiCoin")
+    private Integer playPaiCoin;
+    /**
+     * 课时支付价格
+     */
+    @TableField("classPrice")
+    private Integer classPrice;
+    /**
+     * 参加地址
+     */
+    @TableField("address")
+    private String address;
+    /**
+     * 经度
+     */
+    @TableField("longitude")
+    private String longitude;
+    /**
+     * 纬度
+     */
+    @TableField("latitude")
+    private String latitude;
+    /**
+     * 报名人数
+     */
+    @TableField("applicantsNumber")
+    private Integer applicantsNumber;
+    /**
+     * 基础人数
+     */
+    @TableField("baseNumber")
+    private Integer baseNumber;
+    /**
+     * 是否需要实名(0=否,1=是)
+     */
+    @TableField("realName")
+    private Integer realName;
+    /**
+     * 赛事封面图
+     */
+    @TableField("coverDrawing")
+    private String coverDrawing;
+    /**
+     * 赛事简介
+     */
+    @TableField("introduction")
+    private String introduction;
+    /**
+     * 赛事图片
+     */
+    @TableField("imgs")
+    private String imgs;
+    /**
+     * 报名须知
+     */
+    @TableField("registrationNotes")
+    private String registrationNotes;
+    /**
+     * 参赛省
+     */
+    @TableField("entryProvince")
+    private String entryProvince;
+    /**
+     * 参赛省编号
+     */
+    @TableField("entryProvinceCode")
+    private String entryProvinceCode;
+    /**
+     * 参赛市
+     */
+    @TableField("entryCity")
+    private String entryCity;
+    /**
+     * 参赛市编号
+     */
+    @TableField("entryCityCode")
+    private String entryCityCode;
+    /**
+     * 参赛地址
+     */
+    @TableField("entryAddress")
+    private String entryAddress;
+    /**
+     * 参赛经度
+     */
+    @TableField("entryLon")
+    private String entryLon;
+    /**
+     * 参赛纬度
+     */
+    @TableField("entryLat")
+    private String entryLat;
+    /**
+     * 审核状态(1=待审核,2=已通过,3=已拒绝)
+     */
+    @TableField("auditStatus")
+    private Integer auditStatus;
+    /**
+     * 审核人id
+     */
+    @TableField("auditUserId")
+    private Integer auditUserId;
+    /**
+     * 审核备注
+     */
+    @TableField("auditRemark")
+    private String auditRemark;
+    /**
+     * 状态(1=未开始,2=已开始,3=已结束,4=已取消)
+     */
+    @TableField("status")
+    private Integer status;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date insertTime;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java
index ab4fff6..eb65fd2 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java
@@ -4,9 +4,7 @@
 import com.dsh.course.feignClient.course.model.QueryRegistrationRecord;
 import com.dsh.course.feignClient.course.model.QueryWalkInStudentList;
 import com.dsh.course.feignClient.course.model.TCoursePackagePayment;
-import com.dsh.guns.modular.system.model.CoursePackagePayDTO;
-import com.dsh.guns.modular.system.model.CoursePackagePaymentQuery;
-import com.dsh.guns.modular.system.model.CoursePackagePaymentVO;
+import com.dsh.guns.modular.system.model.*;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -23,7 +21,11 @@
 @FeignClient("mb-cloud-course")
 public interface CoursePackagePaymentClient {
 
-
+    /**
+     * 获取报名订单记录列表
+     */
+    @RequestMapping("/registerOrder/listAllRegister")
+    List<RegisterOrderVO> listAllRegister(@RequestBody RegisterOrderQuery query);
     /**
      * 添加购课记录-后台
      * @return
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/SiteClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/SiteClient.java
index db55f88..c72d2d3 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/SiteClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/SiteClient.java
@@ -3,9 +3,7 @@
 import com.dsh.course.feignClient.other.model.Site;
 import com.dsh.course.feignClient.other.model.SiteChangeStateVO;
 import com.dsh.course.feignClient.other.model.TSiteDTO;
-import com.dsh.guns.modular.system.model.ExpireSiteSearchVO;
-import com.dsh.guns.modular.system.model.SiteSearchVO;
-import com.dsh.guns.modular.system.model.TSite;
+import com.dsh.guns.modular.system.model.*;
 import com.dsh.guns.modular.system.util.ResultUtil;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -19,7 +17,11 @@
 @FeignClient(value = "mb-cloud-other")
 public interface SiteClient {
 
-
+    /**
+     * 获取场地预约记录
+     */
+    @RequestMapping("/base/site/listAll")
+    List<SiteBooking> listAll(@RequestBody SiteBookingQuery query);
     /**
      * 上/下架、删除常见问题 type=1为上架 2为下架 3为删除
      */
diff --git a/cloud-server-management/src/main/java/com/dsh/course/util/UUIDUtil.java b/cloud-server-management/src/main/java/com/dsh/course/util/UUIDUtil.java
new file mode 100644
index 0000000..702dc76
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/util/UUIDUtil.java
@@ -0,0 +1,101 @@
+package com.dsh.course.util;
+
+
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.UUID;
+
+/**
+ * 定义生成随机码的工具类
+ */
+public class UUIDUtil {
+
+    private int i = 1;
+
+
+    /**
+     * 定义生成原生的UUID随机码
+     * @return
+     */
+    public static String getNativeUUID(){
+        return UUID.randomUUID().toString();
+    }
+
+
+    /**
+     * 生成32位随机码
+     * @return
+     */
+    public static String getRandomCode(){
+        return UUIDUtil.getNativeUUID().replaceAll("-", "");
+    }
+
+
+    /**
+     * 获取给定长度的随机码
+     * @param num
+     * @return
+     * @throws Exception
+     */
+    public static String getRandomCode(Integer num) throws Exception{
+        String str = null;
+        if(0 < num){
+            if(num % 32 > 0){
+                Integer s = num / 32;
+                Integer l = num % 32;
+                StringBuffer sb = new StringBuffer();
+                for(int i = 0; i < s; i++){
+                    sb.append(UUIDUtil.getRandomCode());
+                }
+                sb.append(UUIDUtil.getRandomCode().substring(0, l));
+                str = sb.toString();
+            }else if(num % 32 == 0){
+                Integer s = num / 32;
+                StringBuffer sb = new StringBuffer();
+                for(int i = 0; i < s; i++){
+                    sb.append(UUIDUtil.getRandomCode());
+                }
+                str = sb.toString();
+            }else{
+                str = UUIDUtil.getRandomCode().substring(0, num);
+            }
+        }else{
+            throw new Exception("参数只能大于0");
+        }
+        return str;
+    }
+
+
+    /**
+     * 获取根据当前时间的字符串数据
+     * @return
+     */
+    public synchronized static String getTimeStr(){
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddhhmmssS");
+        return simpleDateFormat.format(new Date());
+    }
+
+
+    /**
+     * @Description: 获取数字随机码
+     * @Author pzb
+     * @Date 2021/8/11 16:52
+     * @Param
+     * @Return
+     * @Exception
+     */
+    public static String getNumberRandom(Integer num){
+        if(null == num){
+            num = 32;
+        }
+        StringBuffer sb = new StringBuffer();
+        for(int i = 0; i < num; i++){
+            sb.append(Double.valueOf(Math.random() * 10).intValue());
+        }
+        return sb.toString();
+    }
+
+
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TFinanceController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TFinanceController.java
index 05343e6..09efcda 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TFinanceController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TFinanceController.java
@@ -1,15 +1,21 @@
 package com.dsh.guns.modular.system.controller.code;
+import com.dsh.course.feignClient.account.*;
+import com.dsh.course.feignClient.competition.model.Competition;
+import com.dsh.course.feignClient.competition.model.CompetitionQuery;
+import com.dsh.course.feignClient.competition.model.PaymentCompetition;
+import com.dsh.course.feignClient.competition.model.TCompetition;
+import com.dsh.course.feignClient.other.SiteClient;
+import com.google.common.collect.Lists;
 
 import cn.hutool.crypto.SecureUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.dsh.course.feignClient.account.AppUserClient;
-import com.dsh.course.feignClient.account.CityClient;
-import com.dsh.course.feignClient.account.FinanceClient;
 import com.dsh.course.feignClient.account.model.*;
 import com.dsh.course.feignClient.competition.CompetitionClient;
 import com.dsh.course.feignClient.course.CancelledClassesClient;
+import com.dsh.course.feignClient.course.CoursePackagePaymentClient;
+import com.dsh.course.feignClient.other.StoreClient;
 import com.dsh.course.mapper.UserMapper;
 import com.dsh.guns.config.UserExt;
 import com.dsh.guns.core.base.controller.BaseController;
@@ -18,10 +24,13 @@
 import com.dsh.guns.core.util.ToolUtil;
 import com.dsh.guns.modular.system.model.*;
 import com.dsh.guns.modular.system.service.*;
+import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
+import com.sun.org.apache.bcel.internal.generic.NEW;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
@@ -30,6 +39,7 @@
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 财务控制器
@@ -50,6 +60,17 @@
     private FinanceClient financeClient;
     @Autowired
     private CancelledClassesClient cancelledClassesClient;
+    @Autowired
+    private StoreClient storeClient;
+    @Autowired
+    private CoursePackagePaymentClient coursePackagePaymentClient;
+    @Autowired
+    private VipPaymentClient vipPaymentClient;
+    @Autowired
+    private CompetitionClient competitionClient;
+    @Autowired
+    private SiteClient siteClient;
+
 
     /**
      * 跳转到充值记录页面
@@ -116,6 +137,58 @@
         return total;
     }
     /**
+     * 获取报名订单统计数据
+     */
+    @RequestMapping(value = "/getData")
+    @ResponseBody
+    public RegisterDataVO getData(String province,String city,Integer storeId,String registerTime
+            ,String userName,String phone,String studentName,String coursePackageName,String salesName,Integer orderSource) {
+        RegisterDataVO registerDataVO = new RegisterDataVO();
+        RegisterOrderQuery query = new RegisterOrderQuery();
+        query.setProvince(province);
+        query.setCity(city);
+        query.setStoreId(storeId);
+        query.setRegisterTime(registerTime);
+        query.setUserName(userName);
+        query.setUserIds(Lists.newArrayList());
+        query.setPhone(phone);
+        query.setStudentName(studentName);
+        query.setStudentIds(Lists.newArrayList());
+        query.setCoursePackageName(coursePackageName);
+        query.setSalesName(salesName);
+        query.setOrderSource(orderSource);
+
+        AppUserByNameAndPhoneDTO appUserByNameAndPhoneDTO = new AppUserByNameAndPhoneDTO();
+        appUserByNameAndPhoneDTO.setUserName(query.getUserName());
+        appUserByNameAndPhoneDTO.setPhone(query.getPhone());
+        List<TAppUser> tAppUsers = appUserClient.queryAPPUserByNameAndPhone(appUserByNameAndPhoneDTO);
+        // 使用 Stream API 将 tAppUsers 中的 id 收集到一个集合中
+        List<Integer> userIds = tAppUsers.stream()
+                .map(TAppUser::getId) // 使用方法引用获取每个对象的 id
+                .collect(Collectors.toList());
+        query.setUserIds(userIds);
+        if (userIds.size()!=0){
+            List<RegisterOrderVO> registerOrderVOS = coursePackagePaymentClient.listAllRegister(query);
+            BigDecimal total = new BigDecimal("0.00");
+            BigDecimal result = new BigDecimal("0.00");
+            int playPaiCoin = 0 ;
+            for (RegisterOrderVO rechargeRecordsVO : registerOrderVOS) {
+                if (rechargeRecordsVO.getMoney()!=null){
+                    BigDecimal amount = rechargeRecordsVO.getMoney();
+                    total = total.add(amount); // 将新的值赋给total
+                    result = result.add(amount); // 将新的值赋给result
+                }
+                if (rechargeRecordsVO.getPlayPaiCoin()!=null){
+                    playPaiCoin += rechargeRecordsVO.getPlayPaiCoin();
+                }
+            }
+            registerDataVO.setCashPayment(total);
+            registerDataVO.setTotalOrder(registerOrderVOS.size());
+            registerDataVO.setPlayPaiCoin(playPaiCoin);
+        }
+        return registerDataVO;
+    }
+    /**
      * 跳转到消课记录页面
      */
     @RequestMapping("/cancelledClasses")
@@ -124,6 +197,397 @@
         Integer objectType = UserExt.getUser().getObjectType();
         model.addAttribute("objectType",objectType);
         return PREFIX + "CancelledClasses.html";
+    }
+    /**
+     * 根据市获取门店
+     */
+    @RequestMapping(value = "/getStore")
+    @ResponseBody
+    public List<Store> getStore(String city) {
+        return storeClient.getStore(city);
+    }
+    /**
+     * 跳转到消课记录页面
+     */
+    @RequestMapping("/registrationOrder")
+    public String registrationOrder(Model model) {
+        List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
+        model.addAttribute("list",list);
+        Integer objectType = UserExt.getUser().getObjectType();
+        model.addAttribute("userType",objectType);
+        model.addAttribute("roleType",objectType);
+        return PREFIX + "RegistrationOrder.html";
+    }
+    /**
+     * 跳转到消课记录页面
+     */
+    @RequestMapping("/income")
+    public String income(Model model) {
+        Integer objectType = UserExt.getUser().getObjectType();
+        model.addAttribute("roleType",objectType);
+        return PREFIX + "income.html";
+    }
+    /**
+     * 获取收入管理列表
+     */
+    @RequestMapping(value = "/incomeListAll")
+    @ResponseBody
+    public List<IncomeVO> incomeListAll(String time,Integer incomeType,String userName,String amount) {
+        // 充值记录查询query
+        RechargeRecordsQuery rechargeRecordsQuery = new RechargeRecordsQuery();
+        // 报名课程查询query
+        RegisterOrderQuery query = new RegisterOrderQuery();
+        // 赛事活动查询query
+        CompetitionQuery competitionQuery = new CompetitionQuery();
+        // 会员支付查询query
+        IncomeQuery incomeQuery = new IncomeQuery();
+        // 场地预约记录查询query
+        SiteBookingQuery siteBookingQuery = new SiteBookingQuery();
+        AppUserByNameAndPhoneDTO appUserByNameAndPhoneDTO = new AppUserByNameAndPhoneDTO();
+        appUserByNameAndPhoneDTO.setUserName(userName);
+        if (userName!=null){
+            if (!userName.equals("")){
+                List<TAppUser> tAppUsers = appUserClient.queryAPPUserByNameAndPhone(appUserByNameAndPhoneDTO);
+                // 用户ids
+                List<Integer> collect = tAppUsers.stream().map(TAppUser::getId).collect(Collectors.toList());
+                competitionQuery.setUserIds(collect);
+                rechargeRecordsQuery.setUserIds(collect);
+                query.setUserIds(collect);
+                incomeQuery.setUserIds(collect);
+                siteBookingQuery.setUserIds(collect);
+            }
+        }
+        if (amount==null || amount.equals("")){
+            siteBookingQuery.setAmount(null);
+            query.setAmount(null);
+            rechargeRecordsQuery.setAmount(null);
+            competitionQuery.setAmount(null);
+            incomeQuery.setAmount(null);
+        }else {
+            siteBookingQuery.setAmount(new BigDecimal(amount));
+            query.setAmount(new BigDecimal(amount));
+            rechargeRecordsQuery.setAmount(new BigDecimal(amount));
+            competitionQuery.setAmount(new BigDecimal(amount));
+            incomeQuery.setAmount(new BigDecimal(amount));
+        }
+
+        siteBookingQuery.setTime(time);
+        query.setRegisterTime(time);
+        rechargeRecordsQuery.setTime(time);
+        competitionQuery.setTime(time);
+        incomeQuery.setTime(time);
+        Integer roleType = UserExt.getUser().getObjectType();
+        IncomeVO incomeVO = new IncomeVO();
+        List<IncomeVO> incomeVOS = new ArrayList<>();
+
+        if (roleType == 1){
+            if ( incomeType==null || incomeType == 1){
+            // 会员支付记录
+            List<VipPayment> vipPayments = vipPaymentClient.registrationList(incomeQuery);
+                for (VipPayment vipPayment : vipPayments) {
+
+                    TAppUser tAppUser = appUserClient.queryById(vipPayment.getAppUserId());
+                    IncomeVO temp = new IncomeVO();
+                    temp.setId(vipPayment.getId());
+                    temp.setProvince(tAppUser.getProvince());
+                    temp.setCity(tAppUser.getCity());
+                    temp.setStoreName("");
+                    temp.setPayUser(tAppUser.getName());
+                    temp.setPhone(tAppUser.getPhone());
+                    temp.setAmount(new BigDecimal(vipPayment.getAmount().toString()));
+                    temp.setIncomeType(1);
+                    temp.setState(vipPayment.getState());
+                    temp.setInsertTime(vipPayment.getInsertTime());
+                    incomeVOS.add(temp);
+                }
+            }
+            if ( incomeType==null || incomeType == 2) {
+                // 充值记录
+                List<RechargeRecordsVO> rechargeRecordsVOS = financeClient.rechargeList(rechargeRecordsQuery);
+                for (RechargeRecordsVO rechargeRecordsVO : rechargeRecordsVOS) {
+                    TAppUser tAppUser = appUserClient.queryById(rechargeRecordsVO.getAppUserId());
+                    IncomeVO temp = new IncomeVO();
+                    temp.setId(rechargeRecordsVO.getId().intValue());
+                    temp.setProvince(tAppUser.getProvince());
+                    temp.setCity(tAppUser.getCity());
+                    temp.setStoreName("");
+                    temp.setPayUser(tAppUser.getName());
+                    temp.setPhone(tAppUser.getPhone());
+                    temp.setInsertTime(rechargeRecordsVO.getInsertTime());
+                    if (rechargeRecordsVO.getAmount() != null) {
+                        temp.setAmount(rechargeRecordsVO.getAmount());
+                    }
+                    temp.setIncomeType(2);
+                    temp.setState(rechargeRecordsVO.getState());
+                    incomeVOS.add(temp);
+                }
+            }
+            if ( incomeType==null || incomeType == 3) {
+                // 报名课程记录
+                List<RegisterOrderVO> registerOrderVOS = coursePackagePaymentClient.listAllRegister(query);
+                for (RegisterOrderVO registerOrderVO : registerOrderVOS) {
+                    if (registerOrderVO.getMoney() == null) {
+                        continue;
+                    }
+                    TAppUser tAppUser = appUserClient.queryById(registerOrderVO.getAppUserId());
+                    IncomeVO temp = new IncomeVO();
+                    temp.setId(registerOrderVO.getId().intValue());
+                    temp.setProvince(tAppUser.getProvince());
+                    temp.setCity(tAppUser.getCity());
+                    temp.setStoreName(registerOrderVO.getStoreName());
+                    temp.setPayUser(tAppUser.getName());
+                    temp.setPhone(tAppUser.getPhone());
+                    temp.setInsertTime(registerOrderVO.getInsertTime());
+                    if (registerOrderVO.getMoney() != null) {
+                        temp.setAmount(registerOrderVO.getMoney());
+                    }
+                    temp.setIncomeType(3);
+                    temp.setState(registerOrderVO.getPayStatus());
+                    incomeVOS.add(temp);
+                }
+            }
+            if(roleType !=3) {
+                if (incomeType == null || incomeType == 4) {
+                    // 报名活动
+                    List<PaymentCompetition> competitions = competitionClient.listAllPayment(competitionQuery);
+                    for (PaymentCompetition competition : competitions) {
+                        if (competition.getPayStatus() == 3) {
+                            continue;
+                        }
+                        TAppUser tAppUser = appUserClient.queryById(competition.getAppUserId());
+                        Competition competition1 = competitionClient.queryById(competition.getCompetitionId());
+                        Store store = storeClient.getStoreById(competition1.getStoreId());
+                        IncomeVO temp = new IncomeVO();
+                        temp.setId(competition.getId().intValue());
+                        temp.setProvince(tAppUser.getProvince());
+                        temp.setCity(tAppUser.getCity());
+                        temp.setStoreName(store.getName());
+                        temp.setPayUser(tAppUser.getName());
+                        temp.setPhone(tAppUser.getPhone());
+                        temp.setInsertTime(competition.getInsertTime());
+
+                        if (competition.getAmount() != null) {
+                            temp.setAmount(new BigDecimal(competition.getAmount().toString()));
+                        }
+                        temp.setIncomeType(4);
+                        temp.setState(competition.getPayStatus());
+                        incomeVOS.add(temp);
+                    }
+                }
+            }
+            if (incomeType == null || incomeType == 5) {
+                // 预约场地
+                List<SiteBooking> siteBookings = siteClient.listAll(siteBookingQuery);
+                for (SiteBooking siteBooking : siteBookings) {
+                    IncomeVO temp = new IncomeVO();
+                    if (siteBooking.getStatus() == 0 || siteBooking.getStatus() == 5 || siteBooking.getStatus() == 4) {
+                        temp.setState(1);
+                    } else {
+                        temp.setState(2);
+                    }
+                    TAppUser tAppUser = appUserClient.queryById(siteBooking.getAppUserId());
+                    Store store = storeClient.getStoreById(siteBooking.getStoreId());
+
+                    temp.setId(siteBooking.getId());
+                    temp.setProvince(siteBooking.getProvince());
+                    temp.setCity(siteBooking.getCity());
+                    temp.setStoreName(store.getName());
+                    temp.setPayUser(tAppUser.getName());
+                    temp.setPhone(tAppUser.getPhone());
+                    temp.setInsertTime(siteBooking.getInsertTime());
+                    if (siteBooking.getPayMoney() != null) {
+                        temp.setAmount(new BigDecimal(siteBooking.getPayMoney().toString()));
+                    }
+                    temp.setIncomeType(5);
+                    incomeVOS.add(temp);
+                }
+            }
+        }
+        return incomeVOS;
+    }
+    /**
+     * 获取收入管理列表
+     */
+    @RequestMapping(value = "/getIncomeData")
+    @ResponseBody
+    public Object getIncomeData(String time,Integer incomeType,String userName,String amount) {
+        // 充值记录查询query
+        RechargeRecordsQuery rechargeRecordsQuery = new RechargeRecordsQuery();
+        // 报名课程查询query
+        RegisterOrderQuery query = new RegisterOrderQuery();
+        // 赛事活动查询query
+        CompetitionQuery competitionQuery = new CompetitionQuery();
+        // 会员支付查询query
+        IncomeQuery incomeQuery = new IncomeQuery();
+        // 场地预约记录查询query
+        SiteBookingQuery siteBookingQuery = new SiteBookingQuery();
+        AppUserByNameAndPhoneDTO appUserByNameAndPhoneDTO = new AppUserByNameAndPhoneDTO();
+        appUserByNameAndPhoneDTO.setUserName(userName);
+        if (userName!=null){
+            if (!userName.equals("")){
+                List<TAppUser> tAppUsers = appUserClient.queryAPPUserByNameAndPhone(appUserByNameAndPhoneDTO);
+                // 用户ids
+                List<Integer> collect = tAppUsers.stream().map(TAppUser::getId).collect(Collectors.toList());
+                competitionQuery.setUserIds(collect);
+                rechargeRecordsQuery.setUserIds(collect);
+                query.setUserIds(collect);
+                incomeQuery.setUserIds(collect);
+                siteBookingQuery.setUserIds(collect);
+            }
+        }
+        if (amount==null || amount.equals("")){
+            siteBookingQuery.setAmount(null);
+            query.setAmount(null);
+            rechargeRecordsQuery.setAmount(null);
+            competitionQuery.setAmount(null);
+            incomeQuery.setAmount(null);
+        }else {
+            siteBookingQuery.setAmount(new BigDecimal(amount));
+            query.setAmount(new BigDecimal(amount));
+            rechargeRecordsQuery.setAmount(new BigDecimal(amount));
+            competitionQuery.setAmount(new BigDecimal(amount));
+            incomeQuery.setAmount(new BigDecimal(amount));
+        }
+
+        siteBookingQuery.setTime(time);
+        query.setRegisterTime(time);
+        rechargeRecordsQuery.setTime(time);
+        competitionQuery.setTime(time);
+        incomeQuery.setTime(time);
+        Integer roleType = UserExt.getUser().getObjectType();
+        IncomeVO incomeVO = new IncomeVO();
+        List<IncomeVO> incomeVOS = new ArrayList<>();
+
+        if (roleType == 1){
+            if ( incomeType==null || incomeType == 1){
+                // 会员支付记录
+                List<VipPayment> vipPayments = vipPaymentClient.registrationList(incomeQuery);
+                for (VipPayment vipPayment : vipPayments) {
+
+                    TAppUser tAppUser = appUserClient.queryById(vipPayment.getAppUserId());
+                    IncomeVO temp = new IncomeVO();
+                    temp.setId(vipPayment.getId());
+                    temp.setProvince(tAppUser.getProvince());
+                    temp.setCity(tAppUser.getCity());
+                    temp.setStoreName("");
+                    temp.setPayUser(tAppUser.getName());
+                    temp.setPhone(tAppUser.getPhone());
+                    temp.setAmount(new BigDecimal(vipPayment.getAmount().toString()));
+                    temp.setIncomeType(1);
+                    temp.setState(vipPayment.getState());
+                    temp.setInsertTime(vipPayment.getInsertTime());
+                    incomeVOS.add(temp);
+                }
+            }
+            if ( incomeType==null || incomeType == 2) {
+                // 充值记录
+                List<RechargeRecordsVO> rechargeRecordsVOS = financeClient.rechargeList(rechargeRecordsQuery);
+                for (RechargeRecordsVO rechargeRecordsVO : rechargeRecordsVOS) {
+                    TAppUser tAppUser = appUserClient.queryById(rechargeRecordsVO.getAppUserId());
+                    IncomeVO temp = new IncomeVO();
+                    temp.setId(rechargeRecordsVO.getId().intValue());
+                    temp.setProvince(tAppUser.getProvince());
+                    temp.setCity(tAppUser.getCity());
+                    temp.setStoreName("");
+                    temp.setPayUser(tAppUser.getName());
+                    temp.setPhone(tAppUser.getPhone());
+                    temp.setInsertTime(rechargeRecordsVO.getInsertTime());
+                    if (rechargeRecordsVO.getAmount() != null) {
+                        temp.setAmount(rechargeRecordsVO.getAmount());
+                    }
+                    temp.setIncomeType(2);
+                    temp.setState(rechargeRecordsVO.getState());
+                    incomeVOS.add(temp);
+                }
+            }
+            if ( incomeType==null || incomeType == 3) {
+                // 报名课程记录
+                List<RegisterOrderVO> registerOrderVOS = coursePackagePaymentClient.listAllRegister(query);
+                for (RegisterOrderVO registerOrderVO : registerOrderVOS) {
+                    if (registerOrderVO.getMoney() == null) {
+                        continue;
+                    }
+                    TAppUser tAppUser = appUserClient.queryById(registerOrderVO.getAppUserId());
+                    IncomeVO temp = new IncomeVO();
+                    temp.setId(registerOrderVO.getId().intValue());
+                    temp.setProvince(tAppUser.getProvince());
+                    temp.setCity(tAppUser.getCity());
+                    temp.setStoreName(registerOrderVO.getStoreName());
+                    temp.setPayUser(tAppUser.getName());
+                    temp.setPhone(tAppUser.getPhone());
+                    temp.setInsertTime(registerOrderVO.getInsertTime());
+                    if (registerOrderVO.getMoney() != null) {
+                        temp.setAmount(registerOrderVO.getMoney());
+                    }
+                    temp.setIncomeType(3);
+                    temp.setState(registerOrderVO.getPayStatus());
+                    incomeVOS.add(temp);
+                }
+            }
+            if(roleType !=3) {
+                if (incomeType == null || incomeType == 4) {
+                    // 报名活动
+                    List<PaymentCompetition> competitions = competitionClient.listAllPayment(competitionQuery);
+                    for (PaymentCompetition competition : competitions) {
+                        if (competition.getPayStatus() == 3) {
+                            continue;
+                        }
+                        TAppUser tAppUser = appUserClient.queryById(competition.getAppUserId());
+                        Competition competition1 = competitionClient.queryById(competition.getCompetitionId());
+                        Store store = storeClient.getStoreById(competition1.getStoreId());
+                        IncomeVO temp = new IncomeVO();
+                        temp.setId(competition.getId().intValue());
+                        temp.setProvince(tAppUser.getProvince());
+                        temp.setCity(tAppUser.getCity());
+                        temp.setStoreName(store.getName());
+                        temp.setPayUser(tAppUser.getName());
+                        temp.setPhone(tAppUser.getPhone());
+                        temp.setInsertTime(competition.getInsertTime());
+
+                        if (competition.getAmount() != null) {
+                            temp.setAmount(new BigDecimal(competition.getAmount().toString()));
+                        }
+                        temp.setIncomeType(4);
+                        temp.setState(competition.getPayStatus());
+                        incomeVOS.add(temp);
+                    }
+                }
+            }
+            if (incomeType == null || incomeType == 5) {
+                // 预约场地
+                List<SiteBooking> siteBookings = siteClient.listAll(siteBookingQuery);
+                for (SiteBooking siteBooking : siteBookings) {
+                    IncomeVO temp = new IncomeVO();
+                    if (siteBooking.getStatus() == 0 || siteBooking.getStatus() == 5 || siteBooking.getStatus() == 4) {
+                        temp.setState(1);
+                    } else {
+                        temp.setState(2);
+                    }
+                    TAppUser tAppUser = appUserClient.queryById(siteBooking.getAppUserId());
+                    Store store = storeClient.getStoreById(siteBooking.getStoreId());
+
+                    temp.setId(siteBooking.getId());
+                    temp.setProvince(siteBooking.getProvince());
+                    temp.setCity(siteBooking.getCity());
+                    temp.setStoreName(store.getName());
+                    temp.setPayUser(tAppUser.getName());
+                    temp.setPhone(tAppUser.getPhone());
+                    temp.setInsertTime(siteBooking.getInsertTime());
+                    if (siteBooking.getPayMoney() != null) {
+                        temp.setAmount(new BigDecimal(siteBooking.getPayMoney().toString()));
+                    }
+                    temp.setIncomeType(5);
+                    incomeVOS.add(temp);
+                }
+            }
+        }
+        BigDecimal totalAmount = BigDecimal.ZERO; // 初始化累加变量为0
+
+        for (IncomeVO vo : incomeVOS) {
+            BigDecimal totalMoney = vo.getAmount();
+            totalAmount = totalAmount.add(totalMoney); // 累加每个IncomeVO对象的amount
+        }
+        return totalAmount;
     }
     /**
      * 获取消课记录
@@ -138,6 +602,41 @@
         coachQuery.setTime(beginTime);
         return cancelledClassesClient.listAll(coachQuery);
     }
+    /**
+     * 获取报名订单记录
+     */
+    @RequestMapping(value = "/registerListAll")
+    @ResponseBody
+    public List<RegisterOrderVO> registerListAll(String province,String city,Integer storeId,String registerTime
+            ,String userName,String phone,String studentName,String coursePackageName,String salesName,Integer orderSource) {
+        RegisterOrderQuery query = new RegisterOrderQuery();
+        query.setProvince(province);
+        query.setCity(city);
+        query.setStoreId(storeId);
+        query.setRegisterTime(registerTime);
+        query.setUserName(userName);
+        query.setUserIds(Lists.newArrayList());
+        query.setPhone(phone);
+        query.setStudentName(studentName);
+        query.setStudentIds(Lists.newArrayList());
+        query.setCoursePackageName(coursePackageName);
+        query.setSalesName(salesName);
+        query.setOrderSource(orderSource);
+        AppUserByNameAndPhoneDTO appUserByNameAndPhoneDTO = new AppUserByNameAndPhoneDTO();
+        appUserByNameAndPhoneDTO.setUserName(query.getUserName());
+        appUserByNameAndPhoneDTO.setPhone(query.getPhone());
+        List<TAppUser> tAppUsers = appUserClient.queryAPPUserByNameAndPhone(appUserByNameAndPhoneDTO);
+        // 使用 Stream API 将 tAppUsers 中的 id 收集到一个集合中
+        List<Integer> userIds = tAppUsers.stream()
+                .map(TAppUser::getId) // 使用方法引用获取每个对象的 id
+                .collect(Collectors.toList());
+        query.setUserIds(userIds);
+        if (userIds.size()==0){
+            return new ArrayList<>();
+        }
+
+        return coursePackagePaymentClient.listAllRegister(query);
+    }
 
 
 
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/AppUserByNameAndPhoneDTO.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/AppUserByNameAndPhoneDTO.java
new file mode 100644
index 0000000..4cb195f
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/AppUserByNameAndPhoneDTO.java
@@ -0,0 +1,12 @@
+package com.dsh.guns.modular.system.model;
+
+import lombok.Data;
+
+/**
+ * 通过用户姓名和电话进行模糊查询DTO
+ */
+@Data
+public class AppUserByNameAndPhoneDTO {
+    private String userName;
+    private String phone;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/IncomeQuery.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/IncomeQuery.java
new file mode 100644
index 0000000..1d65760
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/IncomeQuery.java
@@ -0,0 +1,24 @@
+package com.dsh.guns.modular.system.model;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 收入管理Query
+ */
+@Data
+public class IncomeQuery {
+    // 收入时间
+    private String time;
+    // 收入类型
+    private Integer incomeType;
+    // 用户姓名
+    private String userName;
+    // 收入金额
+    private BigDecimal amount;
+    // 用户ids
+    private List<Integer> userIds;
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/IncomeVO.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/IncomeVO.java
new file mode 100644
index 0000000..2538a07
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/IncomeVO.java
@@ -0,0 +1,36 @@
+package com.dsh.guns.modular.system.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 收入管理列表VO
+ */
+@Data
+public class IncomeVO {
+    /**
+          {title:  '所在省', field: 'province', visible: roleType==1?true:false, align: 'center', valign: 'middle'},
+          {title:  '所在市', field: 'city', visible: roleType==1?true:false, align: 'center', valign: 'middle'},
+          {title:  '消费门店', field: 'storeName', visible: roleType==1?true:false, align: 'center', valign: 'middle'},
+          {title:  '用户姓名', field: 'payUser', visible: true, align: 'center', valign: 'middle'},
+          {title:  '联系电话', field: 'phone', visible: true, align: 'center', valign: 'middle'},
+          {title:  '金    额', field: 'amount', visible: true, align: 'center', valign: 'middle'},
+          {title:  '收入类型', field: 'incomeType', visible: true, align: 'center', valign: 'middle',
+              formatter:function (data) {return{1:"加入会员",2:"充值",3:"报名课程",4:"报名赛事活动",5:"预约场地"}[data]}},
+          {title:  '状态', field: 'state', visible: true, align: 'center', valign: 'middle',formatter:function (data) {return{1:"已支付",2:"未支付"}[data]}}
+     */
+    private Integer id;
+    private String province;
+    private String city;
+    private String storeName;
+    private String payUser;
+    private String phone;
+    private BigDecimal amount;
+    private Integer incomeType;
+    private Integer state;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date insertTime;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RechargeRecordsQuery.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RechargeRecordsQuery.java
index fa23d17..1f66a7a 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RechargeRecordsQuery.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RechargeRecordsQuery.java
@@ -4,6 +4,7 @@
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 充值记录列表查询Query
@@ -19,5 +20,6 @@
      * 1 = 会员 2 =非会员
      */
     private Integer type;
-
+    private List<Integer> userIds;
+    private BigDecimal amount;
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RechargeRecordsVO.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RechargeRecordsVO.java
index 1b092e2..f3c051d 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RechargeRecordsVO.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RechargeRecordsVO.java
@@ -34,5 +34,8 @@
      * 1 = 会员 2 =非会员
      */
     private Integer type;
-
+    private Integer appUserId;
+    private Integer state;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date insertTime;
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RegisterDataVO.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RegisterDataVO.java
new file mode 100644
index 0000000..14d202c
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RegisterDataVO.java
@@ -0,0 +1,21 @@
+package com.dsh.guns.modular.system.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.models.auth.In;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 报名订单统计数据VO
+ */
+@Data
+public class RegisterDataVO {
+
+    private Integer totalOrder;
+    private BigDecimal cashPayment;
+
+    private Integer playPaiCoin;
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RegisterOrderQuery.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RegisterOrderQuery.java
new file mode 100644
index 0000000..91151ee
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RegisterOrderQuery.java
@@ -0,0 +1,39 @@
+package com.dsh.guns.modular.system.model;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 报名订单列表查询Query
+ */
+@Data
+public class RegisterOrderQuery {
+    // 省
+    private String province;
+    // 市
+    private String city;
+    // 门店名称
+    private Integer storeId;
+    // 报名时间
+    private String registerTime;
+    // 购买用户
+    private String userName;
+    // 购买用户ids
+    private List<Integer> userIds;
+    // 联系方式
+    private String phone;
+    // 报名学员
+    private String studentName;
+    // 报名学员ids
+    private List<Integer> studentIds;
+    // 课包名称
+    private String coursePackageName;
+    // 销售人员
+    private String salesName;
+    // 订单来源
+    private Integer orderSource;
+    // 订单金额
+    private BigDecimal amount;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RegisterOrderVO.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RegisterOrderVO.java
new file mode 100644
index 0000000..438a743
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/RegisterOrderVO.java
@@ -0,0 +1,60 @@
+package com.dsh.guns.modular.system.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 报名订单列表VO
+ */
+@Data
+public class RegisterOrderVO {
+    /**
+     *
+     {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+     {title: '所在省市', field: 'provinceAndCity', visible: role==1?true:false, align: 'center', valign: 'middle'},
+     {title:  '所属门店', field: 'storeName', visible: role!=3?true:false, align: 'center', valign: 'middle'},
+     {title:  '购买用户', field: 'payUser', visible: true, align: 'center', valign: 'middle'},
+     {title:  '联系方式', field: 'phone', visible: true, align: 'center', valign: 'middle'},
+     {title:  '报名学员', field: 'payStudent', visible: true, align: 'center', valign: 'middle'},
+     {title:  '报名时间', field: 'insertTime', visible: true, align: 'center', valign: 'middle'},
+     {title:  '支付价格', field: 'payMoneyAndType', visible: true, align: 'center', valign: 'middle'},
+     {title:  '课包名称', field: 'coursePackage', visible: true, align: 'center', valign: 'middle'},
+     {title:  '订单来源', field: 'payUserType', visible: true, align: 'center', valign: 'middle',
+     formatter:function (data) {return{1:"线上",2:"线下"}[data]}},
+     {title:  '销售人员', field: 'salesName', visible: true, align: 'center', valign: 'middle'}
+     */
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
+    private Long id;
+    private String provinceAndCity;
+    // 门店id
+    private Integer storeId;
+    private String storeName;
+
+    private String coursePackageName;
+    private Integer coursePackageId;
+    // 用户id
+    private Integer appUserId;
+    private String payUser;
+    private String phone;
+    // 学员id
+    private Integer studentId;
+    private String payStudent;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date insertTime;
+    // 支付金额
+    private BigDecimal money;
+    // 玩湃币价格/积分
+    private Integer playPaiCoin;
+    // 该字段用于展示在前端
+    private String payMoneyAndType;
+    // 订单来源 2 为线下购买 1为线上
+    private Integer payUserType;
+    // 销售人员
+    private String salesName;
+    // 支付方式
+    private Integer payType;
+    private Integer payStatus;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteBooking.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteBooking.java
new file mode 100644
index 0000000..8858260
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteBooking.java
@@ -0,0 +1,179 @@
+package com.dsh.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zhibing.pu
+ * @date 2023/7/13 16:11
+ */
+@Data
+@TableName("t_site_booking")
+public class SiteBooking {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 业务流水号
+     */
+    @TableField("orderNo")
+    private String orderNo;
+    /**
+     * 省
+     */
+    @TableField("province")
+    private String province;
+    /**
+     * 省编号
+     */
+    @TableField("provinceCode")
+    private String provinceCode;
+    /**
+     * 市名称
+     */
+    @TableField("city")
+    private String city;
+    /**
+     * 市编号
+     */
+    @TableField("cityCode")
+    private String cityCode;
+    /**
+     * 门店id
+     */
+    @TableField("storeId")
+    private Integer storeId;
+    /**
+     * 场地id
+     */
+    @TableField("siteId")
+    private Integer siteId;
+    /**
+     * 用户id
+     */
+    @TableField("appUserId")
+    private Integer appUserId;
+    /**
+     * 预约时段
+     */
+    @TableField("times")
+    private String times;
+    /**
+     * 预约开始时间
+     */
+    @TableField("startTime")
+    @ApiModelProperty("预约开始时间")
+    private Date startTime;
+    /**
+     * 预约结束
+     */
+    @TableField("endTime")
+    @ApiModelProperty("预约结束时间")
+    private Date endTime;
+    /**
+     * 预约人
+     */
+    @TableField("booker")
+    @ApiModelProperty("预约人")
+    private String booker;
+    /**
+     * 联系方式
+     */
+    @TableField("phone")
+    @ApiModelProperty("联系方式")
+    private String phone;
+    /**
+     * 支付方式(1=微信,2=支付宝,3=玩湃比,4=手动支付)
+     */
+    @TableField("payType")
+    private Integer payType;
+    /**
+     * 支付时间
+     */
+    @TableField("payTime")
+    @ApiModelProperty("支付时间")
+    private Date payTime;
+    /**
+     * 支付金额
+     */
+    @TableField("payMoney")
+    @ApiModelProperty("支付金额")
+    private Double payMoney;
+    /**
+     * 优惠券id
+     */
+    @TableField("userCouponId")
+    private Long userCouponId;
+    /**
+     * 状态(0=待支付,1=待核销,2=已到店,3=已完成,4=已过期,5=已取消)
+     */
+    @TableField("status")
+    @ApiModelProperty("0=待支付,1=待核销,2=已到店,3=已完成,4=已过期,5=已取消")
+    private Integer status;
+    /**
+     * 第三方支付流水号
+     */
+    @TableField("payOrderNo")
+    private String payOrderNo;
+    /**
+     * 手动支付操作用户id
+     */
+    @TableField("payUserId")
+    private Integer payUserId;
+    /**
+     * 取消用户id
+     */
+    @TableField("cancelUserId")
+    private Integer cancelUserId;
+    /**
+     * 取消凭证
+     */
+    @TableField("voucher")
+    private String voucher;
+    /**
+     * 取消备注
+     */
+    @TableField("remark")
+    private String remark;
+    /**
+     * 取消时间
+     */
+    @TableField("cancelTime")
+    private Date cancelTime;
+    /**
+     * 第三方取消退款流水号
+     */
+    @TableField("refundOrderNo")
+    private String refundOrderNo;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date insertTime;
+    @TableField("nextName")
+    @ApiModelProperty("场地名称")
+    private String nextName;
+    @TableField("isHalf")
+    @ApiModelProperty("半场 是否半场 1是 2否")
+    private Integer isHalf;
+    @TableField("halfName")
+    @ApiModelProperty("半场名称 ")
+    private String halfName;
+    @TableField("goType")
+    private Integer goType;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteBookingQuery.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteBookingQuery.java
new file mode 100644
index 0000000..c0975da
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteBookingQuery.java
@@ -0,0 +1,20 @@
+package com.dsh.guns.modular.system.model;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 场地预约记录Query
+ */
+@Data
+public class SiteBookingQuery {
+    // 收入时间
+    private String time;
+    // 收入金额
+    private BigDecimal amount;
+    // 用户ids
+    private List<Integer> userIds;
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCoursePackagePayment.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCoursePackagePayment.java
index b716e68..4ec4d3e 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCoursePackagePayment.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCoursePackagePayment.java
@@ -159,4 +159,9 @@
      */
     @TableField("payUserName")
     private String payUserName;
+    /**
+     * 销售人员(线下购课添加购课订单时使用)
+     */
+    @TableField("salesName")
+    private String salesName;
 }
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/finance/CancelledClasses.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/finance/CancelledClasses.html
index 5efb96e..0709744 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/finance/CancelledClasses.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/finance/CancelledClasses.html
@@ -10,7 +10,7 @@
                     <div class="col-sm-12">
                         <div class="row">
                             <div class="col-sm-3">
-                                <#TimeCon id="beginTime" name="有效期" isTime="false"/>
+                                <#TimeCon id="beginTime" name="消课时间" isTime="false"/>
                             </div>
 
                             <div class="col-sm-3">
@@ -50,7 +50,7 @@
     laydate.render({
         elem: '#beginTime'
         ,range: true
-        ,lang:"en"
+        ,lang:"CN"
     });
 </script>
 @}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/finance/Income.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/finance/Income.html
new file mode 100644
index 0000000..332c51f
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/finance/Income.html
@@ -0,0 +1,61 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <input hidden id="roleType" value="${roleType}">
+            <div class="ibox-title">
+                <h5>报名订单</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <div class="row">
+
+                            <div class="col-sm-3">
+                                <#TimeCon id="registerTime" name="收入时间" isTime="false"/>
+                            </div>
+                            <div class="col-sm-3">
+                                <#SelectCon id="orderSource" name="收入类型" >
+                                <option value="">全部</option>
+                                @if(roleType == 1){
+                                <option value="1">加入会员</option>
+                                <option value="2">充值</option>
+                                @}
+                                <option value="3">报名课程</option>
+                                @if(roleType != 3){
+                                <option value="4">报名赛事活动</option>
+                                @}
+                                <option value="5">预约场地</option>
+                            </#SelectCon>
+                        </div>
+                            <div class="col-sm-3">
+                                <#NameCon id="userName" name="用户姓名" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#NameCon id="money" name="收入金额" />
+                            </div>
+
+                            <div class="col-sm-3">
+                                <#button name="搜索" icon="fa-search" clickFun="TCompetition.search()"/>
+                                <#button name="重置" icon="fa-trash" clickFun="TCompetition.resetSearch()" space="true"/>
+                            </div>
+                        </div>
+                            <div class="ibox-title" style="display: flex">
+                                <h3 id ="totalMoney"></h3><h3>元</h3>
+                            </div>
+                        <#table id="TCompetitionTable"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/modular/system/finance/income.js"></script>
+<script>
+    laydate.render({
+        elem: '#registerTime'
+        ,range: true
+        ,lang:"CN"
+    });
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/finance/RegistrationOrder.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/finance/RegistrationOrder.html
new file mode 100644
index 0000000..bea38ae
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/finance/RegistrationOrder.html
@@ -0,0 +1,106 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <input hidden id="roleType" value="${roleType}">
+            <div class="ibox-title">
+                <h5>报名订单</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <div class="row">
+                            @if(roleType==1){
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <div class="input-group-btn open">
+                                        <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true">
+                                            所在省
+                                        </button>
+                                    </div>
+                                    <select class="form-control" id="pCode" onchange="TCompetition.oneChange(this)">
+                                        <option value="">全部</option>
+                                        @for(obj in list){
+                                        <option value="${obj.code}">${obj.name}</option>
+                                        @}
+                                    </select>
+                                </div>
+                            </div>
+                            @}
+                            @if(roleType==1){
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <div class="input-group-btn open">
+                                        <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true" >
+                                            所在市
+                                        </button>
+                                    </div>
+                                    <select class="form-control" onchange="TCompetition.getStore(this)" id="cCode">
+                                    </select>
+                                </div>
+                            </div>
+                            @}
+                            @if(roleType!=3){
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <div class="input-group-btn open">
+                                        <button data-toggle="dropdown" class="btn btn-white dropdown-toggle">
+                                            所属门店
+                                        </button>
+                                    </div>
+                                    <select class="form-control" id="store">
+                                    </select>
+                                </div>
+                            </div>
+                            @}
+                            <div class="col-sm-3">
+                                <#TimeCon id="registerTime" name="报名时间" isTime="false"/>
+                            </div>
+                            <div class="col-sm-3">
+                                <#NameCon id="userName" name="购买用户" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#NameCon id="phone" name="联系方式" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#NameCon id="studentName" name="报名学员" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#NameCon id="coursePackageName" name="课包名称" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#SelectCon id="orderSource" name="订单来源" >
+                                <option value="">全部</option>
+                                <option value="1">线上购课</option>
+                                <option value="2">到店购课</option>
+                            </#SelectCon>
+                            </div>
+                        <div class="col-sm-3">
+                            <#NameCon id="salesName" name="销售人员" />
+                        </div>
+                            <div class="col-sm-3">
+                                <#button name="搜索" icon="fa-search" clickFun="TCompetition.search()"/>
+                                <#button name="重置" icon="fa-trash" clickFun="TCompetition.resetSearch()" space="true"/>
+                            </div>
+                        </div>
+                            <div class="ibox-title" style="display: flex">
+                                <h3 id ="totalOrder"></h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                                <h3 id ="cashPayment"></h3><h3>元</h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                                <h3 id ="playPaiCoin"></h3>
+                            </div>
+                        <#table id="TCompetitionTable"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/modular/system/finance/RegistrationOrder.js"></script>
+<script>
+    laydate.render({
+        elem: '#registerTime'
+        ,range: true
+        ,lang:"CN"
+    });
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment.js b/cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment.js
index b88d861..c35fc01 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment.js
@@ -617,7 +617,6 @@
     }else{
         queryData['province'] = "";
     }
-
     queryData['city'] = $("#cCode").val();
     queryData['coursePackageTypeId'] = $("#coursePackage").val();
     queryData['coursePackageTypeName'] = $("#coursePackageName").val();
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment_info.js b/cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment_info.js
index 1ab2025..7a49ada 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment_info.js
@@ -384,6 +384,18 @@
 };
 
 TCompetition.threeChange = function (e) {
+    var oneId=$(e).val();
+    var content1 = "<option value=''>请选择门店</option>";
+    var ajax2=new $ax(Feng.ctxPath + "/cpPayment/getStore", function(data){
+        $.each(data, function(k,v) {
+            content1 += "<option value='"+v.id+"'>"+v.name+"</option>";
+        });
+        $("#store").empty().append(content1);
+    });
+    ajax2.set("city",oneId);
+    ajax2.start();
+};
+TCompetition.fourChange = function (e) {
     var content1 = "<option value=''>请选择门店</option>";
     var ajax2=new $ax(Feng.ctxPath + "/cpPayment/getStore", function(data){
         $.each(data, function(k,v) {
@@ -394,7 +406,6 @@
     ajax2.set("city",e);
     ajax2.start();
 };
-
 
 TCompetition.getStudent = function () {
     var phone = $("#vipPhone").val();
@@ -507,8 +518,7 @@
                         if (option.text === city) {
                             option.selected = true;
                             c =  option.text;
-
-                            TCompetition.threeChange(c)
+                            TCompetition.fourChange(c)
 
                             break; // 找到匹配的选项后,可以选择停止遍历
                         }
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/finance/RegistrationOrder.js b/cloud-server-management/src/main/webapp/static/modular/system/finance/RegistrationOrder.js
new file mode 100644
index 0000000..ea117b1
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/finance/RegistrationOrder.js
@@ -0,0 +1,151 @@
+/**
+ * 车辆管理管理初始化
+ */
+var TCompetition = {
+    id: "TCompetitionTable",	//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1
+};
+var language =1
+var roleType =$("#roleType").val()
+/**
+ * 初始化表格的列
+ */
+TCompetition.initColumn = function () {
+    return [
+        {field: 'selectItem', checkbox: true},
+        {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+        {title: '所在省市', field: 'provinceAndCity', visible: roleType==1?true:false, align: 'center', valign: 'middle'},
+        {title:  '所属门店', field: 'storeName', visible: roleType!=3?true:false, align: 'center', valign: 'middle'},
+        {title:  '购买用户', field: 'payUser', visible: true, align: 'center', valign: 'middle'},
+        {title:  '联系方式', field: 'phone', visible: true, align: 'center', valign: 'middle'},
+        {title:  '报名学员', field: 'payStudent', visible: true, align: 'center', valign: 'middle'},
+        {title:  '报名时间', field: 'insertTime', visible: true, align: 'center', valign: 'middle'},
+        {title:  '支付价格', field: 'payMoneyAndType', visible: true, align: 'center', valign: 'middle'},
+        {title:  '课包名称', field: 'coursePackageName', visible: true, align: 'center', valign: 'middle'},
+        {title:  '订单来源', field: 'payUserType', visible: true, align: 'center', valign: 'middle',
+            formatter:function (data) {
+                return{1:"线上",2:"线下"}[data]
+            }
+        },
+        {title:  '销售人员', field: 'salesName', visible: true, align: 'center', valign: 'middle',
+
+        }
+    ];
+};
+
+/**
+ * 检查是否选中
+ */
+TCompetition.check = function () {
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if(selected.length == 0){
+            Feng.info("请先选中表格中的某一记录!");
+        return false;
+    }else{
+        TCompetition.seItem = selected[0];
+        return true;
+    }
+};
+
+
+
+
+TCompetition.oneChange = function (e) {
+    console.log(111)
+    var oneId=$(e).val();
+
+    var ajax = new $ax(Feng.ctxPath + "/tCompetition/onChange", function(data){
+        if(data!=null){
+            var content='<option value="">请选择</option>';
+            $.each(data, function(k,v) {
+
+                content += "<option value='"+v.code+"'>"+v.name+"</option>";
+            });
+            $("#cCode").empty().append(content);
+        }
+    });
+    ajax.set("oneId",oneId);
+    ajax.start();
+};
+TCompetition.getStore = function () {
+    console.log("调用")
+    var city = $('#cCode option:selected').text();
+    var ajax = new $ax(Feng.ctxPath + "/finance/getStore", function (data) {
+        if (data != null) {
+            var content = '<option value="">请选择</option>';
+            $.each(data, function (k, v) {
+                content += "<option value='" + v.id + "'>" + v.name + "</option>";
+            });
+            $("#store").empty().append(content);
+        }
+    });
+    ajax.set("city", city);
+    ajax.start();
+}
+
+/**
+ * 查询车辆管理列表
+ */
+TCompetition.search = function () {
+    var queryData = {};
+    queryData['province'] = $("#pCode").val();
+    queryData['city'] = $("#cCode").val();
+    queryData['storeId'] = $("#store").val();
+    queryData['registerTime'] = $("#registerTime").val();
+    queryData['userName'] = $("#userName").val();
+    queryData['phone'] = $("#phone").val();
+    queryData['studentName'] = $("#studentName").val();
+    queryData['coursePackageName'] = $("#coursePackageName").val();
+    queryData['orderSource'] = $("#orderSource").val();
+    queryData['salesName'] = $("#salesName").val();
+    TCompetition.table.refresh({query: queryData});
+    TCompetition.getData();
+};
+TCompetition.getData = function () {
+        var ajax = new $ax(Feng.ctxPath + "/finance/getData", function (data) {
+            var t1 = document.getElementById("totalOrder");
+            var t2 = document.getElementById("cashPayment");
+            var t3 = document.getElementById("playPaiCoin");
+            t1.innerText = "总订单数:"+data.totalOrder+"         ";
+            t2.innerText = "现金总收入:"+data.cashPayment+"         ";
+            t3.innerText = "玩湃币总消耗:"+data.playPaiCoin+"         ";
+        });
+        ajax.set("province",$("#pCode").val());
+        ajax.set("city",$("#cCode").val());
+        ajax.set("storeId",$("#store").val());
+        ajax.set("registerTime",$("#registerTime").val());
+        ajax.set("userName",$("#userName").val());
+        ajax.set("phone",$("#phone").val());
+        ajax.set("studentName",$("#studentName").val());
+        ajax.set("coursePackageName",$("#coursePackageName").val());
+        ajax.set("orderSource",$("#orderSource").val());
+        ajax.set("salesName",$("#salesName").val());
+        ajax.start();
+};
+
+TCompetition.resetSearch = function () {
+    $("#pCode").val("");
+    $("#cCode").val("");
+    $("#store").val("");
+    $("#registerTime").val("");
+    $("#userName").val("");
+    $("#phone").val("");
+    $("#beginTime").val("");
+    $("#studentName").val("");
+    $("#coursePackageName").val("");
+    $("#orderSource").val("");
+    $("#salesName").val("");
+    TCompetition.search();
+};
+
+
+$(function () {
+    var defaultColunms = TCompetition.initColumn();
+    var table = new BSTable(TCompetition.id, "/finance/registerListAll", defaultColunms);
+    table.setPaginationType("client");
+    TCompetition.table = table.init();
+    TCompetition.getData();
+});
+
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/finance/cancelledClasses.js b/cloud-server-management/src/main/webapp/static/modular/system/finance/cancelledClasses.js
index 4b662dd..9359a6d 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/finance/cancelledClasses.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/finance/cancelledClasses.js
@@ -16,7 +16,8 @@
     return [
         {field: 'selectItem', radio: true},
         {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
-        {title: '消课凭证', field: 'id', visible: false, align: 'center', valign: 'middle'},
+        {title: '消课凭证', field: 'voucher', visible: false, align: 'center', valign: 'middle'},
+        {title: '消课数量', field: 'cancelledClassesNumber', visible: false, align: 'center', valign: 'middle'},
         {title: '所在省市', field: 'provinceAndCity', visible: objectType==1?true:false, align: 'center', valign: 'middle'},
         {title: '上课门店', field: 'storeName', visible: true, align: 'center', valign: 'middle'},
         {title: '学员姓名', field: 'studentName', visible:  true, align: 'center', valign: 'middle'},
@@ -75,16 +76,15 @@
 
 TCompetition.lookCancellationRecord = function(){
     if(this.check()){
-
-        let imgs = ClassRecord.seItem.cancelClasses.split(";");
+        let imgs = TCompetition.seItem.voucher.split(";");
         let htmlStr =
             '<div class="form-horizontal">' +
             '   <div class="col-sm-11" style="padding: 20px;">' +
             '       <div class="form-group">\n' +
-            '           <label class="col-sm-8 control-label">课程名称:' + $("#name").text() + '</label>\n' +
+            '           <label class="col-sm-8 control-label">课程名称:' + TCompetition.seItem.courseName + '</label>\n' +
             '       </div>' +
             '       <div class="form-group">\n' +
-            '           <label class="col-sm-8 control-label">*上传凭证(请上传小于5张图片):</label>\n' +
+            '           <label class="col-sm-8 control-label">*上传凭证:</label>\n' +
             '       </div>' +
             '       <div class="form-group">\n' +
             '           <div class="col-sm-8" style="min-height: 200px;">\n' +
@@ -100,7 +100,7 @@
             '       <div class="form-group">\n' +
             '           <label class="col-sm-3 control-label">扣除课时数:</label>\n' +
             '           <div class="col-sm-9">\n' +
-            '               <input class="form-control" id="deductClassHour" value="' + ClassRecord.seItem.deductClassHour + '" type="number" min="0">' +
+            '               <input class="form-control" id="deductClassHour" value="' + TCompetition.seItem.cancelledClassesNumber + '" type="number" min="0">' +
             '           </div>\n' +
             '       </div>' +
             '       </div>' +
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/finance/income.js b/cloud-server-management/src/main/webapp/static/modular/system/finance/income.js
new file mode 100644
index 0000000..8f3a726
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/finance/income.js
@@ -0,0 +1,150 @@
+/**
+ * 车辆管理管理初始化
+ */
+var TCompetition = {
+    id: "TCompetitionTable",	//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1
+};
+var language =1
+var roleType =$("#roleType").val()
+/**
+ * 初始化表格的列
+ */
+TCompetition.initColumn = function () {
+    return [
+        {field:  'selectItem', checkbox: true},
+        {title:  'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+        {title:  '所在省', field: 'province', visible: roleType==1?true:false, align: 'center', valign: 'middle'},
+        {title:  '所在市', field: 'city', visible: roleType==1?true:false, align: 'center', valign: 'middle'},
+        {title:  '消费门店', field: 'storeName', visible: roleType==1?true:false, align: 'center', valign: 'middle'},
+        {title:  '用户姓名', field: 'payUser', visible: true, align: 'center', valign: 'middle'},
+        {title:  '联系电话', field: 'phone', visible: true, align: 'center', valign: 'middle'},
+        {title:  '金    额', field: 'amount', visible: true, align: 'center', valign: 'middle'},
+        {title:  '消费时间', field: 'insertTime', visible: true, align: 'center', valign: 'middle'},
+        {title:  '收入类型', field: 'incomeType', visible: true, align: 'center', valign: 'middle',
+            formatter:function (data) {
+                return{1:"加入会员",2:"充值",3:"报名课程",4:"报名赛事活动",5:"预约场地"}[data]
+            }
+        },
+        {title:  '状态', field: 'state', visible: true, align: 'center', valign: 'middle',
+            formatter:function (data) {
+                return{1:"已支付",2:"未支付"}[data]
+            }
+        },
+    ];
+};
+
+/**
+ * 检查是否选中
+ */
+TCompetition.check = function () {
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if(selected.length == 0){
+            Feng.info("请先选中表格中的某一记录!");
+        return false;
+    }else{
+        TCompetition.seItem = selected[0];
+        return true;
+    }
+};
+
+
+
+
+TCompetition.oneChange = function (e) {
+    console.log(111)
+    var oneId=$(e).val();
+
+    var ajax = new $ax(Feng.ctxPath + "/tCompetition/onChange", function(data){
+        if(data!=null){
+            var content='<option value="">请选择</option>';
+            $.each(data, function(k,v) {
+
+                content += "<option value='"+v.code+"'>"+v.name+"</option>";
+            });
+            $("#cCode").empty().append(content);
+        }
+    });
+    ajax.set("oneId",oneId);
+    ajax.start();
+};
+TCompetition.getStore = function () {
+    console.log("调用")
+    var city = $('#cCode option:selected').text();
+    var ajax = new $ax(Feng.ctxPath + "/finance/getStore", function (data) {
+        if (data != null) {
+            var content = '<option value="">请选择</option>';
+            $.each(data, function (k, v) {
+                content += "<option value='" + v.id + "'>" + v.name + "</option>";
+            });
+            $("#store").empty().append(content);
+        }
+    });
+    ajax.set("city", city);
+    ajax.start();
+}
+
+/**
+ * 查询车辆管理列表
+ */
+TCompetition.search = function () {
+    var queryData = {};
+    queryData['province'] = $("#pCode").val();
+    queryData['city'] = $("#cCode").val();
+    queryData['storeId'] = $("#store").val();
+    queryData['time'] = $("#registerTime").val();
+    queryData['userName'] = $("#userName").val();
+    queryData['phone'] = $("#phone").val();
+    queryData['studentName'] = $("#studentName").val();
+    queryData['coursePackageName'] = $("#coursePackageName").val();
+    queryData['incomeType'] = $("#orderSource").val();
+    queryData['amount'] = $("#money").val();
+    TCompetition.table.refresh({query: queryData});
+    TCompetition.getData();
+};
+TCompetition.getData = function () {
+        var ajax = new $ax(Feng.ctxPath + "/finance/getIncomeData", function (data) {
+            var t1 = document.getElementById("totalMoney");
+
+            t1.innerText = "收入总金额:"+data;
+
+        });
+        ajax.set("province",$("#pCode").val());
+        ajax.set("city",$("#cCode").val());
+        ajax.set("storeId",$("#store").val());
+        ajax.set("time",$("#registerTime").val());
+        ajax.set("userName",$("#userName").val());
+        ajax.set("phone",$("#phone").val());
+        ajax.set("studentName",$("#studentName").val());
+        ajax.set("coursePackageName",$("#coursePackageName").val());
+        ajax.set("incomeType",$("#orderSource").val());
+        ajax.set("amount",$("#money").val());
+        ajax.start();
+};
+
+TCompetition.resetSearch = function () {
+    $("#pCode").val("");
+    $("#cCode").val("");
+    $("#store").val("");
+    $("#registerTime").val("");
+    $("#userName").val("");
+    $("#phone").val("");
+    $("#beginTime").val("");
+    $("#studentName").val("");
+    $("#coursePackageName").val("");
+    $("#orderSource").val("");
+    $("#money").val("");
+    TCompetition.search();
+};
+
+
+$(function () {
+    var defaultColunms = TCompetition.initColumn();
+    var table = new BSTable(TCompetition.id, "/finance/incomeListAll", defaultColunms);
+    table.setPaginationType("client");
+    TCompetition.table = table.init();
+    TCompetition.getData();
+});
+
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 32bb027..220999a 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
@@ -64,14 +64,19 @@
 
 
     /**
+     * 获取场地预约记录
+     */
+    @RequestMapping("/base/site/listAll")
+    public List<SiteBooking> listAll(@RequestBody SiteBookingQuery query){
+        return siteBookingService.listAll(query);
+    }
+    /**
      * 获取所有场地
      * @return
      */
     @RequestMapping("/base/site/list")
     public List<TSiteDTO> listAll(@RequestBody SiteSearchVO vo){
-
         return siteTypeService.listAll(vo);
-
     }
     /**
      * 获取场地有效期在两个月内的场地列表
diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/SiteBooking.java b/cloud-server-other/src/main/java/com/dsh/other/entity/SiteBooking.java
index 158c9f1..f5527a8 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/entity/SiteBooking.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/entity/SiteBooking.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 io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -162,6 +163,7 @@
      * 添加时间
      */
     @TableField("insertTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
     private Date insertTime;
     @TableField("nextName")
     @ApiModelProperty("场地名称")
diff --git a/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteBookingMapper.java b/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteBookingMapper.java
index 72a48c6..b74ed6b 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteBookingMapper.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteBookingMapper.java
@@ -3,7 +3,10 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dsh.other.entity.SiteBooking;
 import com.dsh.other.model.BillingRequestOfType;
+import com.dsh.other.model.SiteBookingQuery;
+import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -13,4 +16,6 @@
 public interface SiteBookingMapper extends BaseMapper<SiteBooking> {
     List<BillingRequestOfType> queryDatas(Integer appUserId, String monthStart, String monthEnd);
 
+    List<SiteBooking> listAll(@Param("query")SiteBookingQuery query, @Param("sTime")String sTime, @Param("eTime")String eTime, @Param("amount") BigDecimal amount);
+
 }
diff --git a/cloud-server-other/src/main/java/com/dsh/other/model/SiteBookingQuery.java b/cloud-server-other/src/main/java/com/dsh/other/model/SiteBookingQuery.java
new file mode 100644
index 0000000..99e2e98
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/model/SiteBookingQuery.java
@@ -0,0 +1,20 @@
+package com.dsh.other.model;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 场地预约记录Query
+ */
+@Data
+public class SiteBookingQuery {
+    // 收入时间
+    private String time;
+    // 收入金额
+    private BigDecimal amount;
+    // 用户ids
+    private List<Integer> userIds;
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/ISiteBookingService.java b/cloud-server-other/src/main/java/com/dsh/other/service/ISiteBookingService.java
index 04e54e6..bc986b6 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/ISiteBookingService.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/ISiteBookingService.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.dsh.other.entity.SiteBooking;
 import com.dsh.other.model.BillingRequestOfType;
+import com.dsh.other.model.SiteBookingQuery;
 
 import java.util.List;
 
@@ -13,4 +14,5 @@
 public interface ISiteBookingService extends IService<SiteBooking> {
     List<BillingRequestOfType> queryDatas(Integer appUserId, String monthStart, String monthEnd);
 
+    List<SiteBooking> listAll(SiteBookingQuery query);
 }
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteBookingServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteBookingServiceImpl.java
index f3f4788..5741812 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteBookingServiceImpl.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteBookingServiceImpl.java
@@ -4,9 +4,13 @@
 import com.dsh.other.entity.SiteBooking;
 import com.dsh.other.mapper.SiteBookingMapper;
 import com.dsh.other.model.BillingRequestOfType;
+import com.dsh.other.model.SiteBookingQuery;
 import com.dsh.other.service.ISiteBookingService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -15,8 +19,22 @@
  */
 @Service
 public class SiteBookingServiceImpl extends ServiceImpl<SiteBookingMapper, SiteBooking> implements ISiteBookingService {
+    @Autowired
+    private SiteBookingMapper siteBookingMapper;
     @Override
     public List<BillingRequestOfType> queryDatas(Integer appUserId, String monthStart, String monthEnd) {
         return this.baseMapper.queryDatas(appUserId,monthStart,monthEnd);
     }
+
+    @Override
+    public List<SiteBooking> listAll(SiteBookingQuery query) {
+        String STime = null;
+        String ETime = null;
+        if (StringUtils.hasLength(query.getTime())) {
+            STime = query.getTime().split(" - ")[0] + " 00:00:00";
+            ETime = query.getTime().split(" - ")[1] + " 23:59:59";
+        }
+
+       return siteBookingMapper.listAll(query,STime,ETime,query.getAmount());
+    }
 }
diff --git a/cloud-server-other/src/main/resources/mapper/SiteBookingMapper.xml b/cloud-server-other/src/main/resources/mapper/SiteBookingMapper.xml
index 6244d3e..c6db7fa 100644
--- a/cloud-server-other/src/main/resources/mapper/SiteBookingMapper.xml
+++ b/cloud-server-other/src/main/resources/mapper/SiteBookingMapper.xml
@@ -16,4 +16,22 @@
             and appUserId = #{appUserId}
         </if>
     </select>
+
+    <select id="listAll" resultType="com.dsh.other.entity.SiteBooking">
+        select * from t_site_booking t1
+        <where>
+        <if test="amount!=null and amount!= ''">
+            and t1.payMoney &lt;= #{amount}
+        </if>
+        <if test="query.userIds != null and query.userIds.size()>0">
+            AND t1.appUserId IN
+            <foreach collection="query.userIds" separator="," item="id" open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
+        <if test="sTime !=null and sTime!= '' and eTime !=null and eTime!= ''">
+            and t1.insertTime between #{sTime} and #{eTime}
+        </if>
+        </where>
+    </select>
 </mapper>

--
Gitblit v1.7.1