From 69bee82b81626b82b7f39f0e459e4f56b1699b51 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 13 三月 2019 12:02:16 +0800
Subject: [PATCH] 正式数据库修改

---
 fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5QualityGoodsController.java |  193 ++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 153 insertions(+), 40 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5QualityGoodsController.java b/fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5QualityGoodsController.java
index 2b762de..051066c 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5QualityGoodsController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5QualityGoodsController.java
@@ -1,8 +1,9 @@
 package com.yeshi.fanli.controller.apph5;
 
 import java.io.PrintWriter;
+import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
 import javax.annotation.Resource;
 
@@ -18,11 +19,15 @@
 import com.yeshi.fanli.entity.bus.lable.Label;
 import com.yeshi.fanli.entity.bus.lable.MergeClass;
 import com.yeshi.fanli.entity.bus.lable.QualityFactory;
+import com.yeshi.fanli.entity.goods.CollectionGoodsV2;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
+import com.yeshi.fanli.entity.taobao.TaoBaoHongBaoInfo;
 import com.yeshi.fanli.entity.taobao.TaobaoMeterial;
-import com.yeshi.fanli.goods.CollectionGoodsV2;
+import com.yeshi.fanli.exception.taobao.TaoKeApiException;
+import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
 import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.config.ConfigService;
 import com.yeshi.fanli.service.inter.config.SystemService;
 import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
 import com.yeshi.fanli.service.inter.goods.GoodsClassService;
@@ -38,6 +43,7 @@
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
+import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
 
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
@@ -81,6 +87,13 @@
 
 	@Resource
 	private CollectionGoodsV2Service collectionGoodsV2Service;
+
+	@Resource
+	private HongBaoManageService hongBaoManageService;
+	
+	@Resource
+	private ConfigService configService;
+	
 
 	/**
 	 * 9.9鍟嗗搧
@@ -207,9 +220,7 @@
 		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");
+		BigDecimal proportion = hongBaoManageService.getFanLiRate();
 		/* 閬嶅巻鍒楄〃鏁版嵁 */
 		for (QualityFactory selectionGoods : listQuery) {
 
@@ -234,7 +245,7 @@
 				taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
 			}
 
-			array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, null)));
+			array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
 		}
 
 		JSONObject data = new JSONObject();
@@ -370,9 +381,7 @@
 		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");
+		BigDecimal proportion = manageService.getFanLiRate();
 		/* 閬嶅巻鍒楄〃鏁版嵁 */
 		for (QualityFactory selectionGoods : listQuery) {
 
@@ -397,7 +406,7 @@
 				taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
 			}
 
-			array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, null)));
+			array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
 		}
 
 		JSONObject data = new JSONObject();
@@ -645,9 +654,7 @@
 			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");
+			BigDecimal proportion =manageService.getFanLiRate();
 
 			/* 閬嶅巻鍒楄〃鏁版嵁 */
 			for (TaoBaoGoodsBrief taoBaoGoodsBrief : listMaterial) {
@@ -677,7 +684,7 @@
 				}
 
 				TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
-						proportion, fcRate, null);
+						proportion.toString(), null);
 				taoBaoGoodsBriefExtra.setCollected(collected);
 
 				array.add(gson.toJson(taoBaoGoodsBriefExtra));
@@ -822,9 +829,7 @@
 		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");
+		BigDecimal proportion = manageService.getFanLiRate();
 
 		/* 閬嶅巻鍒楄〃鏁版嵁 */
 		for (TaoBaoGoodsBrief taoBaoGoodsBrief : listBrands) {
@@ -844,7 +849,7 @@
 				taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
 			}
 
-			array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, null)));
+			array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
 		}
 
 		JSONObject data = new JSONObject();
@@ -886,9 +891,7 @@
 		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");
+		BigDecimal proportion = manageService.getFanLiRate();
 
 		// 閬嶅巻鍒楄〃鏁版嵁
 		for (QualityFactory quality : listQuery) {
@@ -914,7 +917,7 @@
 				taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
 			}
 
-			array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, null)));
+			array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
 		}
 
 		JSONObject data = new JSONObject();
@@ -974,10 +977,7 @@
 		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");
-
+		BigDecimal proportion = manageService.getFanLiRate();
 		// 閬嶅巻鍒楄〃鏁版嵁
 		for (QualityFactory selectionGoods : listQuery) {
 
@@ -1002,7 +1002,7 @@
 				taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
 			}
 
-			array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, null)));
+			array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
 		}
 
 		JSONObject data = new JSONObject();
@@ -1045,19 +1045,16 @@
 
 		double tkRate = 20.00;
 
-		Map<String, String> map = manageService.convertMap();
-		String proportion = map.get("hongbao_goods_proportion");
-		String fcRate = map.get("hongbao_fc_ratio");
-
+		BigDecimal proportion = manageService.getFanLiRate();
 		List<QualityFactory> listQuery = qualityGoodsService.listQueryByRebateAmount((page - 1) * pageSize, pageSize,
-				proportion, startAmount, endAmount, tkRate);
+				proportion.toString(), startAmount, endAmount, tkRate);
 
 		if (listQuery == null || listQuery.size() == 0) {
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "娌℃湁鏇村浜�"));
 			return;
 		}
 
-		long count = qualityGoodsService.countQueryByRebateAmount(proportion, startAmount, endAmount, tkRate);
+		long count = qualityGoodsService.countQueryByRebateAmount(proportion.toString(), startAmount, endAmount, tkRate);
 
 		// 绮鹃�夊簱鏁版嵁澶勭悊杩斿洖 鍓嶇
 		JSONArray array = new JSONArray();
