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 <= #{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 <= #{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 <= #{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 <= #{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>
+ <h3 id ="cashPayment"></h3><h3>元</h3>
+ <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 <= #{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