From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 25 二月 2025 16:41:22 +0800 Subject: [PATCH] 淘宝转链接口更新 --- fanli/src/main/java/com/yeshi/fanli/service/impl/lable/TaoKeGoodsServiceImpl.java | 1343 ++++++++++++++++++++++++++++++--------------------------- 1 files changed, 705 insertions(+), 638 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 dd4e65f..5bb4a59 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,638 +1,705 @@ -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 net.sf.json.JSONArray; -import net.sf.json.JSONObject; - -import org.springframework.cache.annotation.Cacheable; -import org.springframework.stereotype.Service; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -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.hongbao.HongBaoManageService; -import com.yeshi.fanli.service.inter.lable.QualityGoodsService; -import com.yeshi.fanli.service.inter.lable.TaoKeGoodsService; -import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService; -import com.yeshi.fanli.util.StringUtil; -import com.yeshi.fanli.util.taobao.TaoBaoUtil; -import com.yeshi.fanli.util.taobao.TaoKeApiUtil; -import org.yeshi.utils.JsonUtil; -import org.yeshi.utils.taobao.TbImgUtil; - -@Service -public class TaoKeGoodsServiceImpl implements TaoKeGoodsService { - - @Resource - private HongBaoManageService manageService; - - @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(); - - Map<String, String> map = manageService.convertMap(); - String proportion = map.get("hongbao_goods_proportion"); - String fcRate = map.get("hongbao_fc_ratio"); - - 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, fcRate, 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(); - - Map<String, String> map = manageService.convertMap(); - String proportion = map.get("hongbao_goods_proportion"); - String fcRate = map.get("hongbao_fc_ratio"); - - 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) { - break; - } - } - - if (count >= 10000) { // 瀵归攢閲忔暟鎹仛澶勭悊 椤甸潰灞曠ず7.3涓� - double sales = count; - String salesCountMidea = String.format("%.1f", sales / 10000); - bf.setSalesCount(salesCountMidea + "涓�"); - re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion, fcRate, "")); - } else { - bf.setSalesCount(count + ""); - re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion, fcRate, "")); - } - } - } 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, - fcRate, ""); - re.add(taoBaoGoodsBriefExtra); - } else { - taoBaoGoodsBrief.setSalesCount(count + ""); - taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, - fcRate, ""); - 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 = "'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(); - - Map<String, String> map = manageService.convertMap(); - String proportion = map.get("hongbao_goods_proportion"); - String fcRate = map.get("hongbao_fc_ratio"); - - 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, fcRate, "")); - } else { - bf.setSalesCount(count + ""); - re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion, fcRate, "")); - } - } - } 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, - fcRate, ""); - re.add(taoBaoGoodsBriefExtra); - } else { - taoBaoGoodsBrief.setSalesCount(count + ""); - taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, - fcRate, ""); - 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(); - - String proportion = map.get("hongbao_goods_proportion"); - String fcRate = map.get("hongbao_fc_ratio"); - - /* 閬嶅巻鍒楄〃鏁版嵁 */ - 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, fcRate, 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, fcRate, 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 com.yeshi.fanli.lijin.manager.GoodsLijinMnager; +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.GoodsMoneyConfigParamsDTO; +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; + + @Resource + private GoodsLijinMnager goodsLijinMnager; + + @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.searchWuLiaoNew(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.searchWuLiaoNew(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(); + + GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(platform, version, system); + + List<TaoBaoGoodsBrief> goodsBriefList = new ArrayList<>(); + 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; + } + } + + goodsBriefList.add(bf); + } + } 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; + } + } + goodsBriefList.add(taoBaoGoodsBrief); + } + } + Gson gson2 = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) + .excludeFieldsWithoutExposeAnnotation().create(); + + List<GoodsDetailVO> voList = goodsLijinMnager.loadTBMoneyInfo(system, null, goodsBriefList, paramsDTO,false); + for (GoodsDetailVO vo : voList) { + re.add(vo); + } + + + 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.searchWuLiaoNew(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.searchWuLiaoNew(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