From 88b54772dbcf5ecab1e2316e4e4626ac901b8908 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期二, 22 一月 2019 15:58:24 +0800
Subject: [PATCH] 邀请码添加返回状态

---
 fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java |  171 +++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 112 insertions(+), 59 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java b/fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java
index 59e7ea4..a617897 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java
@@ -11,6 +11,8 @@
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
+import org.yeshi.utils.JsonUtil;
+import org.yeshi.utils.taobao.TbImgUtil;
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
@@ -28,11 +30,12 @@
 import com.yeshi.fanli.entity.taobao.TaoBaoLink;
 import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
 import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
+import com.yeshi.fanli.exception.ShareGoodsException;
+import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
 import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
 import com.yeshi.fanli.service.inter.config.ConfigService;
 import com.yeshi.fanli.service.inter.config.SystemConfigService;
 import com.yeshi.fanli.service.inter.config.SystemService;
-import com.yeshi.fanli.service.inter.goods.CollectionGoodsService;
 import com.yeshi.fanli.service.inter.goods.RecommendSectionGoodsService;
 import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
 import com.yeshi.fanli.service.inter.goods.SuperRecommendBannerService;
@@ -42,14 +45,15 @@
 import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
 import com.yeshi.fanli.service.inter.user.ScanHistoryService;
 import com.yeshi.fanli.service.inter.user.TBPidService;
+import com.yeshi.fanli.service.inter.user.UserShareGoodsGroupService;
 import com.yeshi.fanli.util.AESUtil;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.ThreadUtil;
 import com.yeshi.fanli.util.Utils;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
-import org.yeshi.utils.JsonUtil;
 
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
@@ -80,9 +84,6 @@
 	private SystemService systemService;
 
 	@Resource
-	private CollectionGoodsService collectionGoodsService;
-
-	@Resource
 	private ConfigService configService;
 
 	@Resource
@@ -102,6 +103,9 @@
 
 	@Resource
 	private TaoBaoUnionConfigService taoBaoUnionConfigService;
