From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 25 二月 2025 16:41:22 +0800
Subject: [PATCH] 淘宝转链接口更新

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java |  358 ++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 277 insertions(+), 81 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java
index f0fbcda..bbabc4e 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java
@@ -1,34 +1,8 @@
 package com.yeshi.fanli.controller.client.v2;
 
-import java.io.PrintWriter;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpSession;
-
-import com.yeshi.fanli.entity.SystemEnum;
-import com.yeshi.fanli.entity.SystemPIDInfo;
-import com.yeshi.fanli.exception.pdd.PDDApiException;
-import com.yeshi.fanli.exception.taobao.TaoBaoTokenParseException;
-import com.yeshi.fanli.lijin.manager.GoodsLijinMnager;
-import com.yeshi.fanli.service.inter.pdd.PDDAuthService;
-import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
-import com.yeshi.fanli.service.manger.PIDManager;
-import com.yeshi.fanli.util.suning.SuningUtil;
-import com.yeshi.fanli.util.vipshop.VipShopUtil;
-import com.yeshi.goods.facade.utils.taobao.DaTaoKeApiUtil;
-import org.springframework.core.task.TaskExecutor;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.yeshi.utils.HttpUtil;
-import org.yeshi.utils.JsonUtil;
-
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
+import com.yeshi.common.entity.PageEntity;
 import com.yeshi.fanli.dto.GoodsMoneyConfigParamsDTO;
 import com.yeshi.fanli.dto.jd.JDFilter;
 import com.yeshi.fanli.dto.jd.JDSearchFilter;
@@ -42,30 +16,36 @@
 import com.yeshi.fanli.dto.vip.VIPSearchFilter;
 import com.yeshi.fanli.dto.vip.VIPSearchResult;
 import com.yeshi.fanli.dto.vip.goods.VIPGoodsInfo;
+import com.yeshi.fanli.entity.SystemEnum;
+import com.yeshi.fanli.entity.SystemPIDInfo;
 import com.yeshi.fanli.entity.accept.AcceptData;
 import com.yeshi.fanli.entity.bus.help.AppPageNotification;
+import com.yeshi.fanli.entity.bus.search.HistorySearch;
+import com.yeshi.fanli.entity.goods.BaseGoodsInfo;
 import com.yeshi.fanli.entity.goods.CommonGoods;
 import com.yeshi.fanli.entity.jd.JDGoods;
 import com.yeshi.fanli.entity.system.ConfigKeyEnum;
 import com.yeshi.fanli.entity.taobao.SearchFilter;
-import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
 import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
-import com.yeshi.goods.facade.entity.taobao.dataoke.DaTaoKeDetailV2;
+import com.yeshi.fanli.exception.pdd.PDDApiException;
+import com.yeshi.fanli.exception.taobao.TaoBaoTokenParseException;
 import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
 import com.yeshi.fanli.exception.user.TokenRecordException;
+import com.yeshi.fanli.lijin.manager.GoodsLijinMnager;
 import com.yeshi.fanli.service.inter.brand.BrandInfoService;
 import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
 import com.yeshi.fanli.service.inter.config.ConfigService;
 import com.yeshi.fanli.service.inter.help.AppPageNotificationService;
 import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
+import com.yeshi.fanli.service.inter.pdd.PDDAuthService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService;
-import com.yeshi.goods.facade.service.DaTaoKeGoodsDetailV2Service;
 import com.yeshi.fanli.service.inter.user.HistorySearchService;
 import com.yeshi.fanli.service.inter.user.TokenRecordService;
 import com.yeshi.fanli.service.inter.user.integral.IntegralGetService;
+import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
 import com.yeshi.fanli.service.manger.ClipboardAnalysisManager;
 import com.yeshi.fanli.service.manger.IClipboardAnalysisResult;
-import com.yeshi.common.entity.PageEntity;
+import com.yeshi.fanli.service.manger.PIDManager;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.ThreadUtil;
@@ -75,15 +55,23 @@
 import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil;
 import com.yeshi.fanli.util.factory.CommonGoodsFactory;
 import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
