From 9a24f2802a3d6fe3e82c05e52f2880d65ad04dcf Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期一, 29 四月 2019 08:59:47 +0800
Subject: [PATCH] Merge branch 'div_develop' into master_develop

---
 fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5QualityGoodsController.java |  162 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 154 insertions(+), 8 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 14fb5cd..ef506a3 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
@@ -2,8 +2,8 @@
 
 import java.io.PrintWriter;
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
 import javax.annotation.Resource;
 
@@ -22,12 +22,16 @@
 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.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.config.ConfigService;
 import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
 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.hongbao.HongBaoManageService;
 import com.yeshi.fanli.service.inter.lable.LabelService;
 import com.yeshi.fanli.service.inter.lable.MergeClassService;
@@ -39,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;
@@ -52,6 +57,9 @@
 
 	@Resource
 	private QualityFactoryService selectionGoodsService;
+	
+	@Resource
+	private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
 
 	@Resource
 	private TaobaoMeterialService taobaoMeterialService;
@@ -72,9 +80,6 @@
 	private TaoBaoClassService taoBaoClassService;
 
 	@Resource
-	private SystemService systemService;
-
-	@Resource
 	private QualityGoodsService qualityGoodsService;
 
 	@Resource
@@ -85,6 +90,10 @@
 
 	@Resource
 	private HongBaoManageService hongBaoManageService;
+	
+	@Resource
+	private ConfigService configService;
+	
 
 	/**
 	 * 9.9鍟嗗搧
@@ -211,7 +220,6 @@
 		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
 				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
 
-		Map<String, String> map = manageService.convertMap();
 		BigDecimal proportion = hongBaoManageService.getFanLiRate();
 		/* 閬嶅巻鍒楄〃鏁版嵁 */
 		for (QualityFactory selectionGoods : listQuery) {
@@ -860,14 +868,26 @@
 	 * @param out
 	 */
 	@RequestMapping("getFlashSale")
-	public void getFlashSale(String callback, Integer page, PrintWriter out) {
+	public void getFlashSale(String callback, Integer page, Long auctionId, PrintWriter out) {
 
 		if (page == null)
 			page = 1;
 
 		int pageSize = Constant.PAGE_SIZE;
 		int type = qualityFlashSaleService.getNowType();
+		
+		TaoBaoGoodsBrief goodsBrief = null;
+		if (page == 1 && auctionId != null) {
+			List<TaoBaoGoodsBrief> list = taoBaoGoodsBriefService.queryByAuctionId(auctionId);
+			if (list != null && list.size() > 0) {
+				goodsBrief = list.get(0);
+			}
+		}
 
+		if (goodsBrief != null) {
+			pageSize = pageSize -1;
+		}
+		
 		List<QualityFactory> listQuery = qualityGoodsService.listQueryByFlashSale((page - 1) * pageSize, pageSize);
 
 		// 绮鹃�夊簱鏁版嵁涓虹┖
@@ -885,12 +905,19 @@
 
 		BigDecimal proportion = manageService.getFanLiRate();
 
+		if (goodsBrief != null) {
+			array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, proportion.toString(), null)));
+		}
+		
 		// 閬嶅巻鍒楄〃鏁版嵁
 		for (QualityFactory quality : listQuery) {
 
 			TaoBaoGoodsBrief taoBaoGoodsBrief = quality.getTaoBaoGoodsBrief();
-
 			if (taoBaoGoodsBrief == null) {
+				continue;
+			}
+			
+			if (goodsBrief != null && auctionId.equals(taoBaoGoodsBrief.getAuctionId())) {
 				continue;
 			}
 
@@ -1120,4 +1147,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