| | |
| | | package com.yeshi.fanli.service.impl.taobao.dataoke;
|
| | |
|
| | | import java.util.ArrayList;
|
| | | 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.entity.taobao.dataoke.DaTaoKeDetail;
|
| | | import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
|
| | | import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsService;
|
| | | import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
|
| | |
|
| | | @Service
|
| | | public class DaTaoKeGoodsServiceImpl implements DaTaoKeGoodsService {
|
| | |
|
| | | @Resource
|
| | | private DaTaoKeDetailMapper daTaoKeDetailMapper;
|
| | | |
| | | @Resource
|
| | | private DaTaoKeGoodsDetailService daTaoKeGoodsDetailService;
|
| | |
|
| | | private List<DaTaoKeDetail> reSearchDetails(List<DaTaoKeDetail> list) {
|
| | | List<Long> idList = new ArrayList<>();
|
| | | if (list != null) {
|
| | | for (DaTaoKeDetail detail : list) {
|
| | | idList.add(detail.getId());
|
| | | }
|
| | | List<DaTaoKeDetail> detailList = daTaoKeGoodsDetailService.listByIds(idList);
|
| | | return detailList;
|
| | | } else
|
| | | return null;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<DaTaoKeDetail> getCurrentSalesRankGoodsList(Long cid) {
|
| | | List<DaTaoKeDetail> list = DaTaoKeUtil.getCurrentSalesRank(cid);
|
| | | return reSearchDetails(list);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<DaTaoKeDetail> getCurrentDaySalesRankGoodsList(Long cid) {
|
| | | List<DaTaoKeDetail> list = DaTaoKeUtil.getCurrentDaySalesRank(cid);
|
| | | return reSearchDetails(list);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<DaTaoKeDetail> getCurrentHotSalesRankGoodsList() {
|
| | | List<DaTaoKeDetail> list = DaTaoKeUtil.getCurrentHotSalesRank();
|
| | | return reSearchDetails(list);
|
| | | }
|
| | | |
| | | @Override
|
| | | public List<DaTaoKeDetail> getGoodsNotInList(Long cid, List<Long> listId,int count) {
|
| | | return daTaoKeDetailMapper.getGoodsNotInList(cid, listId,count);
|
| | | }
|
| | |
|
| | | }
|
| | | 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; |
| | | } |
| | | |
| | | } |