admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
fanli/src/main/java/com/yeshi/fanli/util/cache/JDGoodsCacheUtil.java
@@ -1,62 +1,61 @@
package com.yeshi.fanli.util.cache;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import org.yeshi.utils.JsonUtil;
import com.google.gson.Gson;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.jd.JDApiUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
@Component
public class JDGoodsCacheUtil {
   @Resource
   private RedisManager redisManager;
   /**
    * 保存常规的京东商品详情(搜索,详情)
    *
    * @param goods
    */
   public void saveGoodsInfo(JDGoods goods) {
      if (goods == null || goods.getSkuId() == null) {
         return;
      }
      // 保存20分钟
      String key = "JD-goods-" + goods.getSkuId();
      redisManager.cacheCommonString(key, new Gson().toJson(goods), 60 * 20);
   }
   /**
    * 获取缓存数据
    * @param goodsId
    * @return
    */
   public JDGoods getGoodsInfo(long goodsId){
      String key = "JD-goods-" + goodsId;
      String value = redisManager.getCommonString(key);
      if (!StringUtil.isNullOrEmpty(value)) {
         return JsonUtil.getSimpleGson().fromJson(value, JDGoods.class);
      }
      JDGoods goods = JDApiUtil.queryGoodsDetail(goodsId);
      if (goods == null) {
         goods = JDApiUtil.getGoodsDetail(goodsId);
      }
      // 缓存20分钟
      if (goods != null) {
         redisManager.cacheCommonString(key, JsonUtil.getSimpleGson().toJson(goods), 60 * 20);
      }
      return goods;
   }
}
package com.yeshi.fanli.util.cache;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import org.yeshi.utils.JsonUtil;
import com.google.gson.Gson;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.util.RedisKeyEnum;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.jd.JDApiUtil;
import com.yeshi.fanli.util.jd.JDUtil;
@Component
public class JDGoodsCacheUtil {
   @Resource
   private RedisManager redisManager;
   /**
    * 保存常规的京东商品详情(搜索,详情)
    *
    * @param goods
    */
   public void saveGoodsInfo(JDGoods goods) {
      if (goods == null || goods.getItemId() == null) {
         return;
      }
      // 保存20分钟
      String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.JDGoods, goods.getSkuId() + "" );
      redisManager.cacheCommonString(key, new Gson().toJson(goods), 60 * 20);
   }
   /**
    * 获取缓存数据
    * @param goodsId
    * @return
    */
   public JDGoods getGoodsInfo(String goodsId){
      String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.JDGoods, goodsId + "");
      String value = redisManager.getCommonString(key);
      if (!StringUtil.isNullOrEmpty(value)) {
         return JsonUtil.getSimpleGson().fromJson(value, JDGoods.class);
      }
      JDGoods goods = JDApiUtil.queryGoodsDetail(goodsId); // 高级接口
      if (goods == null) {
//         goods = JDUtil.getGoodsDetail(goodsId); // 爬取网页
         //jdGoods = JDApiUtil.getGoodsDetail(goodsId); // 普通接口
      }
      // 缓存20分钟
      if (goods != null) {
         redisManager.cacheCommonString(key, JsonUtil.getSimpleGson().toJson(goods), 60 * 20);
      }
      return goods;
   }
}