From 744594ef1a2f530fc3e86ea9dc48b62247f79420 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 19 五月 2020 17:13:23 +0800 Subject: [PATCH] 饿了么绘图,添加口碑 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsController.java | 335 ++++++++++++++++++++++--------------------------------- 1 files changed, 133 insertions(+), 202 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsController.java index c6f232f..f4a167e 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsController.java @@ -16,24 +16,36 @@ import com.yeshi.fanli.entity.taobao.ClientTBPid; import com.yeshi.fanli.entity.taobao.PidUser; import com.yeshi.fanli.entity.taobao.TBPid; +import com.yeshi.fanli.entity.taobao.TLJBuyGoods; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; 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.share.ShareGoodsException; import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; +import com.yeshi.fanli.exception.tlj.TaoLiJinCreateException; import com.yeshi.fanli.log.LogHelper; +import com.yeshi.fanli.log.TaoKeLogHelper; import com.yeshi.fanli.service.inter.goods.ShareGoodsService; import com.yeshi.fanli.service.inter.goods.recommend.RecommendGoodsDeleteHistoryService; import com.yeshi.fanli.service.inter.monitor.BusinessEmergent110Service; import com.yeshi.fanli.service.inter.monitor.MonitorService; +import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService; +import com.yeshi.fanli.service.inter.taobao.TLJFreeBuyGoodsService; import com.yeshi.fanli.service.inter.taobao.TaoBaoBuyRelationMapService; import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService; +import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService; import com.yeshi.fanli.service.inter.user.TBPidService; -import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService; +import com.yeshi.fanli.service.inter.user.UserInfoExtraService; import com.yeshi.fanli.service.inter.user.UserInfoService; +import com.yeshi.fanli.service.inter.user.integral.IntegralGetService; +import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TaoBaoConstant; +import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.factory.MonitorFactory; +import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; import net.sf.json.JSONObject; @@ -69,6 +81,58 @@ @Resource private RecommendGoodsDeleteHistoryService recommendGoodsDeleteHistoryService; + @Resource + private UserInfoExtraService userInfoExtraService; + + @Resource + private UserTaoLiJinRecordService userTaoLiJinRecordService; + + @Resource + private TLJBuyGoodsService tljBuyGoodsService; + + @Resource + private IntegralGetService integralGetService; + + @Resource + private TLJFreeBuyGoodsService tljFreeBuyGoodsService; + + private void doTaoLiJinBuy(AcceptData acceptData, Long uid, Long auctionId, PrintWriter out) { + JSONObject data = new JSONObject(); + TaoBaoLink taoBaoLink = null; + try { + // 鏍规嵁鏃ユ湡涓庡晢鍝両D鏌ヨ + TLJBuyGoods tljBuyGoods = tljBuyGoodsService.selectByAuctionIdAndDay(auctionId, + TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd")); + if (tljBuyGoods == null) { + out.print(JsonUtil.loadFalseResult(1, "鍟嗗搧涓嶅瓨鍦�")); + return; + } + String appKey = tljBuyGoods.getAppKey(); + TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppKeyCache(appKey); + if (config == null) { + out.print(JsonUtil.loadFalseResult(2, "鐢熸垚鎺ㄥ箍閾炬帴澶辫触")); + return; + } + TaoKeAppInfo app = new TaoKeAppInfo(config.getAppKey(), config.getAppSecret(), config.getDefaultPid()); + taoBaoLink = shareGoodsService.getTaoLiJinLinkForBuyWithOutFanLi(uid, auctionId, app); + } catch (TaoLiJinCreateException e1) { + out.print(JsonUtil.loadFalseResult(e1.getCode(), "娣樼ぜ閲戠孩鍖呭垱寤哄け璐�")); + return; + } catch (ShareGoodsException e) { + out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMessage())); + return; + } + data.put("native", true); + JSONObject link = new JSONObject(); + link.put("clickUrl", taoBaoLink.getClickUrl()); + link.put("couponUrl", taoBaoLink.getCouponLink()); + data.put("type", 1); + data.put("link", link); + out.print(JsonUtil.loadTrueResult(data)); + + integralGetService.addTaoLiJinBuy(uid, auctionId); + } + /** * 鑾峰彇娣樺疂鐨勫垎浜摼鎺� * @@ -80,7 +144,7 @@ */ @RequestMapping(value = "gettaobaolink") public void getTaoBaoLink(AcceptData acceptData, Long uid, Long auctionId, String from, String source, - HttpServletRequest request, PrintWriter out) { + HttpServletRequest request, PrintWriter out) { if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛ID涓嶈兘涓虹┖")); return; @@ -95,6 +159,14 @@ if (auctionId == null || auctionId <= 0) { out.print(JsonUtil.loadFalseResult(2, "鍟嗗搧ID涓嶈兘涓虹┖")); return; + } + + try { + // 鏃ュ織璁板綍 + String info = String.format("type=buy&uid=%s&goodsId=%s&source=%s&goodsType=%s", uid, auctionId, source, + Constant.SOURCE_TYPE_TAOBAO); + LogHelper.orderInfo(info); + } catch (Exception e) { } TaoBaoGoodsBrief goods = null; @@ -112,13 +184,31 @@ } } + if ("taolijin_buy".equalsIgnoreCase(source)) { + doTaoLiJinBuy(acceptData, uid, auctionId, out); + return; + } + + ClientTBPid clientTBPid = null; + + String dpid = null; + if (TaoBaoUtil.isSpecialGoods(goods.getMaterialLibType())) { + dpid = TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT; + } else { + dpid = TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID; + } + String psiteId = dpid.split("_")[2]; + String padzoneId = dpid.split("_")[3]; + TaoBaoUnionConfig config1 = taoBaoUnionConfigService.getConfigByAppIdCache(psiteId); + clientTBPid = new ClientTBPid(config1.getAppKey(), dpid, psiteId, padzoneId); + JSONObject data = new JSONObject(); boolean isNative = false; String pid = null; boolean specialConvert = false; - if (goods.getMaterialLibType() != null && goods.getMaterialLibType() == 1) { + if (TaoBaoUtil.isSpecialGoods(goods.getMaterialLibType())) { specialConvert = true; } else specialConvert = false; @@ -150,202 +240,20 @@ pidType = PidUser.TYPE_FANLI_IOS; try { TaoBaoLink taoBaoLink = null; + // 鏄繑鍒╁晢鍝佸簱鐨勫晢鍝� if (specialConvert) { if (!StringUtil.isNullOrEmpty(specialId)) { - taoBaoLink = shareGoodsService.getTaoBaoLinkForBuyWithSpecial(uid, specialId, auctionId); - data.put("native", true); - } else { - if (!specialConvert && !isNative) { - if (pidType == PidUser.TYPE_FANLI_ANDROID) - taoBaoLink = shareGoodsService.getTaoBaoLink(uid, auctionId, - tbPidService.getAndroidDefault().getPid()); - else - taoBaoLink = shareGoodsService.getTaoBaoLink(uid, auctionId, - tbPidService.getIOSDefault().getPid()); - - } else - taoBaoLink = shareGoodsService.getTaoBaoLinkForBuy(uid, auctionId, pidType); - LogHelper.test("璐拱杞摼:榛樿PID杞摼-" + uid + "锛�" + auctionId); - } - } else {// 涓嶆槸杩斿埄搴撶殑鍟嗗搧锛岀敤鐗规畩PID鏇夸唬 - try { - relationId = taoBaoBuyRelationMapService.getRelationId(uid); - } catch (Exception e) { - LogHelper.errorDetailInfo(e, "uid:" + uid, null); - } - if (!StringUtil.isNullOrEmpty(relationId)) {// - taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(uid, auctionId, relationId, - TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID); - data.put("native", true); - } else { - if (pidType == PidUser.TYPE_FANLI_ANDROID) - taoBaoLink = shareGoodsService.getTaoBaoLink(uid, auctionId, - tbPidService.getAndroidDefault().getPid()); - else - taoBaoLink = shareGoodsService.getTaoBaoLink(uid, auctionId, - tbPidService.getIOSDefault().getPid()); - - LogHelper.test("璐拱杞摼:榛樿PID杞摼-闈炶繑鍒╁簱鍟嗗搧-" + uid + "锛�" + auctionId); - } - } - JSONObject link = new JSONObject(); - link.put("clickUrl", taoBaoLink.getClickUrl()); - link.put("couponUrl", taoBaoLink.getCouponLink()); - data.put("type", 1); - data.put("link", link); - out.print(JsonUtil.loadTrueResult(data)); - - } catch (Exception e) { - isNative = false; - try { - monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, 0, 0, "璐拱娣樺疂鍟嗗搧杞摼鍑洪敊")); - } catch (Exception e1) { - e1.printStackTrace(); - } - - TBPid tbPid = null; - if (acceptData.getPlatform().equalsIgnoreCase("android")) { - tbPid = tbPidService.getTBPid(uid, PidUser.TYPE_FANLI_ANDROID); - } else { - tbPid = tbPidService.getTBPid(uid, PidUser.TYPE_FANLI_IOS); - } - - LogHelper.test("璐拱杞摼:榛樿PID杞摼-寮傚父鍟嗗搧-" + uid + "锛�" + auctionId); - - data.put("native", isNative); - - if (tbPid != null) { - - try { - TaoBaoLink taoBaoLink = null; - if (pidType == PidUser.TYPE_FANLI_ANDROID) - taoBaoLink = shareGoodsService.getTaoBaoLink(uid, auctionId, - tbPidService.getAndroidDefault().getPid()); - else - taoBaoLink = shareGoodsService.getTaoBaoLink(uid, auctionId, - tbPidService.getIOSDefault().getPid()); - - JSONObject link = new JSONObject(); - link.put("clickUrl", taoBaoLink.getClickUrl()); - link.put("couponUrl", taoBaoLink.getCouponLink()); - data.put("type", 1); - data.put("link", link); - data.put("native", true); - - } catch (Exception e1) { - String siteId = tbPid.getPid().split("_")[2]; - String adzoneId = tbPid.getPid().split("_")[3]; - TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(siteId); - ClientTBPid clientTBPid = new ClientTBPid(config.getAppKey(), tbPid.getPid(), siteId, adzoneId); - data.put("type", 2); - data.put("tbPidInfo", clientTBPid); - data.put("native", true); - } - - out.print(JsonUtil.loadTrueResult(data)); - } else { - out.print(JsonUtil.loadFalseResult(1, "璇锋眰澶辫触")); - } - - businessEmergent110Service.buyTaoBaoGoodsError(StringUtil.Md5(auctionId + "")); - } - - } - - - - /** - * 鑾峰彇娣樺疂鐨勫垎浜摼鎺� 锛堟窐绀奸噾鏂板缓锛� - * - * @param acceptData - * @param uid - * -鐢ㄦ埛ID - * @param auctionId-鍟嗗搧ID - * @param out - */ - @RequestMapping(value = "getTaoBaoGoodsLink") - public void getTaoBaoGoodsLink(AcceptData acceptData, Long uid, Long auctionId, String from, HttpServletRequest request, - PrintWriter out) { - if (uid == null || uid <= 0) { - out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛ID涓嶈兘涓虹┖")); - return; - } - - UserInfo user = userInfoService.getUserByIdWithMybatis(uid); - if (user != null && user.getState() != UserInfo.STATE_NORMAL) { - out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); - return; - } - - if (auctionId == null || auctionId <= 0) { - out.print(JsonUtil.loadFalseResult(2, "鍟嗗搧ID涓嶈兘涓虹┖")); - return; - } - - TaoBaoGoodsBrief goods = null; - - try { - goods = TaoKeApiUtil.getSimpleGoodsInfo(auctionId); - } catch (TaobaoGoodsDownException e) { - out.print(JsonUtil.loadFalseResult(3, "鍟嗗搧宸蹭笅鏋�")); - return; - } catch (Exception e) { - try { - LogHelper.errorDetailInfo(e, "鑾峰彇鍟嗗搧绠�鐗堣鎯呭嚭閿�", auctionId + ""); - } catch (Exception e1) { - e1.printStackTrace(); - } - } - - JSONObject data = new JSONObject(); - boolean isNative = false; - String pid = null; - - boolean specialConvert = false; - - if (goods.getMaterialLibType() != null && goods.getMaterialLibType() == 1) { - specialConvert = true; - } else - specialConvert = false; - - String specialId = null; - String relationId = null; - // 鏌ヨ鐢ㄦ埛ID鏄惁缁戝畾浜嗕細鍛樿繍钀D - UserExtraTaoBaoInfo userInfo = userExtraTaoBaoInfoService.getByUid(uid); - if (userInfo != null && !StringUtil.isNullOrEmpty(userInfo.getSpecialId()) && userInfo.getSpecialValid() != null - && userInfo.getSpecialValid() == true) { - specialId = userInfo.getSpecialId(); - relationId = userInfo.getRelationId(); - // 宸茬粡缁戝畾 - if (specialConvert) { - isNative = true; - } else - isNative = false; - - pid = TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT; - - } else {// 灏氭湭缁戝畾 - isNative = true; - } - - data.put("native", isNative); - - int pidType = PidUser.TYPE_FANLI_ANDROID; - if (acceptData.getPlatform().equalsIgnoreCase("ios")) - pidType = PidUser.TYPE_FANLI_IOS; - try { - TaoBaoLink taoBaoLink = null; - // 鏄繑鍒╁晢鍝佸簱鐨勫晢鍝� - if (specialConvert) { - if (!StringUtil.isNullOrEmpty(specialId)) { - - if (from != null && from.equals("taolijin")) { - taoBaoLink = shareGoodsService.getTaoLiJinLinkForBuy(uid, specialId, auctionId); - } else { - taoBaoLink = shareGoodsService.getTaoBaoLinkForBuyWithSpecial(uid, specialId, auctionId); + if (source != null && "taolijin_free_buy".equals(source)) { + taoBaoLink = shareGoodsService.getTaoLiJinLinkForBuy(uid, specialId, auctionId, null); } - + + if (taoBaoLink == null) { + taoBaoLink = shareGoodsService.getTaoBaoLinkForBuyWithSpecial(uid, specialId, auctionId); + if(taoBaoLink!=null) + clientTBPid=null; + } + data.put("native", true); } else { if (!specialConvert && !isNative) { @@ -367,8 +275,14 @@ LogHelper.errorDetailInfo(e, "uid:" + uid, null); } if (!StringUtil.isNullOrEmpty(relationId)) {// - taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(uid, auctionId, relationId, - TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID); + if (source != null && "taolijin_free_buy".equals(source)) { + taoBaoLink = shareGoodsService.getTaoLiJinLinkForBuy(uid, specialId, auctionId, + TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID); + } else { + taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(uid, auctionId, relationId, + TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID); + } + data.put("native", true); } else { if (pidType == PidUser.TYPE_FANLI_ANDROID) @@ -386,9 +300,26 @@ link.put("couponUrl", taoBaoLink.getCouponLink()); data.put("type", 1); data.put("link", link); + if (clientTBPid != null) + data.put("tbPidInfo", clientTBPid); out.print(JsonUtil.loadTrueResult(data)); + TaoKeLogHelper.convertLinkInfo( + String.format("uid:%s auctionId:%s 杈撳嚭缁撴灉:", uid, auctionId + "") + data.toString()); + + // 鑾峰緱閲戝竵 + integralGetService.addCouponRebate(uid); + + } catch (ShareGoodsException e) { + if (e.getCode() == 1001 || e.getCode() == 1002) { + out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); + } else { + out.print(JsonUtil.loadFalseResult(1, e.getMsg())); + } } catch (Exception e) { + + LogHelper.errorDetailInfo(e); + isNative = false; try { monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, 0, 0, "璐拱娣樺疂鍟嗗搧杞摼鍑洪敊")); @@ -424,14 +355,13 @@ data.put("type", 1); data.put("link", link); data.put("native", true); - } catch (Exception e1) { String siteId = tbPid.getPid().split("_")[2]; String adzoneId = tbPid.getPid().split("_")[3]; TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(siteId); - ClientTBPid clientTBPid = new ClientTBPid(config.getAppKey(), tbPid.getPid(), siteId, adzoneId); + ClientTBPid clientTBPid1 = new ClientTBPid(config.getAppKey(), tbPid.getPid(), siteId, adzoneId); data.put("type", 2); - data.put("tbPidInfo", clientTBPid); + data.put("tbPidInfo", clientTBPid1); data.put("native", true); } @@ -442,9 +372,7 @@ businessEmergent110Service.buyTaoBaoGoodsError(StringUtil.Md5(auctionId + "")); } - } - /** * 鏄惁鍦ㄥ弬涓庢帹骞� @@ -519,6 +447,9 @@ history.setGoodsId(goodsId); recommendGoodsDeleteHistoryService.addRecommendGoodsDeleteHistory(history); out.print(JsonUtil.loadTrueResult("")); + + // 鑾峰緱閲戝竵 + integralGetService.addCloseRecommendGoods(uid); } } -- Gitblit v1.8.0