luodangjia
2025-01-13 98d29a456ff0bc9db86e5cc4696fde2a8524b4f8
12.18
12个文件已修改
106 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecord.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WalletController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WithdrawalRequestsServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
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();
            }
        };
    }
}
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);
}
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());
    }
    
    
    /**
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);
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);
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);
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()
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);
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);
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));
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);
    }
}