package com.ruoyi.shop.service.impl.shop;
|
|
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.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>
|
* 商户统计 服务实现类
|
* </p>
|
*
|
* @author jqs
|
* @since 2023-06-25
|
*/
|
@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);
|
}
|
}
|