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