From 2e61c91e0e5cd76ed7174aa31e10b8522cd81fde Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 18 九月 2021 17:22:57 +0800
Subject: [PATCH] 好省呗应用兼容
---
fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java | 992 +++++++++++++++++++++++++++++++++++-----------------------
1 files changed, 595 insertions(+), 397 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 af3fb52..bd31d0f 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
@@ -1,397 +1,595 @@
-package com.yeshi.fanli.controller.h5;
-
-import java.io.PrintWriter;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.annotation.Resource;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.yeshi.utils.JsonUtil;
-import org.yeshi.utils.taobao.TbImgUtil;
-
-import com.google.gson.Gson;
-import com.yeshi.fanli.entity.accept.AcceptData;
-import com.yeshi.fanli.entity.bus.recommend.RecommendBanner;
-import com.yeshi.fanli.entity.bus.share.UserShareGoodsHistory;
-import com.yeshi.fanli.entity.bus.su.recommend.SuperRecommendBanner;
-import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinRecord;
-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.UserShareGoodsRecordException;
-import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
-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.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.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.ThreadUtil;
-import com.yeshi.fanli.util.taobao.TaoBaoUtil;
-import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
-
-import net.sf.json.JSONObject;
-
-@Controller
-@RequestMapping("api/h5/v1/webRecommend")
-public class H5RecommendController {
-
- @Resource
- private H5ControllerUtil h5ControllerUtil;
-
- @Resource
- private SuperRecommendBannerService superRecommendBannerService;
-
- @Resource
- private HongBaoManageService hongBaoManageService;
-
- @Resource
- private RedisManager redisManager;
-
- @Resource
- private BusinessSystemService businessSystemService;
-
- @Resource
- private ConfigService configService;
-
- @Resource
- private SystemConfigService systemConfigService;
-
- @Resource
- private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
-
- @Resource
- private TBPidService tbPidService;
-
- @Resource
- private ShareGoodsService shareGoodsService;
-
- @Resource
- private TaoBaoUnionConfigService taoBaoUnionConfigService;
-
- @Resource
- private UserShareGoodsGroupService userShareGoodsGroupService;
-
- @Resource
- private UserTaoLiJinRecordService userTaoLiJinRecordService;
-
-
- /**
- *
- * 鏂规硶璇存槑: 鎺ㄨ崘杞挱鍟嗗搧淇℃伅
- *
- * @author mawurui createTime 2018骞�5鏈�11鏃� 涓婂崍11:13:47
- * @param acceptData
- * @param out
- */
- @RequestMapping(value = "getRecommenBanner", method = RequestMethod.GET)
- public void getRecommendBanner(AcceptData acceptData, String callback, PrintWriter out) {
-
- BusinessSystem system = businessSystemService.getBusinessSystem("WEB",
- Constant.systemCommonConfig.getH5PackageName());
- JSONObject json = new JSONObject();
- if (system == null) {
- out.print(JsonUtil.loadFalseResult(1, H5ControllerUtil.NOSYSTEM));
- return;
- }
- List<SuperRecommendBanner> superRecommendBanners = superRecommendBannerService
- .getSuperRecommendBannersBySystem(system);
- List<RecommendBanner> list = null;
- for (SuperRecommendBanner superRecommendBanner : superRecommendBanners) {
- if (list == null) {
- list = new ArrayList<RecommendBanner>();
- }
- RecommendBanner recommendBanner = superRecommendBanner.getRecommendBanner();
- // 娣樼壒浠锋殏鏃朵慨鏀�
- if (system.getId() == 7) {
- recommendBanner.getJumpDetail().setActivity(recommendBanner.getJumpDetail().getActivity()
- .replace("com.yeshi.ec.rebate.myapplication", "com.yeshi.ec.taospecial"));
- }
-
- list.add(recommendBanner);
- }
-
- if (list == null) {
- json.put("code", "1");
- json.put("msg", H5ControllerUtil.NODATA);
- out.print(json);
- java.lang.System.out.println("json-" + json);
- return;
- }
- json.put("code", 0);
- JSONObject data = new JSONObject();
- data.put("count", list.size());
- Gson gson = new Gson();
- data.put("data", gson.toJson(list));
- json.put("data", data);
- // jsonp鏂瑰紡杩斿洖
- out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(json)));
- return;
- }
-
- /**
- * 澶勭悊鏉′欢
- *
- * @param uid
- * @param tid
- * @param out
- */
- private void doTaoLiJin(String callback, Long uid, Long tid, PrintWriter out) {
- // 鏌ヨ鍟嗗搧娣樼ぜ閲�
- UserTaoLiJinRecord record = userTaoLiJinRecordService.selectByPrimaryKey(tid);
- if (record == null) {
- out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
- return;
- }
-
- Long auctionId = record.getGoodsId();
- String tljLink = record.getSendUrl();
- BigDecimal tljMoney= record.getPerFace();
-
- TaoBaoGoodsBrief goods = null;
- try {
- goods = redisManager.getTaoBaoGoodsBrief(auctionId);
- } catch (TaobaoGoodsDownException e) {
- }
-
- if (goods == null) {// 宸茬粡涓嬬嚎
- out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
- return;
- }
-
- String token = redisManager.getTLJToken(tljLink);
- if (StringUtil.isNullOrEmpty(token)) {
- token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), tljLink);
- }
-
- // 鍒稿悗浠�
- BigDecimal afterCouponPrice = TaoBaoUtil.getAfterUseCouplePrice(goods);
- TaoBaoLink link = new TaoBaoLink();
- link.setTaoToken(token);
-
- JSONObject data = new JSONObject();
- data.put("title", goods.getTitle());
- if (goods.getImgList() == null)
- goods.setImgList(new ArrayList<>());
- goods.getImgList().add(0, TbImgUtil.getTBSizeImg(goods.getPictUrl(), 300));
- data.put("imgs", goods.getImgList());
- data.put("couponPrice", afterCouponPrice);
- // 鑰佺増鏈吋瀹�
- data.put("quanPrice", afterCouponPrice);
- data.put("zkPrice", goods.getZkPrice());
- data.put("shareContent", "闀挎寜澶嶅埗鏈鏂囧瓧锛屾墦寮�銆愭墜鏈烘窐瀹濄�戝嵆鍙鍙栥�愮壒鍒紭鎯犲埜銆戣喘涔颁笅鍗曪紝");
- data.put("token", link.getTaoToken());
- data.put("reservePrice", goods.getReservePrice());
- data.put("shopType", goods.getUserType() == 1 ? 2 : 1);
- if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && !"鏃�".equalsIgnoreCase(goods.getCouponInfo())) {
- data.put("couponAmount", MoneyBigDecimalUtil.getWithNoZera(goods.getCouponAmount()));
- data.put("coupon", true);
- } else {
- data.put("coupon", false);
- }
-
- data.put("tljMoney", tljMoney);
-
- out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
- }
-
- /**
- *
- * 鏂规硶璇存槑: 鑾峰彇鍟嗗搧璇︽儏
- *
- * @author mawurui createTime 2018骞�5鏈�11鏃� 涓婂崍11:37:02
- * @param acceptData
- * @param id
- * @param uid
- * @param out
- */
-
- @SuppressWarnings("unused")
- @RequestMapping(value = "getGoodsDetail", method = RequestMethod.GET)
- public void getGoodsDetail(final AcceptData acceptData, final String id, Long tid, String uid, String callback,
- PrintWriter out) {
- long begin = java.lang.System.currentTimeMillis();
- if (StringUtil.isNullOrEmpty(id)) {
- out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼爄d"));
- return;
- }
-
- if (!StringUtil.isNullOrEmpty(uid)) {
- uid = AESUtil.decrypt(uid, Constant.UIDAESKEY);
- }
-
- if (tid != null && tid != 0) {
- doTaoLiJin(callback, StringUtil.isNullOrEmpty(uid) || Long.parseLong(uid) == 0 ? null : Long.parseLong(uid),
- tid, out);
- return;
- }
-
- TaoBaoGoodsBrief goods = null;
- 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;
- ClientTBPid tbPid = tbPidService.getSharePid();
- 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 = tbPidService.getSharePid().getPid();
- 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();
- }
- if (!url.contains("uland.taobao.com") && !url.contains("s.click.taobao.com")) {
- TaoBaoGoodsBrief linkInfo = TaoKeApiUtil.specialConvertCoupon(Long.parseLong(id), app);
- url = linkInfo.getCouponLink();
- if (StringUtil.isNullOrEmpty(url))
- url = linkInfo.getAuctionUrl();
- }
-
- token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), url);
- }
- }
-
- if (goods == null) {
- out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
- return;
- }
-
- 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());
- if (goods.getImgList() == null)
- goods.setImgList(new ArrayList<>());
- goods.getImgList().add(0, TbImgUtil.getTBSizeImg(goods.getPictUrl(), 300));
- data.put("imgs", goods.getImgList());
- data.put("couponPrice", afterCouponPrice);
- // 鑰佺増鏈吋瀹�
- data.put("quanPrice", afterCouponPrice);
- data.put("zkPrice", goods.getZkPrice());
- data.put("shareContent", "闀挎寜澶嶅埗鏈鏂囧瓧锛屾墦寮�銆愭墜鏈烘窐瀹濄�戝嵆鍙鍙栥�愮壒鍒紭鎯犲埜銆戣喘涔颁笅鍗曪紝");
- data.put("token", link.getTaoToken());
- data.put("reservePrice", goods.getReservePrice());
- data.put("shopType", goods.getUserType() == 1 ? 2 : 1);
- if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && !"鏃�".equalsIgnoreCase(goods.getCouponInfo())) {
- data.put("couponAmount", MoneyBigDecimalUtil.getWithNoZera(goods.getCouponAmount()));
- data.put("coupon", true);
- // 鑰佺増鏈吋瀹�
- data.put("quan", true);
- } else {
- data.put("coupon", false);
- // 鑰佺増鏈吋瀹�
- data.put("quan", true);
- }
-
- 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;
- }
-}
+package com.yeshi.fanli.controller.h5;
+
+import java.io.PrintWriter;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.yeshi.fanli.entity.SystemPIDInfo;
+import com.yeshi.fanli.entity.config.SystemConfigKeyEnum;
+import com.yeshi.fanli.service.manger.PIDManager;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.yeshi.utils.JsonUtil;
+import org.yeshi.utils.taobao.TbImgUtil;
+
+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;
+import com.yeshi.fanli.entity.bus.su.recommend.SuperRecommendBanner;
+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.PidUser;
+import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.fanli.entity.taobao.TaoBaoLink;
+import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
+import com.yeshi.common.entity.taobao.TaoKeAppInfo;
+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.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 org.yeshi.utils.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;
+
+import net.sf.json.JSONObject;
+
+@Controller
+@RequestMapping("api/h5/v1/webRecommend")
+public class H5RecommendController {
+
+ @Resource
+ private H5ControllerUtil h5ControllerUtil;
+
+ @Resource
+ private SuperRecommendBannerService superRecommendBannerService;
+
+ @Resource
+ private HongBaoManageService hongBaoManageService;
+
+ @Resource
+ private RedisManager redisManager;
+
+ @Resource
+ private BusinessSystemService businessSystemService;
+
+ @Resource
+ private ConfigService configService;
+
+ @Resource
+ private SystemConfigService systemConfigService;
+
+ @Resource
+ private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
+
+ @Resource
+ private TBPidService tbPidService;
+
+ @Resource
+ private ShareGoodsService shareGoodsService;
+
+ @Resource
+ private TaoBaoUnionConfigService taoBaoUnionConfigService;
+
+ @Resource
+ private UserShareGoodsGroupService userShareGoodsGroupService;
+
+ @Resource
+ private UserTaoLiJinRecordService userTaoLiJinRecordService;
+
+ @Resource
+ private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
+
+ @Resource
+ private PIDManager pidManager;
+
+ /**
+ * 鏂规硶璇存槑: 鎺ㄨ崘杞挱鍟嗗搧淇℃伅
+ *
+ * @param acceptData
+ * @param out
+ * @author mawurui createTime 2018骞�5鏈�11鏃� 涓婂崍11:13:47
+ */
+ @RequestMapping(value = "getRecommenBanner", method = RequestMethod.GET)
+ public void getRecommendBanner(AcceptData acceptData, String callback, PrintWriter out) {
+
+ BusinessSystem system = businessSystemService.getBusinessSystem("WEB",
+ systemConfigService.getValueCache(SystemConfigKeyEnum.h5PackageName,acceptData.getSystem()), acceptData.getSystem());
+ JSONObject json = new JSONObject();
+ if (system == null) {
+ out.print(JsonUtil.loadFalseResult(1, H5ControllerUtil.NOSYSTEM));
+ return;
+ }
+ List<SuperRecommendBanner> superRecommendBanners = superRecommendBannerService
+ .getSuperRecommendBannersBySystem(system);
+ List<RecommendBanner> list = null;
+ for (SuperRecommendBanner superRecommendBanner : superRecommendBanners) {
+ if (list == null) {
+ list = new ArrayList<RecommendBanner>();
+ }
+ RecommendBanner recommendBanner = superRecommendBanner.getRecommendBanner();
+ // 娣樼壒浠锋殏鏃朵慨鏀�
+ if (system.getId() == 7) {
+ recommendBanner.getJumpDetail().setActivity(recommendBanner.getJumpDetail().getActivity()
+ .replace("com.yeshi.ec.rebate.myapplication", "com.yeshi.ec.taospecial"));
+ }
+
+ list.add(recommendBanner);
+ }
+
+ if (list == null) {
+ json.put("code", "1");
+ json.put("msg", H5ControllerUtil.NODATA);
+ out.print(json);
+ java.lang.System.out.println("json-" + json);
+ return;
+ }
+ json.put("code", 0);
+ JSONObject data = new JSONObject();
+ data.put("count", list.size());
+ Gson gson = new Gson();
+ data.put("data", gson.toJson(list));
+ json.put("data", data);
+ // jsonp鏂瑰紡杩斿洖
+ out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(json)));
+ return;
+ }
+
+ /**
+ * 澶勭悊鏉′欢
+ *
+ * @param uid
+ * @param tid
+ * @param out
+ */
+ private void doTaoLiJin(String callback, Long uid, Long tid, PrintWriter out) {
+ // 鏌ヨ鍟嗗搧娣樼ぜ閲�
+ UserTaoLiJinRecord record = userTaoLiJinRecordService.selectByPrimaryKey(tid);
+ if (record == null) {
+ out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
+ return;
+ }
+
+ Long auctionId = record.getGoodsId();
+ String tljLink = record.getSendUrl();
+ BigDecimal tljMoney = record.getPerFace();
+
+ TaoBaoGoodsBrief goods = null;
+ try {
+ goods = redisManager.getTaoBaoGoodsBrief(auctionId);
+ } catch (TaobaoGoodsDownException e) {
+ }
+
+ if (goods == null) {// 宸茬粡涓嬬嚎
+ out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
+ return;
+ }
+
+ String token = redisManager.getTLJToken(tljLink);
+ if (StringUtil.isNullOrEmpty(token)) {
+ token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), tljLink);
+ }
+
+ // 鍒稿悗浠�
+ BigDecimal afterCouponPrice = TaoBaoUtil.getCouponPrice(goods);
+ TaoBaoLink link = new TaoBaoLink();
+ link.setTaoToken(token);
+
+ JSONObject data = new JSONObject();
+ data.put("title", goods.getTitle());
+ if (goods.getImgList() == null)
+ goods.setImgList(new ArrayList<>());
+ goods.getImgList().add(0, TbImgUtil.getTBSizeImg(goods.getPictUrl(), 300));
+ data.put("imgs", goods.getImgList());
+ data.put("couponPrice", afterCouponPrice);
+ // 鑰佺増鏈吋瀹�
+ data.put("quanPrice", afterCouponPrice);
+ data.put("zkPrice", goods.getZkPrice());
+ data.put("shareContent", "闀挎寜澶嶅埗鏈鏂囧瓧锛屾墦寮�銆愭墜鏈烘窐瀹濄�戝嵆鍙鍙栥�愮壒鍒紭鎯犲埜銆戣喘涔颁笅鍗曪紝");
+ 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())) {
+ data.put("couponAmount", MoneyBigDecimalUtil.getWithNoZera(goods.getCouponAmount()));
+ data.put("coupon", true);
+ } else {
+ data.put("coupon", false);
+ }
+
+ data.put("tljMoney", tljMoney);
+
+ out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
+ }
+
+ /**
+ * 鏂规硶璇存槑: 鑾峰彇鍟嗗搧璇︽儏
+ *
+ * @param acceptData
+ * @param id
+ * @param uid
+ * @param out
+ * @author mawurui createTime 2018骞�5鏈�11鏃� 涓婂崍11:37:02
+ */
+
+ @SuppressWarnings("unused")
+ @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"));
+ return;
+ }
+
+ if (!StringUtil.isNullOrEmpty(uid)) {
+ uid = AESUtil.decrypt(uid, Constant.UIDAESKEY);
+ }
+
+ if (!StringUtil.isNullOrEmpty(tid)) {
+ tid = AESUtil.decrypt(tid, Constant.UIDAESKEY);
+ doTaoLiJin(callback, StringUtil.isNullOrEmpty(uid) || Long.parseLong(uid) == 0 ? null : Long.parseLong(uid),
+ Long.parseLong(tid), out);
+ return;
+ }
+
+ TaoBaoGoodsBrief goods = null;
+ 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 {// 娌℃湁鍒嗕韩璁板綍锛岄渶瑕佺洿鎺ュ垎浜�
+ LogHelper.test("娌℃湁鍒嗕韩璁板綍:uid:" + uid + " actionid:" + id);
+ // 鑾峰彇
+ TaoKeAppInfo app = new TaoKeAppInfo();
+ app.setPid(pidManager.getPidCache(acceptData.getSystem(), Constant.SOURCE_TYPE_TAOBAO, SystemPIDInfo.PidType.share));
+ 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) {
+ e.printStackTrace();
+ } catch (TaobaoGoodsDownException e) {
+ e.printStackTrace();
+ }
+ if (goods != null) {
+ String url = goods.getAuctionUrl();
+ 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);
+ }
+ }
+
+ } else {
+ List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService
+ .getConfigByTypeCache(PidUser.TYPE_SHARE_GOODS);
+ String pid = tbPidService.getSharePid(acceptData.getSystem()).getPid();
+ 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();
+ }
+ if (!url.contains("uland.taobao.com") && !url.contains("s.click.taobao.com")) {
+ TaoBaoGoodsBrief linkInfo = TaoKeApiUtil.specialConvertCoupon(Long.parseLong(id), app, null, null);
+ url = linkInfo.getCouponLink();
+ if (StringUtil.isNullOrEmpty(url))
+ url = linkInfo.getAuctionUrl();
+ }
+
+ token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), url);
+ }
+ }
+
+ if (goods == null) {
+ out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
+ return;
+ }
+
+ if (StringUtil.isNullOrEmpty(token)) {
+ out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍙d护鐢熸垚澶辫触")));
+ return;
+ }
+
+ // 鍒稿悗浠�
+ BigDecimal afterCouponPrice = TaoBaoUtil.getCouponPrice(goods);
+ TaoBaoLink link = new TaoBaoLink();
+ link.setTaoToken(token);
+
+ JSONObject data = new JSONObject();
+ data.put("title", goods.getTitle());
+ if (goods.getImgList() == null)
+ goods.setImgList(new ArrayList<>());
+ goods.getImgList().add(0, TbImgUtil.getTBSizeImg(goods.getPictUrl(), 300));
+ data.put("imgs", goods.getImgList());
+ data.put("couponPrice", afterCouponPrice);
+ // 鑰佺増鏈吋瀹�
+ data.put("quanPrice", afterCouponPrice);
+ data.put("zkPrice", goods.getZkPrice());
+ data.put("shareContent", "闀挎寜澶嶅埗鏈鏂囧瓧锛屾墦寮�銆愭墜鏈烘窐瀹濄�戝嵆鍙鍙栥�愮壒鍒紭鎯犲埜銆戣喘涔颁笅鍗曪紝");
+ 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())) {
+ data.put("couponAmount", MoneyBigDecimalUtil.getWithNoZera(goods.getCouponAmount()));
+ data.put("coupon", true);
+ // 鑰佺増鏈吋瀹�
+ data.put("quan", true);
+ } else {
+ data.put("coupon", false);
+ // 鑰佺増鏈吋瀹�
+ data.put("quan", true);
+ }
+
+ 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;
+ }
+
+ /**
+ * 浜笢鍒嗕韩鍟嗗搧淇℃伅
+ *
+ * @param acceptData
+ * @param id
+ * @param uid
+ * @param callback
+ * @param out
+ */
+ @RequestMapping(value = "getJDGoodsDetail")
+ public void getJDGoodsDetail(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);
+ }
+
+ JDGoods jdGoods = JDApiUtil.queryGoodsDetail(id);
+ if (jdGoods == null) {
+ jdGoods = JDApiUtil.getGoodsDetail(id);
+ }
+
+ if (jdGoods == null) {
+ out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
+ return;
+ }
+
+ List<String> imageList = jdGoods.getImageList();
+ if (imageList == null) {
+ imageList = new ArrayList<>();
+ imageList.add(jdGoods.getPicUrl());
+ }
+
+ boolean hasCoupon = false;
+ String couponUrl = null;
+ BigDecimal discount = new BigDecimal(0);
+ 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.convertLinkWithSubUnionId(materialId, couponUrl, null, pidManager.getPidCache(acceptData.getSystem(), Constant.SOURCE_TYPE_JD, SystemPIDInfo.PidType.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", price);
+ data.put("priceType", priceType);
+ data.put("coupon", hasCoupon);
+ data.put("couponAmount", discount);
+ data.put("couponPrice", JDUtil.getCouponPrice(jdGoods));
+ data.put("helpLink", configService.getValue("jd_share_h5_help_link", acceptData.getSystem()));
+ 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_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(pddGoods.getGoodsSign(), pidManager.getPidCache(acceptData.getSystem(), Constant.SOURCE_TYPE_PDD, SystemPIDInfo.PidType.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.getCouponPrice(pddGoods));
+ data.put("helpLink", configService.getValue("pdd_share_h5_help_link", acceptData.getSystem()));
+ 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) {
+ e.printStackTrace();
+ }
+ }
+ });
+ return;
+ }
+}
--
Gitblit v1.8.0