admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsServiceImpl.java
@@ -1,59 +1,59 @@
package com.yeshi.fanli.service.impl.taobao.dataoke;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dto.dataoke.DaTaoKeGoodsResult;
import com.yeshi.goods.facade.entity.taobao.DaTaoKeDetailV2;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsService;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil;
@Service
public class DaTaoKeGoodsServiceImpl implements DaTaoKeGoodsService {
   @Resource
   private RedisManager redisManager;
   @Override
   public List<DaTaoKeDetailV2> getSearchDiscoveryGoods(String keyWords) {
      String key = "dataoke-goods-searchdiscovery-" + keyWords;
      List<DaTaoKeDetailV2> list = redisManager.getObjList(DaTaoKeDetailV2.class, key);
      if (list == null || list.size() == 0) {
         DaTaoKeGoodsResult search = DaTaoKeApiUtil.search(keyWords, null, null, null, 1, 10, 0);
         if (search != null) {
            list = search.getGoodsList();
            if (list != null && list.size() > 0) {
               Comparator<DaTaoKeDetailV2> cm = new Comparator<DaTaoKeDetailV2>() {
                  @Override
                  public int compare(DaTaoKeDetailV2 o1, DaTaoKeDetailV2 o2) {
                     int diff = o1.getHotPush() - o2.getHotPush();
                     if (diff > 0) {
                        return -1;
                     } else if (diff < 0) {
                        return 1;
                     }
                     return 0;
                  }
               };
               Collections.sort(list, cm);
               if (list.size() > 3)
                  list = list.subList(0, 3);
               // 缓存 20分钟
               redisManager.saveObjList(list, key, 1000 * 60 * 20);
            }
            return list;
         }
      }
      return list;
   }
}
package com.yeshi.fanli.service.impl.taobao.dataoke;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.yeshi.goods.facade.dto.taobao.dataoke.DaTaoKeGoodsResult;
import com.yeshi.goods.facade.entity.taobao.dataoke.DaTaoKeDetailV2;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsService;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.goods.facade.utils.taobao.DaTaoKeApiUtil;
@Service
public class DaTaoKeGoodsServiceImpl implements DaTaoKeGoodsService {
   @Resource
   private RedisManager redisManager;
   @Override
   public List<DaTaoKeDetailV2> getSearchDiscoveryGoods(String keyWords) {
      String key = "dataoke-goods-searchdiscovery-" + keyWords;
      List<DaTaoKeDetailV2> list = redisManager.getObjList(DaTaoKeDetailV2.class, key);
      if (list == null || list.size() == 0) {
         DaTaoKeGoodsResult search = DaTaoKeApiUtil.search(keyWords, null, null, null, 1, 10, 0);
         if (search != null) {
            list = search.getGoodsList();
            if (list != null && list.size() > 0) {
               Comparator<DaTaoKeDetailV2> cm = new Comparator<DaTaoKeDetailV2>() {
                  @Override
                  public int compare(DaTaoKeDetailV2 o1, DaTaoKeDetailV2 o2) {
                     int diff = o1.getHotPush() - o2.getHotPush();
                     if (diff > 0) {
                        return -1;
                     } else if (diff < 0) {
                        return 1;
                     }
                     return 0;
                  }
               };
               Collections.sort(list, cm);
               if (list.size() > 3)
                  list = list.subList(0, 3);
               // 缓存 20分钟
               redisManager.saveObjList(list, key, 1000 * 60 * 20);
            }
            return list;
         }
      }
      return list;
   }
}