+
+	@Resource
+	private UserShareGoodsGroupService userShareGoodsGroupService;
 
 	/**
 	 * 
@@ -202,9 +206,7 @@
 		JSONObject validData = null;
 		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
 				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
-		Map<String, String> convertMap = hongBaoManageService.convertMap();
-		String proportion = convertMap.get("hongbao_goods_proportion");
-		String fcRate = convertMap.get("hongbao_fc_ratio");
+		BigDecimal proportion = hongBaoManageService.getFanLiRate();
 
 		Map<Long, List<RecommendSectionGoods>> map = recommendSectionGoodsService.getAllSectionGoodsMap();
 		for (int i = 0; i < size; i++) {
@@ -228,7 +230,7 @@
 				JSONObject obj = JSONObject.fromObject(gson2.toJson(rss));
 				String json = gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(
 						gson2.fromJson(obj.optJSONObject("taoBaoGoodsBrief").toString(), TaoBaoGoodsBrief.class),
-						proportion, fcRate, ""));
+						proportion.toString(), ""));
 				obj.put("taoBaoGoodsBrief", json);
 				array.add(obj);
 			}
@@ -266,78 +268,113 @@
 			out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼爄d"));
 			return;
 		}
-
-		List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_SHARE_GOODS);
-		UserShareGoodsHistory shareHistory = null;
-		String pid = configList.get(0).getDefaultPid();
 		if (!StringUtil.isNullOrEmpty(uid)) {
-			try {
-				uid = AESUtil.decrypt(uid, Constant.UIDAESKEY);
-				TBPid tbPid = tbPidService.getTBPid(Long.parseLong(uid), PidUser.TYPE_SHARE_GOODS);
-				if (tbPid != null)
-					pid = tbPid.getPid();
-
-				// 鏌ヨ璇ID,UID,鍟嗗搧ID涓嬫槸鍚︽湁杩欎釜鍟嗗搧鐨勪俊鎭�
-				// 鍒ゆ柇杩欎釜浜у搧鏄惁浠嶢PP涓垎浜�屾潵
-				try {
-					shareHistory = shareGoodsService.getShareGoodsHistoryDetail(Long.parseLong(uid),
-							Long.parseLong(id));
-				} catch (Exception e) {
-
-				}
-
-			} catch (Exception e) {
-
-			}
+			uid = AESUtil.decrypt(uid, Constant.UIDAESKEY);
 		}
 
 		TaoBaoGoodsBrief goods = null;
-		try {
+		String token = null;
+		if (!StringUtil.isNullOrEmpty(uid)) {
+			// 鏌ヨ鏄惁鏈夊垎浜褰�
+			UserShareGoodsHistory shareHistory = null;
+			try {
+				shareHistory = shareGoodsService.getShareGoodsHistoryDetail(Long.parseLong(uid), Long.parseLong(id));
+			} catch (NumberFormatException e) {
+				e.printStackTrace();
+			} catch (ShareGoodsException e) {
+				e.printStackTrace();
+			}
+
+			if (shareHistory != null) {// 鏈夊垎浜褰�
+				token = shareHistory.getTkCode();
+				goods = redisManager.getTaoBaoGoodsTemp(Long.parseLong(id));
+				if (goods == null)
+					try {
+						goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id));
+					} catch (NumberFormatException e) {
+						e.printStackTrace();
+					} catch (TaobaoGoodsDownException e) {
+						e.printStackTrace();
+					}
+
+			} else {// 娌℃湁鍒嗕韩璁板綍锛岄渶瑕佺洿鎺ュ垎浜�
+				List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService
+						.getConfigByTypeCache(PidUser.TYPE_SHARE_GOODS);
+				String pid = null;
+				TBPid tbPid = tbPidService.getTBPid(Long.parseLong(uid), PidUser.TYPE_SHARE_GOODS);
+				if (tbPid != null)
+					pid = tbPid.getPid();
+				else {
+					pid = configList.get(0).getDefaultPid();
+				}
+
+				// 鑾峰彇
+				TaoKeAppInfo app = new TaoKeAppInfo();
+				app.setAdzoneId(pid.split("_")[3]);
+				app.setAppKey(configList.get(0).getAppKey());
+				app.setAppSecret(configList.get(0).getAppSecret());
+				app.setPid(pid);
+				try {
+					goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app);
+				} catch (NumberFormatException e) {
+					e.printStackTrace();
+				} catch (TaobaoGoodsDownException e) {
+					e.printStackTrace();
+				}
+				if (goods != null) {
+					String url = goods.getAuctionUrl();
+					if (!StringUtil.isNullOrEmpty(goods.getCouponLink())) {
+						url = goods.getCouponLink();
+					}
+					token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), url);
+				}
+			}
+
+		} else {
+			List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService
+					.getConfigByTypeCache(PidUser.TYPE_SHARE_GOODS);
+			String pid = configList.get(0).getDefaultPid();
 			TaoKeAppInfo app = new TaoKeAppInfo();
 			app.setAdzoneId(pid.split("_")[3]);
 			app.setAppKey(configList.get(0).getAppKey());
 			app.setAppSecret(configList.get(0).getAppSecret());
 			app.setPid(pid);
-			goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app);
-		} catch (NumberFormatException e) {
-			e.printStackTrace();
-		} catch (TaobaoGoodsDownException e) {
-			e.printStackTrace();
+			try {
+				goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app);
+			} catch (NumberFormatException e) {
+				e.printStackTrace();
+			} catch (TaobaoGoodsDownException e) {
+				e.printStackTrace();
+			}
+			if (goods != null) {
+				String url = goods.getAuctionUrl();
+				if (!StringUtil.isNullOrEmpty(goods.getCouponLink())) {
+					url = goods.getCouponLink();
+				}
+				token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), url);
+			}
 		}
+
 		if (goods == null) {
 			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
 			return;
 		}
 
-		// 鍒稿悗浠�
-		BigDecimal afterCouponPrice = TaoBaoUtil.getAfterUseCouplePrice(goods);
-		TaoBaoLink link = null;
-
-		if (shareHistory != null) {
-			link = new TaoBaoLink();
-			link.setTaoToken(shareHistory.getTkCode());
-		} else {
-			link = new TaoBaoLink();
-			try {
-				String url = goods.getCouponLink();
-				if (StringUtil.isNullOrEmpty(url))
-					url = goods.getAuctionUrl();
-				String tbk = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), url);
-				link.setTaoToken(tbk);
-			} catch (Exception e) {
-				link = null;
-			}
-		}
-		if (link == null) {
-			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("娣樺彛浠ょ敓鎴愬け璐�")));
+		if (StringUtil.isNullOrEmpty(token)) {
+			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍙d护鐢熸垚澶辫触")));
 			return;
 		}
+
+		// 鍒稿悗浠�
+		BigDecimal afterCouponPrice = TaoBaoUtil.getAfterUseCouplePrice(goods);
+		TaoBaoLink link = new TaoBaoLink();
+		link.setTaoToken(token);
 
 		JSONObject data = new JSONObject();
 		data.put("title", goods.getTitle());
 		if (goods.getImgList() == null)
 			goods.setImgList(new ArrayList<>());
-		goods.getImgList().add(0, goods.getPictUrl());
+		goods.getImgList().add(0, TbImgUtil.getTBSizeImg(goods.getPictUrl(), 300));
 		data.put("imgs", goods.getImgList());
 		data.put("quanPrice", afterCouponPrice);
 		data.put("zkPrice", goods.getZkPrice());
@@ -347,6 +384,22 @@
 		data.put("reservePrice", goods.getReservePrice());
 		data.put("shopType", goods.getUserType() == 1 ? 2 : 1);
 		out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
+
+		final String tempUid = uid;
+		ThreadUtil.run(new Runnable() {
+
+			@Override
+			public void run() {
+				try {
+					if (!StringUtil.isNullOrEmpty(tempUid))
+						userShareGoodsGroupService.updateBrowseRecord(Long.parseLong(tempUid), Long.parseLong(id), 1);
+				} catch (NumberFormatException e) {
+					e.printStackTrace();
+				} catch (UserShareGoodsRecordException e) {
+					e.printStackTrace();
+				}
+			}
+		});
 		return;
 	}
 }

--
Gitblit v1.8.0