From 24a8d17e007545f7426c48352109aa1a9c6587ee Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 06 五月 2020 12:02:09 +0800 Subject: [PATCH] IOS上线隐藏我的界面的banner与超级会员升级信息 --- fanli/src/main/java/com/yeshi/fanli/service/impl/jd/JDGoodsServiceImpl.java | 190 +++++++++++++++++++++++++++++++++-------------- 1 files changed, 134 insertions(+), 56 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 ce87ced..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,60 +1,53 @@ package com.yeshi.fanli.service.impl.jd; -import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.yeshi.utils.JsonUtil; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; import com.yeshi.fanli.dto.jd.JDFilter; import com.yeshi.fanli.dto.jd.JDSearchFilter; 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; -import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory; import com.yeshi.fanli.util.jd.JDApiUtil; import com.yeshi.fanli.util.jd.JDUtil; -import com.yeshi.fanli.vo.goods.GoodsDetailVO; - -import net.sf.json.JSONArray; -import net.sf.json.JSONObject; @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>(); - private static final Map<String, Long> countMap = new HashMap<String, Long>(); static { - cidMap.put(1L, "nzjh");// 绮鹃�� + 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");// 椋熷搧锛� 椋熷搧楗枡 @@ -68,7 +61,6 @@ cidMap.put(18L, "6728");// 姹借溅锛氭苯杞︾敤鍝� } - @Override public List<GoodsClass> getSpecialClass() { List<GoodsClass> list = new ArrayList<GoodsClass>(); @@ -90,69 +82,155 @@ 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 JDSearchResult 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涓嶅瓨鍦�"); } - - Long jdCid1 = null; - Integer categoryId = null; - long totalCount = (long) (page * Constant.PAGE_SIZE); - - - if (jdcid.contains(",")) { + + // 绮鹃�� + if (cid == 1) { + Integer categoryId = null; + int pageTemp = 0; + long addCount = 0; + long totalCount = (long) (page * Constant.PAGE_SIZE); String[] arrayId = jdcid.split(","); for (int i = 0; i < arrayId.length; i++) { - Long count = countMap.get(cid + "" + arrayId[i]); - if (count != null && totalCount > count) { + String id = arrayId[i]; + Long count = countMap.get(cid + "-" + id); + if (count != null) { + addCount += count; + } + + if (count != null && totalCount > addCount) { + pageTemp = (int) (addCount / Constant.PAGE_SIZE); continue; // 褰撳墠鍒嗙被鍟嗗搧涓嶈冻 } else { - jdCid1 = Long.parseLong(jdcid); - categoryId = Integer.parseInt(jdcid); + page = page - pageTemp; + categoryId = Integer.parseInt(id); + break; } } - } else { - jdCid1 = Long.parseLong(jdcid); - categoryId = Integer.parseInt(jdcid); + + if (categoryId == null) { + return null; + } + + JDSearchResult result = JDApiUtil.getJingFenGoods(page, categoryId); + + long count = 0; + if (result != null) { + PageEntity pageEntity = result.getPageEntity(); + if (pageEntity != null) { + count = pageEntity.getTotalCount(); + } + } + + 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 filterJDGoods(result.getGoodsList()); + } } - - - // 鎼滅储 + + if (!jdcid.contains(",")) { + return search(page, Constant.PAGE_SIZE, jdcid); + } + + // 澶氫釜鍒嗙被id澶勭悊 + List<JDGoods> list = new ArrayList<JDGoods>(); + String[] arrayId = jdcid.split(","); + for (int i = 0; i < arrayId.length; i++) { + if (i >= 3) { + break; + } + List<JDGoods> listGoods = search(page, 10, arrayId[i]); + if (listGoods != null && listGoods.size() > 0) { + list.addAll(listGoods); + } + } + 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); - filterAPI.setPageSize(Constant.PAGE_SIZE); - filterAPI.setCid1(jdCid1); + filterAPI.setPageSize(pageSize); + filterAPI.setCid1(Long.parseLong(jdcid)); result = JDApiUtil.queryByKey(filterAPI); } else { // 缃戦〉鐖彇 JDSearchFilter jdfilter = new JDSearchFilter(); jdfilter.setPageNo(page); - jdfilter.setPageSize(Constant.PAGE_SIZE); - jdfilter.setCategoryId(categoryId); + jdfilter.setPageSize(pageSize); + jdfilter.setCategoryId(Integer.parseInt(jdcid)); result = JDUtil.searchByKey(jdfilter); } - - long count = 0; - if (result != null) { - PageEntity pageEntity = result.getPageEntity(); - if (pageEntity != null) { - count = pageEntity.getTotalCount(); - } + + if (result == null) { + return null; + } else { + return result.getGoodsList(); } - countMap.put(cid + "" + jdCid1, count); - + } + + @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