From 28cf328a098334b51a3e9d2d56f983fb8c862211 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 23 五月 2020 09:54:38 +0800 Subject: [PATCH] 足迹、收藏订单兼容新需求 --- fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsServiceImpl.java | 70 +++++++++++++++++------------------ 1 files changed, 34 insertions(+), 36 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsServiceImpl.java index d5361c6..f589fb8 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsServiceImpl.java @@ -1,61 +1,59 @@ package com.yeshi.fanli.service.impl.taobao.dataoke; -import java.util.ArrayList; +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.dao.mybatis.taobao.dataoke.DaTaoKeDetailMapper; -import com.yeshi.fanli.dto.dataoke.DaTaoKeApiResult; -import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetail; +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.StringUtil; import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil; @Service public class DaTaoKeGoodsServiceImpl implements DaTaoKeGoodsService { - @Resource - private DaTaoKeDetailMapper daTaoKeDetailMapper; @Resource private RedisManager redisManager; @Override - public void startSyncGoods() { - // 鍒ゆ柇鏄惁鏈夋鍦ㄨ繘琛岀殑鏇存柊 - String key1 = "dataoke-updating"; - if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key1))) - return; + 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; + } + }; - String key2 = "dataoke-update-time"; - String updateTime = redisManager.getCommonString(key2); - if (!StringUtil.isNullOrEmpty(updateTime)) { - DaTaoKeApiResult result = DaTaoKeApiUtil.goodsList(1); - if (result.getUpdateTime().equalsIgnoreCase(updateTime)) {// 鍜屼笂娆℃洿鏂板湪鍚屼竴鏃堕棿 - return; + Collections.sort(list, cm); + + if (list.size() > 3) + list = list.subList(0, 3); + + // 缂撳瓨 20鍒嗛挓 + redisManager.saveObjList(list, key, 1000 * 60 * 20); + } + return list; } } - - // 寮�濮嬫洿鏂� - redisManager.cacheCommonString(key1, "1"); - List<DaTaoKeDetail> goodsList = new ArrayList<>(); - for (int p = 1; p < 2000; p++) { - DaTaoKeApiResult result = DaTaoKeApiUtil.goodsList(p); - goodsList.addAll(result.getDetailList()); - if (result.getDetailList().size() < 50)// 鏇存柊瀹屾垚 - { - redisManager.removeCommonString(key1); - break; - } - } - - // - - - + return list; } } -- Gitblit v1.8.0