From be9f0443216de264a214e8c4015f2eb890ffdfd8 Mon Sep 17 00:00:00 2001
From: Cui Zhi Feng <7426394+wuxixiaocui@user.noreply.gitee.com>
Date: 星期二, 03 九月 2024 10:25:06 +0800
Subject: [PATCH] 直接退款金额计算

---
 src/main/java/com/mzl/flower/service/flower/FlowerService.java |   69 +++++++++++++++++++++++-----------
 1 files changed, 47 insertions(+), 22 deletions(-)

diff --git a/src/main/java/com/mzl/flower/service/flower/FlowerService.java b/src/main/java/com/mzl/flower/service/flower/FlowerService.java
index 934ef42..9c63b20 100644
--- a/src/main/java/com/mzl/flower/service/flower/FlowerService.java
+++ b/src/main/java/com/mzl/flower/service/flower/FlowerService.java
@@ -11,6 +11,7 @@
 import com.mzl.flower.entity.customer.Collect;
 import com.mzl.flower.entity.customer.Customer;
 import com.mzl.flower.entity.flower.*;
+import com.mzl.flower.entity.menber.Member;
 import com.mzl.flower.entity.payment.Cart;
 import com.mzl.flower.entity.payment.Order;
 import com.mzl.flower.entity.payment.OrderItem;
@@ -91,6 +92,11 @@
                 flowerMapper.updateFlowerSales(oi.getFlowerId(), oi.getNum());
             }
         }
+    }
+
+    @Async
+    public synchronized void updateCategoryInfo(Long category){
+        flowerMapper.updateFlowerCategoryInfo(category);
     }
 
     /**
@@ -462,20 +468,7 @@
         dto.setUserId(SecurityUtils.getUserId());
         dto.setParamId(paramService.getParamIdByCategoryId(dto.getCategory()));
         List<FlowerShowListDTO> ls = flowerMapper.selectFlowerShowList(page, dto);
-        if(ls != null && ls.size() > 0){
-            Long partnerId = getCurrentCustomerPartner();
-            for(FlowerShowListDTO s : ls){
-                BigDecimal price = getFinalPrice(partnerId, s.getCategory()
-                        , s.getId(), s.getPrice(), s.getLevel());
-                s.setPrice(price);
-                s.setCollection(s.getCollectCount() > 0);
-                s.setShopnum(s.getShopnum() == null ? 0 : s.getShopnum());
-
-                if(s.getSales() != null && s.getRealSales() != null){
-                    s.setSales(s.getSales() + s.getRealSales());
-                }
-            }
-        }
+        prepareShowList(ls);
 
         page.setRecords(ls);
 
@@ -502,10 +495,14 @@
         if(pId == null){
             pId = getCurrentCustomerPartner();
         }
+        Customer p = getCurrentCustomerWithoutCheck();
+        Long levelId = p == null ? null : p.getLevelId();
+        Member member = getMember(levelId);
 
         BigDecimal price = getFinalPrice(pId, dto.getCategory()
                 , s.getId(), dto.getPrice(), dto.getLevel());
         dto.setPrice(price);
+        dto.setPriceMember(calculateMemberPrice(price, member));
 
         String userId = SecurityUtils.getUserId();
         if(StringUtils.isNotEmpty(userId)) {
@@ -597,17 +594,42 @@
 
     public Page<FlowerShowListDTO> myCollect(Page page, FlowerShowQueryDTO dto) {
         dto.setUserId(SecurityUtils.getUserId());
-        /*if (StringUtils.isNotEmpty(dto.getColumn())) {
-            List<OrderItem> orders = new ArrayList<>();
-            OrderItem i = new OrderItem();
-            i.setColumn(dto.getColumn());
-            i.setAsc(dto.isAsc());
-            page.setOrders(orders);
-        }*/
+        if (StringUtils.isNotEmpty(dto.getColumn())) {
+            if(dto.getColumn().contains("sales")
+                    || dto.getColumn().contains("stock")){
+                dto.setColumn(dto.getColumn() + " desc");
+            }
+        }
+
         dto.setParamId(paramService.getParamIdByCategoryId(dto.getCategory()));
         List<FlowerShowListDTO> flowerShowListDTOS = flowerMapper.myCollect(page, dto);
+        prepareShowList(flowerShowListDTOS);
+
         page.setRecords(flowerShowListDTOS);
         return page;
+    }
+
+    private void prepareShowList(List<FlowerShowListDTO> ls){
+        if(ls != null && ls.size() > 0){
+            Customer p = getCurrentCustomerWithoutCheck();
+            Long partnerId = p == null ? null : p.getPartnerId();
+            Long levelId = p == null ? null : p.getLevelId();
+            Member member = getMember(levelId);
+
+            for(FlowerShowListDTO s : ls){
+                BigDecimal price = getFinalPrice(partnerId, s.getCategory()
+                        , s.getId(), s.getPrice(), s.getLevel());
+                s.setPrice(price);
+                s.setPriceMember(calculateMemberPrice(price, member));
+
+                s.setCollection(s.getCollectCount() > 0);
+                s.setShopnum(s.getShopnum() == null ? 0 : s.getShopnum());
+
+                if(s.getSales() != null && s.getRealSales() != null){
+                    s.setSales(s.getSales() + s.getRealSales());
+                }
+            }
+        }
     }
 
     public Page<FlowerShowListDTO> myBrowseHistory(Page page, FlowerShowQueryDTO dto) {
@@ -621,6 +643,8 @@
         }*/
         dto.setParamId(paramService.getParamIdByCategoryId(dto.getCategory()));
         List<FlowerShowListDTO> flowerShowListDTOS = flowerMapper.myBrowseHistory(page, dto);
+        prepareShowList(flowerShowListDTOS);
+
         page.setRecords(flowerShowListDTOS);
         return page;
     }
@@ -629,7 +653,8 @@
         if(dto.getZoneId()!=null && dto.getZoneId().size()>0){//添加专区
             for (Long zoneId : dto.getZoneId()) {
                 for(Long flowerId : dto.getIds()) {
-                    FlowerZoneMap fzp = flowerZoneMapMapper.selectOne(new QueryWrapper<FlowerZoneMap>().eq("flower_id", flowerId).eq("zone_id", zoneId));
+                    FlowerZoneMap fzp = flowerZoneMapMapper.selectOne(new QueryWrapper<FlowerZoneMap>()
+                            .eq("flower_id", flowerId).eq("zone_id", zoneId));
                     if(fzp==null){
                         fzp = new FlowerZoneMap();
                         fzp.setFlowerId(flowerId);

--
Gitblit v1.9.3