package data.loadcache; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.jdbc.core.JdbcTemplate; import kernel.bo.RecordObjectMapper; import project.RedisKeys; import project.redis.RedisHandler; import project.wallet.Wallet; import project.wallet.WalletExtend; import project.wallet.WalletLog; import project.wallet.WalletRedisKeys; import project.wallet.rate.ExchangeRate; import project.wallet.rate.UserRateConfig; public class WalletLoadCacheService { private static final Logger logger = LoggerFactory.getLogger(WalletLoadCacheService.class); private JdbcTemplate jdbcTemplate; private RedisHandler redisHandler; public void loadcache() { // loadWallet(); // logger.info("完成Wallet数据加载redis"); loadWalletExtend(); logger.info("完成WalletExtend数据加载redis"); loadExchangeRate(); logger.info("完成ExchangeRate数据加载redis"); loadUserRateConfig(); logger.info("完成UserRateConfig数据加载redis"); loadWalletLog(); logger.info("完成WalletLog数据加载redis"); } public void loadWallet() { List list = jdbcTemplate.query("SELECT * FROM T_WALLET", RecordObjectMapper.newInstance(Wallet.class)); Map params = new ConcurrentHashMap(); for (Wallet wallet : list) { params.put(WalletRedisKeys.WALLET_PARTY_ID + wallet.getPartyId().toString(), wallet); } redisHandler.setBatchSync(params); } public void loadWalletExtend() { List list = jdbcTemplate.query("SELECT * FROM T_WALLET_EXTEND", RecordObjectMapper.newInstance(WalletExtend.class)); Map params = new ConcurrentHashMap(); for (WalletExtend walletExtend : list) { params.put( WalletRedisKeys.WALLET_EXTEND_PARTY_ID + walletExtend.getPartyId() + walletExtend.getWallettype(), walletExtend); } redisHandler.setBatchSync(params); } public void loadExchangeRate() { List list = jdbcTemplate.query("SELECT * FROM T_EXCHANGE_RATE", RecordObjectMapper.newInstance(ExchangeRate.class)); Map> cacheMap = new ConcurrentHashMap>(); for (ExchangeRate exchangeRate : list) { if (cacheMap.containsKey(exchangeRate.getOut_or_in())) { Map map = cacheMap.get(exchangeRate.getOut_or_in()); map.put(exchangeRate.getCurrency(), exchangeRate); cacheMap.put(exchangeRate.getOut_or_in(), map); } else { Map map = new ConcurrentHashMap(); map.put(exchangeRate.getCurrency(), exchangeRate); cacheMap.put(exchangeRate.getOut_or_in(), map); } redisHandler.setSync(RedisKeys.EXCHANGE_RATE_ID + exchangeRate.getId().toString(), exchangeRate); redisHandler.setSync(RedisKeys.EXCHANGE_RATE_CURRENCY + exchangeRate.getCurrency(), exchangeRate); } for (Entry> entry : cacheMap.entrySet()) { redisHandler.setSync(RedisKeys.EXCHANGE_RATE_OUTORIN + entry.getKey(), entry.getValue()); } } public void loadUserRateConfig() { List list = jdbcTemplate.query("SELECT * FROM T_USER_RATE_CONFIG", RecordObjectMapper.newInstance(UserRateConfig.class)); Map params = new ConcurrentHashMap(); for (UserRateConfig config : list) { params.put(RedisKeys.USER_RATE_CONFIG_PARTY_ID + config.getPartyId().toString(), config); } redisHandler.setBatchSync(params); } public void loadWalletLog() { List list = jdbcTemplate.query("SELECT * FROM T_WALLET_LOG", RecordObjectMapper.newInstance(WalletLog.class)); Map params = new ConcurrentHashMap(); for (WalletLog walletLog : list) { params.put(RedisKeys.WALLET_LOG_ORDERNO + walletLog.getOrder_no(), walletLog); } redisHandler.setBatchSync(params); } public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public void setRedisHandler(RedisHandler redisHandler) { this.redisHandler = redisHandler; } }