From a4c86b6b9d61bec99bff97415ac25e1fd36fe28a Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期日, 09 四月 2023 19:17:56 +0800
Subject: [PATCH] 优化

---
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAgentServiceImpl.java |   65 ++++++++++++++++++++++++--------
 1 files changed, 49 insertions(+), 16 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 bede27d..3ba17f6 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
@@ -51,6 +51,8 @@
 
     @Autowired
     private TRechargeRecordMapper tRechargeRecordMapper;
+    @Autowired
+    private TUserToCouponMapper tUserToCouponMapper;
 
     @Override
     public EntityWrapper<TAgent> getAgentWrapper(String principal, String principalPhone, String createTime) {
@@ -106,17 +108,31 @@
         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));
-        }
+//        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()));
@@ -139,6 +155,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>());
 
@@ -163,16 +181,31 @@
                         && 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)){

--
Gitblit v1.7.1