| 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<PlatformSymbolsSkuEntity> symbolSkubySymbol = tradeSettingDao.findAllSymbolSkubySymbol(); | 
|             Map<String, Object> map = new HashMap<String, Object>(); | 
|             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<Object, Object> 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); | 
|     } | 
|   | 
| } |