package com.xcong.excoin.utils; import cn.hutool.core.bean.BeanUtil; import com.xcong.excoin.modules.platform.dao.TradeSettingDao; import com.xcong.excoin.modules.platform.entity.PlatformSymbolsSkuEntity; import com.xcong.excoin.modules.platform.entity.PlatformTradeSettingEntity; import org.apache.commons.collections.CollectionUtils; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author wzy * @date 2020-05-28 **/ @Component public class CacheSettingUtils { /** * 交易设置缓存Key */ private final static String TRADE_SETTING_KEY = "trade_setting_key"; /** * 币种规格缓存key */ private final static String TRADE_SYMBOL_SKU_KEY = "trade_symbol_sku_key"; @Resource private TradeSettingDao tradeSettingDao; @Resource private RedisUtils redisUtils; /** * 获取币种规格 * * @param symbol * @return */ public BigDecimal getSymbolSku(String symbol) { Object hget = redisUtils.hget(TRADE_SYMBOL_SKU_KEY, symbol); if (hget == null) { List symbolSkubySymbol = tradeSettingDao.findAllSymbolSkubySymbol(); Map map = new HashMap(); if (CollectionUtils.isNotEmpty(symbolSkubySymbol)) { for (PlatformSymbolsSkuEntity symbolSku : symbolSkubySymbol) { map.put(symbolSku.getName(), symbolSku.getLotnumber()); } // 存入redis redisUtils.hmset(TRADE_SYMBOL_SKU_KEY, map); } hget = redisUtils.hget(TRADE_SYMBOL_SKU_KEY, symbol); } return new BigDecimal(hget.toString()); } /** * 获取交易设置缓存 * * @return */ public PlatformTradeSettingEntity getTradeSetting() { Map hmget = redisUtils.hmget(TRADE_SETTING_KEY); if (hmget == null || hmget.size() == 0) { PlatformTradeSettingEntity tradeSetting = tradeSettingDao.findTradeSetting(); redisUtils.hmset(TRADE_SETTING_KEY, BeanUtil.beanToMap(tradeSetting)); return tradeSetting; } return BeanUtil.mapToBean(hmget, PlatformTradeSettingEntity.class, true); } }