| | |
| | | package com.ruoyi.shop.service.impl.shop; |
| | | |
| | | import com.ruoyi.shop.domain.pojo.ShopTotal; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.shop.domain.pojo.shop.ShopTotal; |
| | | import com.ruoyi.shop.mapper.shop.ShopTotalMapper; |
| | | import com.ruoyi.shop.service.shop.ShopTotalService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.system.api.domain.dto.ShopTotalChangeDto; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.concurrent.ExecutorService; |
| | | import java.util.concurrent.Executors; |
| | | import java.util.concurrent.locks.Lock; |
| | | import java.util.concurrent.locks.ReentrantLock; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Service |
| | | public class ShopTotalServiceImpl extends ServiceImpl<ShopTotalMapper, ShopTotal> implements ShopTotalService { |
| | | |
| | | private Lock lock = new ReentrantLock(); |
| | | private ExecutorService executor = Executors.newSingleThreadExecutor(); |
| | | |
| | | /** |
| | | * @param shopTotalChangeDto |
| | | * @return void |
| | | * @description 更新商户统计 |
| | | */ |
| | | @Override |
| | | public void changeShopTotal(ShopTotalChangeDto shopTotalChangeDto) { |
| | | executor.execute(() -> { |
| | | lock.lock(); |
| | | try { |
| | | handleShopTotal(shopTotalChangeDto); |
| | | } finally { |
| | | lock.unlock(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | private void handleShopTotal(ShopTotalChangeDto shopTotalChangeDto){ |
| | | ShopTotal shopTotal = this.getById(shopTotalChangeDto.getShopId()); |
| | | this.saveOrUpdate(shopTotal); |
| | | } |
| | | } |