From dd9fd78aec975c29d6c5ea4c802aca2b7f773d91 Mon Sep 17 00:00:00 2001
From: admin <2780501319@qq.com>
Date: 星期四, 27 二月 2020 14:00:43 +0800
Subject: [PATCH] 转链修改
---
fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java | 186 +++++++++++++++++++++++++++++++++++++---------
1 files changed, 148 insertions(+), 38 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 5dc7028..06c96ed 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
@@ -3,6 +3,7 @@
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import javax.annotation.Resource;
@@ -15,6 +16,8 @@
import com.google.gson.Gson;
import com.yeshi.fanli.dto.jd.JDCouponInfo;
+import com.yeshi.fanli.dto.jd.JDPingouInfo;
+import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.recommend.RecommendBanner;
import com.yeshi.fanli.entity.bus.share.UserShareGoodsHistory;
@@ -22,34 +25,40 @@
import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinRecord;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.system.BusinessSystem;
-import com.yeshi.fanli.entity.taobao.ClientTBPid;
import com.yeshi.fanli.entity.taobao.PidUser;
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.ShareGoodsException;
+import com.yeshi.fanli.exception.share.ShareGoodsException;
import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
+import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.log.LogManager;
+import com.yeshi.fanli.log.LogType;
import com.yeshi.fanli.service.inter.config.BusinessSystemService;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SystemConfigService;
import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
import com.yeshi.fanli.service.inter.goods.SuperRecommendBannerService;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
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.UserShareGoodsGroupService;
+import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.util.AESUtil;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.TaoBaoConstant;
import com.yeshi.fanli.util.ThreadUtil;
import com.yeshi.fanli.util.jd.JDApiUtil;
import com.yeshi.fanli.util.jd.JDUtil;
+import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
+import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
@@ -94,10 +103,12 @@
@Resource
private UserShareGoodsGroupService userShareGoodsGroupService;
-
+
@Resource
private UserTaoLiJinRecordService userTaoLiJinRecordService;
-
+
+ @Resource
+ private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
/**
*
@@ -166,11 +177,11 @@
out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
return;
}
-
+
Long auctionId = record.getGoodsId();
String tljLink = record.getSendUrl();
- BigDecimal tljMoney= record.getPerFace();
-
+ BigDecimal tljMoney = record.getPerFace();
+
TaoBaoGoodsBrief goods = null;
try {
goods = redisManager.getTaoBaoGoodsBrief(auctionId);
@@ -203,7 +214,7 @@
data.put("quanPrice", afterCouponPrice);
data.put("zkPrice", goods.getZkPrice());
data.put("shareContent", "闀挎寜澶嶅埗鏈鏂囧瓧锛屾墦寮�銆愭墜鏈烘窐瀹濄�戝嵆鍙鍙栥�愮壒鍒紭鎯犲埜銆戣喘涔颁笅鍗曪紝");
- data.put("token", link.getTaoToken());
+ data.put("token", TaoBaoUtil.filterTaoToken(link.getTaoToken()));
data.put("reservePrice", goods.getReservePrice());
data.put("shopType", goods.getUserType() == 1 ? 2 : 1);
if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && !"鏃�".equalsIgnoreCase(goods.getCouponInfo())) {
@@ -212,9 +223,9 @@
} else {
data.put("coupon", false);
}
-
+
data.put("tljMoney", tljMoney);
-
+
out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
}
@@ -233,6 +244,12 @@
@RequestMapping(value = "getGoodsDetail", method = RequestMethod.GET)
public void getGoodsDetail(final AcceptData acceptData, final String id, String tid, String uid, String callback,
PrintWriter out) {
+ if (!StringUtil.isNullOrEmpty(uid))
+ uid = uid.replace(" ", "+");
+
+ LogManager.getLogger(LogType.taobaoTrade)
+ .info(String.format("娣樺疂鍒嗕韩鍟嗗搧H5璁块棶:\n 鍟嗗搧ID:%s \n 鍘熷鐢ㄦ埛ID:%s \n", id, uid));
+
long begin = java.lang.System.currentTimeMillis();
if (StringUtil.isNullOrEmpty(id)) {
out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼爄d"));
@@ -276,22 +293,14 @@
}
} else {// 娌℃湁鍒嗕韩璁板綍锛岄渶瑕佺洿鎺ュ垎浜�
- List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService
- .getConfigByTypeCache(PidUser.TYPE_SHARE_GOODS);
- String pid = null;
- ClientTBPid tbPid = tbPidService.getSharePid();
- if (tbPid != null)
- pid = tbPid.getPid();
- else {
- pid = configList.get(0).getDefaultPid();
- }
-
+ LogHelper.test("娌℃湁鍒嗕韩璁板綍:uid:" + uid + " actionid:" + id);
// 鑾峰彇
TaoKeAppInfo app = new TaoKeAppInfo();
- app.setAdzoneId(pid.split("_")[3]);
- app.setAppKey(configList.get(0).getAppKey());
- app.setAppSecret(configList.get(0).getAppSecret());
- app.setPid(pid);
+ app.setPid(TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT);
+ app.setAdzoneId(app.getPid().split("_")[3]);
+ app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
+ app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+
try {
goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app);
} catch (NumberFormatException e) {
@@ -304,6 +313,9 @@
if (!StringUtil.isNullOrEmpty(goods.getCouponLink())) {
url = goods.getCouponLink();
}
+ String relationId = userExtraTaoBaoInfoService.getRelationIdByUid(Long.parseLong(uid));
+ if (!StringUtil.isNullOrEmpty(relationId))
+ url += "&relationId=" + relationId;
token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), url);
}
}
@@ -366,7 +378,7 @@
data.put("quanPrice", afterCouponPrice);
data.put("zkPrice", goods.getZkPrice());
data.put("shareContent", "闀挎寜澶嶅埗鏈鏂囧瓧锛屾墦寮�銆愭墜鏈烘窐瀹濄�戝嵆鍙鍙栥�愮壒鍒紭鎯犲埜銆戣喘涔颁笅鍗曪紝");
- data.put("token", link.getTaoToken());
+ data.put("token", TaoBaoUtil.filterTaoToken(link.getTaoToken()));
data.put("reservePrice", goods.getReservePrice());
data.put("shopType", goods.getUserType() == 1 ? 2 : 1);
if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && !"鏃�".equalsIgnoreCase(goods.getCouponInfo())) {
@@ -379,7 +391,7 @@
// 鑰佺増鏈吋瀹�
data.put("quan", true);
}
-
+
out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
final String tempUid = uid;
@@ -399,11 +411,10 @@
});
return;
}
-
-
-
+
/**
* 浜笢鍒嗕韩鍟嗗搧淇℃伅
+ *
* @param acceptData
* @param id
* @param uid
@@ -411,7 +422,7 @@
* @param out
*/
@RequestMapping(value = "getJDGoodsDetail")
- public void getJDGoodsDetail(final AcceptData acceptData, final Long id, String uid, String callback,
+ public void getJDGoodsDetail(final AcceptData acceptData, final Long id, String uid, String callback,
PrintWriter out) {
if (id == null) {
out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼爄d"));
@@ -437,24 +448,42 @@
imageList = new ArrayList<>();
imageList.add(jdGoods.getPicUrl());
}
-
+
boolean hasCoupon = false;
String couponUrl = null;
BigDecimal discount = new BigDecimal(0);
- JDCouponInfo couponInfo = jdGoods.getCouponInfo();
+ JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods);
if (couponInfo != null) {
hasCoupon = true;
discount = couponInfo.getDiscount();
couponUrl = couponInfo.getLink();
}
-
+
+ boolean jdzy = false;
+ String owner = jdGoods.getOwner();
+ if (!StringUtil.isNullOrEmpty(owner) && "g".equalsIgnoreCase(owner)) {
+ jdzy = true;
+ }
+
String materialId = "https://item.jd.com/" + id + ".html";
- String jumpLink = JDApiUtil.convertLink(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "", uid);
-
+ String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "",
+ uid);
+
+ int priceType = 1;
+ BigDecimal price = jdGoods.getPrice();
+ ;
+ JDPingouInfo pinGouInfo = jdGoods.getPinGouInfo();
+ if (pinGouInfo != null) {
+ priceType = 2; // 鎷艰喘浠�
+ price = pinGouInfo.getPingouPrice();
+ }
+
JSONObject data = new JSONObject();
+ data.put("jdzy", jdzy);
data.put("imgs", imageList);
data.put("title", jdGoods.getSkuName());
- data.put("zkPrice", jdGoods.getPrice());
+ data.put("zkPrice", price);
+ data.put("priceType", priceType);
data.put("coupon", hasCoupon);
data.put("couponAmount", discount);
data.put("couponPrice", JDUtil.getQuanPrice(jdGoods));
@@ -468,7 +497,88 @@
public void run() {
try {
if (!StringUtil.isNullOrEmpty(tempUid))
- userShareGoodsGroupService.updateBrowseNum(Long.parseLong(tempUid), id, Constant.SOURCE_TYPE_JD);
+ userShareGoodsGroupService.updateBrowseNum(Long.parseLong(tempUid), id,
+ Constant.SOURCE_TYPE_JD);
+ } catch (NumberFormatException e) {
+ e.printStackTrace();
+ } catch (UserShareGoodsRecordException e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ return;
+ }
+
+ /**
+ * 鎷煎澶氬垎浜晢鍝佽鎯�
+ *
+ * @param acceptData
+ * @param id
+ * @param uid
+ * @param callback
+ * @param out
+ */
+ @RequestMapping(value = "getPDDGoodsDetail")
+ public void getPDDGoodsDetail(final AcceptData acceptData, final Long id, String uid, String callback,
+ PrintWriter out) {
+ if (id == null) {
+ out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼爄d"));
+ return;
+ }
+
+ if (!StringUtil.isNullOrEmpty(uid)) {
+ uid = AESUtil.decrypt(uid, Constant.UIDAESKEY);
+ }
+
+ PDDGoodsDetail pddGoods = PinDuoDuoApiUtil.getGoodsDetail(id);
+ if (pddGoods == null) {
+ out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
+ return;
+ }
+
+ List<String> imageList = null;
+ String[] goodsGalleryUrls = pddGoods.getGoodsGalleryUrls();
+ if (goodsGalleryUrls != null) {
+ imageList = Arrays.asList(goodsGalleryUrls);
+ }
+ if (imageList == null) {
+ imageList = new ArrayList<>();
+ String goodsImageUrl = pddGoods.getGoodsImageUrl();
+ if (!StringUtil.isNullOrEmpty(goodsImageUrl)) {
+ imageList.add(goodsImageUrl);
+ }
+ }
+
+ BigDecimal hundred = new BigDecimal(100);
+ Boolean hasCoupon = pddGoods.getHasCoupon();
+ BigDecimal amount = new BigDecimal(0);
+ if (hasCoupon != null && hasCoupon) {
+ amount = MoneyBigDecimalUtil.div(new BigDecimal(pddGoods.getCouponDiscount()), hundred).setScale(2);
+ } else {
+ hasCoupon = false;
+ }
+
+ String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(id, PinDuoDuoApiUtil.PID_SHARE + "", uid);
+
+ JSONObject data = new JSONObject();
+ data.put("imgs", imageList);
+ data.put("title", pddGoods.getGoodsName());
+ data.put("zkPrice", MoneyBigDecimalUtil.div(new BigDecimal(pddGoods.getMinGroupPrice()), hundred).setScale(2));
+ data.put("coupon", hasCoupon);
+ data.put("couponAmount", amount);
+ data.put("couponPrice", PinDuoDuoUtil.getQuanPrice(pddGoods));
+ data.put("helpLink", configService.get("pdd_share_h5_help_link"));
+ data.put("jumpLink", jumpLink);
+ JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+
+ final String tempUid = uid;
+ ThreadUtil.run(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ if (!StringUtil.isNullOrEmpty(tempUid))
+ userShareGoodsGroupService.updateBrowseNum(Long.parseLong(tempUid), id,
+ Constant.SOURCE_TYPE_PDD);
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (UserShareGoodsRecordException e) {
--
Gitblit v1.8.0