From 366bfe4202088ce4c7d1a9ed34a9c50d013e5396 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期一, 11 三月 2019 17:02:00 +0800
Subject: [PATCH] 分类查询优化
---
fanli/src/main/java/com/yeshi/fanli/controller/client/GoodsController.java | 49 +++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 43 insertions(+), 6 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/GoodsController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/GoodsController.java
index c17c6f4..1dba1d3 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/GoodsController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/GoodsController.java
@@ -11,6 +11,7 @@
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
+import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.taobao.ClientTBPid;
import com.yeshi.fanli.entity.taobao.PidUser;
import com.yeshi.fanli.entity.taobao.TBPid;
@@ -18,11 +19,13 @@
import com.yeshi.fanli.entity.taobao.TaoBaoLink;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
+import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
import com.yeshi.fanli.service.inter.monitor.MonitorService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.user.TBPidService;
import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
+import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.factory.MonitorFactory;
@@ -49,6 +52,9 @@
@Resource
private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
+ @Resource
+ private UserInfoService userInfoService;
+
/**
* 鑾峰彇娣樺疂鐨勫垎浜摼鎺�
*
@@ -66,6 +72,12 @@
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;
@@ -74,22 +86,32 @@
JSONObject data = new JSONObject();
boolean isNative = false;
String pid = null;
-
+ boolean specialConvert = false;
+
+ String specialId = null;
// 鏌ヨ鐢ㄦ埛ID鏄惁缁戝畾浜嗕細鍛樿繍钀D
UserExtraTaoBaoInfo userInfo = userExtraTaoBaoInfoService.getByUid(uid);
if (userInfo != null && !StringUtil.isNullOrEmpty(userInfo.getSpecialId()) && userInfo.getSpecialValid() != null
&& userInfo.getSpecialValid() == true) {
+ specialId = userInfo.getSpecialId();
// 宸茬粡缁戝畾
try {
TaoBaoGoodsBrief goods = TaoKeApiUtil.getSimpleGoodsInfo(auctionId);
if (goods.getMaterialLibType() != null && goods.getMaterialLibType() == 1) {
isNative = true;
+ specialConvert = true;
} else
isNative = false;
} catch (TaobaoGoodsDownException e) {
out.print(JsonUtil.loadFalseResult(3, "鍟嗗搧宸蹭笅鏋�"));
return;
+ } catch (Exception e) {
+ try {
+ LogHelper.errorDetailInfo(e, "鑾峰彇鍟嗗搧绠�鐗堣鎯呭嚭閿�", auctionId + "");
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
}
pid = Constant.TAOBAO_SPECIAL_PID_DEFAULT;
@@ -97,16 +119,28 @@
} else {// 灏氭湭缁戝畾
isNative = true;
}
-
- data.put("native", isNative);
-
+ data.put("native", isNative);
try {
int pidType = PidUser.TYPE_FANLI_ANDROID;
if (acceptData.getPlatform().equalsIgnoreCase("ios"))
pidType = PidUser.TYPE_FANLI_IOS;
-
- TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForBuy(uid, auctionId, pidType);
+
+ TaoBaoLink taoBaoLink = null;
+ if (!StringUtil.isNullOrEmpty(specialId) && specialConvert) {
+ taoBaoLink = shareGoodsService.getTaoBaoLinkForBuyWithSpecial(uid, specialId, auctionId);
+ } 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);
+ }
+
JSONObject link = new JSONObject();
link.put("clickUrl", taoBaoLink.getClickUrl());
link.put("couponUrl", taoBaoLink.getCouponLink());
@@ -115,6 +149,7 @@
out.print(JsonUtil.loadTrueResult(data));
} catch (Exception e) {
+ isNative = false;
try {
monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, 0, 0, "璐拱娣樺疂鍟嗗搧杞摼鍑洪敊"));
} catch (Exception e1) {
@@ -128,6 +163,8 @@
tbPid = tbPidService.getTBPid(uid, PidUser.TYPE_FANLI_IOS);
}
+ data.put("native", isNative);
+
if (tbPid != null) {
String siteId = tbPid.getPid().split("_")[2];
String adzoneId = tbPid.getPid().split("_")[3];
--
Gitblit v1.8.0