From c18ec3846c8483975de2224c1ecac9470e9b2804 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 16 八月 2023 19:21:36 +0800 Subject: [PATCH] 同步代码 --- management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAgentServiceImpl.java | 160 ++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 114 insertions(+), 46 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 33fde55..f0fbe97 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 @@ -1,8 +1,12 @@ package com.stylefeng.guns.modular.system.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; import com.stylefeng.guns.core.shiro.ShiroKit; import com.stylefeng.guns.core.util.DateUtil; +import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.controller.resp.TAgentResp; import com.stylefeng.guns.modular.system.dao.*; import com.stylefeng.guns.modular.system.enums.OrderStateEnum; @@ -10,8 +14,12 @@ 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.IDivisionRecordService; import com.stylefeng.guns.modular.system.service.ITAgentService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.stylefeng.guns.modular.system.util.MallBook.model.InterfaceResponse; +import com.stylefeng.guns.modular.system.util.MallBook.model.QueryBalance; +import com.stylefeng.guns.modular.system.util.MallBook.util.TrhRequest; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -55,6 +63,9 @@ @Autowired private TUserToCouponMapper tUserToCouponMapper; + @Autowired + private IDivisionRecordService divisionRecordService; + @Override public EntityWrapper<TAgent> getAgentWrapper(String principal, String principalPhone, String createTime,Integer status) { EntityWrapper<TAgent> wrapper = new EntityWrapper<>(); @@ -95,6 +106,7 @@ model.addAttribute("startTimeToEndTime",new SimpleDateFormat("yyyy-MM-dd").format(tAgent.getCreateTime()).replace("-",".") + "-" + new SimpleDateFormat("yyyy-MM-dd").format(new Date()).replace("-",".")); + model.addAttribute("id", agentId); model.addAttribute("principal",tAgent.getPrincipal()); model.addAttribute("principalPhone",tAgent.getPrincipalPhone()); model.addAttribute("email",tAgent.getEmail()); @@ -108,24 +120,6 @@ List<TOrder> orders = orderList.stream().filter(order -> (order.getState().equals(OrderStateEnum.FINISH.getCode()) || order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode())) && 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()); -// 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<TUserToCoupon> tUserToCoupons = tUserToCouponMapper.selectList(new EntityWrapper<TUserToCoupon>().eq("objectId",tAgent.getId()) @@ -133,26 +127,29 @@ BigDecimal couponPriceSum = BigDecimal.ZERO; for (TUserToCoupon userToCoupon : tUserToCoupons) { TCoupon tCoupons1 = tCouponMapper.selectById(userToCoupon.getCouponId()); - couponPriceSum = couponPriceSum.add(tCoupons1.getCouponPreferentialAmount().multiply(new BigDecimal(userToCoupon.getCouponTotal()))); + if(Objects.nonNull(tCoupons1)){ + 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.AGENT.getCode()) - .eq("payStatus", PayStatusEnum.FINISH.getCode())); - if(CollectionUtils.isEmpty(tRechargeRecords)){ - model.addAttribute("driverRecharge",BigDecimal.ZERO); - }else { - tRechargeRecords.stream().map(TRechargeRecord::getAmount).reduce(BigDecimal::add).ifPresent(record->model.addAttribute("driverRecharge",record)); + // 总量减去有效数量和过期数量为使用数量 + int validCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getValidCount).sum();//有效数量 + int expireCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getExpireCount).sum();//过期数量 + model.addAttribute("usedCoupon",sum-validCount-expireCount); + + Double aDouble = divisionRecordService.queryTotalMoney(2, agentId); + model.addAttribute("income",aDouble); + QueryBalance queryBalance = new QueryBalance(); + queryBalance.setUserId(tAgent.getMerchantNumber()); + TrhRequest<QueryBalance> request = new TrhRequest(); + InterfaceResponse execute = request.execute(queryBalance, QueryBalance.SERVICE_CODE); + model.addAttribute("balance", 0); + if("0000".equals(execute.getCode())){ + JSONObject jsonObject = JSON.parseObject(execute.getResult()); + model.addAttribute("balance", jsonObject.getDoubleValue("settledAmount") / 100); } } @@ -162,7 +159,7 @@ 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>()); @@ -186,7 +183,13 @@ // 过滤已使用优惠券 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()); + // 金额 + Optional<BigDecimal> reduce = usedCoupon.stream().map(TOrder::getDiscountedPrice).reduce(BigDecimal::add); + reduce.ifPresent(tAgentResp::setCouponPriceSum); + + // 已使用优惠券金额求和,已使用优惠券id // List<Integer> usedCouponId = usedCoupon.stream().map(TOrder::getCouponId).collect(Collectors.toList()); // if(CollectionUtils.isEmpty(usedCouponId)){ @@ -202,18 +205,24 @@ // } } - if(!CollectionUtils.isEmpty(tUserToCoupons)){ - // 过滤代理商发放的优惠券 - 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(tUserToCoupons)){ +// // 过滤代理商发放的优惠券 +// 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); +// // 总量减去有效数量和过期数量为使用数量 +// int validCount = userToCoupons.stream().mapToInt(TUserToCoupon::getValidCount).sum();//有效数量 +// int expireCount = userToCoupons.stream().mapToInt(TUserToCoupon::getExpireCount).sum();//过期数量 +// tAgentResp.setUsedCoupon(sum-validCount-expireCount); +// BigDecimal couponPriceSum = BigDecimal.ZERO; +// for (TUserToCoupon userToCoupon : userToCoupons) { +// TCoupon tCoupons1 = tCouponMapper.selectById(userToCoupon.getCouponId()); +// if(Objects.nonNull(tCoupons1)){ +// couponPriceSum = couponPriceSum.add(tCoupons1.getCouponPreferentialAmount().multiply(new BigDecimal(userToCoupon.getCouponTotal()))); +// } +// } +// tAgentResp.setCouponPriceSum(couponPriceSum); +// } if(!CollectionUtils.isEmpty(tDrivers)){ // 司机数 @@ -266,4 +275,63 @@ map.put("agentTotal",agentTotal); map.put("agentMonthTotal",agentMonthTotal); } + + + @Override + public Map<String, Object> queryAgentSummaryData(Integer id, String time) { + // 查询代理商用户信息 + TAgent tAgent = tAgentMapper.selectById(id); + Map<String, Object> map = new HashMap<>(); + String startTime = ""; + String endTime = ""; + if(ToolUtil.isNotEmpty(time)){ + startTime = time.split(" - ")[0]; + endTime = time.split(" - ")[1]; + } + Wrapper<TOrder> agentId = new EntityWrapper<TOrder>().eq("agentId", tAgent.getId()); + if(ToolUtil.isNotEmpty(time)){ + agentId.last(" and DATE_FORMAT(createTime, '%Y-%m-%d') between '" + startTime + "' and '" + endTime + "'"); + } + List<TOrder> orderList = tOrderMapper.selectList(agentId); + map.put("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.getOrderMoney().compareTo(new BigDecimal("14")) && order.getAgentId().equals(tAgent.getId())).collect(Collectors.toList()); + map.put("validOrder",orders.size()); + // 优惠券信息 + // 过滤代理商发放的优惠券 + Wrapper<TUserToCoupon> wrapper = new EntityWrapper<TUserToCoupon>().eq("objectId", tAgent.getId()) + .eq("roleType", 3); + if(ToolUtil.isNotEmpty(time)){ + wrapper.last(" and DATE_FORMAT(createTime, '%Y-%m-%d') between '" + startTime + "' and '" + endTime + "'"); + } + List<TUserToCoupon> tUserToCoupons = tUserToCouponMapper.selectList(wrapper); + BigDecimal couponPriceSum = BigDecimal.ZERO; + for (TUserToCoupon userToCoupon : tUserToCoupons) { + TCoupon tCoupons1 = tCouponMapper.selectById(userToCoupon.getCouponId()); + if(Objects.nonNull(tCoupons1)){ + couponPriceSum = couponPriceSum.add(tCoupons1.getCouponPreferentialAmount().multiply(new BigDecimal(userToCoupon.getCouponTotal()))); + } + } + map.put("couponPriceSum", couponPriceSum); + // 过滤代理商发放的优惠券 + int sum = tUserToCoupons.stream().mapToInt(TUserToCoupon::getCouponTotal).sum(); + // 总量减去有效数量和过期数量为使用数量 + int validCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getValidCount).sum();//有效数量 + int expireCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getExpireCount).sum();//过期数量 + map.put("usedCoupon",sum-validCount-expireCount); + + Double aDouble = divisionRecordService.queryTotalMoney(2, id); + map.put("income",aDouble); + QueryBalance queryBalance = new QueryBalance(); + queryBalance.setUserId(tAgent.getMerchantNumber()); + TrhRequest<QueryBalance> request = new TrhRequest(); + InterfaceResponse execute = request.execute(queryBalance, QueryBalance.SERVICE_CODE); + map.put("balance", 0); + if("0000".equals(execute.getCode())){ + JSONObject jsonObject = JSON.parseObject(execute.getResult()); + map.put("balance", jsonObject.getDoubleValue("settledAmount") / 100); + } + return map; + } } -- Gitblit v1.7.1