From b3fce41f7960a21c707788aa87448c3e4de82da9 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期三, 27 二月 2019 11:47:51 +0800
Subject: [PATCH] 福利券 邀请队员成功之后激活

---
 fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5QualityGoodsController.java |  180 ++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 140 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..017382a 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,10 +19,13 @@
 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.SystemService;
 import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
@@ -38,6 +42,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 +86,9 @@
 
 	@Resource
 	private CollectionGoodsV2Service collectionGoodsV2Service;
+
+	@Resource
+	private HongBaoManageService hongBaoManageService;
 
 	/**
 	 * 9.9鍟嗗搧
@@ -207,9 +215,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 +240,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 +376,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 +401,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 +649,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 +679,7 @@
 				}
 
 				TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
-						proportion, fcRate, null);
+						proportion.toString(), null);
 				taoBaoGoodsBriefExtra.setCollected(collected);
 
 				array.add(gson.toJson(taoBaoGoodsBriefExtra));
@@ -822,9 +824,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 +844,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 +886,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 +912,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 +972,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 +997,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 +1040,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 +1080,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 +1106,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 +1123,115 @@
 		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();
+			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