yj
2020-03-06 207dc8655711cddac2653e18b51e58a88dba2084
fanli/src/main/java/com/yeshi/fanli/util/cache/TaoBaoGoodsCacheUtil.java
@@ -6,6 +6,7 @@
import com.google.gson.Gson;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.util.RedisKeyEnum;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
@@ -22,7 +23,7 @@
   public void saveCommonTaoBaoGoodsInfo(TaoBaoGoodsBrief goods) {
      if (goods == null || goods.getAuctionId() == null)
         return;
      String key = "taobao-goods-common-" + goods.getAuctionId();
      String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoGoodsCommon, goods.getAuctionId() + "");
      // 保存20分钟
      redisManager.cacheCommonString(key, new Gson().toJson(goods), 60 * 20);
   }
@@ -34,7 +35,7 @@
    * @return
    */
   public TaoBaoGoodsBrief getCommonTaoBaoGoodsInfo(long auctionId) {
      String key = "taobao-goods-common-" + auctionId;
      String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoGoodsCommon, auctionId + "");
      String value = redisManager.getCommonString(key);
      if (!StringUtil.isNullOrEmpty(value)) {
         return new Gson().fromJson(value, TaoBaoGoodsBrief.class);
@@ -42,4 +43,87 @@
         return null;
   }
   /**
    * 是否可以添加到更新队列中
    *
    * @param auctionId
    * @return
    */
   public boolean canAddToUpdateQueue(Long auctionId) {
      String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoQueue, auctionId + "");
      String value = redisManager.getCommonString(key);
      if (StringUtil.isNullOrEmpty(value))
         return true;
      else
         return false;
   }
   /**
    * 增加添加到队列中的记录
    *
    * @param auctionId
    */
   public void addAddToQueueHistory(Long auctionId) {
      String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoQueue, auctionId + "");
      redisManager.cacheCommonString(key, "1", 60 * 60 * 2);// 有效期2个小时
   }
   /**
    * 查询商品是否需要更新
    *
    * @param actionId
    * @return
    */
   public boolean needUpdate(Long actionId) {
      String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoUpdate, actionId + "");
      String value = redisManager.getCommonString(key);
      if (StringUtil.isNullOrEmpty(value))
         return true;
      else
         return false;
   }
   /**
    * 添加更新记录数据
    *
    * @param actionId
    * @return
    */
   public void addUpdateHistory(Long actionId) {
      String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoUpdate, actionId + "");
      redisManager.cacheCommonString(key, "1", 60 * 60 * 1);// 有效期1个小时
   }
   /**
    * 删除更新记录
    */
   public void removeUpdateHistory() {
      // TODO 凌晨删除缓存记录
   }
   /**
    * 保存口令对应的商品ID
    *
    * @param token
    * @param auctionId
    */
   public void saveTokenGoodsIdMap(String token, Long auctionId) {
      String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoTokenGoodsMap, StringUtil.Md5(token));
      redisManager.cacheCommonString(key, auctionId+"", 60 * 30);// 有效期30分钟
   }
   /**
    * 通过口令获取商品ID
    *
    * @param token
    * @return
    */
   public Long getGoodsIdByToken(String token) {
      String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoTokenGoodsMap, StringUtil.Md5(token));
      String goodsId = redisManager.getCommonString(key);
      if (StringUtil.isNullOrEmpty(goodsId))
         return null;
      return Long.parseLong(goodsId);
   }
}