+import com.yeshi.fanli.util.goods.douyin.CSJCPSApiUtil;
+import com.yeshi.fanli.util.goods.douyin.DYUtil;
+import com.yeshi.fanli.util.goods.douyin.vo.DYGoods;
+import com.yeshi.fanli.util.goods.douyin.vo.DYGoodsDetail;
+import com.yeshi.fanli.util.goods.douyin.vo.DYGoodsSearchFilter;
+import com.yeshi.fanli.util.goods.douyin.vo.ListResult;
 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.suning.SuningApiUtil;
+import com.yeshi.fanli.util.suning.SuningUtil;
 import com.yeshi.fanli.util.taobao.SearchFilterUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
 import com.yeshi.fanli.util.vipshop.VipShopApiUtil;
+import com.yeshi.fanli.util.vipshop.VipShopUtil;
 import com.yeshi.fanli.vo.brand.BrandInfoVO;
 import com.yeshi.fanli.vo.brand.TaoBaoShopVO;
 import com.yeshi.fanli.vo.common.JumpDetailContentVO;
@@ -91,13 +79,36 @@
 import com.yeshi.fanli.vo.msg.TokenVO;
 import com.yeshi.fanli.vo.recommend.RecommendJumpInfoVO;
 import com.yeshi.fanli.vo.search.GoodsDocParseResultVO;
-
+import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.goods.facade.entity.taobao.dataoke.DaTaoKeDetailV2;
+import com.yeshi.goods.facade.service.DaTaoKeGoodsDetailV2Service;
+import com.yeshi.goods.facade.utils.taobao.DaTaoKeApiUtil;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.core.task.TaskExecutor;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.yeshi.utils.HttpUtil;
+import org.yeshi.utils.IPUtil;
+import org.yeshi.utils.JsonUtil;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import java.io.PrintWriter;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
 
 @Controller
 @RequestMapping("api/v2/search")
 public class SearchControllerV2 {
+
+    Logger logger = LoggerFactory.getLogger(SearchControllerV2.class);
 
     @Resource
     private ConfigService configService;
@@ -171,7 +182,7 @@
         // 鍘婚櫎鍓嶅悗绌烘牸
         text = text.trim();
         String originalText = text;
-        if (acceptData.getSystem() == SystemEnum.yhqjx) {
+        if (acceptData.getSystem() == SystemEnum.yhqjx || acceptData.getSystem() == SystemEnum.hsb) {
             Integer sourceType = clipboardAnalysisManager.tejiaParseSourceType(text);
             JSONObject root = new JSONObject();
             root.put("type", 2);
@@ -188,7 +199,7 @@
 
                         @Override
                         public void onResult(GoodsDocParseResultVO result) {
-                            if (uid == null || acceptData.getSystem() == SystemEnum.yhqjx) {
+                            if (uid == null || (acceptData.getSystem() == SystemEnum.yhqjx || acceptData.getSystem() == SystemEnum.hsb)) {
                                 out.print(JsonUtil.loadFalseResult("鏃犳帹鑽�"));
                                 return;
                             }
@@ -201,7 +212,7 @@
                             int platformCode = Constant.getPlatformCode(acceptData.getPlatform());
                             int version = Integer.parseInt(acceptData.getVersion());
                             JumpDetailContentVO convert = new JumpDetailContentVO();
-                            convert.setJumpDetail(jumpDetailV2Service.getByTypeCache("web", platformCode, version));
+                            convert.setJumpDetail(jumpDetailV2Service.getByTypeCache("web", platformCode, version, acceptData.getSystem()));
                             JSONObject convertParams = new JSONObject();
                             convertParams.put("url", configService.getValue(ConfigKeyEnum.convertDocWebLink.getKey(), acceptData.getSystem()));
                             convertParams.put("clipboard", false);
@@ -223,17 +234,17 @@
                                 if (result.getFirstGoods().getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
                                     view = new JumpDetailContentVO();
                                     view.setJumpDetail(
-                                            jumpDetailV2Service.getByTypeCache("goodsdetail", platformCode, version));
+                                            jumpDetailV2Service.getByTypeCache("goodsdetail", platformCode, version, acceptData.getSystem()));
                                     view.setParams(params);
                                 } else if (result.getFirstGoods().getGoodsType() == Constant.SOURCE_TYPE_JD) {
                                     view = new JumpDetailContentVO();
                                     view.setJumpDetail(
-                                            jumpDetailV2Service.getByTypeCache("goodsdetail_jd", platformCode, version));
+                                            jumpDetailV2Service.getByTypeCache("goodsdetail_jd", platformCode, version, acceptData.getSystem()));
                                     view.setParams(params);
                                 } else if (result.getFirstGoods().getGoodsType() == Constant.SOURCE_TYPE_PDD) {
                                     view = new JumpDetailContentVO();
                                     view.setJumpDetail(
-                                            jumpDetailV2Service.getByTypeCache("goodsdetail_pdd", platformCode, version));
+                                            jumpDetailV2Service.getByTypeCache("goodsdetail_pdd", platformCode, version, acceptData.getSystem()));
                                     view.setParams(params);
                                 }
 
@@ -241,7 +252,7 @@
                                 state = 2;
                                 data.put("stateDesc", "閫夋嫨鎼滃埜鎴栬浆閾�");
                                 view = new JumpDetailContentVO();
-                                view.setJumpDetail(jumpDetailV2Service.getByTypeCache("web", platformCode, version));
+                                view.setJumpDetail(jumpDetailV2Service.getByTypeCache("web", platformCode, version, acceptData.getSystem()));
                                 JSONObject params = new JSONObject();
                                 params.put("url", result.getFirstLink());
                                 view.setParams(params);
@@ -282,7 +293,7 @@
                                         TaoBaoGoodsBrief goodsBrief = null;
                                         String specialId = userExtraTaoBaoInfoService.getSpecialIdByUid(uid);
                                         try {
-                                            goodsBrief = TaoKeApiUtil.searchGoodsDetail(goods.getGoodsId(), specialId, null);
+                                            goodsBrief = TaoKeApiUtil.searchGoodsDetail(StringUtil.isNullOrEmpty(goods.getGoodsSign()) ? goods.getGoodsId() : goods.getGoodsSign(), specialId, null);
                                         } catch (TaobaoGoodsDownException e) {
                                             e.printStackTrace();
                                         }
@@ -301,7 +312,7 @@
                                                             acceptData.getPlatform(),
                                                             acceptData.getVersion(), acceptData.getSystem()));
 
