From 696daad0798c29631ccda2d98ca52eedcbf2fcb4 Mon Sep 17 00:00:00 2001
From: 刘帅 <rr.iii@qq.com>
Date: 星期一, 21 九月 2026 20:57:27 +0800
Subject: [PATCH] bug:登录问题
---
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TFinanceController.java | 899 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 837 insertions(+), 62 deletions(-)
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..fb1f317 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,23 @@
package com.dsh.guns.modular.system.controller.code;
+import com.dsh.course.feignClient.account.*;
+import com.dsh.course.feignClient.communityWorldCup.Model.WorldCupIncomeVO;
+import com.dsh.course.feignClient.communityWorldCup.WorldCupClient;
+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,18 +26,26 @@
import com.dsh.guns.core.util.ToolUtil;
import com.dsh.guns.modular.system.model.*;
import com.dsh.guns.modular.system.service.*;
+import com.dsh.guns.modular.system.util.ResultUtil;
+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;
import javax.annotation.Resource;
import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
+import java.util.stream.Collectors;
/**
* 财务控制器
@@ -50,70 +66,142 @@
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;
- /**
- * 跳转到充值记录页面
+
+ /*
+ * 充值记录功能已下线,保留原实现以便后续恢复。
+ *
+ * @RequestMapping("/rechargeRecords")
+ * public String index(Model model) {
+ * List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
+ * model.addAttribute("list",list);
+ * Integer objectType = UserExt.getUser().getObjectType();
+ * Integer objectId = UserExt.getUser().getObjectId();
+ * model.addAttribute("userType",objectType);
+ * String roleid = UserExt.getUser().getRoleid();
+ * model.addAttribute("objectType",objectType);
+ * return PREFIX + "RechargeRecords.html";
+ * }
+ *
+ * @RequestMapping(value = "/listAll")
+ * @ResponseBody
+ * public List<RechargeRecordsVO> list(String province, String city, String name, String phone, String time, Integer type) {
+ * RechargeRecordsQuery coachQuery = new RechargeRecordsQuery();
+ * Region provinceCode = regionService.getOne(new QueryWrapper<Region>().eq("code", province));
+ * Region cityCode = regionService.getOne(new QueryWrapper<Region>().eq("code", city));
+ * if (provinceCode != null) {
+ * coachQuery.setProvince(provinceCode.getName());
+ * } else {
+ * coachQuery.setProvince(province);
+ * }
+ * if (cityCode != null) {
+ * coachQuery.setCity(cityCode.getName());
+ * } else {
+ * coachQuery.setCity(city);
+ * }
+ * coachQuery.setName(name);
+ * coachQuery.setPhone(phone);
+ * coachQuery.setTime(time);
+ * coachQuery.setType(type);
+ * return financeClient.rechargeList(coachQuery);
+ * }
+ *
+ * @RequestMapping(value = "/getAmount")
+ * @ResponseBody
+ * public BigDecimal getAmount(String province, String city, String name, String phone, String time, Integer type) {
+ * RechargeRecordsQuery coachQuery = new RechargeRecordsQuery();
+ * coachQuery.setProvince(province);
+ * coachQuery.setCity(city);
+ * coachQuery.setName(name);
+ * coachQuery.setPhone(phone);
+ * coachQuery.setTime(time);
+ * coachQuery.setType(type);
+ * List<RechargeRecordsVO> rechargeRecordsVOS = financeClient.rechargeList(coachQuery);
+ * BigDecimal total = new BigDecimal("0.00");
+ * for (RechargeRecordsVO rechargeRecordsVO : rechargeRecordsVOS) {
+ * total = total.add(rechargeRecordsVO.getAmount());
+ * }
+ * return total;
+ * }
*/
- @RequestMapping("/rechargeRecords")
- public String index(Model model) {
- List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
- model.addAttribute("list",list);
- Integer objectType = UserExt.getUser().getObjectType();
- Integer objectId = UserExt.getUser().getObjectId();
- model.addAttribute("userType",objectType);
- String roleid = UserExt.getUser().getRoleid();
- model.addAttribute("objectType",objectType);
- return PREFIX + "RechargeRecords.html";
+
+ /** 充值记录功能已下线,避免通过历史菜单或直接 URL 继续访问。 */
+ @RequestMapping({"/rechargeRecords", "/listAll", "/getAmount"})
+ @ResponseBody
+ public ResultUtil rechargeRecordsUnavailable() {
+ return ResultUtil.error("充值记录功能暂不提供");
}
/**
- * 获取充值记录
+ * 获取报名订单统计数据
*/
- @RequestMapping(value = "/listAll")
+ @RequestMapping(value = "/getData")
@ResponseBody
- public List<RechargeRecordsVO> list(String province, String city, String name, String phone,String time,Integer type) {
- RechargeRecordsQuery coachQuery = new RechargeRecordsQuery();
- Region provinceCode = regionService.getOne(new QueryWrapper<Region>().eq("code", province));
- Region cityCode = regionService.getOne(new QueryWrapper<Region>().eq("code", city));
- if (provinceCode!=null){
- coachQuery.setProvince(provinceCode.getName());
- }else{
- coachQuery.setProvince(province);
+ 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.setInsertType(UserExt.getUser().getObjectType());
+ if(UserExt.getUser().getObjectType()==2){
+ List<Integer> operatorId = storeService.list(new QueryWrapper<TStore>()
+ .eq("operatorId", UserExt.getUser().getObjectId())).stream()
+ .map(TStore::getId).collect(Collectors.toList());
+ query.setStoresIds(operatorId);
}
- if (cityCode!=null){
- coachQuery.setCity(cityCode.getName());
- }else{
- coachQuery.setCity(city);
+ if(UserExt.getUser().getObjectType()==3){
+ query.setStoreId(UserExt.getUser().getObjectId());
}
- coachQuery.setName(name);
+ 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);
- coachQuery.setPhone(phone);
- coachQuery.setTime(time);
- coachQuery.setType(type);
- return financeClient.rechargeList(coachQuery);
- }
-
- /**
- * 获取充值记录
- */
- @RequestMapping(value = "/getAmount")
- @ResponseBody
- public BigDecimal getAmount(String province, String city, String name, String phone, String time, Integer type) {
- RechargeRecordsQuery coachQuery = new RechargeRecordsQuery();
- coachQuery.setProvince(province);
- coachQuery.setCity(city);
- coachQuery.setName(name);
- coachQuery.setPhone(phone);
- coachQuery.setTime(time);
- coachQuery.setType(type);
- List<RechargeRecordsVO> rechargeRecordsVOS = financeClient.rechargeList(coachQuery);
- BigDecimal total = new BigDecimal("0.00");
- BigDecimal result = new BigDecimal("0.00");
- for (RechargeRecordsVO rechargeRecordsVO : rechargeRecordsVOS) {
- BigDecimal amount = rechargeRecordsVO.getAmount();
- total = total.add(amount); // 将新的值赋给total
- result = result.add(amount); // 将新的值赋给result
+ 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 total;
+ return registerDataVO;
}
/**
* 跳转到消课记录页面
@@ -126,6 +214,627 @@
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";
+ }
+ @Autowired
+ private WorldCupClient worldCupClient;
+ /**
+ * 获取收入管理列表
+ */
+ @RequestMapping(value = "/incomeListAll")
+ @ResponseBody
+ public List<IncomeVO> incomeListAll(String time,Integer incomeType,String userName,String amount) throws ParseException {
+
+ // 充值记录查询query
+ RechargeRecordsQuery rechargeRecordsQuery = new RechargeRecordsQuery();
+ // 报名课程查询query
+ RegisterOrderQuery query = new RegisterOrderQuery();
+ query.setInsertType(UserExt.getUser().getObjectType());
+ if(UserExt.getUser().getObjectType()==2){
+ query.setStoresIds(storeService.list(new QueryWrapper<TStore>()
+ .eq("operatorId",UserExt.getUser().getObjectId())
+ ).stream().map(TStore::getId).collect(Collectors.toList()));
+ }
+ // 赛事活动查询query
+ CompetitionQuery competitionQuery = new CompetitionQuery();
+ // 会员支付查询query
+ IncomeQuery incomeQuery = new IncomeQuery();
+ // 场地预约记录查询query
+ SiteBookingQuery siteBookingQuery = new SiteBookingQuery();
+ // 世界杯记录查询query
+ WorldCupQuery worldCupQuery = new WorldCupQuery();
+ 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);
+ worldCupQuery.setUserIds(collect);
+ }
+ }
+ if (amount==null || amount.equals("")){
+ siteBookingQuery.setAmount(null);
+ query.setAmount(null);
+ rechargeRecordsQuery.setAmount(null);
+ competitionQuery.setAmount(null);
+ incomeQuery.setAmount(null);
+ worldCupQuery.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));
+ worldCupQuery.setAmount(new BigDecimal(amount));
+ }
+
+ if (UserExt.getUser().getObjectType()==2){
+ // 拿到门店集合id
+ List<Integer> operatorId = storeService.list(new QueryWrapper<TStore>()
+ .eq("operatorId", UserExt.getUser().getObjectId())).stream()
+ .map(TStore::getId).collect(Collectors.toList());
+ if (operatorId.isEmpty()){
+ operatorId.add(0);
+ }
+ query.setStoresIds(operatorId);
+ competitionQuery.setOperatorId(UserExt.getUser().getObjectId());
+
+ siteBookingQuery.setStoreIds(operatorId);
+ }
+ if (UserExt.getUser().getObjectType()==3){
+ // 拿到门店集合id
+ List<Integer> integers = new ArrayList<>();
+ integers.add(UserExt.getUser().getObjectId());
+ siteBookingQuery.setStoreIds(integers);
+ query.setStoresIds(integers);
+ competitionQuery.setStoreId(UserExt.getUser().getObjectId());
+ }
+
+ siteBookingQuery.setTime(time);
+ query.setRegisterTime(time);
+ rechargeRecordsQuery.setTime(time);
+ competitionQuery.setTime(time);
+ incomeQuery.setTime(time);
+ worldCupQuery.setTime(time);
+ Integer roleType = UserExt.getUser().getObjectType();
+ List<IncomeVO> incomeVOS = new ArrayList<>();
+ if ( incomeType==null || incomeType == 1){
+ // 会员支付记录
+ List<VipPayment> vipPayments = vipPaymentClient.registrationList(incomeQuery);
+ for (VipPayment vipPayment : vipPayments) {
+ if (UserExt.getUser().getObjectType()!=1){
+ break;
+ }
+ TAppUser tAppUser = appUserClient.queryById(vipPayment.getAppUserId());
+ IncomeVO temp = new IncomeVO();
+ temp.setId(vipPayment.getId().toString());
+ temp.setAppUserId(vipPayment.getAppUserId());
+ if (tAppUser!=null){
+ if (tAppUser.getProvince()!=null){
+ temp.setProvince(tAppUser.getProvince());
+ }
+ if (tAppUser.getCity()!=null){
+ temp.setCity(tAppUser.getCity());
+ }
+ temp.setPayUser(tAppUser.getName());
+ temp.setPhone(tAppUser.getPhone());
+ }
+ temp.setStoreName("");
+ temp.setAmount(new BigDecimal(vipPayment.getAmount().toString()));
+ temp.setIncomeType(1);
+ temp.setState(2);
+ temp.setInsertTime(vipPayment.getInsertTime());
+ if (UserExt.getUser().getObjectType()!=1){
+ break;
+ }
+ incomeVOS.add(temp);
+ }
+ }
+ if ( incomeType==null || incomeType == 2) {
+ // 充值记录
+ List<RechargeRecordsVO> rechargeRecordsVOS = financeClient.rechargeList(rechargeRecordsQuery);
+ for (RechargeRecordsVO rechargeRecordsVO : rechargeRecordsVOS) {
+ if (UserExt.getUser().getObjectType()!=1){
+ break;
+ }
+ TAppUser tAppUser = appUserClient.queryById(rechargeRecordsVO.getAppUserId());
+ IncomeVO temp = new IncomeVO();
+ temp.setId(rechargeRecordsVO.getId().toString());
+ temp.setAppUserId(rechargeRecordsVO.getAppUserId());
+ if (tAppUser!=null){
+ if (tAppUser.getProvince()!=null){
+ temp.setProvince(tAppUser.getProvince());
+ }
+ if (tAppUser.getCity()!=null){
+ temp.setCity(tAppUser.getCity());
+ }
+ temp.setPayUser(tAppUser.getName());
+ temp.setPhone(tAppUser.getPhone());
+ }
+ temp.setStoreName("");
+ temp.setInsertTime(rechargeRecordsVO.getInsertTime());
+ if (rechargeRecordsVO.getAmount() != null) {
+ temp.setAmount(rechargeRecordsVO.getAmount());
+ }
+ temp.setIncomeType(2);
+ temp.setState(2);
+
+ 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().toString());
+ temp.setAppUserId(registerOrderVO.getAppUserId());
+ if (tAppUser!=null){
+ if (tAppUser.getProvince()!=null){
+ temp.setProvince(tAppUser.getProvince());
+ }
+ if (tAppUser.getCity()!=null){
+ temp.setCity(tAppUser.getCity());
+ }
+ temp.setPayUser(tAppUser.getName());
+ temp.setPhone(tAppUser.getPhone());
+ }
+
+ temp.setStoreName(registerOrderVO.getStoreName());
+
+ temp.setInsertTime(registerOrderVO.getInsertTime());
+ if (registerOrderVO.getMoney() != null) {
+ temp.setAmount(registerOrderVO.getMoney());
+ }
+ temp.setIncomeType(3);
+
+ temp.setState(2);
+
+ incomeVOS.add(temp);
+ }
+ }
+
+ if (incomeType == null || incomeType == 4) {
+ // 报名活动
+ List<PaymentCompetition> competitions = competitionClient.listAllPayment(competitionQuery);
+ for (PaymentCompetition competition : competitions) {
+ if (competition.getPayStatus() == 3) {
+ continue;
+ }
+ IncomeVO temp = new IncomeVO();
+ TAppUser tAppUser = appUserClient.queryById(competition.getAppUserId());
+ Competition competition1 = competitionClient.queryById(competition.getCompetitionId());
+ if(null == competition1){
+ continue;
+ }
+ String competitionStoreIds = resolveCompetitionStoreIds(competition, competition1);
+ if (ToolUtil.isNotEmpty(competitionStoreIds)){
+ String[] split = competitionStoreIds.split(",");
+ List<Integer> list = new ArrayList<>();
+ for (String s : split) {
+ list.add(Integer.valueOf(s));
+ }
+ List<TStore> id = storeService.list(new QueryWrapper<TStore>().in("id", list));
+ StringBuilder storeNames = new StringBuilder("");
+ for (TStore store : id) {
+ // 赛事举办门店 (可能会有多个门店举办 需要拼接门店名称)
+ storeNames.append(store.getName() + ",");
+ }
+ String substring = storeNames.toString().substring(0, storeNames.toString().length() - 1);
+
+ temp.setStoreName(substring);
+ }
+ temp.setId(competition.getId().toString());
+ temp.setAppUserId(competition.getAppUserId());
+ if (tAppUser!=null){
+ if (tAppUser.getProvince()!=null){
+ temp.setProvince(tAppUser.getProvince());
+ }
+ if (tAppUser.getCity()!=null){
+ temp.setCity(tAppUser.getCity());
+ }
+ 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(2);
+
+ incomeVOS.add(temp);
+ }
+ }
+
+ if (incomeType == null || incomeType == 5) {
+ // 预约场地
+ List<SiteBooking> siteBookings = siteClient.listAll(siteBookingQuery);
+ for (SiteBooking siteBooking : siteBookings) {
+ IncomeVO temp = new IncomeVO();
+
+ temp.setState(2);
+
+ TAppUser tAppUser = appUserClient.queryAppUser1(siteBooking.getAppUserId());
+ Store store = storeClient.getStoreById(siteBooking.getStoreId());
+
+ temp.setId(siteBooking.getId().toString());
+ temp.setAppUserId(siteBooking.getAppUserId());
+ temp.setProvince(siteBooking.getProvince());
+ temp.setCity(siteBooking.getCity());
+ temp.setStoreName(store.getName());
+ if (tAppUser!=null){
+ if (tAppUser.getProvince()!=null){
+ temp.setProvince(tAppUser.getProvince());
+ }
+ if (tAppUser.getCity()!=null){
+ temp.setCity(tAppUser.getCity());
+ }
+ 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);
+ }
+ }
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+ if (roleType == 1 && (incomeType == null || incomeType == 6)){
+ List<WorldCupIncomeVO> worldCupIncome = worldCupClient.getWorldCupIncome(worldCupQuery);
+ for (WorldCupIncomeVO worldCupIncomeVO : worldCupIncome) {
+ IncomeVO temp = new IncomeVO();
+ temp.setId(worldCupIncomeVO.getId());
+ temp.setProvince(worldCupIncomeVO.getProvince());
+ temp.setCity(worldCupIncomeVO.getCity());
+ temp.setStoreName(worldCupIncomeVO.getStoreName());
+ temp.setPayUser(worldCupIncomeVO.getUserName());
+ temp.setPhone(worldCupIncomeVO.getPhone());
+ temp.setAmount(new BigDecimal(worldCupIncomeVO.getAmount()));
+ temp.setIncomeType(6);
+ temp.setState(2);
+ temp.setInsertTime(simpleDateFormat.parse(worldCupIncomeVO.getPayTime()));
+ incomeVOS.add(temp);
+ }
+ }
+ // 推荐:一行代码解决
+ incomeVOS.sort(Comparator.comparing(
+ IncomeVO::getInsertTime,
+ Comparator.nullsLast(Comparator.reverseOrder())
+ ));
+ return incomeVOS;
+ }
+
+ /**
+ * 获取收入管理列表
+ */
+ @RequestMapping(value = "/getIncomeData")
+ @ResponseBody
+ public Object getIncomeData(String time,Integer incomeType,String userName,String amount) throws ParseException {
+ // 充值记录查询query
+ RechargeRecordsQuery rechargeRecordsQuery = new RechargeRecordsQuery();
+ // 报名课程查询query
+ RegisterOrderQuery query = new RegisterOrderQuery();
+ query.setInsertType(UserExt.getUser().getObjectType());
+ query.setStoresIds(storeService.list(new QueryWrapper<TStore>()
+ .eq("operatorId",UserExt.getUser().getObjectId()))
+ .stream().map(TStore::getId).collect(Collectors.toList()));
+ // 赛事活动查询query
+ CompetitionQuery competitionQuery = new CompetitionQuery();
+ // 会员支付查询query
+ IncomeQuery incomeQuery = new IncomeQuery();
+ // 场地预约记录查询query
+ SiteBookingQuery siteBookingQuery = new SiteBookingQuery();
+ // 世界杯查询query
+ WorldCupQuery worldCupQuery = new WorldCupQuery();
+ 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);
+ worldCupQuery.setUserIds(collect);
+ }
+ }
+ if (amount==null || amount.equals("")){
+ siteBookingQuery.setAmount(null);
+ query.setAmount(null);
+ rechargeRecordsQuery.setAmount(null);
+ competitionQuery.setAmount(null);
+ incomeQuery.setAmount(null);
+ worldCupQuery.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));
+ worldCupQuery.setAmount(new BigDecimal(amount));
+ }
+ if (UserExt.getUser().getObjectType()==2){
+ // 拿到门店集合id
+ List<Integer> operatorId = storeService.list(new QueryWrapper<TStore>()
+ .eq("operatorId", UserExt.getUser().getObjectId())).stream()
+ .map(TStore::getId).collect(Collectors.toList());
+ query.setStoresIds(operatorId);
+ competitionQuery.setOperatorId(UserExt.getUser().getObjectId());
+ siteBookingQuery.setStoreIds(operatorId);
+ }
+ if (UserExt.getUser().getObjectType()==3){
+ // 拿到门店集合id
+ List<Integer> integers = new ArrayList<>();
+ integers.add(UserExt.getUser().getObjectId());
+ siteBookingQuery.setStoreIds(integers);
+ query.setStoresIds(integers);
+ competitionQuery.setStoreId(UserExt.getUser().getObjectId());
+ }
+ siteBookingQuery.setTime(time);
+ query.setRegisterTime(time);
+ rechargeRecordsQuery.setTime(time);
+ competitionQuery.setTime(time);
+ incomeQuery.setTime(time);
+ worldCupQuery.setTime(time);
+ Integer roleType = UserExt.getUser().getObjectType();
+ List<IncomeVO> incomeVOS = new ArrayList<>();
+ if ( incomeType==null || incomeType == 1){
+ // 会员支付记录
+ List<VipPayment> vipPayments = vipPaymentClient.registrationList(incomeQuery);
+ for (VipPayment vipPayment : vipPayments) {
+ if (UserExt.getUser().getObjectType()!=1){
+ break;
+ }
+ TAppUser tAppUser = appUserClient.queryById(vipPayment.getAppUserId());
+ IncomeVO temp = new IncomeVO();
+ temp.setId(vipPayment.getId().toString());
+ if (tAppUser!=null){
+ if (tAppUser.getProvince()!=null){
+ temp.setProvince(tAppUser.getProvince());
+ }
+ if (tAppUser.getCity()!=null){
+ temp.setCity(tAppUser.getCity());
+ }
+ temp.setPayUser(tAppUser.getName());
+ temp.setPhone(tAppUser.getPhone());
+ }
+ temp.setStoreName("");
+ temp.setAmount(new BigDecimal(vipPayment.getAmount().toString()));
+ temp.setIncomeType(1);
+ temp.setState(2);
+ temp.setInsertTime(vipPayment.getInsertTime());
+ if (UserExt.getUser().getObjectType()!=1){
+ break;
+ }
+ incomeVOS.add(temp);
+ }
+ }
+ if ( incomeType==null || incomeType == 2) {
+ // 充值记录
+ List<RechargeRecordsVO> rechargeRecordsVOS = financeClient.rechargeList(rechargeRecordsQuery);
+ for (RechargeRecordsVO rechargeRecordsVO : rechargeRecordsVOS) {
+ if (UserExt.getUser().getObjectType()!=1){
+ break;
+ }
+ TAppUser tAppUser = appUserClient.queryById(rechargeRecordsVO.getAppUserId());
+ IncomeVO temp = new IncomeVO();
+ temp.setId(rechargeRecordsVO.getId().toString());
+ if (tAppUser!=null){
+ if (tAppUser.getProvince()!=null){
+ temp.setProvince(tAppUser.getProvince());
+ }
+ if (tAppUser.getCity()!=null){
+ temp.setCity(tAppUser.getCity());
+ }
+ temp.setPayUser(tAppUser.getName());
+ temp.setPhone(tAppUser.getPhone());
+ }
+ temp.setStoreName("");
+ temp.setInsertTime(rechargeRecordsVO.getInsertTime());
+ if (rechargeRecordsVO.getAmount() != null) {
+ temp.setAmount(rechargeRecordsVO.getAmount());
+ }
+ temp.setIncomeType(2);
+ temp.setState(2);
+ 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().toString());
+
+ temp.setState(2);
+
+ if (tAppUser!=null){
+ if (tAppUser.getProvince()!=null){
+ temp.setProvince(tAppUser.getProvince());
+ }
+ if (tAppUser.getCity()!=null){
+ temp.setCity(tAppUser.getCity());
+ }
+ temp.setPayUser(tAppUser.getName());
+ temp.setPhone(tAppUser.getPhone());
+ }
+
+ temp.setStoreName(registerOrderVO.getStoreName());
+
+ temp.setInsertTime(registerOrderVO.getInsertTime());
+ if (registerOrderVO.getMoney() != null) {
+ temp.setAmount(registerOrderVO.getMoney());
+ }
+ temp.setIncomeType(3);
+ temp.setState(2);
+ incomeVOS.add(temp);
+ }
+ }
+ if (incomeType == null || incomeType == 4) {
+ // 报名活动
+ List<PaymentCompetition> competitions = competitionClient.listAllPayment(competitionQuery);
+ for (PaymentCompetition competition : competitions) {
+ if (competition.getPayStatus() == 3) {
+ continue;
+ }
+ IncomeVO temp = new IncomeVO();
+ TAppUser tAppUser = appUserClient.queryById(competition.getAppUserId());
+ Competition competition1 = competitionClient.queryById(competition.getCompetitionId());
+ if(null == competition1){
+ continue;
+ }
+ String competitionStoreIds = resolveCompetitionStoreIds(competition, competition1);
+ if (ToolUtil.isNotEmpty(competitionStoreIds)){
+ String[] split = competitionStoreIds.split(",");
+ List<Integer> list = new ArrayList<>();
+ for (String s : split) {
+ list.add(Integer.valueOf(s));
+ }
+ List<TStore> id = storeService.list(new QueryWrapper<TStore>().in("id", list));
+ StringBuilder storeNames = new StringBuilder("");
+ for (TStore store : id) {
+ // 赛事举办门店 (可能会有多个门店举办 需要拼接门店名称)
+ storeNames.append(store.getName() + ",");
+ }
+ String substring = storeNames.toString().substring(0, storeNames.toString().length() - 1);
+
+ temp.setStoreName(substring);
+ }
+
+ temp.setState(2);
+
+ temp.setId(competition.getId().toString());
+ if (tAppUser!=null){
+ if (tAppUser.getProvince()!=null){
+ temp.setProvince(tAppUser.getProvince());
+ }
+ if (tAppUser.getCity()!=null){
+ temp.setCity(tAppUser.getCity());
+ }
+ 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(2);
+ incomeVOS.add(temp);
+ }
+ }
+ if (incomeType == null || incomeType == 5) {
+ // 预约场地
+ List<SiteBooking> siteBookings = siteClient.listAll(siteBookingQuery);
+ for (SiteBooking siteBooking : siteBookings) {
+ IncomeVO temp = new IncomeVO();
+ temp.setState(2);
+ TAppUser tAppUser = appUserClient.queryAppUser1(siteBooking.getAppUserId());
+ Store store = storeClient.getStoreById(siteBooking.getStoreId());
+
+ temp.setId(siteBooking.getId().toString());
+ temp.setProvince(siteBooking.getProvince());
+ temp.setCity(siteBooking.getCity());
+ temp.setStoreName(store.getName());
+ if (tAppUser!=null){
+ if (tAppUser.getProvince()!=null){
+ temp.setProvince(tAppUser.getProvince());
+ }
+ if (tAppUser.getCity()!=null){
+ temp.setCity(tAppUser.getCity());
+ }
+ 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);
+ }
+ }
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ if (roleType == 1 && (incomeType == null || incomeType == 6)){
+ List<WorldCupIncomeVO> worldCupIncome = worldCupClient.getWorldCupIncome(worldCupQuery);
+ for (WorldCupIncomeVO worldCupIncomeVO : worldCupIncome) {
+ IncomeVO temp = new IncomeVO();
+ temp.setId(worldCupIncomeVO.getId());
+ temp.setProvince(worldCupIncomeVO.getProvince());
+ temp.setCity(worldCupIncomeVO.getCity());
+ temp.setStoreName(worldCupIncomeVO.getStoreName());
+ temp.setPayUser(worldCupIncomeVO.getUserName());
+ temp.setPhone(worldCupIncomeVO.getPhone());
+ temp.setAmount(new BigDecimal(worldCupIncomeVO.getAmount()));
+ temp.setIncomeType(6);
+ temp.setState(2);
+ temp.setInsertTime(simpleDateFormat.parse(worldCupIncomeVO.getPayTime()));
+ incomeVOS.add(temp);
+ }
+ }
+ BigDecimal totalAmount = BigDecimal.ZERO; // 初始化累加变量为0
+ for (IncomeVO vo : incomeVOS) {
+ if (vo.getAmount() == null ){
+ BigDecimal temp = BigDecimal.ZERO;
+ totalAmount = totalAmount.add(temp);
+ }else{
+ BigDecimal totalMoney = vo.getAmount();
+ totalAmount = totalAmount.add(totalMoney); // 累加每个IncomeVO对象的amount
+ }
+ }
+ return totalAmount;
+ }
+ /**
* 获取消课记录
*/
@RequestMapping(value = "/cancelListAll")
@@ -136,13 +845,79 @@
coachQuery.setCoachName(coachName);
coachQuery.setCourseName(courseName);
coachQuery.setTime(beginTime);
+ if(UserExt.getUser().getObjectType()==3){
+ coachQuery.setStoreId(UserExt.getUser().getObjectId());
+ }
+ if(UserExt.getUser().getObjectType()==2){
+ // 运营商门店ids
+ List<Integer> storeIds = storeService
+ .list(new QueryWrapper<TStore>().eq("operatorId", UserExt.getUser().getObjectId()))
+ .stream().map(TStore::getId).collect(Collectors.toList());
+ coachQuery.setStoreIds(storeIds);
+ }
return cancelledClassesClient.listAll(coachQuery);
+ }
+ /**
+ * 获取报名订单记录
+ */
+ @Autowired
+ private IStoreService storeService;
+ @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.setInsertType(UserExt.getUser().getObjectType());
+ if(UserExt.getUser().getObjectType()==2){
+ query.setStoresIds(storeService.list(new QueryWrapper<TStore>()
+ .eq("operatorId",UserExt.getUser().getObjectId())
+ ).stream().map(TStore::getId).collect(Collectors.toList()));
+ }
+ if(UserExt.getUser().getObjectType()==3){
+ query.setStoreId(UserExt.getUser().getObjectId());
+ }
+ 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);
+ }
+
+ /**
+ * 获取收入记录对应的门店归属;新订单使用下单快照,兼容未回填的历史订单。
+ *
+ * @param paymentCompetition 活动支付记录
+ * @param competition 活动当前信息
+ * @return 逗号分隔的门店 ID 列表
+ */
+ private String resolveCompetitionStoreIds(PaymentCompetition paymentCompetition, Competition competition) {
+ if (ToolUtil.isNotEmpty(paymentCompetition.getCompetitionStoreIds())) {
+ return paymentCompetition.getCompetitionStoreIds();
+ }
+ return competition.getStoreId();
}
-
}
-
-
-
-
--
Gitblit v1.7.1