From 98b1a0affd69bbe63223c21fdd2c404e8bedfccb Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 20 五月 2020 17:25:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into 2.1.2

---
 fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5ShareController.java |  242 ++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 221 insertions(+), 21 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 926ebd1..ef1e118 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,6 +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 javax.annotation.Resource;
 
@@ -8,43 +11,240 @@
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.yeshi.utils.JsonUtil;
 
-import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
-import com.yeshi.fanli.service.inter.user.UserShareGoodsGroupService;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.yeshi.fanli.dto.ConfigParamsDTO;
+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.bus.user.vip.UserLevelEnum;
+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.service.inter.order.config.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;
+import net.sf.json.JSONObject;
 
 @Controller
 @RequestMapping("api/apph5/v1/share")
 public class AppH5ShareController {
 
-	
 	@Resource
-	private UserShareGoodsGroupService userShareGoodsGroupService;
-	
+	private UserShareGoodsRecordService userShareGoodsRecordService;
+
+	@Resource
+	private HongBaoManageService hongBaoManageService;
+
 	/**
-	 * 鍒嗕韩鍟嗗搧
+	 * 鍒嗕韩鍟嗗搧璇︽儏
+	 * 
 	 * @param callback
-	 * @param shareId  鍒嗕韩id
-	 * @param source   鏉ユ簮
+	 * @param shareId
+	 *            鍒嗕韩id
+	 * @param source
+	 *            鏉ユ簮
 	 * @param out
 	 */
-	@RequestMapping(value = "record")
-	public void query(String callback, Long shareId, String source, PrintWriter out) {
-		
+	@RequestMapping(value = "getDetail")
+	public void getDetail(String callback, Long shareId, String source, String fingerprint, PrintWriter out) {
+
 		try {
-			
+
 			if (shareId == null) {
-				out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉姝g‘")));
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉姝g‘"));
 				return;
 			}
-			
-			userShareGoodsGroupService.updateBrowseRecord(shareId, 1);
-			
-			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult("鏇存柊鎴愬姛")));
-		} catch (UserShareGoodsRecordException e) {
-			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(e.getMsg())));
+
+			// 鑾峰彇鍟嗗搧淇℃伅
+			JSONObject data = userShareGoodsRecordService.getGoodsGroupDetail(shareId);
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+
 		} catch (Exception e) {
-			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鏇存柊澶辫触")));
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鑾峰彇澶辫触"));
 			e.printStackTrace();
 		}
 	}
-	
+
+	/**
+	 * 鍒嗕韩鍟嗗搧鍒楄〃
+	 * 
+	 * @param callback
+	 * @param shareId
+	 *            鍒嗕韩id
+	 * @param source
+	 *            鏉ユ簮
+	 * @param out
+	 */
+	@RequestMapping(value = "getList")
+	public void getList(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> 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;
+					}
+
+					Integer goodsType = commonGoods.getGoodsType();
+					if (goodsType == null) {
+						continue;
+					}
+
+					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();
+				BigDecimal shareRate = hongBaoManageService.getShareRate();
+				ConfigParamsDTO configParamsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE,
+						hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP));
+				
+				
+				for (UserShareGoodsGroup goodsGroup : list) {
+					CommonGoods commonGoods = goodsGroup.getCommonGoods();
+					if (commonGoods == null) {
+						continue;
+					}
+					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; // 榛樿鍋滃敭
+						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; // 鍦ㄥ敭
+								break;
+							}
+						}
+						commonGoods.setState(state);
+					}
+
+					if (goodsType == Constant.SOURCE_TYPE_PDD && listPDD != null && listPDD.size() > 0) {
+						int state = 1; // 榛樿鍋滃敭
+						for (PDDGoodsDetail goodsDetail : listPDD) {
+							Long goodsId = goodsDetail.getGoodsId();
+							if (goodsId == commonGid || goodsId.equals(commonGid)) {
+								state = 0; // 鍦ㄥ敭
+								break;
+							}
+						}
+						commonGoods.setState(state);
+					}
+					GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, configParamsDTO);
+					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