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