-                                            goodsDetailVO = goodsLijinMnager.loadTBMoneyInfo(acceptData.getSystem(), uid, goodsBrief, goodsDetailVO);
+                                            goodsDetailVO = goodsLijinMnager.loadTBMoneyInfo(acceptData.getSystem(), uid, goodsBrief, goodsDetailVO, false);
 
                                             data.put("goods",
                                                     gson.toJson(goodsDetailVO));
@@ -422,6 +433,9 @@
         switch (goods.getGoodsType()) {
             case Constant.SOURCE_TYPE_TAOBAO:
                 type = "goodsdetail";
+                if (!StringUtil.isNullOrEmpty(goods.getGoodsSign())) {
+                    params.put("id", goods.getGoodsSign() + "");
+                }
                 break;
             case Constant.SOURCE_TYPE_JD:
                 type = "goodsdetail_jd";
@@ -435,11 +449,14 @@
             case Constant.SOURCE_TYPE_SUNING:
                 type = "goodsdetail_suning";
                 break;
+            case Constant.SOURCE_TYPE_DY:
+                type = "goodsdetail_dy";
+                break;
 
         }
 
         RecommendJumpInfoVO left = new RecommendJumpInfoVO("鍘荤湅鐪�", jumpDetailV2Service.getByTypeCache(type,
-                Constant.getPlatformCode(acceptData.getPlatform()), Integer.parseInt(acceptData.getVersion())), params);
+                Constant.getPlatformCode(acceptData.getPlatform()), Integer.parseInt(acceptData.getVersion()), acceptData.getSystem()), params);
         data.put("left", gson.toJson(left));
 
         // 鍘荤綉椤�
@@ -453,7 +470,7 @@
             params.put("url", rightValue);
 
             RecommendJumpInfoVO right = new RecommendJumpInfoVO("鏈夋洿楂樿繑鍒╋紵", jumpDetailV2Service.getByTypeCache("web",
-                    Constant.getPlatformCode(acceptData.getPlatform()), Integer.parseInt(acceptData.getVersion())),
+                    Constant.getPlatformCode(acceptData.getPlatform()), Integer.parseInt(acceptData.getVersion()), acceptData.getSystem()),
                     params);
             data.put("right", gson.toJson(right));
         }
