| | |
| | | import com.yami.trading.dao.item.ItemMapper; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.cache.annotation.CacheEvict; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | |
| | | @Transactional |
| | | @Slf4j |
| | | public class ItemService extends ServiceImpl<ItemMapper, Item> { |
| | | public static final String ITEM_CACHE = "mdItemCache"; |
| | | public static final String ALL = "mdAll"; |
| | | public static final String ITEM_CACHE = "itemCache"; |
| | | public static final String ALL = "all"; |
| | | |
| | | @Autowired |
| | | private ItemLeverageService itemLeverageService; |
| | |
| | | return super.baseMapper.selectOne(queryWrapper); |
| | | } |
| | | |
| | | public Item findCurrBySymbol(String symbol) { |
| | | LambdaQueryWrapper<Item> queryWrapper = new LambdaQueryWrapper<Item>() |
| | | .eq(Item::getSymbol, symbol) |
| | | .last("LIMIT 1"); |
| | | return super.baseMapper.selectOne(queryWrapper); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 根据id查询 |
| | |
| | | return super.removeById(id); |
| | | } |
| | | |
| | | // 清除 list() 方法的缓存(关键:与@Cached的name和key一致) |
| | | /*@CacheEvict(cacheNames = ITEM_CACHE, key = "'all'") |
| | | public void clearListCache() { |
| | | log.info("已清除 list() 方法的缓存"); |
| | | }*/ |
| | | |
| | | public void reloadListAndCache() { |
| | | // 步骤1:清除 list() 方法的原有缓存(确保重新查询) |
| | | //clearListCache(); |
| | | |
| | | // 步骤2:重新调用 list() 方法,此时会执行数据库查询,且@Cached会自动更新缓存 |
| | | //List<Item> freshList = list(); |
| | | |
| | | // 步骤3(可选):如果需要同步更新 init() 方法中的 itemCache,重新调用 init() |
| | | init(); |
| | | log.info("初始化init()"); |
| | | } |
| | | |
| | | /** |