| | |
| | | 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; |
| | |
| | | }); |
| | | } |
| | | |
| | | //更新商户统计实现 |
| | | 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); |
| | | } |
| | | } |