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.fanli.entity.taobao.dataoke.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;
|
}
|
|
}
|