From c4a098e3f88bc5071e36b92b9e5dcceb51129957 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期四, 01 六月 2023 23:25:07 +0800 Subject: [PATCH] 同步后台代码 --- management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAgentServiceImpl.java | 131 +++++++++++++++++++++++++++++++++++-------- 1 files changed, 105 insertions(+), 26 deletions(-) diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAgentServiceImpl.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAgentServiceImpl.java index ae176d4..33fde55 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAgentServiceImpl.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAgentServiceImpl.java @@ -7,6 +7,7 @@ import com.stylefeng.guns.modular.system.dao.*; import com.stylefeng.guns.modular.system.enums.OrderStateEnum; import com.stylefeng.guns.modular.system.enums.PayStatusEnum; +import com.stylefeng.guns.modular.system.enums.StatusEnum; import com.stylefeng.guns.modular.system.enums.UserTypeEnum; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.ITAgentService; @@ -20,6 +21,8 @@ import java.math.BigDecimal; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -49,9 +52,11 @@ @Autowired private TRechargeRecordMapper tRechargeRecordMapper; + @Autowired + 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)){ @@ -64,14 +69,20 @@ // 开始,结束时间 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); return wrapper; } @@ -87,6 +98,7 @@ model.addAttribute("principal",tAgent.getPrincipal()); model.addAttribute("principalPhone",tAgent.getPrincipalPhone()); model.addAttribute("email",tAgent.getEmail()); + model.addAttribute("serviceCalls",tAgent.getServiceCalls()); model.addAttribute("area",tAgent.getProvinceName()+tAgent.getCityName()); // 订单信息 // 订单总量 @@ -94,33 +106,48 @@ 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())) && Objects.nonNull(order.getCouponId()) && order.getAgentId().equals(tAgent.getId())).collect(Collectors.toList()); model.addAttribute("usedCoupon",usedCoupon.size()); // 已使用优惠券金额求和,已使用优惠券id - List<Integer> usedCouponId = usedCoupon.stream().map(TOrder::getCouponId).collect(Collectors.toList()); - // 查询已使用优惠券金额求和 - List<TCoupon> tCoupons1 = tCouponMapper.selectList(new EntityWrapper<TCoupon>().in("id", usedCouponId)); - if(CollectionUtils.isEmpty(tCoupons1)){ - model.addAttribute("couponPriceSum", BigDecimal.ZERO); - }else { - tCoupons1.stream().map(TCoupon::getCouponPreferentialAmount).reduce(BigDecimal::add).ifPresent(bigDecimal -> model.addAttribute("couponPriceSum", bigDecimal)); - } +// List<Integer> usedCouponId = usedCoupon.stream().map(TOrder::getCouponId).collect(Collectors.toList()); +// if(CollectionUtils.isEmpty(usedCouponId)){ +// // 如果优惠券为空 +// model.addAttribute("couponPriceSum", BigDecimal.ZERO); +// }else { +// // 查询已使用优惠券金额求和 +// List<TCoupon> tCoupons1 = tCouponMapper.selectList(new EntityWrapper<TCoupon>().in("id", usedCouponId)); +// if(CollectionUtils.isEmpty(tCoupons1)){ +// model.addAttribute("couponPriceSum", BigDecimal.ZERO); +// }else { +// tCoupons1.stream().map(TCoupon::getCouponPreferentialAmount).reduce(BigDecimal::add).ifPresent(bigDecimal -> model.addAttribute("couponPriceSum", bigDecimal)); +// } +// } // 优惠券信息 // 过滤代理商发放的优惠券 - List<TCoupon> tCoupons = tCouponMapper.selectList(new EntityWrapper<TCoupon>()); - model.addAttribute("issuedCoupon",tCoupons.size()); + List<TUserToCoupon> tUserToCoupons = tUserToCouponMapper.selectList(new EntityWrapper<TUserToCoupon>().eq("objectId",tAgent.getId()) + .eq("roleType",3)); + BigDecimal couponPriceSum = BigDecimal.ZERO; + for (TUserToCoupon userToCoupon : tUserToCoupons) { + TCoupon tCoupons1 = tCouponMapper.selectById(userToCoupon.getCouponId()); + couponPriceSum = couponPriceSum.add(tCoupons1.getCouponPreferentialAmount().multiply(new BigDecimal(userToCoupon.getCouponTotal()))); + } + model.addAttribute("couponPriceSum", couponPriceSum); + // 过滤代理商发放的优惠券 + int sum = tUserToCoupons.stream().mapToInt(TUserToCoupon::getCouponTotal).sum(); + model.addAttribute("issuedCoupon",sum); // 司机信息 // 司机数 List<TDriver> drivers = tDriverMapper.selectList(new EntityWrapper<TDriver>().eq("agentId", tAgent.getId())); 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); @@ -135,6 +162,8 @@ List<TOrder> tOrders = tOrderMapper.selectList(new EntityWrapper<TOrder>()); // 查询优惠券 List<TCoupon> tCoupons = tCouponMapper.selectList(new EntityWrapper<TCoupon>()); + // 用户 + List<TUserToCoupon> tUserToCoupons = tUserToCouponMapper.selectList(new EntityWrapper<TUserToCoupon>()); // 查询司机信息 List<TDriver> tDrivers = tDriverMapper.selectList(new EntityWrapper<TDriver>()); @@ -152,23 +181,38 @@ 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())) && Objects.nonNull(order.getCouponId()) && tAgent.getId().equals(order.getAgentId())).collect(Collectors.toList()); tAgentResp.setUsedCoupon(usedCoupon.size()); // 已使用优惠券金额求和,已使用优惠券id - List<Integer> usedCouponId = usedCoupon.stream().map(TOrder::getCouponId).collect(Collectors.toList()); - // 查询已使用优惠券金额求和 - List<TCoupon> tCoupons1 = tCouponMapper.selectList(new EntityWrapper<TCoupon>().in("id", usedCouponId)); - tCoupons1.stream().map(TCoupon::getCouponPreferentialAmount).reduce(BigDecimal::add).ifPresent(tAgentResp::setCouponPriceSum); +// List<Integer> usedCouponId = usedCoupon.stream().map(TOrder::getCouponId).collect(Collectors.toList()); +// if(CollectionUtils.isEmpty(usedCouponId)){ +// tAgentResp.setCouponPriceSum(BigDecimal.ZERO); +// }else { +// // 查询已使用优惠券金额求和 +// BigDecimal couponPriceSum = BigDecimal.ZERO; +// for (Integer id : usedCouponId) { +// TCoupon tCoupons1 = tCouponMapper.selectById(id); +// couponPriceSum = couponPriceSum.add(tCoupons1.getCouponPreferentialAmount()); +// } +// tAgentResp.setCouponPriceSum(couponPriceSum); +// } } - if(!CollectionUtils.isEmpty(tCoupons)){ + if(!CollectionUtils.isEmpty(tUserToCoupons)){ // 过滤代理商发放的优惠券 - List<TCoupon> coupons = tCoupons.stream().filter(coupon -> tAgent.getId().equals(coupon.getAgentId())).collect(Collectors.toList()); - tAgentResp.setIssuedCoupon(coupons.size()); + List<TUserToCoupon> userToCoupons = tUserToCoupons.stream().filter(coupon -> tAgent.getId().equals(coupon.getObjectId()) && coupon.getRoleType() == 3).collect(Collectors.toList()); + int sum = userToCoupons.stream().mapToInt(TUserToCoupon::getCouponTotal).sum(); + tAgentResp.setIssuedCoupon(sum); + BigDecimal couponPriceSum = BigDecimal.ZERO; + for (TUserToCoupon userToCoupon : userToCoupons) { + TCoupon tCoupons1 = tCouponMapper.selectById(userToCoupon.getCouponId()); + couponPriceSum = couponPriceSum.add(tCoupons1.getCouponPreferentialAmount().multiply(new BigDecimal(userToCoupon.getCouponTotal()))); + } + tAgentResp.setCouponPriceSum(couponPriceSum); } if(!CollectionUtils.isEmpty(tDrivers)){ @@ -177,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); } @@ -187,4 +232,38 @@ } return tAgentRespList; } + + @Override + public void getDataStatistics(Integer agentId, Model model,Map<String, Object> map) { + // 代理商总数 + Integer agentTotal = tAgentMapper.selectCount(new EntityWrapper<TAgent>() + .eq("id", agentId)); + // 代理商最近一个月新增数量 + LocalDateTime now = LocalDateTime.now(); + LocalDateTime localDate = now.minusMonths(1); + Integer agentMonthTotal = tAgentMapper.selectCount(new EntityWrapper<TAgent>() + .eq("id", agentId) + .between("createTime", localDate, now)); + model.addAttribute("agentTotal",agentTotal); + model.addAttribute("agentMonthTotal",agentMonthTotal); + map.put("agentTotal",agentTotal); + map.put("agentMonthTotal",agentMonthTotal); + } + + @Override + public void getDataStatisticsByIds(List<Integer> ids, Model model, Map<String, Object> map) { + // 代理商总数 + Integer agentTotal = tAgentMapper.selectCount(new EntityWrapper<TAgent>() + .in("id", ids)); + // 代理商最近一个月新增数量 + LocalDateTime now = LocalDateTime.now(); + LocalDateTime localDate = now.minusMonths(1); + Integer agentMonthTotal = tAgentMapper.selectCount(new EntityWrapper<TAgent>() + .in("id", ids) + .between("createTime", localDate, now)); + model.addAttribute("agentTotal",agentTotal); + model.addAttribute("agentMonthTotal",agentMonthTotal); + map.put("agentTotal",agentTotal); + map.put("agentMonthTotal",agentMonthTotal); + } } -- Gitblit v1.7.1