From cbc564a7088503ad8cc7af4e1d2ba417d061e615 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期五, 30 六月 2023 11:35:05 +0800
Subject: [PATCH] 联调bug和统计完善

---
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopTotalServiceImpl.java |   91 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 91 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..b2c2fa5 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,7 @@
 import com.ruoyi.system.api.domain.dto.ShopTotalChangeDto;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.locks.Lock;
@@ -43,8 +44,98 @@
         });
     }
 
+    //更新商户统计实现
     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