From 98b1a0affd69bbe63223c21fdd2c404e8bedfccb Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 20 五月 2020 17:25:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into 2.1.2

---
 fanli/src/main/java/com/yeshi/fanli/controller/admin/TaoBaoGoodsBriefAdminController.java |  720 +++++++++++++++++++++++++++++++----------------------------
 1 files changed, 382 insertions(+), 338 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/admin/TaoBaoGoodsBriefAdminController.java b/fanli/src/main/java/com/yeshi/fanli/controller/admin/TaoBaoGoodsBriefAdminController.java
index 74b2f84..5bad427 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/admin/TaoBaoGoodsBriefAdminController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/admin/TaoBaoGoodsBriefAdminController.java
@@ -3,22 +3,23 @@
 import java.io.PrintWriter;
 import java.math.BigDecimal;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
 import org.yeshi.utils.JsonUtil;
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
+import com.google.gson.reflect.TypeToken;
 import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
 import com.yeshi.fanli.entity.bus.lable.QualityFactory;
+import com.yeshi.fanli.entity.common.AdminUser;
 import com.yeshi.fanli.entity.taobao.PidUser;
 import com.yeshi.fanli.entity.taobao.SearchFilter;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
@@ -26,21 +27,17 @@
 import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
 import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
 import com.yeshi.fanli.entity.taobao.TaobaoMeterial;
-import com.yeshi.fanli.exception.ExistObjectException;
-import com.yeshi.fanli.exception.NotExistObjectException;
-import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
+import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
 import com.yeshi.fanli.service.inter.goods.GoodsClassService;
 import com.yeshi.fanli.service.inter.goods.TaoBaoClassService;
-import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefRecordService;
 import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
 import com.yeshi.fanli.service.inter.lable.QualityFactoryService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
 import com.yeshi.fanli.service.inter.taobao.TaobaoMeterialService;
+import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service;
 import com.yeshi.fanli.tag.PageEntity;
 import com.yeshi.fanli.util.Constant;
-import com.yeshi.fanli.util.GsonUtil;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
-import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
@@ -53,13 +50,10 @@
 
 	@Resource
 	private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
-	@Resource
-	private TaoBaoGoodsBriefRecordService taoBaoGoodsBriefRecordService;
 
 	@Resource
-	private RedisManager redisManager;
-	@Resource
-	private QualityFactoryService selectionGoodsService;
+	private QualityFactoryService qualityFactoryService;
+
 	@Resource
 	private TaoBaoUnionConfigService taoBaoUnionConfigService;
 
@@ -70,160 +64,9 @@
 
 	@Resource
 	private TaoBaoClassService taoBaoClassService;
