From c9db68e33f90231b064b8864fc69ccf7d25f5e0b Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 25 八月 2022 17:55:40 +0800 Subject: [PATCH] 淘宝商品ID字符串化 --- service-lijin/src/main/java/com/ks/lijin/service/manager/LiJinProviderTaoKeAccountManager.java | 49 +++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 41 insertions(+), 8 deletions(-) diff --git a/service-lijin/src/main/java/com/ks/lijin/service/manager/LiJinProviderTaoKeAccountManager.java b/service-lijin/src/main/java/com/ks/lijin/service/manager/LiJinProviderTaoKeAccountManager.java index d5846e7..3875662 100644 --- a/service-lijin/src/main/java/com/ks/lijin/service/manager/LiJinProviderTaoKeAccountManager.java +++ b/service-lijin/src/main/java/com/ks/lijin/service/manager/LiJinProviderTaoKeAccountManager.java @@ -6,6 +6,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.yeshi.utils.TimeUtil; +import redis.clients.jedis.Jedis; +import redis.clients.jedis.JedisPool; import javax.annotation.Resource; import java.math.BigDecimal; @@ -21,6 +23,9 @@ @Resource private RedisTemplate redisTemplate; + @Resource + private JedisPool jedisPool; + /** * 绀奸噾鍒涘缓鎴愬姛 @@ -30,32 +35,60 @@ * @param money */ @Transactional(rollbackFor = Exception.class) - public void createLijinSuccess(Long accountId, Long auctionId, BigDecimal money, Date createTime) { + public void createLijinSuccess(Long accountId, String auctionId, BigDecimal money, Date createTime) { String day = TimeUtil.getGernalTime(createTime.getTime(), "yyyyMMdd"); - String goodsKeyPrefix = String.format("lijingoodsnum-%s-%s-", day, accountId); - String goodsKey = goodsKeyPrefix + auctionId; + String goodsKey = String.format("lijingoodsnum-%s-%s", day, accountId); String accountMoneyKey = String.format("lijinaccountmoney-%s-%s", day, accountId); //淇濆瓨璐﹀彿褰撴棩鐨勫晢鍝佹暟閲忔秷鑰� - redisTemplate.opsForValue().increment(goodsKey, 1); + redisTemplate.opsForSet().add(goodsKey, auctionId); //淇濆瓨褰撴棩璐﹀彿鐨勮祫閲戞秷鑰� redisTemplate.opsForValue().increment(accountMoneyKey, money.multiply(new BigDecimal(100)).intValue()); //鑾峰彇璐﹀彿褰撴棩鐨勫晢鍝佹暟閲� - int goodsNum = redisTemplate.keys(goodsKeyPrefix + "*").size(); + long goodsNum = redisTemplate.opsForSet().size(goodsKey); //鑾峰彇璐﹀彿褰撴棩鐨勮祫閲戞秷鑰� - Long todayMoney = Long.parseLong(redisTemplate.opsForValue().get(accountMoneyKey) + ""); + + Long todayMoney = null; + Jedis jedis = jedisPool.getResource(); + try { + todayMoney = Long.parseLong(jedis.get(accountMoneyKey) + ""); + } catch (NumberFormatException e) { + jedis.set(accountMoneyKey, money.multiply(new BigDecimal(100)).intValue() + ""); + } finally { + jedis.close(); + } //鍚屾鍒版暟鎹簱 - LiJinProviderTaoKeAccount account = liJinProviderAccountMapper.selectByPrimaryKeyForUpdate(accountId); if (account != null) { LiJinProviderTaoKeAccount update = new LiJinProviderTaoKeAccount(); + update.setId(account.getId()); update.setTodayConsumeMoney(new BigDecimal(todayMoney).divide(new BigDecimal(100), 2, RoundingMode.FLOOR)); - update.setTodayConsumeNumber(goodsNum); + update.setTodayConsumeNumber((int) goodsNum); update.setUpdateTime(new Date()); + update.setErrorCode(LiJinProviderTaoKeAccount.ERROR_CODE_NORMAL); liJinProviderAccountMapper.updateByPrimaryKeySelective(update); } } + /** + * 鍒濆鍖栧綋澶╃殑鏁版嵁 + * + * @param accountId + */ + public void initTodayData(Long accountId) { + createLijinSuccess(accountId, 1L+"", new BigDecimal(0), new Date()); + } + + + //鍒犻櫎redis涓殑淇℃伅 + public void deleteInfoInRedis(Date date) { + String day = TimeUtil.getGernalTime(date.getTime(), "yyyyMMdd"); + String goodsKey = String.format("lijingoodsnum-%s-*", day); + String accountMoneyKey = String.format("lijinaccountmoney-%s-*", day); + redisTemplate.delete(goodsKey); + redisTemplate.delete(accountMoneyKey); + } + } -- Gitblit v1.8.0