@@ -528,9 +545,9 @@
      */
     @RequestMapping(value = "searchGoods")
     public void searchGoods(AcceptData acceptData, Integer goodsType, String key, Integer page, String filter,
-                            Integer order, Long uid, String notifyType, HttpSession session, PrintWriter out) {
+                            Integer order, Long uid, String notifyType, HttpSession session, HttpServletRequest request, PrintWriter out) {
 
-        if (goodsType == null || goodsType < 1 || goodsType > 5) {
+        if (goodsType == null || goodsType < 1 || goodsType > 7) {
             out.print(JsonUtil.loadFalseResult(1, "璇蜂紶閫掓纭钩鍙板弬鏁�"));
             return;
         }
@@ -567,18 +584,17 @@
         executor.execute(new Runnable() {
             @Override
             public void run() {
-                StringBuffer sb = new StringBuffer();
-                String link = "#$$$#";
-                String platform = acceptData.getPlatform();
-                String packages = acceptData.getPackages();
-                String device = acceptData.getDevice();
-                sb.append(platform).append(link).append(packages).append(link).append(device);
-                String bid = StringUtil.Md5(sb.toString());
-
-                // 鍔犲叆鎼滅储鍘嗗彶璁板綍
-                historySearchService.addHistorySearch(searchkey, bid);
+                HistorySearch search = new HistorySearch();
+                search.setDevice(StringUtil.isNullOrEmpty(acceptData.getUtdid()) ? acceptData.getDevice() : acceptData.getUtdid());
+                search.setKey(key);
+                search.setSystem(acceptData.getSystem());
+                search.setUid(uid);
+                search.setGoodsType(goodsType);
+                search.setIpInfo(IPUtil.getRemotIP(request) + ":" + request.getRemotePort());
+                historySearchService.addHistorySearch(search);
             }
         });
+
 
         if (searchkey.startsWith("http://") || searchkey.startsWith("https://")) {
             JSONObject data = new JSONObject();
@@ -627,6 +643,13 @@
             return;
         }
 
+
+        /*-------- 鎶栭煶鍟嗗搧 ------*/
+        if (goodsType.intValue() == Constant.SOURCE_TYPE_DY) {
+            searchDYGoods(acceptData, uid, searchkey, page, filter, order, ap, out);
+            return;
+        }
+
         /*-------- 娣樺疂鍟嗗搧  -------*/
         searchTaoBaoGoods(acceptData, uid, searchkey, page, filter, order, ap, out);
 
@@ -635,7 +658,7 @@
 
     @RequestMapping(value = "searchGoodsTJ")
     public void searchGoodsTJ(AcceptData acceptData, Integer goodsType, String key, Integer page, String filter,
-                              Integer order, Long uid, String notifyType, HttpSession session, PrintWriter out) {
+                              Integer order, Long uid, String notifyType, HttpSession session, HttpServletRequest request, PrintWriter out) {
 
         if (goodsType == null || goodsType < 1 || goodsType > 5) {
             out.print(JsonUtil.loadFalseResult(1, "璇蜂紶閫掓纭钩鍙板弬鏁�"));
@@ -657,15 +680,14 @@
         executor.execute(new Runnable() {
             @Override
             public void run() {
-                StringBuffer sb = new StringBuffer();
-                String link = "#$$$#";
-                String platform = acceptData.getPlatform();
-                String packages = acceptData.getPackages();
-                String device = acceptData.getDevice();
-                sb.append(platform).append(link).append(packages).append(link).append(device);
-                String bid = StringUtil.Md5(sb.toString());
-                // 鍔犲叆鎼滅储鍘嗗彶璁板綍
-                historySearchService.addHistorySearch(searchkey, bid);
+                HistorySearch search = new HistorySearch();
+                search.setDevice(StringUtil.isNullOrEmpty(acceptData.getUtdid()) ? acceptData.getDevice() : acceptData.getUtdid());
+                search.setKey(key);
+                search.setSystem(acceptData.getSystem());
+                search.setUid(uid);
+                search.setGoodsType(goodsType);
+                search.setIpInfo(IPUtil.getRemotIP(request) + ":" + request.getRemotePort());
+                historySearchService.addHistorySearch(search);
             }
         });
 
@@ -710,6 +732,14 @@
             return;
         }
 
+
+        /*-------- 鎶栭煶鍟嗗搧 ------*/
+        if (goodsType.intValue() == Constant.SOURCE_TYPE_DY) {
+            searchDYGoods(acceptData, uid, searchkey, page, filter, order, ap, out);
+            return;
+        }
+
+
         /*-------- 娣樺疂鍟嗗搧  -------*/
         searchTaoBaoGoods(acceptData, uid, searchkey, page, filter, order, ap, out);
 
@@ -729,24 +759,48 @@
      */
     private void searchTaoBaoGoods(AcceptData acceptData, Long uid, String key, Integer page, String filter, Integer order,
                                    AppPageNotification ap, PrintWriter out) {
-        Long goodsId = null;
+        String goodsId = null;
         //鏄惁鍖呭惈娣樺疂閾炬帴/鍙d护
         if (page == 1) {
             List<String> linkList = HttpUtil.getUrlListFromText(key);
-            if ((linkList != null && linkList.size() > 0) || TaoBaoUtil.isHaveNewVersionTaoBaoToken(key)) {
-                try {
-                    TaoKeApiUtil.TokenConvertResult result = TaoKeApiUtil.tokenConvert(key);
-                    if (result != null) {
-                        goodsId = result.getNum_iid();
-                    }
-                } catch (TaoBaoTokenParseException e) {
-                    e.printStackTrace();
+            if (((linkList != null && linkList.size() > 0) || TaoBaoUtil.isHaveNewVersionTaoBaoToken(key))&&false) {
+                // 鏆傛椂涓嶉�氳繃閾炬帴鎼滅储
+                String id = DaTaoKeApiUtil.parseGoodsIdFromToken(key);
+                if (id != null) {
+                    goodsId = id;
                 }
                 if (goodsId == null) {
-                    Long id = DaTaoKeApiUtil.parseTaoBaoToken(key);
-                    if (id != null) {
-                        goodsId = id;
+                    try {
+                        TaoKeApiUtil.TokenConvertResult result = TaoKeApiUtil.tokenConvert(key);
+                        if (result != null) {
+                            goodsId = result.getNum_iid();
+                        }
+                    } catch (TaoBaoTokenParseException e) {
+                        e.printStackTrace();
                     }
+
+
+                }
+                if (goodsId == null) {
+                    //瑙f瀽閾炬帴
+//                    if (linkList != null && linkList.size() > 0) {
+//                        String tempGoodsId = clipboardAnalysisManager.parseTBAuctionIdFromLink(linkList.get(0));
+//                        if (!StringUtil.isNullOrEmpty(tempGoodsId)) {
+//                            goodsId = tempGoodsId;
+//                        }
+//                    }
+                }
+            }
+
+            //鍟嗗搧ID涓虹┖锛屼笖鏄彛浠ょ殑褰㈠紡灏变互鏈姞鍏ユ窐瀹濊仈鐩熺殑鍟嗗搧澶勭悊
+            if (goodsId == null && (linkList != null && linkList.size() > 0) && TaoBaoUtil.isHaveNewVersionTaoBaoToken(key)) {
+                String title = TaoBaoUtil.getGoodsTitleFromTokenText(key);
+                if (StringUtil.isNullOrEmpty(title)) {
+                    String[] ks = key.trim().split("  ");
+                    if (ks.length > 1)
+                        key = ks[1].trim();
+                } else {
+                    key = title;
                 }
             }
         }
@@ -817,9 +871,39 @@
                 }
 
                 // 娣樺疂api鎼滅储鍟嗗搧
+                //TODO 娴嬭瘯娉ㄩ噴
                 TaoBaoSearchResult result = taoBaoGoodsCacheUtil.getSearchResult(sf); // TaoBaoUtil.search(sf, specialId, null);
                 if (result == null) {
                     result = TaoBaoUtil.search(sf, specialId, null);
+                    if (result != null && result.getTaoBaoGoodsBriefs() != null && result.getTaoBaoGoodsBriefs().size() > 1) {
+                        for (TaoBaoGoodsBrief g : result.getTaoBaoGoodsBriefs()) {
+                            if (StringUtil.isNullOrEmpty(g.getAuctionId())) {
+                                logger.error("鎼滅储缁撴灉鏈夌┖ID鐨勬儏鍐�  鍏抽敭瀛梴}", key);
+                            }
+                        }
+                    }
+
+                    //濡傛灉鏄崟涓晢鍝侊紝涓旈噷闈㈢殑鍟嗗搧ID涓虹┖锛屽氨闇�瑕佸�熷姪澶ф窐瀹㈡悳绱�
+                    if (result.getTaoBaoGoodsBriefs() != null && result.getTaoBaoGoodsBriefs().size() == 1 && StringUtil.isNullOrEmpty(result.getTaoBaoGoodsBriefs().get(0).getAuctionId())) {
+                        //鏈変竴涓晢鍝佷笖閲岄潰鐨勫晢鍝両D涓虹┖鐨勬儏鍐�
+                        JSONArray darray = DaTaoKeApiUtil.tbSearch(key);
+                        if (darray != null && darray.size() > 0) {
+                            String auctionId = darray.optJSONObject(0).optString("item_id");
+                            result.getTaoBaoGoodsBriefs().set(0, TaoKeApiUtil.searchGoodsDetail(auctionId));
+                        }else{
+                            // 澶ф窐瀹㈡棤娉曟悳绱㈠埌锛屽氨灏嗘渶鍚庝竴涓瓧鍘绘帀鐒跺悗鍐嶆悳绱�
+                            String originText = sf.getKey();
+                            sf.setKey(originText.substring(0,originText.length()-1));
+                            result = TaoBaoUtil.search(sf, specialId, null);
+//                            if(result.getTaoBaoGoodsBriefs() != null)
+//                                for(TaoBaoGoodsBrief tb: result.getTaoBaoGoodsBriefs()){
+//                                    if(originText.equalsIgnoreCase(tb.getTitle())){
+//
+//                                        break;
+//                                    }
+//                                }
+                        }
+                    }
                     taoBaoGoodsCacheUtil.saveSearchResult(sf, result);
                 }
                 TaoBaoSearchResult finalResult = result;
@@ -864,7 +948,7 @@
         GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
                 acceptData.getVersion(), acceptData.getSystem());
 
-        List<GoodsDetailVO> list = goodsLijinMnager.loadTBMoneyInfo(acceptData.getSystem(), uid, goodsBriefList, paramsDTO);
+        List<GoodsDetailVO> list = goodsLijinMnager.loadTBMoneyInfo(acceptData.getSystem(), uid, goodsBriefList, paramsDTO, false);
 
         Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                 .excludeFieldsWithoutExposeAnnotation().create();
@@ -947,7 +1031,7 @@
 
         boolean hasCoupon = false;
         if (goodsId != null) {
-            JDGoods goods = JDApiUtil.getGoodsDetail(Long.parseLong(goodsId));
+            JDGoods goods = JDApiUtil.getGoodsDetail(goodsId);
             if (goods != null) {
                 count = 1;
                 goodsList.add(goods);
@@ -1156,13 +1240,24 @@
 
         if (goodsId != null) {
             try {
-                PDDGoodsDetail pddGoodsDetail = PinDuoDuoApiUtil.getGoodsDetail(Long.parseLong(goodsId), PinDuoDuoApiUtil.PID_DEFAULT, customParams);
+                PDDGoodsDetail pddGoodsDetail = PinDuoDuoApiUtil.getGoodsDetail(goodsId, PinDuoDuoApiUtil.PID_DEFAULT, customParams);
                 if (pddGoodsDetail != null) {
                     count = 1;
                     goodsList.add(pddGoodsDetail);
                 }
             } catch (PDDApiException e) {
                 e.printStackTrace();
+                if (e.getCode() == PDDApiException.CODE_NOT_AUTH) {
+                    try {
+                        PDDGoodsDetail pddGoodsDetail = PinDuoDuoApiUtil.getGoodsDetail(goodsId, PinDuoDuoApiUtil.PID_DEFAULT, Constant.PDD_SEARCH_CUSTOMER_PARAMS);
+                        if (pddGoodsDetail != null) {
+                            count = 1;
+                            goodsList.add(pddGoodsDetail);
+                        }
+                    } catch (Exception e1) {
+
+                    }
+                }
             }
         } else {
             PDDSearchFilter pddfilter = new PDDSearchFilter();
@@ -1244,7 +1339,7 @@
     }
 
     /**
-     * 鎼滅储鍞搧浼氬晢鍝�
+     * 鎼滅储鎶栭煶鍟嗗搧
      *
      * @param acceptData
      * @param key
@@ -1256,6 +1351,107 @@
      * @Title: searchVIPGoods
      * @Description:
      */
+    private void searchDYGoods(AcceptData acceptData, Long uid, String key, Integer page, String filter, Integer order,
+                               AppPageNotification ap, PrintWriter out) {
+        String goodsId = null;
+        if (page == 1) {
+            List<String> linkList = HttpUtil.getUrlListFromText(key);
+            if (linkList != null && linkList.size() > 0) {
+                String productId = DYUtil.parseProdectIdFromLink(linkList.get(0));
+                if (!StringUtil.isNullOrEmpty(productId)) {
+                    goodsId = productId;
+                }
+            }
+        }
+
+
+        long count = 0;
+        List<BaseGoodsInfo> goodsList = new ArrayList<>();
+        if (goodsId != null) {
+            DYGoodsDetail goodsInfo = CSJCPSApiUtil.goodsDetail(Long.parseLong(goodsId));
+            if (goodsInfo != null) {
+                goodsList.add(goodsInfo);
+                count = 1;
+            }
+        } else {
+            DYGoodsSearchFilter searchFilter = new DYGoodsSearchFilter();
+            searchFilter.setTitle(key);
+            searchFilter.setPage(page);
+            searchFilter.setPageSize(Constant.PAGE_SIZE);
+
+            if (order != null) {
+                int sort = order.intValue();
+                switch (sort) {
+                    case 1: // 閿�閲� desc
+                        searchFilter.setSearch_type(1);
+                        searchFilter.setOrder_type(1);
+                        break;
+                    case 2: // 浠锋牸鈥攄esc
+                        searchFilter.setSearch_type(2);
+                        searchFilter.setOrder_type(1);
+                        break;
+                    case 3: // 浠锋牸鈥攁sc
+                        searchFilter.setSearch_type(2);
+                        searchFilter.setOrder_type(0);
+                        break;
+                    case 4: // 杩斿埄姣�
+                        searchFilter.setSearch_type(4);
+                        searchFilter.setOrder_type(1);
+                        break;
+                    default: // 缁煎悎鎺掑簭
+                        searchFilter.setSearch_type(0);
+                        searchFilter.setOrder_type(0);
+                        break;
+                }
+            }
+
+            if (!StringUtil.isNullOrEmpty(filter)) {
+                JSONObject jsonfilter = JSONObject.fromObject(filter);
+                String minPrice = jsonfilter.optString("minPrice");
+                if (!StringUtil.isNullOrEmpty(minPrice)) {
+                    searchFilter.setPrice_min(new BigDecimal(minPrice).min(new BigDecimal(100)).intValue());
+                }
+
+                String maxPrice = jsonfilter.optString("maxPrice");
+                if (!StringUtil.isNullOrEmpty(maxPrice)) {
+                    searchFilter.setPrice_max(new BigDecimal(maxPrice).min(new BigDecimal(100)).intValue());
+                }
+            }
+
+
+            ListResult result = CSJCPSApiUtil.searchGoods(searchFilter);
+            if (result != null) {
+                count = result.getCount();
+                List<Object> tempList = result.getDataList();
+                if (tempList != null) {
+                    for (Object o : tempList) {
+                        goodsList.add((DYGoods) o);
+                    }
+                }
+
+            }
+        }
+
+        JSONObject data = new JSONObject();
+        JSONArray array = new JSONArray();
+
+        if (goodsList != null && goodsList.size() > 0) {
+            Gson gson = JsonUtil.getApiCommonGson();
+            GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
+                    acceptData.getVersion(), acceptData.getSystem());
+
+            List<GoodsDetailVO> voList = goodsLijinMnager.loadOtherMoneyInfo(acceptData.getSystem(), uid, goodsList, paramsDTO);
+            for (GoodsDetailVO goodsDetailVO : voList) {
+                array.add(gson.toJson(goodsDetailVO));
+            }
+        }
+
+        data.put("result", array);
+        data.put("count", count);
+        out.print(JsonUtil.loadTrueResult(buildSearchResult(data, ap)));
+    }
+
+
     private void searchVIPGoods(AcceptData acceptData, Long uid, String key, Integer page, String filter, Integer order,
                                 AppPageNotification ap, PrintWriter out) {
         String goodsId = null;

--
Gitblit v1.8.0