From 4e4af90184f5fa5b40d87e2d08d9192bfd237ef0 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 30 四月 2021 19:13:58 +0800
Subject: [PATCH] 拼多多备案,京东、拼多多,唯品会,苏宁支持小程序跳转

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/lable/TaoKeGoodsServiceImpl.java | 1395 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 698 insertions(+), 697 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/lable/TaoKeGoodsServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/lable/TaoKeGoodsServiceImpl.java
index 3a13b69..bb796bc 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/lable/TaoKeGoodsServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/lable/TaoKeGoodsServiceImpl.java
@@ -1,697 +1,698 @@
-package com.yeshi.fanli.service.impl.lable;
-
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.annotation.Resource;
-
-import org.springframework.cache.annotation.Cacheable;
-import org.springframework.stereotype.Service;
-import org.yeshi.utils.JsonUtil;
-import org.yeshi.utils.taobao.TbImgUtil;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.yeshi.fanli.dto.ConfigParamsDTO;
-import com.yeshi.fanli.entity.bus.lable.QualityFactory;
-import com.yeshi.fanli.entity.taobao.SearchFilter;
-import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
-import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
-import com.yeshi.fanli.entity.taobao.TaoBaoSearchNav;
-import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
-import com.yeshi.fanli.entity.taobao.TaoBaoShopInfo;
-import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
-import com.yeshi.fanli.service.inter.lable.TaoKeGoodsService;
-import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
-import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService;
-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.taobao.TaoBaoUtil;
-import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
-import com.yeshi.fanli.vo.goods.GoodsDetailVO;
-
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-
-@Service
-public class TaoKeGoodsServiceImpl implements TaoKeGoodsService {
-
-	@Resource
-	private HongBaoManageService hongBaoManageService;
-
-	@Resource
-	private TaoBaoShopService taoBaoShopService;
-
-	@Resource
-	private QualityGoodsService qualityGoodsService;
-
-	@Cacheable(value = "taoKeMaterialCache", key = "'listByMaterial-'+#materialId +'-'+#pageIndex")
-	@Override
-	public List<TaoBaoGoodsBrief> listByMaterial(Integer materialId, Integer pageIndex, int pageSize) throws Exception {
-
-		TaoBaoSearchResult result = TaoKeApiUtil.getMaterialByMaterialId(materialId, pageIndex, pageSize);
-
-		if (result == null) {
-			return null;
-		}
-
-		return result.getTaoBaoGoodsBriefs();
-	}
-
-	@Override
-	@Cacheable(value = "taoKeMaterialCache", key = "'getBrandsGoods-'+#materialId +'-'+#pageIndex")
-	public JSONObject getBrandsGoods(Integer materialId, int pageIndex, int pageSize) throws Exception {
-
-		TaoBaoSearchResult result = TaoKeApiUtil.getMaterialByMaterialId(materialId, pageIndex, pageSize);
-
-		if (result == null) {
-			return null;
-		}
-
-		List<TaoBaoGoodsBrief> listGoods = result.getTaoBaoGoodsBriefs();
-		if (listGoods == null || listGoods.size() == 0) {
-			return null;
-		}
-
-		JSONArray arrayGoods = new JSONArray();
-		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
-				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
-
-		BigDecimal proportion = hongBaoManageService.getFanLiRate();
-
-		listGoods.parallelStream().forEach(taoBaoGoodsBrief -> {
-
-			// Long sellerId = taoBaoGoodsBrief.getSellerId();
-			// String title = taoBaoGoodsBrief.getTitle();
-			// Long auctionId = taoBaoGoodsBrief.getAuctionId();
-
-			// TaoBaoShopInfo shopInfo = TaoBaoShopUtil.getTaoBaoShopInfo(title,
-			// sellerId, auctionId);
-
-			TaoBaoShopInfo shopInfo = taoBaoShopService.getTaoBaoShopInfo(taoBaoGoodsBrief);
-
-			if (shopInfo != null) {
-				taoBaoGoodsBrief.setShopTitle(shopInfo.getShopTitle());
-				String shopType = shopInfo.getShopType();
-				if (shopType.contains("tm")) {
-					taoBaoGoodsBrief.setUserType(1);
-				} else {
-					taoBaoGoodsBrief.setUserType(0);
-				}
-			}
-
-			int count = taoBaoGoodsBrief.getBiz30day();
-			if (count >= 10000) {
-				double sales = count;
-				String salesCountMidea = String.format("%.1f", sales / 10000);
-				taoBaoGoodsBrief.setSalesCount(salesCountMidea + "涓�");
-			} else {
-				taoBaoGoodsBrief.setSalesCount(count + "");
-			}
-
-			// 鏀瑰彉鍥剧墖灏哄
-			String pictUrl = taoBaoGoodsBrief.getPictUrl();
-			if (!StringUtil.isNullOrEmpty(pictUrl) && !pictUrl.contains("320x320")) {
-				taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
-			}
-
-			arrayGoods.add(
-					gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
-
-		});
-
-		JSONObject data = new JSONObject();
-		data.put("count", arrayGoods.size());
-		data.put("result_list", arrayGoods);
-
-		return data;
-	}
-
-	@Override
-	@Cacheable(value = "taoKeMaterialCache", key = "'getBrandsShops-'+#materialId +'-'+#pageIndex")
-	public JSONObject getBrandsShops(Integer materialId, int pageIndex, int pageSize) throws Exception {
-
-		TaoBaoSearchResult result = TaoKeApiUtil.getMaterialByMaterialId(materialId, pageIndex, pageSize);
-
-		if (result == null) {
-			return null;
-		}
-
-		List<TaoBaoGoodsBrief> listGoods = result.getTaoBaoGoodsBriefs();
-		if (listGoods == null || listGoods.size() == 0) {
-			return null;
-		}
-
-		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
-				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
-
-		JSONArray arrayShop = new JSONArray();
-
-		listGoods.parallelStream().forEach(taoBaoGoodsBrief -> {
-
-			// Long sellerId = taoBaoGoodsBrief.getSellerId();
-			// String title = taoBaoGoodsBrief.getTitle();
-			// Long auctionId = taoBaoGoodsBrief.getAuctionId();
-
-			// TaoBaoShopInfo shopInfo = TaoBaoShopUtil.getTaoBaoShopInfo(title,
-			// sellerId, auctionId);
-
-			TaoBaoShopInfo shopInfo = taoBaoShopService.getTaoBaoShopInfo(taoBaoGoodsBrief);
-
-			if (shopInfo != null) {
-
-				JSONObject jsonShop = new JSONObject();
-				String shopType = shopInfo.getShopType();
-				if (shopType.contains("tm")) {
-					shopInfo.setShopType("2");
-				} else {
-					shopInfo.setShopType("1");
-				}
-
-				jsonShop.put("shopInfo", shopInfo);
-				jsonShop.put("auctionId", taoBaoGoodsBrief.getAuctionId());
-				arrayShop.add(gson.toJson(jsonShop));
-			}
-
-		});
-
-		JSONObject data = new JSONObject();
-		data.put("count", listGoods.size());
-		data.put("result_list", arrayShop);
-
-		return data;
-	}
-
-	@Override
-	@Cacheable(value = "searchWuLiaoCache", key = "'searchWuLiao-'+#sf")
-	public JSONObject searchWuLiao(SearchFilter sf) {
-
-		// 娣樺疂鐗╂枡鎺ュ彛鏌ヨ
-		TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf);
-
-		List<TaoBaoSearchNav> navList = TaoBaoUtil.getBaseNav();
-		if (result.getNavList() != null)
-			navList.addAll(result.getNavList());
-
-		Gson gson = new GsonBuilder().create();
-		JSONObject data = new JSONObject();
-		data.put("nav", gson.toJson(navList));
-
-		List<TaoBaoGoodsBriefExtra> re = new ArrayList<TaoBaoGoodsBriefExtra>();
-		List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs();
-
-		int fq = sf.getQuan();
-		int fh = sf.getHongbao();
-		boolean ft = sf.isTmall();
-
-		BigDecimal proportion = hongBaoManageService.getFanLiRate();
-
-		if (fq == 0 && fh == 0 && !ft) {
-			if (result != null && result.getTaoBaoGoodsBriefs() != null)
-				for (TaoBaoGoodsBrief bf : result.getTaoBaoGoodsBriefs()) {
-					int count = bf.getBiz30day();
-
-					String startBiz30day = sf.getStartBiz30day();
-					if (!StringUtil.isNullOrEmpty(startBiz30day)) {
-						int biz30day = Integer.parseInt(startBiz30day);
-						if (count < biz30day) {
-							continue;
-						}
-					}
-
-					if (count >= 10000) { // 瀵归攢閲忔暟鎹仛澶勭悊 椤甸潰灞曠ず7.3涓�
-						double sales = count;
-						String salesCountMidea = String.format("%.1f", sales / 10000);
-						bf.setSalesCount(salesCountMidea + "涓�");
-						re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), ""));
-					} else {
-						bf.setSalesCount(count + "");
-						re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), ""));
-					}
-				}
-		} else {
-			TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra;
-			if (taoBaoGoodsBriefs != null)
-				for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) {
-
-					int count = taoBaoGoodsBrief.getBiz30day();
-
-					String startBiz30day = sf.getStartBiz30day();
-					if (!StringUtil.isNullOrEmpty(startBiz30day)) {
-						int biz30day = Integer.parseInt(startBiz30day);
-						if (count < biz30day) {
-							break;
-						}
-					}
-
-					if (count >= 10000) {
-						double sales = count;
-						String salesCountMidea = String.format("%.1f", sales / 10000);
-						taoBaoGoodsBrief.setSalesCount(salesCountMidea + "涓�");
-						taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
-								proportion.toString(), "");
-						re.add(taoBaoGoodsBriefExtra);
-					} else {
-						taoBaoGoodsBrief.setSalesCount(count + "");
-						taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
-								proportion.toString(), "");
-						re.add(taoBaoGoodsBriefExtra);
-					}
-				}
-		}
-
-		Gson gson2 = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
-				.excludeFieldsWithoutExposeAnnotation().create();
-
-		data.put("result", gson2.toJson(re));
-		data.put("count", result.getTaoBaoHead().getDocsfound());
-
-		return data;
-	}
-	
-	
-	@Override
-	@Cacheable(value = "searchWuLiaoCache", key = "'searchWuLiaoV2-'+#sf")
-	public JSONObject searchWuLiaoV2(SearchFilter sf) {
-
-		// 娣樺疂鐗╂枡鎺ュ彛鏌ヨ
-		TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf);
-
-		List<TaoBaoSearchNav> navList = TaoBaoUtil.getBaseNav();
-		if (result.getNavList() != null)
-			navList.addAll(result.getNavList());
-
-		Gson gson = new GsonBuilder().create();
-		JSONObject data = new JSONObject();
-		data.put("nav", gson.toJson(navList));
-
-		List<GoodsDetailVO> re = new ArrayList<GoodsDetailVO>();
-		List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs();
-
-		int fq = sf.getQuan();
-		int fh = sf.getHongbao();
-		boolean ft = sf.isTmall();
-
-		BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
-		BigDecimal shareRate = hongBaoManageService.getShareRate();
-	    ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
-
-		if (fq == 0 && fh == 0 && !ft) {
-			if (result != null && result.getTaoBaoGoodsBriefs() != null)
-				for (TaoBaoGoodsBrief bf : result.getTaoBaoGoodsBriefs()) {
-					int count = bf.getBiz30day();
-
-					String startBiz30day = sf.getStartBiz30day();
-					if (!StringUtil.isNullOrEmpty(startBiz30day)) {
-						int biz30day = Integer.parseInt(startBiz30day);
-						if (count < biz30day) {
-							continue;
-						}
-					}
-
-					GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(bf, paramsDTO);
-					re.add(goodsDetailVO);
-				}
-		} else {
-			if (taoBaoGoodsBriefs != null)
-				for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) {
-
-					int count = taoBaoGoodsBrief.getBiz30day();
-					String startBiz30day = sf.getStartBiz30day();
-					if (!StringUtil.isNullOrEmpty(startBiz30day)) {
-						int biz30day = Integer.parseInt(startBiz30day);
-						if (count < biz30day) {
-							break;
-						}
-					}
-					GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, paramsDTO);
-					re.add(goodsDetailVO);
-				}
-		}
-
-		Gson gson2 = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
-				.excludeFieldsWithoutExposeAnnotation().create();
-
-		data.put("result", gson2.toJson(re));
-		data.put("count", result.getTaoBaoHead().getDocsfound());
-
-		return data;
-	}
-	
-	
-
-	@Override
-	@Cacheable(value = "searchWuLiaoCache", key = "'searchWuLiaoList-'+#sf")
-	public List<TaoBaoGoodsBrief> searchWuLiaoList(SearchFilter sf) {
-
-		// 娣樺疂鐗╂枡鎺ュ彛鏌ヨ
-		TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf);
-		if (result == null)
-			return null;
-
-		return result.getTaoBaoGoodsBriefs();
-	}
-
-	@Override
-	public JSONObject listByWuLiao(int page, String key, String cateIds, String filterParams, String order,
-			String startprice, String endprice, String searchParam) {
-
-		SearchFilter sf = new SearchFilter();
-		sf.setKey(key);
-		sf.setPage(page);
-		sf.setCateIds(cateIds);
-
-		if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(startprice)) {
-			sf.setStartPrice(new BigDecimal(startprice));
-		}
-
-		if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(endprice)) {
-			sf.setEndPrice(new BigDecimal(endprice));
-		}
-
-		if (com.yeshi.fanli.util.StringUtil.isNullOrEmpty(order)) {
-			// 榛樿閿�閲忎粠楂樺埌浣庢帓搴�
-			sf.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW);
-		} else {
-			if (Integer.parseInt(order) == 1) {
-				sf.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW);
-			} else if (Integer.parseInt(order) == 2) {
-				sf.setSort(TaoBaoUtil.SORT_PRICE_HIGH_TO_LOW);
-			} else if (Integer.parseInt(order) == 3) {
-				sf.setSort(TaoBaoUtil.SORT_PRICE_LOW_TO_HIGH);
-			}
-		}
-
-		if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(filterParams)) {
-
-			Set<String> params = new HashSet<String>();
-
-			JSONArray array = JSONArray.fromObject(filterParams);
-
-			for (int i = 0; i < array.size(); i++) {
-
-				String type = array.optJSONObject(i).optString("type");
-
-				switch (type) {
-				case "shoptype":
-					if (array.optJSONObject(i).optInt("id") == 21) {
-						sf.setTmFlagship(false); // 涓嶇瓫锟�?
-					} else {
-						sf.setTmFlagship(true);
-						sf.setTmall(true);
-						sf.setShopTag("b2c");
-					}
-					break;
-
-				case "category":
-					sf.setCateIds(array.optJSONObject(i).optString("id"));
-					break;
-
-				case "userType":
-					sf.setCateIds(array.optJSONObject(i).optString("id"));
-					break;
-
-				case "baoyou":
-					sf.setBaoYou(true);
-					break;
-
-				case "quantype":
-					sf.setQuan(1);
-					if (sf.isTmFlagship()) {
-						sf.setShopTag(sf.getShopTag() + ",dpyhq");
-					} else {
-						sf.setShopTag("dpyhq");
-					}
-					break;
-
-				case "hongbaotype":
-					if (array.optJSONObject(i).optInt("id") == 41) {
-						sf.setHongbao(1);
-					} else {
-						sf.setHongbao(2);
-					}
-					break;
-
-				case "property":
-					String pid = (String) array.optJSONObject(i).opt("pid");
-					String id = (String) array.optJSONObject(i).opt("id");
-					boolean flag = false;
-					String str = null;
-					for (String string : params) {
-						flag = string.contains(pid + ":");
-						if (flag) {
-							str = string;
-							break;
-						}
-					}
-					if (flag) {
-						params.add(str + "," + id);
-						params.remove(str);
-					} else {
-						params.add(pid + ":" + id);
-					}
-					break;
-
-				case "fahuodi":
-					int provinceId = array.optJSONObject(i).optInt("id");
-					sf.setProvinceId(provinceId);
-					break;
-
-				default:
-					break;
-				}
-			}
-			sf.setParams(params);
-		}
-
-		// 娣樺疂鐗╂枡鎺ュ彛鏌ヨ
-		TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf);
-
-		List<TaoBaoSearchNav> navList = TaoBaoUtil.getBaseNav();
-		if (result.getNavList() != null)
-			navList.addAll(result.getNavList());
-
-		Gson gson = new GsonBuilder().create();
-		JSONObject data = new JSONObject();
-		data.put("nav", gson.toJson(navList));
-
-		List<TaoBaoGoodsBriefExtra> re = new ArrayList<TaoBaoGoodsBriefExtra>();
-		List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs();
-
-		int fq = sf.getQuan();
-		int fh = sf.getHongbao();
-		boolean ft = sf.isTmall();
-
-		BigDecimal proportion = hongBaoManageService.getFanLiRate();
-
-		if (fq == 0 && fh == 0 && !ft) {
-			if (result != null && result.getTaoBaoGoodsBriefs() != null)
-				for (TaoBaoGoodsBrief bf : result.getTaoBaoGoodsBriefs()) {
-					int count = bf.getBiz30day();
-					if (count >= 10000) { // 瀵归攢閲忔暟鎹仛澶勭悊 椤甸潰灞曠ず7.3涓�
-						double sales = count;
-						String salesCountMidea = String.format("%.1f", sales / 10000);
-						bf.setSalesCount(salesCountMidea + "涓�");
-						re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), ""));
-					} else {
-						bf.setSalesCount(count + "");
-						re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), ""));
-					}
-				}
-		} else {
-			TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra;
-			if (taoBaoGoodsBriefs != null)
-				for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) {
-					int count = taoBaoGoodsBrief.getBiz30day();
-					if (count >= 10000) {
-						double sales = count;
-						String salesCountMidea = String.format("%.1f", sales / 10000);
-						taoBaoGoodsBrief.setSalesCount(salesCountMidea + "涓�");
-						taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
-								proportion.toString(), "");
-						re.add(taoBaoGoodsBriefExtra);
-					} else {
-						taoBaoGoodsBrief.setSalesCount(count + "");
-						taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
-								proportion.toString(), "");
-						re.add(taoBaoGoodsBriefExtra);
-					}
-				}
-		}
-
-		Gson gson2 = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
-				.excludeFieldsWithoutExposeAnnotation().create();
-
-		data.put("result", gson2.toJson(re));
-		data.put("count", result.getTaoBaoHead().getDocsfound());
-
-		return data;
-	}
-
-	@Override
-	public void setSearchFilter(SearchFilter searchfilter, String filter, String order, String startprice,
-			String endprice, String fastFilter, Integer totalSales) {
-
-		if (!StringUtil.isNullOrEmpty(startprice)) {
-			searchfilter.setStartPrice(new BigDecimal(startprice));
-		}
-
-		if (!StringUtil.isNullOrEmpty(endprice)) {
-			searchfilter.setEndPrice(new BigDecimal(endprice));
-		}
-
-		if (totalSales != null) {
-			searchfilter.setStartBiz30day(totalSales + "");
-		}
-
-		if (!StringUtil.isNullOrEmpty(fastFilter)) {
-			if (!StringUtil.isNullOrEmpty(filter)) {
-				JSONArray filterArray = JSONArray.fromObject(filter);
-				JSONArray fastFilterArray = JSONArray.fromObject(fastFilter);
-				filterArray.addAll(fastFilterArray);
-				filter = filterArray.toString();
-			} else {
-				filter = fastFilter;
-			}
-		}
-
-		if (!StringUtil.isNullOrEmpty(filter)) {
-			// 鏌ヨ娣樺疂澶╃尗
-			JSONArray array = JSONArray.fromObject(filter);
-			for (int i = 0; i < array.size(); i++) {
-				String type = array.optJSONObject(i).optString("type");
-				/* 鍚埜 */
-				if ("quantype".equalsIgnoreCase(type)) {
-					searchfilter.setQuan(1);
-					continue;
-				}
-				/* 鎼滅储澶╃尗 */
-				if ("shoptype".equalsIgnoreCase(type)) {
-					searchfilter.setTmall(true);
-					continue;
-				}
-			}
-		}
-
-		if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(order)) {
-			if (Integer.parseInt(order) == 1 || Integer.parseInt(order) == 0) {
-				searchfilter.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW);
-			} else if (Integer.parseInt(order) == 2) {
-				searchfilter.setSort(TaoBaoUtil.SORT_PRICE_HIGH_TO_LOW);
-			} else if (Integer.parseInt(order) == 3) {
-				searchfilter.setSort(TaoBaoUtil.SORT_PRICE_LOW_TO_HIGH);
-			} else if (Integer.parseInt(order) == 4) {
-				searchfilter.setSort(TaoBaoUtil.SORT_TOTAL_SALES_HIGH_TO_LOW);
-			} else if (Integer.parseInt(order) == 5) {
-				searchfilter.setSort(TaoBaoUtil.SORT_SALE_LOW_TO_HIGH);
-			}
-		} else {
-			searchfilter.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW);
-		}
-
-	}
-
-	@Override
-	@Cacheable(value = "qualityCache", key = "'countByQuality-'+#start+'-'+#searchKey+'-'+#systemCid+'-'+#listLabId")
-	public List<QualityFactory> queryByQuality(long start, int count, String searchKey, Long systemCid,
-			List<Long> listLabId) {
-
-		/* 1銆� 绮鹃�夊簱绛涢�� */
-		List<QualityFactory> listQuality = null;
-
-		if (listLabId != null && listLabId.size() > 0) {
-			// 鍚爣绛�
-			listQuality = qualityGoodsService.listQueryByKeyAndlabIDs(start, count, searchKey, listLabId, null,
-					systemCid, null, null, null, null, null);
-		} else {
-			listQuality = qualityGoodsService.listQueryByKey(start, count, searchKey, null, systemCid, null, null, null,
-					null, null);
-		}
-
-		return listQuality;
-	}
-
-	@Override
-	@Cacheable(value = "qualityCache", key = "'countByQuality-'+#searchKey+'-'+#systemCid+'-'+#listLabId")
-	public long countByQuality(String searchKey, Long systemCid, List<Long> listLabId) {
-
-		long incount = 0;
-
-		if (listLabId != null && listLabId.size() > 0) {
-			// 鍚爣绛�
-			incount = qualityGoodsService.countQueryKeyAndlabIDs(searchKey, listLabId, systemCid, null, null, null,
-					null, null);
-		} else {
-			incount = qualityGoodsService.countQueryByKey(searchKey, systemCid, null, null, null, null, null);
-		}
-
-		return incount;
-	}
-
-	@Override
-	public JSONObject listQualityGoods(List<QualityFactory> listQuality, List<TaoBaoGoodsBrief> searchWuLiaoList,
-			Map<String, String> map) {
-
-		JSONArray array = new JSONArray();
-		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
-				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
-
-		BigDecimal proportion = hongBaoManageService.getFanLiRate();
-
-		/* 閬嶅巻鍒楄〃鏁版嵁 */
-		for (QualityFactory selectionGoods : listQuality) {
-
-			TaoBaoGoodsBrief taoBaoGoodsBrief = selectionGoods.getTaoBaoGoodsBrief();
-
-			if (taoBaoGoodsBrief == null) {
-				continue;
-			}
-
-			int biz30day = taoBaoGoodsBrief.getBiz30day();
-			if (biz30day >= 10000) {
-				double sales = biz30day;
-				String salesCountMidea = String.format("%.1f", sales / 10000);
-				taoBaoGoodsBrief.setSalesCount(salesCountMidea + "涓�");
-			} else {
-				taoBaoGoodsBrief.setSalesCount(biz30day + "");
-			}
-
-			array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
-		}
-
-		if (searchWuLiaoList != null && searchWuLiaoList.size() > 0) {
-			/* 閬嶅巻鍒楄〃鏁版嵁 */
-			for (TaoBaoGoodsBrief taoBaoGoodsBrief : searchWuLiaoList) {
-
-				int biz30day = taoBaoGoodsBrief.getBiz30day();
-
-				if (biz30day >= 10000) {
-					double sales = biz30day;
-					String salesCountMidea = String.format("%.1f", sales / 10000);
-					taoBaoGoodsBrief.setSalesCount(salesCountMidea + "涓�");
-				} else {
-					taoBaoGoodsBrief.setSalesCount(biz30day + "");
-				}
-
-				array.add(gson
-						.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
-			}
-		}
-
-		JSONObject data = new JSONObject();
-
-		List<TaoBaoSearchNav> navList = new ArrayList<TaoBaoSearchNav>();
-		Gson gsonBuilder = new GsonBuilder().create();
-		data.put("nav", gsonBuilder.toJson(navList));
-		data.put("count", 5000);
-		data.put("result", array);
-
-		return data;
-	}
-
-}
+package com.yeshi.fanli.service.impl.lable;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.annotation.Resource;
+
+import com.yeshi.fanli.entity.SystemEnum;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Service;
+import org.yeshi.utils.JsonUtil;
+import org.yeshi.utils.taobao.TbImgUtil;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.yeshi.fanli.dto.ConfigParamsDTO;
+import com.yeshi.fanli.entity.bus.lable.QualityFactory;
+import com.yeshi.fanli.entity.taobao.SearchFilter;
+import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBriefExtra;
+import com.yeshi.fanli.entity.taobao.TaoBaoSearchNav;
+import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
+import com.yeshi.common.entity.taobao.TaoBaoShopInfo;
+import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
+import com.yeshi.fanli.service.inter.lable.TaoKeGoodsService;
+import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
+import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService;
+import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
+import com.yeshi.fanli.util.taobao.TaoBaoUtil;
+import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
+import com.yeshi.fanli.vo.goods.GoodsDetailVO;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+@Service
+public class TaoKeGoodsServiceImpl implements TaoKeGoodsService {
+
+	@Resource
+	private HongBaoManageService hongBaoManageService;
+	
+	@Resource
+	private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
+
+	@Resource
+	private TaoBaoShopService taoBaoShopService;
+
+	@Resource
+	private QualityGoodsService qualityGoodsService;
+
+	@Cacheable(value = "taoKeMaterialCache", key = "'listByMaterial-'+#materialId +'-'+#pageIndex")
+	@Override
+	public List<TaoBaoGoodsBrief> listByMaterial(Integer materialId, Integer pageIndex, int pageSize) throws Exception {
+
+		TaoBaoSearchResult result = TaoKeApiUtil.getMaterialByMaterialId(materialId, pageIndex, pageSize);
+
+		if (result == null) {
+			return null;
+		}
+
+		return result.getTaoBaoGoodsBriefs();
+	}
+
+	@Override
+	@Cacheable(value = "taoKeMaterialCache", key = "'getBrandsGoods-'+#materialId +'-'+#pageIndex")
+	public JSONObject getBrandsGoods(Integer materialId, int pageIndex, int pageSize, SystemEnum system) throws Exception {
+
+		TaoBaoSearchResult result = TaoKeApiUtil.getMaterialByMaterialId(materialId, pageIndex, pageSize);
+
+		if (result == null) {
+			return null;
+		}
+
+		List<TaoBaoGoodsBrief> listGoods = result.getTaoBaoGoodsBriefs();
+		if (listGoods == null || listGoods.size() == 0) {
+			return null;
+		}
+
+		JSONArray arrayGoods = new JSONArray();
+		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+
+		BigDecimal proportion = hongBaoManageService.getFanLiRate(system);
+
+		listGoods.parallelStream().forEach(taoBaoGoodsBrief -> {
+
+			// Long sellerId = taoBaoGoodsBrief.getSellerId();
+			// String title = taoBaoGoodsBrief.getTitle();
+			// Long auctionId = taoBaoGoodsBrief.getAuctionId();
+
+			// TaoBaoShopInfo shopInfo = TaoBaoShopUtil.getTaoBaoShopInfo(title,
+			// sellerId, auctionId);
+
+			TaoBaoShopInfo shopInfo = taoBaoShopService.getTaoBaoShopInfo(taoBaoGoodsBrief);
+
+			if (shopInfo != null) {
+				taoBaoGoodsBrief.setShopTitle(shopInfo.getShopTitle());
+				String shopType = shopInfo.getShopType();
+				if (shopType.contains("tm")) {
+					taoBaoGoodsBrief.setUserType(1);
+				} else {
+					taoBaoGoodsBrief.setUserType(0);
+				}
+			}
+
+			int count = taoBaoGoodsBrief.getBiz30day();
+			if (count >= 10000) {
+				double sales = count;
+				String salesCountMidea = String.format("%.1f", sales / 10000);
+				taoBaoGoodsBrief.setSalesCount(salesCountMidea + "涓�");
+			} else {
+				taoBaoGoodsBrief.setSalesCount(count + "");
+			}
+
+			// 鏀瑰彉鍥剧墖灏哄
+			String pictUrl = taoBaoGoodsBrief.getPictUrl();
+			if (!StringUtil.isNullOrEmpty(pictUrl) && !pictUrl.contains("320x320")) {
+				taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
+			}
+
+			arrayGoods.add(
+					gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
+
+		});
+
+		JSONObject data = new JSONObject();
+		data.put("count", arrayGoods.size());
+		data.put("result_list", arrayGoods);
+
+		return data;
+	}
+
+	@Override
+	@Cacheable(value = "taoKeMaterialCache", key = "'getBrandsShops-'+#materialId +'-'+#pageIndex")
+	public JSONObject getBrandsShops(Integer materialId, int pageIndex, int pageSize) throws Exception {
+
+		TaoBaoSearchResult result = TaoKeApiUtil.getMaterialByMaterialId(materialId, pageIndex, pageSize);
+
+		if (result == null) {
+			return null;
+		}
+
+		List<TaoBaoGoodsBrief> listGoods = result.getTaoBaoGoodsBriefs();
+		if (listGoods == null || listGoods.size() == 0) {
+			return null;
+		}
+
+		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+
+		JSONArray arrayShop = new JSONArray();
+
+		listGoods.parallelStream().forEach(taoBaoGoodsBrief -> {
+
+			// Long sellerId = taoBaoGoodsBrief.getSellerId();
+			// String title = taoBaoGoodsBrief.getTitle();
+			// Long auctionId = taoBaoGoodsBrief.getAuctionId();
+
+			// TaoBaoShopInfo shopInfo = TaoBaoShopUtil.getTaoBaoShopInfo(title,
+			// sellerId, auctionId);
+
+			TaoBaoShopInfo shopInfo = taoBaoShopService.getTaoBaoShopInfo(taoBaoGoodsBrief);
+
+			if (shopInfo != null) {
+
+				JSONObject jsonShop = new JSONObject();
+				String shopType = shopInfo.getShopType();
+				if (shopType.contains("tm")) {
+					shopInfo.setShopType("2");
+				} else {
+					shopInfo.setShopType("1");
+				}
+
+				jsonShop.put("shopInfo", shopInfo);
+				jsonShop.put("auctionId", taoBaoGoodsBrief.getAuctionId());
+				arrayShop.add(gson.toJson(jsonShop));
+			}
+
+		});
+
+		JSONObject data = new JSONObject();
+		data.put("count", listGoods.size());
+		data.put("result_list", arrayShop);
+
+		return data;
+	}
+
+	@Override
+	@Cacheable(value = "searchWuLiaoCache", key = "'searchWuLiao-'+#sf+'-'+system")
+	public JSONObject searchWuLiao(SearchFilter sf,SystemEnum system) {
+
+		// 娣樺疂鐗╂枡鎺ュ彛鏌ヨ
+		TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf,null,null);
+
+		List<TaoBaoSearchNav> navList = TaoBaoUtil.getBaseNav();
+		if (result.getNavList() != null)
+			navList.addAll(result.getNavList());
+
+		Gson gson = new GsonBuilder().create();
+		JSONObject data = new JSONObject();
+		data.put("nav", gson.toJson(navList));
+
+		List<TaoBaoGoodsBriefExtra> re = new ArrayList<TaoBaoGoodsBriefExtra>();
+		List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs();
+
+		int fq = sf.getQuan();
+		int fh = sf.getHongbao();
+		boolean ft = sf.isTmall();
+
+		BigDecimal proportion = hongBaoManageService.getFanLiRate(system);
+
+		if (fq == 0 && fh == 0 && !ft) {
+			if (result != null && result.getTaoBaoGoodsBriefs() != null)
+				for (TaoBaoGoodsBrief bf : result.getTaoBaoGoodsBriefs()) {
+					int count = bf.getBiz30day();
+
+					String startBiz30day = sf.getStartBiz30day();
+					if (!StringUtil.isNullOrEmpty(startBiz30day)) {
+						int biz30day = Integer.parseInt(startBiz30day);
+						if (count < biz30day) {
+							continue;
+						}
+					}
+
+					if (count >= 10000) { // 瀵归攢閲忔暟鎹仛澶勭悊 椤甸潰灞曠ず7.3涓�
+						double sales = count;
+						String salesCountMidea = String.format("%.1f", sales / 10000);
+						bf.setSalesCount(salesCountMidea + "涓�");
+						re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), ""));
+					} else {
+						bf.setSalesCount(count + "");
+						re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), ""));
+					}
+				}
+		} else {
+			TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra;
+			if (taoBaoGoodsBriefs != null)
+				for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) {
+
+					int count = taoBaoGoodsBrief.getBiz30day();
+
+					String startBiz30day = sf.getStartBiz30day();
+					if (!StringUtil.isNullOrEmpty(startBiz30day)) {
+						int biz30day = Integer.parseInt(startBiz30day);
+						if (count < biz30day) {
+							break;
+						}
+					}
+
+					if (count >= 10000) {
+						double sales = count;
+						String salesCountMidea = String.format("%.1f", sales / 10000);
+						taoBaoGoodsBrief.setSalesCount(salesCountMidea + "涓�");
+						taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
+								proportion.toString(), "");
+						re.add(taoBaoGoodsBriefExtra);
+					} else {
+						taoBaoGoodsBrief.setSalesCount(count + "");
+						taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
+								proportion.toString(), "");
+						re.add(taoBaoGoodsBriefExtra);
+					}
+				}
+		}
+
+		Gson gson2 = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+				.excludeFieldsWithoutExposeAnnotation().create();
+
+		data.put("result", gson2.toJson(re));
+		data.put("count", result.getTaoBaoHead().getDocsfound());
+
+		return data;
+	}
+	
+	
+	@Override
+	@Cacheable(value = "searchWuLiaoCache", key = "'searchWuLiaoV2-'+#sf+'-'+#platform+'-'+#version+'-'+#system")
+	public JSONObject searchWuLiaoV2(SearchFilter sf,String platform,String version,SystemEnum system) {
+
+		// 娣樺疂鐗╂枡鎺ュ彛鏌ヨ
+		TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf,null,null);
+
+		List<TaoBaoSearchNav> navList = TaoBaoUtil.getBaseNav();
+		if (result.getNavList() != null)
+			navList.addAll(result.getNavList());
+
+		Gson gson = new GsonBuilder().create();
+		JSONObject data = new JSONObject();
+		data.put("nav", gson.toJson(navList));
+
+		List<GoodsDetailVO> re = new ArrayList<GoodsDetailVO>();
+		List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs();
+
+		int fq = sf.getQuan();
+		int fh = sf.getHongbao();
+		boolean ft = sf.isTmall();
+
+	    ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(platform, version,system);
+
+		if (fq == 0 && fh == 0 && !ft) {
+			if (result != null && result.getTaoBaoGoodsBriefs() != null)
+				for (TaoBaoGoodsBrief bf : result.getTaoBaoGoodsBriefs()) {
+					int count = bf.getBiz30day();
+
+					String startBiz30day = sf.getStartBiz30day();
+					if (!StringUtil.isNullOrEmpty(startBiz30day)) {
+						int biz30day = Integer.parseInt(startBiz30day);
+						if (count < biz30day) {
+							continue;
+						}
+					}
+
+					GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(bf, paramsDTO);
+					re.add(goodsDetailVO);
+				}
+		} else {
+			if (taoBaoGoodsBriefs != null)
+				for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) {
+
+					int count = taoBaoGoodsBrief.getBiz30day();
+					String startBiz30day = sf.getStartBiz30day();
+					if (!StringUtil.isNullOrEmpty(startBiz30day)) {
+						int biz30day = Integer.parseInt(startBiz30day);
+						if (count < biz30day) {
+							break;
+						}
+					}
+					GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, paramsDTO);
+					re.add(goodsDetailVO);
+				}
+		}
+
+		Gson gson2 = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+				.excludeFieldsWithoutExposeAnnotation().create();
+
+		data.put("result", gson2.toJson(re));
+		data.put("count", result.getTaoBaoHead().getDocsfound());
+
+		return data;
+	}
+	
+	
+
+	@Override
+	@Cacheable(value = "searchWuLiaoCache", key = "'searchWuLiaoList-'+#sf+'-'+system")
+	public List<TaoBaoGoodsBrief> searchWuLiaoList(SearchFilter sf,SystemEnum system) {
+		// 娣樺疂鐗╂枡鎺ュ彛鏌ヨ
+		TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf,null,null);
+		if (result == null)
+			return null;
+
+		return result.getTaoBaoGoodsBriefs();
+	}
+
+	@Override
+	public JSONObject listByWuLiao(int page, String key, String cateIds, String filterParams, String order,
+			String startprice, String endprice, String searchParam,SystemEnum system) {
+
+		SearchFilter sf = new SearchFilter();
+		sf.setKey(key);
+		sf.setPage(page);
+		sf.setCateIds(cateIds);
+
+		if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(startprice)) {
+			sf.setStartPrice(new BigDecimal(startprice));
+		}
+
+		if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(endprice)) {
+			sf.setEndPrice(new BigDecimal(endprice));
+		}
+
+		if (com.yeshi.fanli.util.StringUtil.isNullOrEmpty(order)) {
+			// 榛樿閿�閲忎粠楂樺埌浣庢帓搴�
+			sf.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW);
+		} else {
+			if (Integer.parseInt(order) == 1) {
+				sf.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW);
+			} else if (Integer.parseInt(order) == 2) {
+				sf.setSort(TaoBaoUtil.SORT_PRICE_HIGH_TO_LOW);
+			} else if (Integer.parseInt(order) == 3) {
+				sf.setSort(TaoBaoUtil.SORT_PRICE_LOW_TO_HIGH);
+			}
+		}
+
+		if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(filterParams)) {
+
+			Set<String> params = new HashSet<String>();
+
+			JSONArray array = JSONArray.fromObject(filterParams);
+
+			for (int i = 0; i < array.size(); i++) {
+
+				String type = array.optJSONObject(i).optString("type");
+
+				switch (type) {
+				case "shoptype":
+					if (array.optJSONObject(i).optInt("id") == 21) {
+						sf.setTmFlagship(false); // 涓嶇瓫锟�?
+					} else {
+						sf.setTmFlagship(true);
+						sf.setTmall(true);
+						sf.setShopTag("b2c");
+					}
+					break;
+
+				case "category":
+					sf.setCateIds(array.optJSONObject(i).optString("id"));
+					break;
+
+				case "userType":
+					sf.setCateIds(array.optJSONObject(i).optString("id"));
+					break;
+
+				case "baoyou":
+					sf.setBaoYou(true);
+					break;
+
+				case "quantype":
+					sf.setQuan(1);
+					if (sf.isTmFlagship()) {
+						sf.setShopTag(sf.getShopTag() + ",dpyhq");
+					} else {
+						sf.setShopTag("dpyhq");
+					}
+					break;
+
+				case "hongbaotype":
+					if (array.optJSONObject(i).optInt("id") == 41) {
+						sf.setHongbao(1);
+					} else {
+						sf.setHongbao(2);
+					}
+					break;
+
+				case "property":
+					String pid = (String) array.optJSONObject(i).opt("pid");
+					String id = (String) array.optJSONObject(i).opt("id");
+					boolean flag = false;
+					String str = null;
+					for (String string : params) {
+						flag = string.contains(pid + ":");
+						if (flag) {
+							str = string;
+							break;
+						}
+					}
+					if (flag) {
+						params.add(str + "," + id);
+						params.remove(str);
+					} else {
+						params.add(pid + ":" + id);
+					}
+					break;
+
+				case "fahuodi":
+					int provinceId = array.optJSONObject(i).optInt("id");
+					sf.setProvinceId(provinceId);
+					break;
+
+				default:
+					break;
+				}
+			}
+			sf.setParams(params);
+		}
+
+		// 娣樺疂鐗╂枡鎺ュ彛鏌ヨ
+		TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf,null,null);
+
+		List<TaoBaoSearchNav> navList = TaoBaoUtil.getBaseNav();
+		if (result.getNavList() != null)
+			navList.addAll(result.getNavList());
+
+		Gson gson = new GsonBuilder().create();
+		JSONObject data = new JSONObject();
+		data.put("nav", gson.toJson(navList));
+
+		List<TaoBaoGoodsBriefExtra> re = new ArrayList<TaoBaoGoodsBriefExtra>();
+		List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs();
+
+		int fq = sf.getQuan();
+		int fh = sf.getHongbao();
+		boolean ft = sf.isTmall();
+
+		BigDecimal proportion = hongBaoManageService.getFanLiRate(system);
+
+		if (fq == 0 && fh == 0 && !ft) {
+			if (result != null && result.getTaoBaoGoodsBriefs() != null)
+				for (TaoBaoGoodsBrief bf : result.getTaoBaoGoodsBriefs()) {
+					int count = bf.getBiz30day();
+					if (count >= 10000) { // 瀵归攢閲忔暟鎹仛澶勭悊 椤甸潰灞曠ず7.3涓�
+						double sales = count;
+						String salesCountMidea = String.format("%.1f", sales / 10000);
+						bf.setSalesCount(salesCountMidea + "涓�");
+						re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), ""));
+					} else {
+						bf.setSalesCount(count + "");
+						re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), ""));
+					}
+				}
+		} else {
+			TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra;
+			if (taoBaoGoodsBriefs != null)
+				for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) {
+					int count = taoBaoGoodsBrief.getBiz30day();
+					if (count >= 10000) {
+						double sales = count;
+						String salesCountMidea = String.format("%.1f", sales / 10000);
+						taoBaoGoodsBrief.setSalesCount(salesCountMidea + "涓�");
+						taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
+								proportion.toString(), "");
+						re.add(taoBaoGoodsBriefExtra);
+					} else {
+						taoBaoGoodsBrief.setSalesCount(count + "");
+						taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
+								proportion.toString(), "");
+						re.add(taoBaoGoodsBriefExtra);
+					}
+				}
+		}
+
+		Gson gson2 = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+				.excludeFieldsWithoutExposeAnnotation().create();
+
+		data.put("result", gson2.toJson(re));
+		data.put("count", result.getTaoBaoHead().getDocsfound());
+
+		return data;
+	}
+
+	@Override
+	public void setSearchFilter(SearchFilter searchfilter, String filter, String order, String startprice,
+			String endprice, String fastFilter, Integer totalSales) {
+
+		if (!StringUtil.isNullOrEmpty(startprice)) {
+			searchfilter.setStartPrice(new BigDecimal(startprice));
+		}
+
+		if (!StringUtil.isNullOrEmpty(endprice)) {
+			searchfilter.setEndPrice(new BigDecimal(endprice));
+		}
+
+		if (totalSales != null) {
+			searchfilter.setStartBiz30day(totalSales + "");
+		}
+
+		if (!StringUtil.isNullOrEmpty(fastFilter)) {
+			if (!StringUtil.isNullOrEmpty(filter)) {
+				JSONArray filterArray = JSONArray.fromObject(filter);
+				JSONArray fastFilterArray = JSONArray.fromObject(fastFilter);
+				filterArray.addAll(fastFilterArray);
+				filter = filterArray.toString();
+			} else {
+				filter = fastFilter;
+			}
+		}
+
+		if (!StringUtil.isNullOrEmpty(filter)) {
+			// 鏌ヨ娣樺疂澶╃尗
+			JSONArray array = JSONArray.fromObject(filter);
+			for (int i = 0; i < array.size(); i++) {
+				String type = array.optJSONObject(i).optString("type");
+				/* 鍚埜 */
+				if ("quantype".equalsIgnoreCase(type)) {
+					searchfilter.setQuan(1);
+					continue;
+				}
+				/* 鎼滅储澶╃尗 */
+				if ("shoptype".equalsIgnoreCase(type)) {
+					searchfilter.setTmall(true);
+					continue;
+				}
+			}
+		}
+
+		if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(order)) {
+			if (Integer.parseInt(order) == 1 || Integer.parseInt(order) == 0) {
+				searchfilter.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW);
+			} else if (Integer.parseInt(order) == 2) {
+				searchfilter.setSort(TaoBaoUtil.SORT_PRICE_HIGH_TO_LOW);
+			} else if (Integer.parseInt(order) == 3) {
+				searchfilter.setSort(TaoBaoUtil.SORT_PRICE_LOW_TO_HIGH);
+			} else if (Integer.parseInt(order) == 4) {
+				searchfilter.setSort(TaoBaoUtil.SORT_TOTAL_SALES_HIGH_TO_LOW);
+			} else if (Integer.parseInt(order) == 5) {
+				searchfilter.setSort(TaoBaoUtil.SORT_SALE_LOW_TO_HIGH);
+			}
+		} else {
+			searchfilter.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW);
+		}
+
+	}
+
+	@Override
+	@Cacheable(value = "qualityCache", key = "'countByQuality-'+#start+'-'+#searchKey+'-'+#systemCid+'-'+#listLabId")
+	public List<QualityFactory> queryByQuality(long start, int count, String searchKey, Long systemCid,
+			List<Long> listLabId) {
+
+		/* 1銆� 绮鹃�夊簱绛涢�� */
+		List<QualityFactory> listQuality = null;
+
+		if (listLabId != null && listLabId.size() > 0) {
+			// 鍚爣绛�
+			listQuality = qualityGoodsService.listQueryByKeyAndlabIDs(start, count, searchKey, listLabId, null,
+					systemCid, null, null, null, null, null);
+		} else {
+			listQuality = qualityGoodsService.listQueryByKey(start, count, searchKey, null, systemCid, null, null, null,
+					null, null);
+		}
+
+		return listQuality;
+	}
+
+	@Override
+	@Cacheable(value = "qualityCache", key = "'countByQuality-'+#searchKey+'-'+#systemCid+'-'+#listLabId")
+	public long countByQuality(String searchKey, Long systemCid, List<Long> listLabId) {
+
+		long incount = 0;
+
+		if (listLabId != null && listLabId.size() > 0) {
+			// 鍚爣绛�
+			incount = qualityGoodsService.countQueryKeyAndlabIDs(searchKey, listLabId, systemCid, null, null, null,
+					null, null);
+		} else {
+			incount = qualityGoodsService.countQueryByKey(searchKey, systemCid, null, null, null, null, null);
+		}
+
+		return incount;
+	}
+
+	@Override
+	public JSONObject listQualityGoods(List<QualityFactory> listQuality, List<TaoBaoGoodsBrief> searchWuLiaoList,
+			Map<String, String> map,SystemEnum system) {
+
+		JSONArray array = new JSONArray();
+		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+
+		BigDecimal proportion = hongBaoManageService.getFanLiRate(system);
+
+		/* 閬嶅巻鍒楄〃鏁版嵁 */
+		for (QualityFactory selectionGoods : listQuality) {
+
+			TaoBaoGoodsBrief taoBaoGoodsBrief = selectionGoods.getTaoBaoGoodsBrief();
+
+			if (taoBaoGoodsBrief == null) {
+				continue;
+			}
+
+			int biz30day = taoBaoGoodsBrief.getBiz30day();
+			if (biz30day >= 10000) {
+				double sales = biz30day;
+				String salesCountMidea = String.format("%.1f", sales / 10000);
+				taoBaoGoodsBrief.setSalesCount(salesCountMidea + "涓�");
+			} else {
+				taoBaoGoodsBrief.setSalesCount(biz30day + "");
+			}
+
+			array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
+		}
+
+		if (searchWuLiaoList != null && searchWuLiaoList.size() > 0) {
+			/* 閬嶅巻鍒楄〃鏁版嵁 */
+			for (TaoBaoGoodsBrief taoBaoGoodsBrief : searchWuLiaoList) {
+
+				int biz30day = taoBaoGoodsBrief.getBiz30day();
+
+				if (biz30day >= 10000) {
+					double sales = biz30day;
+					String salesCountMidea = String.format("%.1f", sales / 10000);
+					taoBaoGoodsBrief.setSalesCount(salesCountMidea + "涓�");
+				} else {
+					taoBaoGoodsBrief.setSalesCount(biz30day + "");
+				}
+
+				array.add(gson
+						.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
+			}
+		}
+
+		JSONObject data = new JSONObject();
+
+		List<TaoBaoSearchNav> navList = new ArrayList<TaoBaoSearchNav>();
+		Gson gsonBuilder = new GsonBuilder().create();
+		data.put("nav", gsonBuilder.toJson(navList));
+		data.put("count", 5000);
+		data.put("result", array);
+
+		return data;
+	}
+
+}

--
Gitblit v1.8.0