From dc5be7d38446f70e6ff86df311119c32b41fe7f8 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 28 十一月 2020 16:37:05 +0800
Subject: [PATCH] 大淘客搜索接口升级

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java |  174 +++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 123 insertions(+), 51 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java
index 091d2e6..5cdab23 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java
@@ -10,7 +10,9 @@
 import javax.annotation.Resource;
 
 import com.yeshi.fanli.entity.SystemEnum;
+import com.yeshi.fanli.entity.SystemFunction;
 import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
+import com.yeshi.fanli.util.*;
 import org.json.simple.JSONArray;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -86,14 +88,8 @@
 import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
 import com.yeshi.fanli.service.inter.user.vip.UserVipConfigService;
 import com.yeshi.fanli.service.manger.user.UserLevelManager;
-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 org.yeshi.utils.TimeUtil;
-import com.yeshi.fanli.util.VersionUtil;
 import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
 import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil;
 import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil;
@@ -357,7 +353,7 @@
             try {
                 goods = TaoKeApiUtil.searchGoodsDetail(id, app);
                 if (goods.getTkRate() == null || new BigDecimal(0).compareTo(goods.getTkRate()) == 0) {
-                    TaoBaoGoodsBrief linkInfo = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app,null,null);
+                    TaoBaoGoodsBrief linkInfo = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app, null, null);
                     if (linkInfo != null) {
                         goods.setAuctionUrl(linkInfo.getAuctionUrl());
                         goods.setCouponLink(linkInfo.getCouponLink());
@@ -794,7 +790,7 @@
         if (couponInfo != null) {
             // 鍒搁摼鎺ュ鐞�
             String materialId = "https://item.jd.com/" + id + ".html";
-            String url = JDApiUtil.convertLinkWithSubUnionId(materialId, couponInfo.getLink(),
+            String url = JDApiUtil.convertLinkWithSubUnionId(materialId, couponInfo.getLink(),null,
                     JDApiUtil.POSITION_COUPON + "", null);
             couponInfo.setLink(url);
         }
@@ -927,7 +923,7 @@
             return;
         }
 
-        PDDGoodsDetail pddGoods = PinDuoDuoApiUtil.getGoodsDetail(id);
+        PDDGoodsDetail pddGoods = PinDuoDuoApiUtil.getGoodsDetail(id,PinDuoDuoApiUtil.PID_FANLI,uid+"");
         if (pddGoods == null) {
             out.print(JsonUtil.loadFalseResult(2, "鍟嗗搧涓嶅瓨鍦�"));
             return;
@@ -939,7 +935,7 @@
         GoodsDetailVO goodsDetail = GoodsDetailVOFactory.convertPDDGoods(pddGoods, paramsDTO);
         if (goodsDetail != null && goodsDetail.getMoneyInfo() != null && userVIPInfoService.isVIP(uid)) {
             goodsDetail.getMoneyInfo().setFanliMoney(goodsDetail.getMoneyInfo().getMaxMoney());
-            goodsDetail.getMoneyInfo().setShareMoney("楼" + PinDuoDuoUtil.getGoodsFanLiMoney(pddGoods,
+            goodsDetail.getMoneyInfo().setShareMoney("楼" + PinDuoDuoUtil.getGoodsShareMoney(pddGoods,
                     hongBaoManageService.getShareRate(UserLevelEnum.superVIP, acceptData.getSystem())));
             goodsDetail.getMoneyInfo().setRateInfo(goodsDetail.getMoneyInfo().getMaxRateInfo());
             goodsDetail.getMoneyInfo().setCompositionInfo(goodsDetail.getMoneyInfo().getMaxCompositionInfo());
@@ -974,7 +970,7 @@
         CouponInfoVO couponInfo = goodsDetail.getCouponInfo();
         PDDPromotionUrl convertUrl = null;
         if (couponInfo != null) {
-            convertUrl = PinDuoDuoApiUtil.convert(id, PinDuoDuoApiUtil.PID_COUPON + "", null);
+            convertUrl = PinDuoDuoApiUtil.convert(id, PinDuoDuoApiUtil.PID_COUPON + "", null, false);
             if (convertUrl != null)
                 couponInfo.setLink(convertUrl.getUrl());
         }
@@ -1493,7 +1489,7 @@
                     Long[] strings = new Long[goodsIdList.size()];
                     pddfilter.setGoodsIdList(goodsIdList.toArray(strings));
 
-                    PDDGoodsResult result = PinDuoDuoApiUtil.searchGoods(pddfilter);
+                    PDDGoodsResult result = PinDuoDuoApiUtil.searchGoods(pddfilter,Constant.PDD_SEARCH_CUSTOMER_PARAMS);
                     if (result != null) {
                         List<PDDGoodsDetail> goodsList = result.getGoodsList();
                         if (goodsList != null && goodsList.size() > 0) {
@@ -1602,6 +1598,49 @@
         }
     }
 
+
+    /**
+     * 鑾峰彇浜笢棰嗗埜閾炬帴锛堜笉杩斿埄锛�
+     *
+     * @param acceptData
+     * @param id
+     * @param couponUrl
+     * @param source
+     * @param out
+     */
+    private void getJDLinkWithoutFanLi(AcceptData acceptData, Long id, String couponUrl, String source, PrintWriter out) {
+        JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(id);
+        if (goods == null) {
+            out.print(JsonUtil.loadFalseResult(2, "鍟嗗搧宸蹭笅鏋�"));
+            return;
+        }
+        String jumpLink = null;
+        String materialId = "https://item.jd.com/" + id + ".html";
+        if (StringUtil.isNullOrEmpty(couponUrl)) {
+            JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(goods.getCouponInfoList(), goods.getPrice());
+            if (couponInfo != null) {
+                couponUrl = couponInfo.getLink();
+            }
+            jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null,JDApiUtil.POSITION_COUPON + "",
+                    "");
+            if (jumpLink == null) {
+                jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, null, null,JDApiUtil.POSITION_COUPON + "",
+                        "");
+            }
+        } else {
+            jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null,JDApiUtil.POSITION_COUPON + "",
+                    "");
+            if (StringUtil.isNullOrEmpty(jumpLink)) {
+                jumpLink = couponUrl;
+            }
+        }
+
+        JSONObject data = new JSONObject();
+        data.put("native", true);
+        data.put("jumpLink", jumpLink);
+        out.print(JsonUtil.loadTrueResult(data));
+    }
+
     /**
      * 浜笢璐拱閾炬帴
      *
@@ -1614,15 +1653,23 @@
      */
     @RequestMapping(value = "getJDLink")
     public void getJDLink(AcceptData acceptData, Long uid, Long id, String couponUrl, String source, PrintWriter out) {
-        if (uid == null || uid <= 0) {
-            out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛ID涓嶈兘涓虹┖"));
-            return;
-        }
+
 
         if (id == null || id <= 0) {
             out.print(JsonUtil.loadFalseResult(1, "鍟嗗搧ID涓嶈兘涓虹┖"));
             return;
         }
+
+        if (!SystemInfoUtil.hasFunctions(acceptData.getSystem(), SystemFunction.fanli)) {
+            getJDLinkWithoutFanLi(acceptData, id, couponUrl, source, out);
+            return;
+        }
+
+        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) {
@@ -1643,14 +1690,14 @@
             if (couponInfo != null) {
                 couponUrl = couponInfo.getLink();
             }
-            jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_FANLI + "",
+            jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null,JDApiUtil.POSITION_FANLI + "",
                     uid + "");
             if (jumpLink == null) {
-                jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, null, JDApiUtil.POSITION_FANLI + "",
+                jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, null, null,JDApiUtil.POSITION_FANLI + "",
                         uid + "");
             }
         } else {
-            jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_FANLI + "",
+            jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null,JDApiUtil.POSITION_FANLI + "",
                     uid + "");
             if (StringUtil.isNullOrEmpty(jumpLink)) {
                 jumpLink = couponUrl;
@@ -1680,7 +1727,7 @@
         String jumpLink = null;
         String materialId = "https://item.jd.com/" + id + ".html";
 
-        jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_FANLI + "", null);
+        jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null,JDApiUtil.POSITION_FANLI + "", null);
         if (StringUtil.isNullOrEmpty(jumpLink)) {
             jumpLink = couponUrl;
         }