@@ -1088,7 +1085,7 @@
 				taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
 			}
 
-			array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, null)));
+			array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
 		}
 
 		JSONObject data = new JSONObject();
@@ -1114,18 +1111,15 @@
 
 		int pageSize = Constant.PAGE_SIZE;
 
-		Map<String, String> map = manageService.convertMap();
-		String proportion = map.get("hongbao_goods_proportion");
-		String fcRate = map.get("hongbao_fc_ratio");
-
-		JSONArray array = qualityGoodsService.getRecommendToIndex((page - 1) * pageSize, pageSize, proportion, fcRate);
+		BigDecimal proportion = manageService.getFanLiRate();
+		JSONArray array = qualityGoodsService.getRecommendToIndex((page - 1) * pageSize, pageSize, proportion.toString());
 
 		if (array == null) {
 			out.print(JsonUtil.loadFalseResult("娌℃湁鏇村浜�"));
 			return;
 		}
 
-		long count = qualityGoodsService.countRecommendToIndex(proportion);
+		long count = qualityGoodsService.countRecommendToIndex(proportion.toString());
 
 		JSONObject data = new JSONObject();
 		data.put("count", count);
@@ -1134,4 +1128,123 @@
 		out.print(JsonUtil.loadTrueResult(data));
 		return;
 	}
+	
+	/**
+	 * 瓒呴珮濂栭噾
+	 * 
+	 * @param callback
+	 * @param page
+	 * @param type
+	 * @param out
+	 */
+	@RequestMapping("freeGoods")
+	public void freeGoods(String callback, Integer page, PrintWriter out) {
+
+		if (page == null || page < 1)
+			page = 1;
+
+		int pageSize = Constant.PAGE_SIZE;
+
+		double tkRate = 20;
+		String lableName = "9.9";
+
+		try {
+			List<QualityFactory> listQuery = qualityGoodsService.listFreeGoods((page - 1) * pageSize, pageSize, tkRate,
+					lableName);
+			if (listQuery == null || listQuery.size() == 0) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "娌℃湁鏇村浜�"));
+				return;
+			}
+
+			List<Long> listGid = new ArrayList<Long>();
+			for (QualityFactory qualityFactory : listQuery) {
+				TaoBaoGoodsBrief taoBaoGoodsBrief = qualityFactory.getTaoBaoGoodsBrief();
+
+				if (taoBaoGoodsBrief == null) {
+					continue;
+				}
+				listGid.add(taoBaoGoodsBrief.getAuctionId());
+			}
+
+			// API缃戠粶鎺ュ彛楠岃瘉鏄惁鍦ㄥ敭
+			List<TaoBaoGoodsBrief> listTaoKeGoods = null;
+			try {
+				listTaoKeGoods = TaoKeApiUtil.getBatchGoodsInfo(listGid);
+			} catch (TaoKeApiException e) {
+				e.printStackTrace();
+			} catch (TaobaoGoodsDownException e) {
+				e.printStackTrace();
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+
+			JSONArray array = new JSONArray();
+			Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+					.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+
+			BigDecimal proportion = manageService.getFanLiRate();
+			/* 閬嶅巻鍒楄〃鏁版嵁 */
+			for (QualityFactory selectionGoods : listQuery) {
+
+				TaoBaoGoodsBrief taoBaoGoodsBrief = selectionGoods.getTaoBaoGoodsBrief();
+
+				if (taoBaoGoodsBrief == null) {
+					continue;
+				}
+
+				if (listTaoKeGoods != null && listTaoKeGoods.size() > 0) {
+					boolean stateSale = false; // 榛樿鍋滃敭
+					Long goodsId = taoBaoGoodsBrief.getAuctionId();
+					for (TaoBaoGoodsBrief taoKeGoods : listTaoKeGoods) {
+						Long auctionId = taoKeGoods.getAuctionId();
+						if (goodsId == auctionId || goodsId.equals(auctionId)) {
+							stateSale = true; // 鍦ㄥ敭
+							break;
+						}
+					}
+
+					if (!stateSale) {
+						continue;
+					}
+				}
+
+				BigDecimal couplePrice = TaoBaoUtil.getAfterUseCouplePrice(taoBaoGoodsBrief);
+				if (couplePrice.compareTo(new BigDecimal("9.9")) == 1) {
+					continue; // 鍒稿悗浠峰ぇ浜�10
+				}
+
+				TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, 
+						proportion.toString(), null);
+				// 灏嗚繑鍒╂敼涓哄埜鍚庝环
+				TaoBaoHongBaoInfo taoBaoHongBaoInfo = extra.getTaoBaoHongBaoInfo();
+				if (taoBaoHongBaoInfo != null) {
+					taoBaoHongBaoInfo.setHongbao(extra.getQuanPrice());
+					taoBaoHongBaoInfo.setRate("楼" + extra.getQuanPrice());
+				}
+				
+				array.add(gson.toJson(extra));
+			}
+
+			long count = qualityGoodsService.countFreeGoods(tkRate, lableName);
+
+			
+			JSONObject data = new JSONObject();
+			if (page == 1) {
+				// 鎶藉瑙勫垯
+				String rules = configService.get("free_goods_rule");
+				data.put("ruleLink", rules);
+			}
+			
+			data.put("count", count);
+			data.put("result_list", array);
+			
+			
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+			
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔澶辫触"));
+			e.printStackTrace();
+		}
+	}
+	
 }

--
Gitblit v1.8.0