From f975b6d0832b447654aaf2372ce72f71ebb7f095 Mon Sep 17 00:00:00 2001
From: chenye <chenye0811@qq.com>
Date: 星期二, 11 七月 2023 11:11:55 +0800
Subject: [PATCH] 1

---
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopTotalServiceImpl.java |  101 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 101 insertions(+), 0 deletions(-)

diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopTotalServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopTotalServiceImpl.java
index 5900929..73ece42 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopTotalServiceImpl.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopTotalServiceImpl.java
@@ -7,6 +7,9 @@
 import com.ruoyi.system.api.domain.dto.ShopTotalChangeDto;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.locks.Lock;
@@ -25,6 +28,9 @@
 
     private Lock lock = new ReentrantLock();
     private ExecutorService executor = Executors.newSingleThreadExecutor();
+    @Resource
+    private ShopTotalMapper shopTotalMapper;
+
 
     /**
      * @param shopTotalChangeDto
@@ -43,8 +49,103 @@
         });
     }
 
+    @Override
+    public ShopTotal shopsTotalByIds(List<Long> shopIds) {
+        return shopTotalMapper.shopsTotalByIds(shopIds);
+    }
+
+    //更新商户统计实现
     private void handleShopTotal(ShopTotalChangeDto shopTotalChangeDto){
         ShopTotal shopTotal = this.getById(shopTotalChangeDto.getShopId());
+        //订单变化
+        BigDecimal payMoney = BigDecimal.ZERO;
+        Boolean haveOrder = false;
+        if(shopTotalChangeDto.getCycleMoney()!=null){
+            shopTotal.setTotalCycleMoney(shopTotal.getTotalCycleMoney().add(shopTotalChangeDto.getCycleMoney()));
+            payMoney = payMoney.add(shopTotalChangeDto.getCycleMoney());
+            shopTotal.setTotalCycleOrder(shopTotal.getTotalCycleOrder()+1);
+            haveOrder = true;
+        }
+        if(shopTotalChangeDto.getExperienceMoney()!=null){
+            shopTotal.setTotalExperienceMoney(shopTotal.getTotalExperienceMoney().add(shopTotalChangeDto.getExperienceMoney()));
+            payMoney = payMoney.add(shopTotalChangeDto.getExperienceMoney());
+            shopTotal.setTotalExperienceOrder(shopTotal.getTotalExperienceOrder()+1);
+            haveOrder = true;
+        }
+        if(shopTotalChangeDto.getServiceMoney()!=null){
+            shopTotal.setTotalServiceMoney(shopTotal.getTotalServiceMoney().add(shopTotalChangeDto.getServiceMoney()));
+            payMoney = payMoney.add(shopTotalChangeDto.getServiceMoney());
+            shopTotal.setTotalServiceOrder(shopTotal.getTotalServiceOrder()+1);
+            haveOrder = true;
+        }
+        if(shopTotalChangeDto.getGoodsMoney()!=null){
+            shopTotal.setTotalGoodsMoney(shopTotal.getTotalGoodsMoney().add(shopTotalChangeDto.getGoodsMoney()));
+            payMoney = payMoney.add(shopTotalChangeDto.getGoodsMoney());
+            shopTotal.setTotalGoodsOrder(shopTotal.getTotalGoodsOrder()+1);
+            haveOrder = true;
+        }
+        if(haveOrder){
+            shopTotal.setTotalOrderMoney(shopTotal.getTotalOrderMoney().add(payMoney));
+            shopTotal.setTotalOrder(shopTotal.getTotalOrder()+1);
+        }
+        //活动变化
+        if(shopTotalChangeDto.getActivityCount()!=null){
+            shopTotal.setTotalActivityCount(shopTotal.getTotalActivityCount()+shopTotalChangeDto.getActivityCount());
+        }
+        //服务变化
+        Integer serviceCount = 0;
+        Boolean haveService = false;
+        if(shopTotalChangeDto.getTypeCycleService()!=null){
+            if(shopTotalChangeDto.getTypeCycleService()==2){
+                shopTotal.setUsedCycleService(shopTotal.getUsedCycleService()+shopTotalChangeDto.getCycleService());
+                shopTotal.setUseableCycleService(shopTotal.getUseableCycleService()-shopTotalChangeDto.getCycleService());
+                shopTotal.setUseableCyclePerson(shopTotal.getUseableCyclePerson()-shopTotalChangeDto.getCyclePerson());
+                serviceCount = serviceCount - shopTotalChangeDto.getCycleService();
+            }else{
+                shopTotal.setTotalCycleService(shopTotal.getTotalCycleService()+shopTotalChangeDto.getCycleService());
+                shopTotal.setUseableCycleService(shopTotal.getUseableCycleService()+shopTotalChangeDto.getCycleService());
+                shopTotal.setTotalCyclePerson(shopTotal.getTotalCyclePerson()+shopTotalChangeDto.getCyclePerson());
+                serviceCount = serviceCount + shopTotalChangeDto.getCycleService();
+            }
+            haveService = true;
+        }
+        if(shopTotalChangeDto.getTypeServiceService()!=null){
+            if(shopTotalChangeDto.getTypeServiceService()==2){
+                shopTotal.setUsedServiceService(shopTotal.getUsedServiceService()+shopTotalChangeDto.getServiceService());
+                shopTotal.setUseableServiceService(shopTotal.getUseableServiceService()-shopTotalChangeDto.getServiceService());
+                shopTotal.setUseableServicePerson(shopTotal.getUseableServicePerson()-shopTotalChangeDto.getServicePerson());
+                serviceCount = serviceCount - shopTotalChangeDto.getServiceService();
+            }else{
+                shopTotal.setTotalServiceService(shopTotal.getTotalServiceService()+shopTotalChangeDto.getServiceService());
+                shopTotal.setUseableServiceService(shopTotal.getUseableServiceService()+shopTotalChangeDto.getServiceService());
+                shopTotal.setTotalServicePerson(shopTotal.getTotalServicePerson()+shopTotalChangeDto.getServicePerson());
+                serviceCount = serviceCount + shopTotalChangeDto.getServiceService();
+            }
+            haveService = true;
+        }
+        if(shopTotalChangeDto.getTypeExperienceService()!=null){
+            if(shopTotalChangeDto.getTypeExperienceService()==2){
+                shopTotal.setUsedExperienceService(shopTotal.getUsedExperienceService()+shopTotalChangeDto.getExperienceService());
+                shopTotal.setUseableExperienceService(shopTotal.getUseableExperienceService()-shopTotalChangeDto.getExperienceService());
+                shopTotal.setUseableExperiencePerson(shopTotal.getUseableExperiencePerson()-shopTotalChangeDto.getExperiencePerson());
+                serviceCount = serviceCount - shopTotalChangeDto.getExperienceService();
+            }else{
+                shopTotal.setTotalExperienceService(shopTotal.getTotalExperienceService()+shopTotalChangeDto.getExperienceService());
+                shopTotal.setUseableExperienceService(shopTotal.getUseableExperienceService()+shopTotalChangeDto.getExperienceService());
+                shopTotal.setTotalExperiencePerson(shopTotal.getTotalExperiencePerson()+shopTotalChangeDto.getExperiencePerson());
+                serviceCount = serviceCount + shopTotalChangeDto.getExperienceService();
+            }
+            haveService = true;
+        }
+        if(haveService){
+            if(serviceCount<0){
+                shopTotal.setUsedServiceCount(shopTotal.getUsedServiceCount()+serviceCount);
+                shopTotal.setUseableServiceCount(shopTotal.getUsedServiceCount()+serviceCount);
+            }else{
+                shopTotal.setTotalServiceCount(shopTotal.getTotalServiceCount()+serviceCount);
+                shopTotal.setUseableServiceCount(shopTotal.getUsedServiceCount()+serviceCount);
+            }
+        }
         this.saveOrUpdate(shopTotal);
     }
 }

--
Gitblit v1.7.1