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