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