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