From 207dc8655711cddac2653e18b51e58a88dba2084 Mon Sep 17 00:00:00 2001
From: yj <Administrator@192>
Date: 星期五, 06 三月 2020 18:14:36 +0800
Subject: [PATCH] 发圈处理

---
 fanli/src/main/java/com/yeshi/fanli/controller/admin/TaoBaoGoodsBriefAdminController.java |  175 ++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 146 insertions(+), 29 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 93b7d8c..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
@@ -27,12 +27,14 @@
 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.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.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.MoneyBigDecimalUtil;
@@ -51,7 +53,7 @@
 
 	@Resource
 	private QualityFactoryService qualityFactoryService;
-	
+
 	@Resource
 	private TaoBaoUnionConfigService taoBaoUnionConfigService;
 
@@ -62,7 +64,9 @@
 
 	@Resource
 	private TaoBaoClassService taoBaoClassService;
-
+	
+	@Resource
+	private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service;
 
 	/**
 	 * 
@@ -86,26 +90,26 @@
 	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);
-			
+			TaoBaoSearchResult result = getGoodsByWuLiao(pageIndex, pageSize, key, tbClassId, startPrice, endPrice,
+					startTkRate, endTkRate, sort, istmall, hasCoupon, baoYou, startDsr, overseas, needPrepay,
+					includePayRate30, includeGoodRate, includeRfdRate, npxLevel,cid);
+
 			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<Long> listAuctionId = new ArrayList<Long>();
 			for (TaoBaoGoodsBrief goodsBrief : listTaoBaoGoods) {
@@ -218,9 +222,10 @@
 		}
 
 	}
-	
+
 	/**
-	 *  鍔犲叆绮鹃�夊簱鍟嗗搧
+	 * 鍔犲叆绮鹃�夊簱鍟嗗搧
+	 * 
 	 * @param callback
 	 * @param pageIndex
 	 * @param key
@@ -252,39 +257,40 @@
 			}
 
 			Gson gson2 = new Gson();
-			List<Long> listTaoBaoId = gson2.fromJson(auctionIds, new TypeToken<ArrayList<Long>>() {}.getType());
+			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);
-			
+			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) {
+			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) {
+				for (Long auctionId : listTaoBaoId) {
 					/* 鏍规嵁auctionId 鑾峰彇娣樺疂鍟嗗搧 */
 					TaoBaoGoodsBrief goodsBrief = TaoKeApiUtil.searchGoodsDetail(auctionId);
 					if (goodsBrief != null) {
@@ -292,10 +298,12 @@
 					}
 				}
 			}
-			
+
 			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()));
@@ -306,6 +314,7 @@
 
 	/**
 	 * 鏍规嵁鏉′欢娣樺疂鍟嗗搧鏌ヨ
+	 * 
 	 * @param pageIndex
 	 * @param pageSize
 	 * @param key
@@ -330,7 +339,7 @@
 	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)
+			Integer includePayRate30, Integer includeGoodRate, Integer includeRfdRate, Integer npxLevel, String cids)
 			throws Exception {
 
 		SearchFilter filter = new SearchFilter();
@@ -345,8 +354,8 @@
 			GoodsClass rb = goodsClassService.getGoodsClass(tbClassId);
 			if (rb == null) {
 				throw new Exception("璇ョ被鍨嬪凡涓嶅瓨鍦�,璇峰埛鏂伴噸璇�");
-			} 
-			
+			}
+
 			// 娣樺疂绫荤洰id
 			String taoBaoCatIds = taoBaoClassService.getTaoBaoCatIds(tbClassId);
 			if (StringUtil.isNullOrEmpty(taoBaoCatIds)) {
@@ -355,6 +364,8 @@
 				filter.setCateIds(taoBaoCatIds);
 			}
 		}
+		if (!StringUtil.isNullOrEmpty(cids))
+			filter.setCateIds(cids);
 
 		// 鏌ヨ鏉′欢鍜岀被鐩甶d涓嶈兘鍚屾椂涓虹┖
 		if (StringUtil.isNullOrEmpty(key) && tbClassId == null) {
@@ -378,7 +389,8 @@
 			int tkRate = (int) (Float.parseFloat(endTkRate) * 100);
 			filter.setEndTkRate(tkRate);
 		}
-		// 鎺掑簭瀛楁 閿�閲忥紙total_sales锛夋窐瀹剑閲戞瘮鐜囷紙tk_rate锛夌疮璁℃帹骞块噺锛坱k_total_sales锛夋�绘敮鍑轰剑閲戯紙tk_total_commi锛�
+		// 鎺掑簭瀛楁
+		// 閿�閲忥紙total_sales锛夋窐瀹剑閲戞瘮鐜囷紙tk_rate锛夌疮璁℃帹骞块噺锛坱k_total_sales锛夋�绘敮鍑轰剑閲戯紙tk_total_commi锛�
 		if (sort != null) {
 			filter.setSort(sort);
 		}
@@ -424,8 +436,7 @@
 		if (npxLevel != null && npxLevel > 0 && npxLevel < 4) {
 			filter.setNpxLevel(npxLevel);
 		}
-		
-		
+
 		boolean islink = false;
 		Long auctionId = null;
 		/* 鍒ゆ柇鏄惁鏄晢鍝侀摼鎺ユ悳绱� */
@@ -890,6 +901,112 @@
 		}
 
 	}
+	
+
+	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")
 	public void getQiangGou(String callback, Integer pageIndex, PrintWriter out) {

--
Gitblit v1.8.0