From 98d29a456ff0bc9db86e5cc4696fde2a8524b4f8 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期一, 13 一月 2025 22:34:18 +0800
Subject: [PATCH] 12.18
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java | 2 +
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java | 2 +
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java | 6 +++
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java | 6 ++-
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 2 +
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecord.java | 3 +
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java | 1
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WalletController.java | 1
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java | 10 +++++
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java | 67 +++++++++++++++++++++++++++++++++
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java | 5 ++
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WithdrawalRequestsServiceImpl.java | 1
12 files changed, 104 insertions(+), 2 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecord.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecord.java
index 15ee0ab..7dfd7e9 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecord.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecord.java
@@ -31,6 +31,9 @@
@ApiModelProperty("用户id")
private Long appUserId;
+ @ApiModelProperty("vip等级id")
+ private Integer vipId;
+
@ApiModelProperty("订单id")
private Long orderId;
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java
index 3b0ddec..82633b0 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java
@@ -6,6 +6,7 @@
import com.ruoyi.other.api.feignClient.ShopBalanceStatementClient;
import org.springframework.cloud.openfeign.FallbackFactory;
+import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;
@@ -27,6 +28,11 @@
public R<List<ShopBalanceStatement>> getShopBalanceStatementList(Collection<Integer> types, Long objectId) {
return R.fail("获取门店余额流水失败:" + cause.getMessage());
}
+
+ @Override
+ public R<List<ShopBalanceStatement>> getShopBalanceStatementList2(Integer type, LocalDateTime date) {
+ return R.fail();
+ }
};
}
}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java
index 2460796..e2f2e57 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java
@@ -9,6 +9,7 @@
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
+import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;
@@ -35,4 +36,8 @@
*/
@PostMapping("/shop-balance-statement/getShopBalanceStatementList")
R<List<ShopBalanceStatement>> getShopBalanceStatementList(@RequestParam("types") Collection<Integer> types, @RequestParam(value = "objectId",required = false) Long objectId);
+
+ @PostMapping("/shop-balance-statement/getShopBalanceStatementList2")
+ R<List<ShopBalanceStatement>> getShopBalanceStatementList2(@RequestParam("type") Integer type,
+ @RequestParam(value = "date") LocalDateTime date);
}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
index 636afd9..5f38a7d 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
@@ -52,8 +52,10 @@
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
+import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.stream.Collectors;
+import java.util.stream.Stream;
import com.ruoyi.account.vo.*;
import com.ruoyi.common.core.web.controller.BaseController;
@@ -106,6 +108,8 @@
private ShopBalanceStatementClient shopBalanceStatementClient;
@Resource
private UserCancellationLogService userCancellationLogService;
+ @Resource
+ private BalanceChangeRecordService balanceChangeRecordService;
@ResponseBody
@@ -835,6 +839,69 @@
commissionDetail.setCommissionDateList(commissionDateList);
return R.ok(commissionDetail);
}
+
+
+ public R<CommissionDetail> commissionDetail2(CommissionDetail cd) {
+ if (cd.getStartTime() == null || cd.getEndTime() == null) {
+ return R.fail("请选择时间");
+ }
+ if (cd.getStartTime().isAfter(cd.getEndTime())) {
+ return R.fail("开始时间不能大于结束时间");
+ }
+
+
+ Map<String, Map<Integer, BigDecimal>> dailyVipCommissions = new TreeMap<>();
+ getDatesBetween(cd.getStartTime(), cd.getEndTime()).forEach(date -> {
+ for (int i = 1; i < 8; i++){
+ List<BalanceChangeRecord> list = balanceChangeRecordService.list(new LambdaQueryWrapper<BalanceChangeRecord>()
+ .eq(BalanceChangeRecord::getCreateTime, date)
+ .eq(BalanceChangeRecord::getChangeType,4)
+ .eq(BalanceChangeRecord::getVipId, i));
+ BigDecimal reduce = list.stream().map(BalanceChangeRecord::getChangeAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+ String dateKey = date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+ dailyVipCommissions.computeIfAbsent(dateKey, k -> new HashMap<>())
+ .merge(i, reduce, BigDecimal::add);
+ }
+
+ for (int i = 1; i < 4; i++){
+ R<List<ShopBalanceStatement>> r = shopBalanceStatementClient.getShopBalanceStatementList2(i, date);
+ if (!CollectionUtils.isEmpty(r.getData())){
+ List<ShopBalanceStatement> list = r.getData();
+ BigDecimal reduce = list.stream().map(ShopBalanceStatement::getVariableAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+ String dateKey = date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+ int type;
+ if (i == 1){
+ type = 8;
+ }else if (i == 2){
+ type = 9;
+ }else {
+ type = 10;
+ }
+ dailyVipCommissions.computeIfAbsent(dateKey, k -> new HashMap<>())
+ .merge(type, reduce, BigDecimal::add);
+ }
+ }
+ });
+ return null;
+ }
+
+
+ /**
+ * 获取指定时间段内每一天的列表
+ *
+ * @param startDate 开始日期时间
+ * @param endDate 结束日期时间
+ * @return 包含每天日期时间的列表
+ */
+ private static List<LocalDateTime> getDatesBetween(LocalDateTime startDate, LocalDateTime endDate) {
+ // 计算开始日期和结束日期之间的天数差(忽略时间部分)
+ long daysBetween = ChronoUnit.DAYS.between(startDate.toLocalDate(), endDate.toLocalDate());
+
+ // 使用Stream.iterate从开始日期开始迭代,每次增加一天,直到达到天数差+1
+ return Stream.iterate(startDate, date -> date.plus(1, ChronoUnit.DAYS))
+ .limit(daysBetween + 1)
+ .collect(Collectors.toList());
+ }
/**
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WalletController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WalletController.java
index 999eeff..75701a6 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WalletController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WalletController.java
@@ -187,6 +187,7 @@
//流水
BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
balanceChangeRecord.setAppUserId(appUser.getId());
+ balanceChangeRecord.setVipId(appUser.getVipId());
balanceChangeRecord.setOrderId(balanceChangeRecord.getId());
balanceChangeRecord.setChangeType(1);
balanceChangeRecord.setBeforeAmount(balance);
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java
index 8039212..bea2770 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java
@@ -134,6 +134,7 @@
//添加变动明细
BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
balanceChangeRecord.setAppUserId(appUser.getId());
+ balanceChangeRecord.setVipId(appUser.getVipId());
balanceChangeRecord.setOrderId(withdrawal.getId());
balanceChangeRecord.setChangeType(2);
balanceChangeRecord.setBeforeAmount(balance);
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WithdrawalRequestsServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WithdrawalRequestsServiceImpl.java
index 74cbc9f..8c63510 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WithdrawalRequestsServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WithdrawalRequestsServiceImpl.java
@@ -109,6 +109,7 @@
//添加变动明细
BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
balanceChangeRecord.setAppUserId(appUser.getId());
+ balanceChangeRecord.setVipId(appUser.getVipId());
balanceChangeRecord.setOrderId(withdrawalRequests.getId());
balanceChangeRecord.setChangeType(2);
balanceChangeRecord.setBeforeAmount(balance);
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
index e023049..9bd0e61 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
@@ -287,8 +287,10 @@
Long userid = tokenService.getLoginUser().getUserid();
SysUser sysUser = sysUserClient.getSysUser(userid).getData();
- List<Order> orderList = orderService.list(new LambdaQueryWrapper<Order>().eq(sysUser.getRoleType() == 2, Order::getShopId, sysUser.getObjectId())
- .between(Order::getCreateTime, LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")), LocalDateTime.parse(endTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))));
+ List<Order> orderList = orderService.list(new LambdaQueryWrapper<Order>()
+ .eq(sysUser.getRoleType() == 2, Order::getShopId, sysUser.getObjectId())
+ .between(Order::getCreateTime, LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")), LocalDateTime.parse(endTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
+ .orderByAsc(Order::getCreateTime));
Map<String, List<Order>> map = orderList.stream().collect(Collectors.groupingBy(item -> item.getCreateTime()
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java
index 3a3a40b..9960d13 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java
@@ -174,6 +174,7 @@
if(!inviteUser.getBalance().equals(balance)){
BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
balanceChangeRecord.setAppUserId(inviteUser.getId());
+ balanceChangeRecord.setVipId(inviteUser.getVipId());
balanceChangeRecord.setOrderId(order.getId());
balanceChangeRecord.setChangeType(4);
balanceChangeRecord.setBeforeAmount(balance);
@@ -232,6 +233,7 @@
if(!superiorLeader.getBalance().equals(balance)){
BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
balanceChangeRecord.setAppUserId(superiorLeader.getId());
+ balanceChangeRecord.setVipId(superiorLeader.getVipId());
balanceChangeRecord.setOrderId(order.getId());
balanceChangeRecord.setChangeType(4);
balanceChangeRecord.setBeforeAmount(balance);
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
index 0c5b27d..4c347d4 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -449,6 +449,7 @@
BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
balanceChangeRecord.setOrderId(order.getId());
balanceChangeRecord.setAppUserId(order.getAppUserId());
+ balanceChangeRecord.setVipId(appUser.getVipId());
balanceChangeRecord.setChangeType(6);
balanceChangeRecord.setBeforeAmount(balance);
balanceChangeRecord.setChangeAmount(paymentAmount);
@@ -529,6 +530,7 @@
BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
balanceChangeRecord.setOrderId(order.getId());
balanceChangeRecord.setAppUserId(order.getAppUserId());
+ balanceChangeRecord.setVipId(appUser.getVipId());
balanceChangeRecord.setChangeType(6);
balanceChangeRecord.setBeforeAmount(balance);
balanceChangeRecord.setChangeAmount(expressAmount);
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
index 8c1973d..d6f1b01 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -1239,6 +1239,7 @@
//构建余额明细变动记录
BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
balanceChangeRecord.setAppUserId(appUser.getId());
+ balanceChangeRecord.setVipId(appUser.getVipId());
balanceChangeRecord.setOrderId(order.getId());
balanceChangeRecord.setChangeType(5);
balanceChangeRecord.setBeforeAmount(balance.add(paymentMoney));
@@ -1362,6 +1363,7 @@
//构建余额明细变动记录
BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
balanceChangeRecord.setAppUserId(appUser.getId());
+ balanceChangeRecord.setVipId(appUser.getVipId());
balanceChangeRecord.setOrderId(order.getId());
balanceChangeRecord.setChangeType(5);
balanceChangeRecord.setBeforeAmount(balance.add(expressFee));
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java
index 5e558ba..63a0b98 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java
@@ -25,6 +25,7 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
+import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;
import java.util.List;
@@ -171,5 +172,14 @@
.in(types !=null && !types.isEmpty(),ShopBalanceStatement::getType, types));
return R.ok(list);
}
+
+ @PostMapping("/getShopBalanceStatementList2")
+ public R<List<ShopBalanceStatement>> getShopBalanceStatementList2(@RequestParam("type") Integer type,
+ @RequestParam(value = "date") LocalDateTime date){
+ List<ShopBalanceStatement> list = shopBalanceStatementService.list(new LambdaQueryWrapper<ShopBalanceStatement>()
+ .eq(ShopBalanceStatement::getType, type)
+ .in(ShopBalanceStatement::getCreateTime, date));
+ return R.ok(list);
+ }
}
--
Gitblit v1.7.1