From 83eff153c7bdddf739e0e8882854a87eb6f3ef54 Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期二, 23 七月 2019 11:01:48 +0800
Subject: [PATCH] 京东拼多多分享h5接口

---
 fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5ShareController.java |  224 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 217 insertions(+), 7 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5ShareController.java b/fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5ShareController.java
index adc2f7f..530fc9c 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5ShareController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5ShareController.java
@@ -1,16 +1,36 @@
 package com.yeshi.fanli.controller.apph5;
 
 import java.io.PrintWriter;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
 
 import javax.annotation.Resource;
-
-import net.sf.json.JSONObject;
 
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.yeshi.utils.JsonUtil;
 
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.yeshi.fanli.dto.jd.JDFilter;
+import com.yeshi.fanli.dto.jd.JDSearchResult;
+import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
+import com.yeshi.fanli.dto.pdd.PDDGoodsResult;
+import com.yeshi.fanli.dto.pdd.PDDSearchFilter;
+import com.yeshi.fanli.entity.bus.share.UserShareGoodsGroup;
+import com.yeshi.fanli.entity.bus.share.UserShareGoodsRecord;
+import com.yeshi.fanli.entity.goods.CommonGoods;
+import com.yeshi.fanli.entity.jd.JDGoods;
+import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
 import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
+import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
+import com.yeshi.fanli.util.jd.JDApiUtil;
+import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
+import com.yeshi.fanli.vo.goods.GoodsDetailVO;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
 
 @Controller
 @RequestMapping("api/apph5/v1/share")
@@ -18,9 +38,13 @@
 
 	@Resource
 	private UserShareGoodsRecordService userShareGoodsRecordService;
-	
+
+	@Resource
+	private HongBaoManageService hongBaoManageService;
+
 	/**
 	 * 鍒嗕韩鍟嗗搧璇︽儏
+	 * 
 	 * @param callback
 	 * @param shareId  鍒嗕韩id
 	 * @param source   鏉ユ簮
@@ -28,22 +52,208 @@
 	 */
 	@RequestMapping(value = "getDetail")
 	public void getDetail(String callback, Long shareId, String source, String fingerprint, PrintWriter out) {
-		
+
 		try {
-			
+
 			if (shareId == null) {
 				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉姝g‘"));
 				return;
 			}
-			
+
 			// 鑾峰彇鍟嗗搧淇℃伅
 			JSONObject data = userShareGoodsRecordService.getGoodsGroupDetail(shareId);
 			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-			
+
 		} catch (Exception e) {
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鑾峰彇澶辫触"));
 			e.printStackTrace();
 		}
 	}
+
+	/**
+	 * 鍒嗕韩鍟嗗搧璇︽儏
+	 * 
+	 * @param callback
+	 * @param shareId  鍒嗕韩id
+	 * @param source   鏉ユ簮
+	 * @param out
+	 */
+	@RequestMapping(value = "getListJD")
+	public void getListJD(String callback, Long shareId, PrintWriter out) {
+		try {
+			if (shareId == null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉姝g‘"));
+				return;
+			}
+
+			JSONArray array = new JSONArray();
+
+			List<UserShareGoodsGroup> list = userShareGoodsRecordService.listByRecordId(shareId);
+			if (list != null && list.size() > 0) {
+				List<Long> listGid = new ArrayList<Long>();
+				for (int i = 0; i < list.size(); i++) {
+					CommonGoods commonGoods = list.get(i).getCommonGoods();
+					if (commonGoods == null) {
+						continue;
+					}
+					listGid.add(commonGoods.getGoodsId());
+				}
+
+				// API缃戠粶鎺ュ彛楠岃瘉鏄惁鍦ㄥ敭
+				List<JDGoods> listGoods = null;
+				try {
+					JDFilter filter = new JDFilter();
+					filter.setListId(listGid);
+					filter.setPageIndex(1);
+					filter.setPageSize(100);
+					JDSearchResult  result = JDApiUtil.queryByKey(filter);
+					if (result != null) {
+						listGoods = result.getGoodsList();
+					}
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+
+				Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+						.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+				BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
+				BigDecimal shareRate = hongBaoManageService.getShareRate();
+				
+				for (UserShareGoodsGroup goodsGroup : list) {
+					CommonGoods commonGoods = goodsGroup.getCommonGoods();
+					if (commonGoods == null) {
+						continue;
+					}
+
+					if (listGoods != null && listGoods.size() > 0) {
+						int state = 1; // 榛樿鍋滃敭
+						Long commonGid = commonGoods.getGoodsId();
+						for (JDGoods goodsDetail : listGoods) {
+							Long goodsId =goodsDetail.getSkuId();
+							if (goodsId == commonGid || goodsId.equals(commonGid)) {
+								state = 0; // 鍦ㄥ敭
+								break;
+							}
+						}
+						commonGoods.setState(state);
+					}
+					
+					GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, null, fanLiRate, shareRate);
+					if (!detailVO.isHasCoupon()) {
+						detailVO.setState(1);; // 宸叉姠鍏�
+					}
+					array.add(gson.toJson(detailVO));
+				}
+			}
+
+			String title = "";
+			UserShareGoodsRecord userShareGoodsRecord = userShareGoodsRecordService.selectByPrimaryKey(shareId);
+			if (userShareGoodsRecord != null) {
+				title = userShareGoodsRecord.getTitle();
+			}
+
+			JSONObject data = new JSONObject();
+			data.put("title", title);
+			data.put("count", list.size());
+			data.put("result_list", array);
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鑾峰彇澶辫触"));
+			e.printStackTrace();
+		}
+	}
+
 	
