| | |
| | | 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; |
| | | } |
| | | |
| | | } |