From 20f1758957a19bb5fec47fcc1c83818ee268676b Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 11 一月 2019 14:16:07 +0800
Subject: [PATCH] 修改资金统计信息,优化H5的商品详情

---
 fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java |  163 +++++++++++++++++++++++++++++++++++------------------
 1 files changed, 107 insertions(+), 56 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 4cf9449..589a5da 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
@@ -8,9 +8,6 @@
 
 import javax.annotation.Resource;
 
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -32,6 +29,8 @@
 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;
@@ -50,9 +49,13 @@
 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 net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
 
 @Controller
 @RequestMapping("api/h5/v1/webRecommend")
@@ -102,7 +105,7 @@
 
 	@Resource
 	private UserShareGoodsGroupService userShareGoodsGroupService;
-	
+
 	/**
 	 * 
 	 * 鏂规硶璇存槑: 鎺ㄨ崘杞挱鍟嗗搧淇℃伅
@@ -264,75 +267,107 @@
 			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) {
-
-				}
-				
-				userShareGoodsGroupService.updateBrowseRecord(Long.parseLong(uid), Long.parseLong(id), 1);
-				
-
-			} 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());
@@ -348,6 +383,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