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/jd/JDGoodsServiceImpl.java | 109 +++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 74 insertions(+), 35 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/jd/JDGoodsServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/jd/JDGoodsServiceImpl.java index ff6731f..6810a25 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/jd/JDGoodsServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/jd/JDGoodsServiceImpl.java @@ -1,6 +1,7 @@ package com.yeshi.fanli.service.impl.jd; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -16,10 +17,11 @@ import com.yeshi.fanli.dto.jd.JDSearchResult; import com.yeshi.fanli.entity.bus.clazz.GoodsClass; import com.yeshi.fanli.entity.jd.JDGoods; +import com.yeshi.fanli.entity.system.ConfigKeyEnum; import com.yeshi.fanli.exception.jd.JDGoodsException; import com.yeshi.fanli.service.inter.config.ConfigService; -import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; import com.yeshi.fanli.service.inter.jd.JDGoodsService; +import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; import com.yeshi.fanli.tag.PageEntity; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; @@ -28,14 +30,13 @@ @Service public class JDGoodsServiceImpl implements JDGoodsService { - + @Resource private ConfigService configService; - + @Resource private HongBaoManageService hongBaoManageService; - - + private Map<String, Long> countMap = new HashMap<String, Long>(); private static final Map<Long, String> cidMap = new HashMap<Long, String>(); @@ -43,10 +44,10 @@ cidMap.put(1L, "2,16,1,3");// 绮鹃�� cidMap.put(2L, "737");// 鐢靛櫒锛� 瀹剁敤鐢靛櫒 cidMap.put(3L, "652,670");// 鏁扮爜锛� 鏁扮爜/鐢佃剳銆佸姙鍏� - cidMap.put(4L, "9987");// 鎵嬫満锛氭墜鏈洪�氳 + cidMap.put(4L, "9987");// 鎵嬫満锛氭墜鏈洪�氳 cidMap.put(5L, "12218");// 鐢熼矞 - cidMap.put(6L, "1315");// 鏈嶉グ锛� 鏈嶉グ鍐呰。 - cidMap.put(7L, "1319,6233");// 姣嶅┐锛� 姣嶅┐/鐜╁叿涔愬櫒 + cidMap.put(6L, "1315");// 鏈嶉グ锛� 鏈嶉グ鍐呰。 + cidMap.put(7L, "1319,6233");// 姣嶅┐锛� 姣嶅┐/鐜╁叿涔愬櫒 cidMap.put(8L, "1713");// 鍥句功 cidMap.put(9L, "6196");// 鍘ㄥ叿 cidMap.put(10L, "1320");// 椋熷搧锛� 椋熷搧楗枡 @@ -60,7 +61,6 @@ cidMap.put(18L, "6728");// 姹借溅锛氭苯杞︾敤鍝� } - @Override public List<GoodsClass> getSpecialClass() { List<GoodsClass> list = new ArrayList<GoodsClass>(); @@ -82,23 +82,22 @@ list.add(new GoodsClass(16L, "瀹犵墿")); list.add(new GoodsClass(17L, "瀹跺眳")); list.add(new GoodsClass(18L, "姹借溅")); - return list; + return list; } - - + @Cacheable(value = "jdSpecialCache", key = "'specialSearch-'+#page+'-'+#cid") @Override - @Transactional - public List<JDGoods> specialSearch(Integer page, Long cid) throws JDGoodsException{ + @Transactional(rollbackFor=Exception.class) + public List<JDGoods> specialSearch(Integer page, Long cid) throws JDGoodsException { if (cid == null) { throw new JDGoodsException(1, "鍒嗙被id涓虹┖"); } - + String jdcid = cidMap.get(cid); if (StringUtil.isNullOrEmpty(jdcid)) { throw new JDGoodsException(1, "鍒嗙被id涓嶅瓨鍦�"); } - + // 绮鹃�� if (cid == 1) { Integer categoryId = null; @@ -112,23 +111,23 @@ if (count != null) { addCount += count; } - + if (count != null && totalCount > addCount) { - pageTemp = (int)(addCount / Constant.PAGE_SIZE); + pageTemp = (int) (addCount / Constant.PAGE_SIZE); continue; // 褰撳墠鍒嗙被鍟嗗搧涓嶈冻 } else { - page = page - pageTemp; + page = page - pageTemp; categoryId = Integer.parseInt(id); break; } } - + if (categoryId == null) { return null; } - + JDSearchResult result = JDApiUtil.getJingFenGoods(page, categoryId); - + long count = 0; if (result != null) { PageEntity pageEntity = result.getPageEntity(); @@ -136,25 +135,24 @@ count = pageEntity.getTotalCount(); } } - - long mcount = (count/Constant.PAGE_SIZE) * Constant.PAGE_SIZE; + + long mcount = (count / Constant.PAGE_SIZE) * Constant.PAGE_SIZE; if (mcount == 0) { mcount = 20; } countMap.put(cid + "-" + categoryId, mcount); - + if (result == null) { return null; } else { - return result.getGoodsList(); + return filterJDGoods(result.getGoodsList()); } - } - - + } + if (!jdcid.contains(",")) { return search(page, Constant.PAGE_SIZE, jdcid); - } - + } + // 澶氫釜鍒嗙被id澶勭悊 List<JDGoods> list = new ArrayList<JDGoods>(); String[] arrayId = jdcid.split(","); @@ -167,13 +165,29 @@ list.addAll(listGoods); } } - return list; + return filterJDGoods(list); } - + /** + * 杩囨护鍟嗗搧 + * + * @param goodsList + * @return + */ + private List<JDGoods> filterJDGoods(List<JDGoods> goodsList) { + List<Long> skuIds = new ArrayList<>(); + for (JDGoods goods : goodsList) { + skuIds.add(goods.getSkuId()); + } + List<JDGoods> newGoodsList = JDApiUtil.listGoodsDetail(skuIds); + if (newGoodsList != null && newGoodsList.size() > 0) + return newGoodsList; + return goodsList; + } + private List<JDGoods> search(int page, int pageSize, String jdcid) { JDSearchResult result = null; - String way = configService.get("jd_api_search_key"); + String way = configService.get(ConfigKeyEnum.jdApiSearchKey.getKey()); if ("1".equals(way)) { // API鎼滅储 JDFilter filterAPI = new JDFilter(); filterAPI.setPageIndex(page); @@ -187,7 +201,7 @@ jdfilter.setCategoryId(Integer.parseInt(jdcid)); result = JDUtil.searchByKey(jdfilter); } - + if (result == null) { return null; } else { @@ -195,4 +209,29 @@ } } + @Cacheable(value = "jdCache", key = "'getIndexJDGoods-'+#page") + @Override + public JDSearchResult getIndexJDGoods(int page) { + JDSearchResult result = null; + String way = configService.get(ConfigKeyEnum.jdApiSearchKey.getKey()); + // TODO 闇�瑕佽皟鏁磋鍒� + way = "0"; + if ("1".equals(way)) { + JDFilter filterAPI = new JDFilter(); + filterAPI.setPageIndex(page); + filterAPI.setPageSize(20); + result = JDApiUtil.queryByKey(filterAPI); + } else { + // 缃戦〉鐖彇 + JDSearchFilter jdfilter = new JDSearchFilter(); + jdfilter.setPageNo(page); + jdfilter.setPageSize(Constant.PAGE_SIZE); + result =JDApiUtil.getJingFenGoods(page,125); //JDUtil.searchByKey(jdfilter); + } + if (result != null && result.getGoodsList() != null) + Collections.shuffle(result.getGoodsList()); + + return result; + } + } -- Gitblit v1.8.0