From 709a4a10be56952ead6340e4822fce41a66e47cd Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 26 七月 2023 18:39:28 +0800
Subject: [PATCH] Merge branch '1.1' of http://120.76.84.145:10101/gitblit/r/java/SuperSaveDriving into dev

---
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAgentServiceImpl.java |   48 +++++++++++++++++++++++++++++++++---------------
 1 files changed, 33 insertions(+), 15 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..d607725 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
@@ -111,7 +111,7 @@
         // 过滤已使用优惠券
         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());
+//        model.addAttribute("usedCoupon",usedCoupon.size());
         // 已使用优惠券金额求和,已使用优惠券id
 //        List<Integer> usedCouponId = usedCoupon.stream().map(TOrder::getCouponId).collect(Collectors.toList());
 //        if(CollectionUtils.isEmpty(usedCouponId)){
@@ -133,12 +133,18 @@
         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);
+        // 总量减去有效数量和过期数量为使用数量
+        int validCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getValidCount).sum();//有效数量
+        int expireCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getExpireCount).sum();//过期数量
+        model.addAttribute("usedCoupon",sum-validCount-expireCount);
         // 司机信息
         // 司机数
         List<TDriver> drivers = tDriverMapper.selectList(new EntityWrapper<TDriver>().eq("agentId", tAgent.getId()));
@@ -162,7 +168,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 +192,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 +214,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)){
                 // 司机数

--
Gitblit v1.7.1