-
-	@RequestMapping(value = "getTBGoodsList", method = RequestMethod.POST)
-	public void getTaoBaoGoodsBriefList(int pageIndex, String key, PrintWriter out) {
-
-		List<TaoBaoGoodsBrief> taoBaoGoodsBriefList = taoBaoGoodsBriefService.getTBList(pageIndex - 1, key);
-		int count = taoBaoGoodsBriefService.getCount(key);
-		int totalPage = count % Constant.PAGE_SIZE == 0 ? count / Constant.PAGE_SIZE : count / Constant.PAGE_SIZE + 1;
-		PageEntity pe = new PageEntity(pageIndex, Constant.PAGE_SIZE, count, totalPage);
-		Map<String, String> map = new HashMap<String, String>();
-		map.put("key", key);
-		pe.setParams(map);
-		JSONObject data = new JSONObject();
-		data.put("pe", pe);
-		data.put("taoBaoGoodsBriefList", GsonUtil.toDFJson(taoBaoGoodsBriefList));
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	@RequestMapping(value = "getInvalidTaoBaoGoods", method = RequestMethod.POST)
-	public void getInvalidTaoBaoGoods(int pageIndex, PrintWriter out) {
-		List<TaoBaoGoodsBrief> taoBaoGoodsBriefList = taoBaoGoodsBriefService.getInvalidTB(pageIndex);
-		int count = taoBaoGoodsBriefService.getInvalidCount();
-		int totalPage = count % Constant.PAGE_SIZE == 0 ? count / Constant.PAGE_SIZE : count / Constant.PAGE_SIZE + 1;
-		PageEntity pe = new PageEntity(pageIndex, Constant.PAGE_SIZE, count, totalPage);
-		JSONObject data = new JSONObject();
-		data.put("pe", pe);
-		data.put("taoBaoGoodsBriefList", GsonUtil.toDFJson(taoBaoGoodsBriefList));
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	@RequestMapping(value = "getTaobaoGoods", method = RequestMethod.POST)
-	public void getTaoBaoGoodsBrief(long id, PrintWriter out) {
-		TaoBaoGoodsBrief taobao = taoBaoGoodsBriefService.getTaoBao(id);
-
-		if (taobao == null) {
-			out.append(JsonUtil.loadFalseResult("涓嶅瓨鍦ㄨ鍟嗗搧"));
-			return;
-		}
-		JSONObject data = new JSONObject();
-		data.put("taobao", GsonUtil.toDFJson(taobao));
-		List<String> list = new ArrayList<String>();
-		list = TaoBaoUtil.getTbImg(taobao.getAuctionId() + "");
-		data.put("imgList", list);
-		out.append(JsonUtil.loadTrueResult(data));
-	}
-
-	@RequestMapping(value = "updateTaoBaoGoodsBrief", method = RequestMethod.POST)
-	public void updateTaoBaoGoodsBrief(TaoBaoGoodsBrief tb, PrintWriter out) {
-		try {
-			taoBaoGoodsBriefService.updateTBGoods(tb);
-		} catch (NotExistObjectException e) {
-			out.append(JsonUtil.loadFalseResult(e.getMessage()));
-			return;
-		}
-		out.append(JsonUtil.loadTrueResult("淇敼鎴愬姛"));
-	}
-
-	@RequestMapping(value = "deleteTaoBaoGoods", method = RequestMethod.POST)
-	public void deleteTaoBaoGoods(long[] ids, PrintWriter out) {
-		for (long id : ids) {
-			taoBaoGoodsBriefService.deleteTaoBaoGoods(id);
-		}
-		out.append(JsonUtil.loadTrueResult("鍒犻櫎鎴愬姛"));
-	}
-
-	@RequestMapping(value = "addTaoBaoGoodsBrief", method = RequestMethod.POST)
-	public void addTaoBaoGoodsBrief(String[] ids, PrintWriter out) {
-		List<JSONObject> list = new ArrayList<JSONObject>();
-		JSONObject data = null;
-		for (String id : ids) {
-			data = new JSONObject();
-
-			TaoBaoGoodsBrief taoBaoGoodsBrief = null;
-			try {
-				taoBaoGoodsBrief = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id));
-				taoBaoGoodsBrief.setUpdatetime(new Date());
-				taoBaoGoodsBrief.setCreatetime(new Date());
-			} catch (NumberFormatException e1) {
-				e1.printStackTrace();
-			} catch (TaobaoGoodsDownException e1) {
-				e1.printStackTrace();
-			}
-			try {
-				taoBaoGoodsBriefService.insertSelective(taoBaoGoodsBrief);
-				// taoBaoGoodsBriefService.save(taoBaoGoodsBrief);
-				data.put("id", id);
-				data.put("msg", "娣诲姞鎴愬姛");
-			} catch (Exception e) {
-				data.put("id", id);
-				data.put("msg", e.getMessage());
-			}
-			list.add(data);
-		}
-		JSONObject dataAll = new JSONObject();
-		dataAll.put("list", list);
-		out.print(JsonUtil.loadTrueResult(dataAll));
-	}
-
-	@RequestMapping(value = "addRecommendSectionGoods", method = RequestMethod.POST)
-	public void addRecommendSectionGoods(long rsid, String tbids, PrintWriter out) {
-		String[] tbidStrArr = tbids.split(",");
-		long[] tbidArr = StringUtil.parseLong(tbidStrArr);
-		List<JSONObject> list = new ArrayList<JSONObject>();
-		JSONObject data = null;
-		for (long tbid : tbidArr) {
-			data = new JSONObject();
-			try {
-				taoBaoGoodsBriefService.addRecommendSectionGoods(rsid, tbid);
-				data.put("id", tbid);
-				data.put("msg", "娣诲姞鎴愬姛");
-			} catch (NotExistObjectException e) {
-				data.put("id", tbid);
-				data.put("msg", e.getMessage());
-			} catch (ExistObjectException e) {
-				data.put("id", tbid);
-				data.put("msg", e.getMessage());
-			}
-			list.add(data);
-		}
-		JSONObject dataAll = new JSONObject();
-		dataAll.put("list", list);
-		out.print(JsonUtil.loadTrueResult(dataAll));
-	}
-
-	@RequestMapping(value = "addClassRecommendGoods", method = RequestMethod.POST)
-	public void addClassRecommendGoods(long gcid, String tbids, PrintWriter out) {
-		String[] tbidStrArr = tbids.split(",");
-		long[] tbidArr = StringUtil.parseLong(tbidStrArr);
-		List<JSONObject> list = new ArrayList<JSONObject>();
-		JSONObject data = null;
-		for (long tbid : tbidArr) {
-			data = new JSONObject();
-			try {
-				taoBaoGoodsBriefService.addClassRecommendGoods(gcid, tbid);
-				data.put("id", tbid);
-				data.put("msg", "娣诲姞鎴愬姛");
-			} catch (NotExistObjectException e) {
-				data.put("id", tbid);
-				data.put("msg", e.getMessage());
-			} catch (ExistObjectException e) {
-				data.put("id", tbid);
-				data.put("msg", e.getMessage());
-			}
-			list.add(data);
-		}
-		JSONObject dataAll = new JSONObject();
-		dataAll.put("list", list);
-		out.print(JsonUtil.loadTrueResult(dataAll));
-	}
-
-	@RequestMapping(value = "updateAllTaoBaoGoods", method = RequestMethod.POST)
-	public void updateAllTaoBaoGoods(PrintWriter out) {
-		taoBaoGoodsBriefService.getUpdateTaoBao();
-		out.print(JsonUtil.loadTrueResult("鏇存柊瀹屾垚"));
-	}
+	
+	@Resource
+	private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service;
 
 	/**
 	 * 
@@ -247,179 +90,38 @@
 	public void queryOnSale(String callback, Integer pageIndex, Integer pageSize, String key, Long tbClassId,
 			Integer startPrice, Integer endPrice, String startTkRate, String endTkRate, Integer sort, Integer istmall,
 			Integer hasCoupon, Integer baoYou, Integer startDsr, Integer overseas, Integer needPrepay,
-			Integer includePayRate30, Integer includeGoodRate, Integer includeRfdRate, Integer npxLevel,
+			Integer includePayRate30, Integer includeGoodRate, Integer includeRfdRate, Integer npxLevel, String cid,
 			PrintWriter out) {
 
 		try {
+			// 鏌ヨ鐗╂枡
+			TaoBaoSearchResult result = getGoodsByWuLiao(pageIndex, pageSize, key, tbClassId, startPrice, endPrice,
+					startTkRate, endTkRate, sort, istmall, hasCoupon, baoYou, startDsr, overseas, needPrepay,
+					includePayRate30, includeGoodRate, includeRfdRate, npxLevel,cid);
 
-			SearchFilter filter = new SearchFilter();
-
-			// 椤靛ぇ灏忥紝榛樿20锛�1~100
-			if (pageSize == null || pageSize < 1)
-				pageSize = Constant.PAGE_SIZE;
-
-			filter.setPageSize(pageSize);
-
-			// 绗嚑椤碉紝榛樿锛氾紤
-			if (pageIndex == null || pageIndex < 1)
-				pageIndex = 1;
-
-			filter.setPage(pageIndex);
-
-			// 鏌ヨ璇� key------ 涓嶈兘涓虹┖---------
-			if (!StringUtil.isNullOrEmpty(key))
-				filter.setKey(key);
-
-			if (tbClassId != null) {
-				GoodsClass rb = goodsClassService.getGoodsClass(tbClassId);
-				if (rb == null) {
-					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ョ被鍨嬪凡涓嶅瓨鍦�,璇峰埛鏂伴噸璇�"));
-					return;
-				} else {
-
-					// 娣樺疂绫荤洰id
-					String taoBaoCatIds = taoBaoClassService.getTaoBaoCatIds(tbClassId);
-
-					if (StringUtil.isNullOrEmpty(taoBaoCatIds)) {
-						JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ョ被鍨嬫窐瀹漣d涓虹┖锛岃閫氱煡鐩稿叧浜哄憳杩涜缁存姢"));
-						return;
-					} else {
-						filter.setCateIds(taoBaoCatIds);
-					}
-				}
+			if (result == null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏈幏鍙栧埌娣樺疂鍟嗗搧淇℃伅"));
+				return;
 			}
 
-			// 鏌ヨ鏉′欢鍜岀被鐩甶d涓嶈兘鍚屾椂涓虹┖
-			if (StringUtil.isNullOrEmpty(key) && tbClassId == null) {
-				filter.setKey("濂宠");
-			}
-
-			// 鎶樻墸浠疯寖鍥翠笅闄�
-			if (startPrice != null)
-				filter.setStartPrice(new BigDecimal(startPrice));
-
-			// 鎶樻墸浠疯寖鍥翠笂闄�
-			if (endPrice != null && endPrice > 0)
-				filter.setEndPrice(new BigDecimal(endPrice));
-
-			// 娣樺浣i噾姣旂巼涓嬮檺 濡傦細1234琛ㄧず12.34%
-			if (!StringUtil.isNullOrEmpty(startTkRate)) {
-				int tkRate = (int) (Float.parseFloat(startTkRate) * 100);
-				filter.setStartTkRate(tkRate);
-			}
-
-			// 娣樺浣i噾姣旂巼涓婇檺 濡傦細1234琛ㄧず12.34%
-			if (!StringUtil.isNullOrEmpty(endTkRate)) {
-				int tkRate = (int) (Float.parseFloat(endTkRate) * 100);
-				filter.setEndTkRate(tkRate);
-			}
-
-			// 鎺掑簭瀛楁
-			// 閿�閲忥紙total_sales锛夋窐瀹剑閲戞瘮鐜囷紙tk_rate锛夌疮璁℃帹骞块噺锛坱k_total_sales锛夋�绘敮鍑轰剑閲戯紙tk_total_commi锛�
-			if (sort != null)
-				filter.setSort(sort);
-			// 鏌ヨ澶╃尗 1 true
-			if (istmall != null && istmall == 1)
-				filter.setTmall(true);
-			// 鏄惁鏈夊埜 1 true
-			if (hasCoupon != null && hasCoupon == 1)
-				filter.setQuan(1);
-			// 鏄惁鍖呴偖锛宼rue琛ㄧず鍖呴偖锛岀┖鎴杅alse琛ㄧず涓嶉檺
-			if (baoYou != null && baoYou == 1) {
-				filter.setBaoYou(true);
-				// filter.setIp("113.251.22.10");// 閲嶅簡
-				filter.setIp("218.72.111.105");// 鏉窞
-
-			}
-
-			// 搴楅摵dsr璇勫垎
-			if (startDsr != null && startDsr >= 0 && startDsr <= 50000)
-				filter.setStartDsr(startDsr);
-			// 鏄惁娴峰鍟嗗搧
-			if (overseas != null && overseas == 1)
-				filter.setOverseas(true);
-			// 鏄惁鍔犲叆娑堣垂鑰呬繚闅滐紝
-			if (needPrepay != null && needPrepay == 1)
-				filter.setNeedPrepay(true);
-			// 鎴愪氦杞寲鏄惁楂樹簬琛屼笟鍧囧��
-			if (includePayRate30 != null && includePayRate30 == 1)
-				filter.setIncludePayRate30(true);
-			// 濂借瘎鐜囨槸鍚﹂珮浜庤涓氬潎鍊�
-			if (includeGoodRate != null && includeGoodRate == 1)
-				filter.setIncludeGoodRate(true);
-
-			// 閫�娆剧巼鏄惁浣庝簬琛屼笟鍧囧��
-			if (includeRfdRate != null && includeRfdRate == 1)
-				filter.setIncludeRfdRate(true);
-
-			// 鐗涚毊鐧g▼搴︼紝鍙栧�硷細1:涓嶉檺锛�2:鏃狅紝3:杞诲井
-			if (npxLevel != null && npxLevel > 0 && npxLevel < 4)
-				filter.setNpxLevel(npxLevel);
-
-			boolean islink = false;
-			Long auctionId = null;
-
-			/* 鍒ゆ柇鏄惁鏄晢鍝侀摼鎺ユ悳绱� */
-			if (key != null && key.contains("//") && key.contains("&")) {
-				String[] keyArray = key.split("\\?")[1].split("&");
-				if (keyArray != null && keyArray.length > 0) {
-					String id = keyArray[0].replace("id=", "").trim();
-					if (!StringUtil.isNullOrEmpty(id)) {
-						auctionId = Long.parseLong(id);
-						islink = true;
-					}
-				}
-			}
-
-			TaoBaoSearchResult result = null;
-			List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = null;
-
-			if (!islink) {
-				/* 娣樺疂鐗╂枡鎼滅储 */
-				result = TaoKeApiUtil.searchWuLiao(filter);
-				if (result == null) {
-					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏈幏鍙栧埌娣樺疂鍟嗗搧淇℃伅"));
-					return;
-				} else {
-					taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs();
-				}
-
-			} else {
-				/* 鍟嗗搧閾炬帴鎼滅储 */
-
-				TaoBaoGoodsBrief searchGoodsDetail = TaoKeApiUtil.searchGoodsDetail(auctionId);
-				if (searchGoodsDetail == null) {
-					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏈幏鍙栧埌娣樺疂鍟嗗搧淇℃伅"));
-					return;
-				} else {
-					taoBaoGoodsBriefs = new ArrayList<>();
-					taoBaoGoodsBriefs.add(searchGoodsDetail);
-
-					result = new TaoBaoSearchResult();
-					result.setTaoBaoGoodsBriefs(taoBaoGoodsBriefs);
-
-					PageEntity pageEntity = new PageEntity(pageIndex, pageSize, 0, 0);
-					result.setPageEntity(pageEntity);
-				}
-			}
-
-			if (taoBaoGoodsBriefs == null || taoBaoGoodsBriefs.size() == 0) {
+			List<TaoBaoGoodsBrief> listTaoBaoGoods = result.getTaoBaoGoodsBriefs();
+			if (listTaoBaoGoods == null || listTaoBaoGoods.size() == 0) {
 				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏈煡璇㈠埌娣樺疂鍟嗗搧淇℃伅"));
 				return;
 			}
 
 			// 鎻掑叆鍟嗗搧闆嗗悎
 			List<Long> listAuctionId = new ArrayList<Long>();
-			for (TaoBaoGoodsBrief goodsBrief : taoBaoGoodsBriefs) {
+			for (TaoBaoGoodsBrief goodsBrief : listTaoBaoGoods) {
 				listAuctionId.add(goodsBrief.getAuctionId());
 			}
 
 			// 楠岃瘉鏄惁瀛樺湪鏁版嵁搴�
-			List<QualityFactory> listHas = selectionGoodsService.listQueryByAuctionId(listAuctionId);
+			List<QualityFactory> listHas = qualityFactoryService.listQueryByAuctionId(listAuctionId);
 
 			List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>();
 
-			for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) {
+			for (TaoBaoGoodsBrief taoBaoGoodsBrief : listTaoBaoGoods) {
 
 				taoBaoGoodsBrief.setId(null);
 
@@ -514,14 +216,261 @@
 
 			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
 
-			// 鎻掑叆鏈湴鏁版嵁-娣樺疂鏁版嵁璁板綍
-			taoBaoGoodsBriefRecordService.insertBatch(taoBaoGoodsBriefs);
-
 		} catch (Exception e) {
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ寮傚父"));
 			e.printStackTrace();
 		}
 
+	}
+
+	/**
+	 * 鍔犲叆绮鹃�夊簱鍟嗗搧
+	 * 
+	 * @param callback
+	 * @param pageIndex
+	 * @param key
+	 *            鍏抽敭璇�
+	 * @param startPrice
+	 *            浠锋牸灏忓��
+	 * @param endPrice
+	 *            浠锋牸澶у��
+	 * @param startTkRate
+	 *            浣i噾灏忓��
+	 * @param endTkRate
+	 *            浣i噾澶у��
+	 * @param sort
+	 *            鎺掑簭
+	 * @param out
+	 */
+	@RequestMapping(value = "addTBGoodsFactory")
+	public void addTBGoodsFactory(String callback, Integer pageIndex, Integer pageSize, String key, Long tbClassId,
+			Integer startPrice, Integer endPrice, String startTkRate, String endTkRate, Integer sort, Integer istmall,
+			Integer hasCoupon, Integer baoYou, Integer startDsr, Integer overseas, Integer needPrepay,
+			Integer includePayRate30, Integer includeGoodRate, Integer includeRfdRate, Integer npxLevel,
+			String auctionIds, String lableNames, HttpServletRequest request, PrintWriter out) {
+
+		try {
+
+			if (StringUtil.isNullOrEmpty(auctionIds)) {
+				out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("璇烽�夋嫨姝g‘鐨勫晢鍝佸叆搴�")));
+				return;
+			}
+
+			Gson gson2 = new Gson();
+			List<Long> listTaoBaoId = gson2.fromJson(auctionIds, new TypeToken<ArrayList<Long>>() {
+			}.getType());
+			if (listTaoBaoId == null || listTaoBaoId.size() == 0) {
+				out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("璇烽�夋嫨姝g‘鐨勫晢鍝佸叆搴�")));
+				return;
+			}
+
+			// 鏌ヨ鐗╂枡
+			TaoBaoSearchResult result = getGoodsByWuLiao(pageIndex, pageSize, key, tbClassId, startPrice, endPrice,
+					startTkRate, endTkRate, sort, istmall, hasCoupon, baoYou, startDsr, overseas, needPrepay,
+					includePayRate30, includeGoodRate, includeRfdRate, npxLevel,null);
+
+			if (result == null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏈幏鍙栧埌娣樺疂鍟嗗搧淇℃伅"));
+				return;
+			}
+
+			List<TaoBaoGoodsBrief> listTaoBaoGoods = result.getTaoBaoGoodsBriefs();
+			if (listTaoBaoGoods == null || listTaoBaoGoods.size() == 0) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏈煡璇㈠埌娣樺疂鍟嗗搧淇℃伅"));
+				return;
+			}
+
+			List<TaoBaoGoodsBrief> listAddGoods = new ArrayList<TaoBaoGoodsBrief>();
+			for (TaoBaoGoodsBrief taoBaoGoodsBrief : listTaoBaoGoods) {
+				Long auctionId = taoBaoGoodsBrief.getAuctionId();
+				if (listTaoBaoId.contains(auctionId)) {
+					listAddGoods.add(taoBaoGoodsBrief);
+					listTaoBaoId.remove(auctionId);
+				}
+			}
+
+			if (listTaoBaoId != null && listTaoBaoId.size() > 0) {
+				for (Long auctionId : listTaoBaoId) {
+					/* 鏍规嵁auctionId 鑾峰彇娣樺疂鍟嗗搧 */
+					TaoBaoGoodsBrief goodsBrief = TaoKeApiUtil.searchGoodsDetail(auctionId);
+					if (goodsBrief != null) {
+						listAddGoods.add(goodsBrief);
+					}
+				}
+			}
+
+			AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
+			// 鎻掑叆绮鹃�夊簱
+			qualityFactoryService.addBatchTaoBaoGoods(listAddGoods, lableNames, admin);
+
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鍔犲叆鎴愬姛"));
+
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, e.getMessage()));
+			e.printStackTrace();
+		}
+
+	}
+
+	/**
+	 * 鏍规嵁鏉′欢娣樺疂鍟嗗搧鏌ヨ
+	 * 
+	 * @param pageIndex
+	 * @param pageSize
+	 * @param key
+	 * @param tbClassId
+	 * @param startPrice
+	 * @param endPrice
+	 * @param startTkRate
+	 * @param endTkRate
+	 * @param sort
+	 * @param istmall
+	 * @param hasCoupon
+	 * @param baoYou
+	 * @param startDsr
+	 * @param overseas
+	 * @param needPrepay
+	 * @param includePayRate30
+	 * @param includeGoodRate
+	 * @param includeRfdRate
+	 * @param npxLevel
+	 * @throws Exception
+	 */
+	public TaoBaoSearchResult getGoodsByWuLiao(Integer pageIndex, Integer pageSize, String key, Long tbClassId,
+			Integer startPrice, Integer endPrice, String startTkRate, String endTkRate, Integer sort, Integer istmall,
+			Integer hasCoupon, Integer baoYou, Integer startDsr, Integer overseas, Integer needPrepay,
+			Integer includePayRate30, Integer includeGoodRate, Integer includeRfdRate, Integer npxLevel, String cids)
+			throws Exception {
+
+		SearchFilter filter = new SearchFilter();
+		filter.setPageSize(pageSize);
+		filter.setPage(pageIndex);
+
+		// 鏌ヨ璇� key------ 涓嶈兘涓虹┖---------
+		if (!StringUtil.isNullOrEmpty(key))
+			filter.setKey(key);
+
+		if (tbClassId != null) {
+			GoodsClass rb = goodsClassService.getGoodsClass(tbClassId);
+			if (rb == null) {
+				throw new Exception("璇ョ被鍨嬪凡涓嶅瓨鍦�,璇峰埛鏂伴噸璇�");
+			}
+
+			// 娣樺疂绫荤洰id
+			String taoBaoCatIds = taoBaoClassService.getTaoBaoCatIds(tbClassId);
+			if (StringUtil.isNullOrEmpty(taoBaoCatIds)) {
+				throw new Exception("璇ョ被鍨嬫窐瀹漣d涓虹┖锛岃閫氱煡鐩稿叧浜哄憳杩涜缁存姢");
+			} else {
+				filter.setCateIds(taoBaoCatIds);
+			}
+		}
+		if (!StringUtil.isNullOrEmpty(cids))
+			filter.setCateIds(cids);
+
+		// 鏌ヨ鏉′欢鍜岀被鐩甶d涓嶈兘鍚屾椂涓虹┖
+		if (StringUtil.isNullOrEmpty(key) && tbClassId == null) {
+			filter.setKey("濂宠");
+		}
+		// 鎶樻墸浠疯寖鍥翠笅闄�
+		if (startPrice != null) {
+			filter.setStartPrice(new BigDecimal(startPrice));
+		}
+		// 鎶樻墸浠疯寖鍥翠笂闄�
+		if (endPrice != null && endPrice > 0) {
+			filter.setEndPrice(new BigDecimal(endPrice));
+		}
+		// 娣樺浣i噾姣旂巼涓嬮檺 濡傦細1234琛ㄧず12.34%
+		if (!StringUtil.isNullOrEmpty(startTkRate)) {
+			int tkRate = (int) (Float.parseFloat(startTkRate) * 100);
+			filter.setStartTkRate(tkRate);
+		}
+		// 娣樺浣i噾姣旂巼涓婇檺 濡傦細1234琛ㄧず12.34%
+		if (!StringUtil.isNullOrEmpty(endTkRate)) {
+			int tkRate = (int) (Float.parseFloat(endTkRate) * 100);
+			filter.setEndTkRate(tkRate);
+		}
+		// 鎺掑簭瀛楁
+		// 閿�閲忥紙total_sales锛夋窐瀹剑閲戞瘮鐜囷紙tk_rate锛夌疮璁℃帹骞块噺锛坱k_total_sales锛夋�绘敮鍑轰剑閲戯紙tk_total_commi锛�
+		if (sort != null) {
+			filter.setSort(sort);
+		}
+		// 鏌ヨ澶╃尗 1 true
+		if (istmall != null && istmall == 1) {
+			filter.setTmall(true);
+		}
+		// 鏄惁鏈夊埜 1 true
+		if (hasCoupon != null && hasCoupon == 1) {
+			filter.setQuan(1);
+		}
+		// 鏄惁鍖呴偖锛宼rue琛ㄧず鍖呴偖锛岀┖鎴杅alse琛ㄧず涓嶉檺
+		if (baoYou != null && baoYou == 1) {
+			filter.setBaoYou(true);
+			// filter.setIp("113.251.22.10");// 閲嶅簡
+			filter.setIp("218.72.111.105");// 鏉窞
+		}
+		// 搴楅摵dsr璇勫垎
+		if (startDsr != null && startDsr >= 0 && startDsr <= 50000) {
+			filter.setStartDsr(startDsr);
+		}
+		// 鏄惁娴峰鍟嗗搧
+		if (overseas != null && overseas == 1) {
+			filter.setOverseas(true);
+		}
+		// 鏄惁鍔犲叆娑堣垂鑰呬繚闅滐紝
+		if (needPrepay != null && needPrepay == 1) {
+			filter.setNeedPrepay(true);
+		}
+		// 鎴愪氦杞寲鏄惁楂樹簬琛屼笟鍧囧��
+		if (includePayRate30 != null && includePayRate30 == 1) {
+			filter.setIncludePayRate30(true);
+		}
+		// 濂借瘎鐜囨槸鍚﹂珮浜庤涓氬潎鍊�
+		if (includeGoodRate != null && includeGoodRate == 1) {
+			filter.setIncludeGoodRate(true);
+		}
+		// 閫�娆剧巼鏄惁浣庝簬琛屼笟鍧囧��
+		if (includeRfdRate != null && includeRfdRate == 1) {
+			filter.setIncludeRfdRate(true);
+		}
+		// 鐗涚毊鐧g▼搴︼紝鍙栧�硷細1:涓嶉檺锛�2:鏃狅紝3:杞诲井
+		if (npxLevel != null && npxLevel > 0 && npxLevel < 4) {
+			filter.setNpxLevel(npxLevel);
+		}
+
+		boolean islink = false;
+		Long auctionId = null;
+		/* 鍒ゆ柇鏄惁鏄晢鍝侀摼鎺ユ悳绱� */
+		if (key != null && key.contains("//") && key.contains("&")) {
+			String[] keyArray = key.split("\\?")[1].split("&");
+			if (keyArray != null && keyArray.length > 0) {
+				String id = keyArray[0].replace("id=", "").trim();
+				if (!StringUtil.isNullOrEmpty(id)) {
+					auctionId = Long.parseLong(id);
+					islink = true;
+				}
+			}
+		}
+
+		TaoBaoSearchResult result = null;
+
+		if (!islink) {
+			/* 娣樺疂鐗╂枡鎼滅储 */
+			result = TaoKeApiUtil.searchWuLiao(filter);
+		} else {
+			/* 鍟嗗搧閾炬帴鎼滅储 */
+			TaoBaoGoodsBrief searchGoodsDetail = TaoKeApiUtil.searchGoodsDetail(auctionId);
+			if (searchGoodsDetail != null) {
+				List<TaoBaoGoodsBrief> listGoods = new ArrayList<>();
+				listGoods.add(searchGoodsDetail);
+
+				result = new TaoBaoSearchResult();
+				result.setTaoBaoGoodsBriefs(listGoods);
+				PageEntity pageEntity = new PageEntity(pageIndex, pageSize, 1, 1);
+				result.setPageEntity(pageEntity);
+			}
+		}
+
+		return result;
 	}
 
 	/**
@@ -721,7 +670,7 @@
 							if (goodsBrief != null) {
 								Long id = goodsBrief.getId();
 								// 鏌ヨ绮鹃�夊簱
-								Long has = selectionGoodsService.queryCountByGoodsId(id);
+								Long has = qualityFactoryService.queryCountByGoodsId(id);
 
 								if (has != null && has > 0l) {
 									existence = 1; // 瀛樺湪鍟嗗搧涓�
@@ -746,9 +695,6 @@
 				data.put("listGoods", gson.toJson(listmap));
 
 				JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-
-				// 鎻掑叆鏈湴鏁版嵁-娣樺疂鏁版嵁璁板綍
-				taoBaoGoodsBriefRecordService.insertBatch(taoBaoGoodsBriefs);
 			}
 
 		} catch (Exception e) {
@@ -878,7 +824,7 @@
 			}
 
 			// 楠岃瘉鏄惁瀛樺湪鏁版嵁搴�
-			List<QualityFactory> listHas = selectionGoodsService.listQueryByAuctionId(listAuctionId);
+			List<QualityFactory> listHas = qualityFactoryService.listQueryByAuctionId(listAuctionId);
 
 			List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>();
 
@@ -949,14 +895,117 @@
 
 			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
 
-			// 鎻掑叆鏈湴鏁版嵁-娣樺疂鏁版嵁璁板綍
-			taoBaoGoodsBriefRecordService.insertBatch(taoBaoGoodsBriefs);
-
 		} catch (Exception e) {
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ寮傚父"));
 			e.printStackTrace();
 		}
 
+	}
+	
+
+	private List<Map<String, Object>> filterTaoBaoGoodsWithQulity(List<TaoBaoGoodsBrief> goodsList) {
+
+		// 鎻掑叆鍟嗗搧闆嗗悎
+		List<Long> listAuctionId = new ArrayList<Long>();
+		for (TaoBaoGoodsBrief goodsBrief : goodsList) {
+			listAuctionId.add(goodsBrief.getAuctionId());
+		}
+
+		// 楠岃瘉鏄惁瀛樺湪鏁版嵁搴�
+		List<QualityFactory> listHas = qualityFactoryService.listQueryByAuctionId(listAuctionId);
+
+		List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>();
+
+		for (TaoBaoGoodsBrief taoBaoGoodsBrief : goodsList) {
+			taoBaoGoodsBrief.setId(null);
+
+			Map<String, Object> map = new HashMap<String, Object>();
+
+			map.put("pictUrl", taoBaoGoodsBrief.getPictUrl());
+			map.put("title", taoBaoGoodsBrief.getTitle());
+			map.put("auctionId", taoBaoGoodsBrief.getAuctionId());
+			map.put("auctionUrl", taoBaoGoodsBrief.getAuctionUrl());
+			map.put("zkPrice", taoBaoGoodsBrief.getZkPrice());
+			map.put("biz30day", taoBaoGoodsBrief.getBiz30day());
+			map.put("couponInfo", taoBaoGoodsBrief.getCouponInfo());
+			map.put("couponTotalCount", taoBaoGoodsBrief.getCouponTotalCount());
+			map.put("couponLeftCount", taoBaoGoodsBrief.getCouponLeftCount());
+			map.put("couponEffectiveEndTime", taoBaoGoodsBrief.getCouponEffectiveEndTime());
+			map.put("tkRate", taoBaoGoodsBrief.getTkRate());
+
+			// 鏉ユ簮 0 鏃� 1娣樺疂 2 浜笢
+			map.put("goodsSource", 1);
+
+			/* 鍒稿悗浠�--璁$畻 */
+			BigDecimal couponPrice = TaoBaoUtil.getAfterUseCouplePrice(taoBaoGoodsBrief);
+			map.put("couponPrice", couponPrice);
+
+			/* 棰勮鏀剁泭锛� 鍏徃銆佺敤鎴� */
+			BigDecimal tkRate = taoBaoGoodsBrief.getTkRate();
+			BigDecimal zkPrice = taoBaoGoodsBrief.getZkPrice();
+			BigDecimal profit = MoneyBigDecimalUtil.mul(tkRate, zkPrice);
+			// 璁$畻缁撴灉
+			BigDecimal estimateProfit = MoneyBigDecimalUtil.div(profit, new BigDecimal("100"));
+
+			// 棰勮鏀剁泭
+			map.put("estimateProfit", estimateProfit);
+
+			int existence = 0;
+
+			/* 鏌ヨ鍟嗗搧鏄惁宸插瓨鍦ㄥ晢鍝佺簿閫夊簱涓� */
+			Long localAuctionId = taoBaoGoodsBrief.getAuctionId();
+			if (localAuctionId != null) {
+				if (listHas != null && listHas.size() > 0) {
+					for (QualityFactory selectionGoods : listHas) {
+						TaoBaoGoodsBrief hasgoodsBrief = selectionGoods.getTaoBaoGoodsBrief();
+						Long hasId = hasgoodsBrief.getAuctionId();
+						if (localAuctionId.equals(hasId) || localAuctionId == hasId) {
+							existence = 1; // 瀛樺湪鍟嗗搧涓�
+						}
+					}
+				}
+			}
+
+			map.put("isExistence", existence);
+
+			listmap.add(map);
+		}
+
+		return listmap;
+
+	}
+
+	
+	@RequestMapping(value = "searchDaTaoKe")
+	public void searchDaTaoKe(String callback, Integer pageIndex, Integer pageSize, String key, Long cid,
+			PrintWriter out) {
+		try {
+			key = StringUtil.isNullOrEmpty(key) ? "" : key;
+			List<DaTaoKeDetailV2> list = daTaoKeGoodsDetailV2Service.listSearchByTitleWithCid(key, cid, pageIndex,
+					pageSize);
+			long count = daTaoKeGoodsDetailV2Service.countSearchByTitleWithCid(key, cid);
+			List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+			for (DaTaoKeDetailV2 detail : list) {
+				goodsList.add(TaoBaoUtil.convert(detail));
+			}
+
+			List<Map<String, Object>> listmap = filterTaoBaoGoodsWithQulity(goodsList);
+
+			PageEntity pe = new PageEntity(pageIndex, pageSize, (int) count,(int)(count%pageSize==0?count/pageSize:count/pageSize+1));
+			JSONObject data = new JSONObject();
+			GsonBuilder gsonBuilder = new GsonBuilder();
+			gsonBuilder.serializeNulls(); // 閲嶇偣
+			Gson gson = gsonBuilder.setDateFormat("yyyy-MM-dd").create();
+
+			data.put("pe", pe);
+			data.put("listGoods", gson.toJson(listmap));
+
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ寮傚父"));
+			e.printStackTrace();
+		}
 	}
 
 	@RequestMapping(value = "getQiangGou")
@@ -994,7 +1043,7 @@
 			}
 
 			// 楠岃瘉鏄惁瀛樺湪鏁版嵁搴�
-			List<QualityFactory> listHas = selectionGoodsService.listQueryByAuctionId(listAuctionId);
+			List<QualityFactory> listHas = qualityFactoryService.listQueryByAuctionId(listAuctionId);
 
 			List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>();
 
@@ -1049,7 +1098,6 @@
 				}
 
 				map.put("isExistence", existence);
-
 				listmap.add(map);
 			}
 
@@ -1064,10 +1112,6 @@
 			data.put("listGoods", gson.toJson(listmap));
 
 			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-
-			// // 鎻掑叆鏈湴鏁版嵁-娣樺疂鏁版嵁璁板綍
-			taoBaoGoodsBriefRecordService.insertBatch(taoBaoGoodsBriefs);
-
 		} catch (Exception e) {
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ寮傚父"));
 			e.printStackTrace();

--
Gitblit v1.8.0