+	/**
+	 * 鍒嗕韩鍟嗗搧璇︽儏
+	 * 
+	 * @param callback
+	 * @param shareId  鍒嗕韩id
+	 * @param source   鏉ユ簮
+	 * @param out
+	 */
+	@RequestMapping(value = "getListPDD")
+	public void getListPDD(String callback, Long shareId, PrintWriter out) {
+		try {
+			if (shareId == null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉姝g‘"));
+				return;
+			}
+
+			JSONArray array = new JSONArray();
+
+			List<UserShareGoodsGroup> list = userShareGoodsRecordService.listByRecordId(shareId);
+			if (list != null && list.size() > 0) {
+				Long[] listGid = new Long[list.size()];
+				for (int i = 0; i < list.size(); i++) {
+					CommonGoods commonGoods = list.get(i).getCommonGoods();
+					if (commonGoods == null) {
+						continue;
+					}
+					listGid[i] = commonGoods.getGoodsId();
+				}
+
+				// API缃戠粶鎺ュ彛楠岃瘉鏄惁鍦ㄥ敭
+				List<PDDGoodsDetail> listGoods = null;
+				try {
+					PDDSearchFilter sf = new PDDSearchFilter();
+					sf.setPage(1);
+					sf.setPageSize(100);
+					sf.setGoodsIdList(listGid);
+					PDDGoodsResult  result = PinDuoDuoApiUtil.searchGoods(sf);
+					if (result != null) {
+						listGoods = result.getGoodsList();
+					}
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+
+				Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+						.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+				BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
+				BigDecimal shareRate = hongBaoManageService.getShareRate();
+				
+				for (UserShareGoodsGroup goodsGroup : list) {
+					CommonGoods commonGoods = goodsGroup.getCommonGoods();
+					if (commonGoods == null) {
+						continue;
+					}
+
+					if (listGoods != null && listGoods.size() > 0) {
+						int state = 1; // 榛樿鍋滃敭
+						Long commonGid = commonGoods.getGoodsId();
+						for (PDDGoodsDetail goodsDetail : listGoods) {
+							Long goodsId =goodsDetail.getGoodsId();
+							if (goodsId == commonGid || goodsId.equals(commonGid)) {
+								state = 0; // 鍦ㄥ敭
+								break;
+							}
+						}
+						commonGoods.setState(state);
+					}
+					
+					GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, null, fanLiRate, shareRate);
+					if (!detailVO.isHasCoupon()) {
+						detailVO.setState(1);; // 宸叉姠鍏�
+					}
+					array.add(gson.toJson(detailVO));
+				}
+			}
+
+			String title = "";
+			UserShareGoodsRecord userShareGoodsRecord = userShareGoodsRecordService.selectByPrimaryKey(shareId);
+			if (userShareGoodsRecord != null) {
+				title = userShareGoodsRecord.getTitle();
+			}
+
+			JSONObject data = new JSONObject();
+			data.put("title", title);
+			data.put("count", list.size());
+			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