@@ -1702,21 +1749,31 @@
      */
     @RequestMapping(value = "getPDDLink")
     public void getPDDLink(AcceptData acceptData, Long uid, Long id, String source, PrintWriter out) {
-        if (uid == null || uid <= 0) {
-            out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛ID涓嶈兘涓虹┖"));
-            return;
-        }
 
         if (id == null || id <= 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;
+        String pid = PinDuoDuoApiUtil.PID_FANLI;
+        //鍙槸棰嗗埜
+        if (!SystemInfoUtil.hasFunctions(acceptData.getSystem(), SystemFunction.fanli)) {
+            pid = PinDuoDuoApiUtil.PID_COUPON;
+            uid = null;
+        } else {
+            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;
+            }
+
         }
+
 
         PDDGoodsDetail goods = pinDuoDuoCacheUtil.getGoodsInfo(id);
         if (goods == null) {
@@ -1724,12 +1781,13 @@
             return;
         }
 
-        PDDPromotionUrl convertUrl = PinDuoDuoApiUtil.convert(id, PinDuoDuoApiUtil.PID_FANLI + "", uid + "");
+        boolean auth = PinDuoDuoApiUtil.isAuth(pid, uid + "");
+        PDDPromotionUrl convertUrl = PinDuoDuoApiUtil.convert(id, pid + "", uid + "", !auth);
         JSONObject data = new JSONObject();
         data.put("native", true);
-
         data.put("jumpLink", convertUrl.getUrl());
         data.put("nativeJumpLink", PinDuoDuoUtil.getAndroidNativeURI(convertUrl.getUrl()));
+        LogHelper.test(String.format("鎷煎澶氳浆閾�:uid:%s data:%s",uid+"",data.toString()));
         out.print(JsonUtil.loadTrueResult(data));
 
         // 鑾峰緱閲戝竵
@@ -1747,20 +1805,28 @@
      */
     @RequestMapping(value = "getVIPLink")
     public void getVIPLink(AcceptData acceptData, Long uid, Long id, String source, PrintWriter out) {
-        if (uid == null || uid <= 0) {
-            out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛ID涓嶈兘涓虹┖"));
-            return;
-        }
-
         if (id == null || id <= 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;
+        String tag = null;
+        //鍙槸棰嗗埜
+        if (!SystemInfoUtil.hasFunctions(acceptData.getSystem(), SystemFunction.fanli)) {
+            tag = VipShopUtil.getCouponChanTag();
+        } else {
+            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;
+            }
+
+            tag = VipShopUtil.getBuyChanTag(uid);
         }
 
         VIPGoodsInfo goods = VipShopApiUtil.getGoodsDetail(id + "");
@@ -1769,7 +1835,7 @@
             return;
         }
 
-        VIPConvertResultDTO convertUrl = VipShopApiUtil.convertLink(id + "", VipShopUtil.getBuyChanTag(uid));
+        VIPConvertResultDTO convertUrl = VipShopApiUtil.convertLink(id + "", tag);
         JSONObject data = new JSONObject();
         data.put("native", true);
         data.put("jumpLink", convertUrl.getUrl());
@@ -1782,21 +1848,27 @@
 
     @RequestMapping(value = "getSuningLink")
     public void getSuningLink(AcceptData acceptData, Long uid, String id, String source, PrintWriter out) {
-        if (uid == null || uid <= 0) {
-            out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛ID涓嶈兘涓虹┖"));
-            return;
-        }
-
         if (StringUtil.isNullOrEmpty(id)) {
             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;
+        String pid = SuningApiUtil.PID_BUY;
+        if (!SystemInfoUtil.hasFunctions(acceptData.getSystem(), SystemFunction.fanli)) {
+            pid = SuningApiUtil.PID_COUPON;
+            uid = null;
+        } else {
+            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;
+            }
         }
+
 
         String[] sts = SuningUtil.getGoodsIdDetail(id);
         String supplierCode = sts[0];
@@ -1812,7 +1884,7 @@
         if (!StringUtil.isNullOrEmpty(goods.getCouponInfo().getCouponUrl()))
             quanUrl = goods.getCouponInfo().getCouponUrl();
         String link = SuningApiUtil.convertLink(SuningUtil.getProductUrl(supplierCode, goodsCode), quanUrl,
-                SuningApiUtil.PID_BUY, uid + "");
+                pid, uid + "");
         JSONObject data = new JSONObject();
         data.put("native", false);
         data.put("jumpLink", link);
@@ -2000,7 +2072,7 @@
             return;
         }
 
-        link = JDApiUtil.convertLinkWithSubUnionId(link, null, JDApiUtil.POSITION_FANLI + "", uid + "");
+        link = JDApiUtil.convertLinkWithSubUnionId(link, null, null,JDApiUtil.POSITION_FANLI + "", uid + "");
 
         JSONObject data = new JSONObject();
         data.put("link", link);

--
Gitblit v1.8.0