From ff58896fa6d75b17499923d1926169795bf95bdf Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期二, 23 七月 2019 12:24:30 +0800
Subject: [PATCH] 分享h5接口兼容 京东+拼多多

---
 fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5ShareController.java |  203 +++++++++++++++++++++++---------------------------
 1 files changed, 95 insertions(+), 108 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 530fc9c..ccc778b 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
@@ -22,11 +22,16 @@
 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.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.fanli.exception.taobao.TaoKeApiException;
+import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
 import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
 import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
+import com.yeshi.fanli.util.Constant;
 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.util.taobao.TaoKeApiUtil;
 import com.yeshi.fanli.vo.goods.GoodsDetailVO;
 
 import net.sf.json.JSONArray;
@@ -71,15 +76,15 @@
 	}
 
 	/**
-	 * 鍒嗕韩鍟嗗搧璇︽儏
+	 * 鍒嗕韩鍟嗗搧鍒楄〃
 	 * 
 	 * @param callback
 	 * @param shareId  鍒嗕韩id
 	 * @param source   鏉ユ簮
 	 * @param out
 	 */
-	@RequestMapping(value = "getListJD")
-	public void getListJD(String callback, Long shareId, PrintWriter out) {
+	@RequestMapping(value = "getList")
+	public void getList(String callback, Long shareId, PrintWriter out) {
 		try {
 			if (shareId == null) {
 				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉姝g‘"));
@@ -90,30 +95,77 @@
 
 			List<UserShareGoodsGroup> list = userShareGoodsRecordService.listByRecordId(shareId);
 			if (list != null && list.size() > 0) {
-				List<Long> listGid = new ArrayList<Long>();
+				List<Long> listIdTB = new ArrayList<Long>();
+				List<Long> listIdJD = new ArrayList<Long>();
+				List<Long> listIdPDD = 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();
+					
+					Integer goodsType = commonGoods.getGoodsType();
+					if (goodsType == null) {
+						continue;
 					}
-				} catch (Exception e) {
-					e.printStackTrace();
+					
+					if (Constant.SOURCE_TYPE_TAOBAO == goodsType) {
+						listIdTB.add(commonGoods.getGoodsId());
+					} else if (Constant.SOURCE_TYPE_JD == goodsType) {
+						listIdJD.add(commonGoods.getGoodsId());
+					} else if (Constant.SOURCE_TYPE_PDD == goodsType) {
+						listIdPDD.add(commonGoods.getGoodsId());
+					}
 				}
-
+				
+				// 娣樺疂楠岃瘉鏄惁鍦ㄥ敭
+				List<TaoBaoGoodsBrief> listTB = null;
+				if (listIdTB.size() > 0) {
+					try {
+						listTB = TaoKeApiUtil.getBatchGoodsInfo(listIdTB);
+					} catch (Exception e) {
+						e.printStackTrace();
+					}
+				}
+				
+				// 浜笢楠岃瘉鏄惁鍦ㄥ敭
+				List<JDGoods> listJD = null;
+				if (listIdJD.size() > 0) {
+					try {
+						JDFilter filter = new JDFilter();
+						filter.setListId(listIdJD);
+						filter.setPageIndex(1);
+						filter.setPageSize(100);
+						JDSearchResult  result = JDApiUtil.queryByKey(filter);
+						if (result != null) {
+							listJD = result.getGoodsList();
+						}
+					} catch (Exception e) {
+						e.printStackTrace();
+					}
+				}
+				
+				
+				// 鎷煎澶氶獙璇佹槸鍚﹀湪鍞�
+				List<PDDGoodsDetail> listPDD = null;
+				if (listIdPDD.size() > 0) {
+					try {
+						Long[] ids = new Long[list.size()];
+						PDDSearchFilter sf = new PDDSearchFilter();
+						sf.setPage(1);
+						sf.setPageSize(100);
+						sf.setGoodsIdList(listIdPDD.toArray(ids));
+						PDDGoodsResult  result = PinDuoDuoApiUtil.searchGoods(sf);
+						if (result != null) {
+							listPDD = result.getGoodsList();
+						}
+					} catch (Exception e) {
+						e.printStackTrace();
+					}
+				}
+				
+				
 				Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
 						.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
 				BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
@@ -124,11 +176,27 @@
 					if (commonGoods == null) {
 						continue;
 					}
-
-					if (listGoods != null && listGoods.size() > 0) {
+					Integer goodsType = commonGoods.getGoodsType();
+					if (goodsType == null) {
+						goodsType = Constant.SOURCE_TYPE_TAOBAO;
+					}
+					Long commonGid = commonGoods.getGoodsId();
+					
+					if (goodsType == Constant.SOURCE_TYPE_TAOBAO && listTB != null && listTB.size() > 0) {
 						int state = 1; // 榛樿鍋滃敭
-						Long commonGid = commonGoods.getGoodsId();
-						for (JDGoods goodsDetail : listGoods) {
+						for (TaoBaoGoodsBrief goodsDetail : listTB) {
+							Long goodsId =goodsDetail.getAuctionId();
+							if (goodsId == commonGid || goodsId.equals(commonGid)) {
+								state = 0; // 鍦ㄥ敭
+								break;
+							}
+						}
+						commonGoods.setState(state);
+					}
+					
+					if (goodsType == Constant.SOURCE_TYPE_JD && listJD != null && listJD.size() > 0) {
+						int state = 1; // 榛樿鍋滃敭
+						for (JDGoods goodsDetail : listJD) {
 							Long goodsId =goodsDetail.getSkuId();
 							if (goodsId == commonGid || goodsId.equals(commonGid)) {
 								state = 0; // 鍦ㄥ敭
@@ -138,91 +206,10 @@
 						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) {
+					
+					if (goodsType == Constant.SOURCE_TYPE_PDD && listPDD != null && listPDD.size() > 0) {
 						int state = 1; // 榛樿鍋滃敭
-						Long commonGid = commonGoods.getGoodsId();
-						for (PDDGoodsDetail goodsDetail : listGoods) {
+						for (PDDGoodsDetail goodsDetail : listPDD) {
 							Long goodsId =goodsDetail.getGoodsId();
 							if (goodsId == commonGid || goodsId.equals(commonGid)) {
 								state = 0; // 鍦ㄥ敭

--
Gitblit v1.8.0