puzhibing
2023-06-01 c4a098e3f88bc5071e36b92b9e5dcceb51129957
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAgentServiceImpl.java
@@ -22,6 +22,7 @@
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@@ -55,7 +56,7 @@
    private TUserToCouponMapper tUserToCouponMapper;
    @Override
    public EntityWrapper<TAgent> getAgentWrapper(String principal, String principalPhone, String createTime) {
    public EntityWrapper<TAgent> getAgentWrapper(String principal, String principalPhone, String createTime,Integer status) {
        EntityWrapper<TAgent> wrapper = new EntityWrapper<>();
        // 昵称
        if(StringUtils.hasLength(principal)){
@@ -68,13 +69,17 @@
        // 开始,结束时间
        if(StringUtils.hasLength(createTime)){
            String[] split = createTime.split(" - ");
            Date startTime = DateUtil.getDate_str4(split[0]);
            Date endTime = DateUtil.getDate_str4(split[1]);
            Date startTime = DateUtil.getDate_str3(split[0]+" 00:00:00");
            Date endTime = DateUtil.getDate_str3(split[1]+" 23:59:59");
            wrapper.between("createTime",startTime,endTime);
        }
        // 判断是否为代理商
        if(Objects.requireNonNull(ShiroKit.getUser()).getRoleType() == 3){
            wrapper.eq("id",ShiroKit.getUser().getObjectId());
        }
        // 状态
        if(Objects.nonNull(status)){
            wrapper.eq("status",status);
        }
        wrapper.ne("status", StatusEnum.DELETE.getCode());
        wrapper.orderBy("createTime",false);
@@ -101,7 +106,7 @@
        model.addAttribute("orderSum",orderList.size());
        // 过滤已完成和待评价订单,且支付金额在14元以上
        List<TOrder> orders = orderList.stream().filter(order -> (order.getState().equals(OrderStateEnum.FINISH.getCode()) || order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()))
                && 0 < order.getPayMoney().compareTo(new BigDecimal("14")) && order.getAgentId().equals(tAgent.getId())).collect(Collectors.toList());
                && 0 < order.getOrderMoney().compareTo(new BigDecimal("14")) && order.getAgentId().equals(tAgent.getId())).collect(Collectors.toList());
        model.addAttribute("validOrder",orders.size());
        // 过滤已使用优惠券
        List<TOrder> usedCoupon = orderList.stream().filter(order -> (order.getState().equals(OrderStateEnum.FINISH.getCode()) || order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()))
@@ -140,8 +145,9 @@
        model.addAttribute("driverCount",drivers.size());
        // 司机充值计算
        List<Integer> driverIds = drivers.stream().map(TDriver::getId).collect(Collectors.toList());
        List<TRechargeRecord> tRechargeRecords = tRechargeRecordMapper.selectList(new EntityWrapper<TRechargeRecord>().in("userId", driverIds)
                .eq("type", UserTypeEnum.DRIVER.getCode())
        List<TRechargeRecord> tRechargeRecords = tRechargeRecordMapper.selectList(new EntityWrapper<TRechargeRecord>()
                .in("userId", driverIds)
                .eq("type", UserTypeEnum.AGENT.getCode())
                .eq("payStatus", PayStatusEnum.FINISH.getCode()));
        if(CollectionUtils.isEmpty(tRechargeRecords)){
            model.addAttribute("driverRecharge",BigDecimal.ZERO);
@@ -175,7 +181,7 @@
                tAgentResp.setOrderSum(orderList.size());
                // 过滤已完成和待评价订单,且支付金额在14元以上
                List<TOrder> orders = tOrders.stream().filter(order -> (order.getState().equals(OrderStateEnum.FINISH.getCode()) || order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()))
                        && 0 < order.getPayMoney().compareTo(new BigDecimal("14")) && tAgent.getId().equals(order.getAgentId())).collect(Collectors.toList());
                        && 0 < order.getOrderMoney().compareTo(new BigDecimal("14")) && tAgent.getId().equals(order.getAgentId())).collect(Collectors.toList());
                tAgentResp.setValidOrder(orders.size());
                // 过滤已使用优惠券
                List<TOrder> usedCoupon = tOrders.stream().filter(order -> (order.getState().equals(OrderStateEnum.FINISH.getCode()) || order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()))
@@ -215,8 +221,9 @@
                tAgentResp.setDriverCount(drivers.size());
                // 司机充值计算
                List<Integer> driverIds = drivers.stream().map(TDriver::getId).collect(Collectors.toList());
                List<TRechargeRecord> tRechargeRecords = tRechargeRecordMapper.selectList(new EntityWrapper<TRechargeRecord>().in("userId", driverIds)
                        .eq("type", UserTypeEnum.DRIVER.getCode())
                List<TRechargeRecord> tRechargeRecords = tRechargeRecordMapper.selectList(new EntityWrapper<TRechargeRecord>()
                        .eq("agentId", tAgent.getId())
                        .eq("type", UserTypeEnum.AGENT.getCode())
                        .eq("payStatus", PayStatusEnum.FINISH.getCode()));
                tRechargeRecords.stream().map(TRechargeRecord::getAmount).reduce(BigDecimal::add).ifPresent(tAgentResp::setDriverRecharge);
            }
@@ -232,8 +239,8 @@
        Integer agentTotal = tAgentMapper.selectCount(new EntityWrapper<TAgent>()
                .eq("id", agentId));
        // 代理商最近一个月新增数量
        LocalDate now = LocalDate.now();
        LocalDate localDate = now.plusMonths(1);
        LocalDateTime now = LocalDateTime.now();
        LocalDateTime localDate = now.minusMonths(1);
        Integer agentMonthTotal = tAgentMapper.selectCount(new EntityWrapper<TAgent>()
                .eq("id", agentId)
                .between("createTime", localDate, now));
@@ -249,8 +256,8 @@
        Integer agentTotal = tAgentMapper.selectCount(new EntityWrapper<TAgent>()
                .in("id", ids));
        // 代理商最近一个月新增数量
        LocalDate now = LocalDate.now();
        LocalDate localDate = now.plusMonths(1);
        LocalDateTime now = LocalDateTime.now();
        LocalDateTime localDate = now.minusMonths(1);
        Integer agentMonthTotal = tAgentMapper.selectCount(new EntityWrapper<TAgent>()
                .in("id", ids)
                .between("createTime", localDate, now));