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 | 1688 +++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 1,084 insertions(+), 604 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 01b6579..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,25 +1,9 @@ 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.service.inter.pdd.PDDAuthService; -import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService; -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.JsonUtil; - import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.yeshi.fanli.dto.ConfigParamsDTO; +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; import com.yeshi.fanli.dto.jd.JDSearchResult; @@ -32,37 +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.BusinessSystemService; import com.yeshi.fanli.service.inter.config.ConfigService; -import com.yeshi.fanli.service.inter.config.SuperHotSearchService; import com.yeshi.fanli.service.inter.help.AppPageNotificationService; -import com.yeshi.fanli.service.inter.lable.QualityGoodsService; -import com.yeshi.fanli.service.inter.lable.TaoKeGoodsService; import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService; -import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; +import com.yeshi.fanli.service.inter.pdd.PDDAuthService; import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService; -import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService; -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.fanli.service.manger.goods.jd.JDGoodsLinkParseManager; -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; @@ -72,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; @@ -88,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; @@ -144,6 +158,12 @@ @Resource private PDDAuthService pddAuthService; + @Resource + private GoodsLijinMnager goodsLijinMnager; + + @Resource + private PIDManager pidManager; + /** * 绮樿创鏉夸俊鎭帹鑽� @@ -162,211 +182,245 @@ // 鍘婚櫎鍓嶅悗绌烘牸 text = text.trim(); String originalText = text; + if (acceptData.getSystem() == SystemEnum.yhqjx || acceptData.getSystem() == SystemEnum.hsb) { + Integer sourceType = clipboardAnalysisManager.tejiaParseSourceType(text); + JSONObject root = new JSONObject(); + root.put("type", 2); + JSONObject data = new JSONObject(); + data.put("title", text); + data.put("sourceType", sourceType); + root.put("data", data); + out.print(JsonUtil.loadTrueResult(root)); + return; + } else { + JSONObject data = new JSONObject(); + clipboardAnalysisManager.parse(acceptData.getPlatform(), acceptData.getVersion(), originalText, uid, + new IClipboardAnalysisResult() { - JSONObject data = new JSONObject(); + @Override + public void onResult(GoodsDocParseResultVO result) { + if (uid == null || (acceptData.getSystem() == SystemEnum.yhqjx || acceptData.getSystem() == SystemEnum.hsb)) { + out.print(JsonUtil.loadFalseResult("鏃犳帹鑽�")); + return; + } - clipboardAnalysisManager.parse(acceptData.getPlatform(), acceptData.getVersion(), originalText, uid, - new IClipboardAnalysisResult() { + JSONObject root = new JSONObject(); + root.put("type", 20); + JSONObject data = new JSONObject(); + data.put("text", originalText); + // + int platformCode = Constant.getPlatformCode(acceptData.getPlatform()); + int version = Integer.parseInt(acceptData.getVersion()); + JumpDetailContentVO convert = new JumpDetailContentVO(); + 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); + convert.setParams(convertParams); - @Override - public void onResult(GoodsDocParseResultVO result) { - if (uid == null) { - out.print(JsonUtil.loadFalseResult("鏃犳帹鑽�")); + JumpDetailContentVO view = null; + JumpDetailContentVO guessLike = null; + + Gson gson = JsonUtil.getApiCommonGson(); + data.put("title", "鏅鸿兘鎼滅储"); + + int state = 0; + if (result.getFirstGoods() != null && result.getFirstGoods().getGoodsId() != null) { + state = 2; + data.put("stateDesc", "閫夋嫨鎼滃埜鎴栬浆閾�"); + JSONObject params = new JSONObject(); + params.put("id", result.getFirstGoods().getGoodsId() + ""); + params.put("from", "杞摼"); + if (result.getFirstGoods().getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) { + view = new JumpDetailContentVO(); + view.setJumpDetail( + 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, 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, acceptData.getSystem())); + view.setParams(params); + } + + } else if (!StringUtil.isNullOrEmpty(result.getFirstLink())) { + state = 2; + data.put("stateDesc", "閫夋嫨鎼滃埜鎴栬浆閾�"); + view = new JumpDetailContentVO(); + view.setJumpDetail(jumpDetailV2Service.getByTypeCache("web", platformCode, version, acceptData.getSystem())); + JSONObject params = new JSONObject(); + params.put("url", result.getFirstLink()); + view.setParams(params); + } else { + data.put("stateDesc", "鍘昏瘯璇曡浆閾�"); + state = 1; + } + data.put("state", state); + if (convert != null) + data.put("convert", gson.toJson(convert)); + if (view != null) + data.put("view", gson.toJson(view)); + + if (guessLike != null) + data.put("guessLike", gson.toJson(guessLike)); + + root.put("data", data); + out.print(JsonUtil.loadTrueResult(root)); return; } - JSONObject root = new JSONObject(); - root.put("type", 20); - JSONObject data = new JSONObject(); - data.put("text", originalText); - // - int platformCode = Constant.getPlatformCode(acceptData.getPlatform()); - int version = Integer.parseInt(acceptData.getVersion()); - JumpDetailContentVO convert = new JumpDetailContentVO(); - convert.setJumpDetail(jumpDetailV2Service.getByTypeCache("web", platformCode, version)); - JSONObject convertParams = new JSONObject(); - convertParams.put("url", configService.getValue(ConfigKeyEnum.convertDocWebLink.getKey(), acceptData.getSystem())); - convertParams.put("clipboard", false); - convert.setParams(convertParams); - - JumpDetailContentVO view = null; - JumpDetailContentVO guessLike = null; - - Gson gson = JsonUtil.getApiCommonGson(); - data.put("title", "鏅鸿兘鎼滅储"); - - int state = 0; - if (result.getFirstGoods() != null && result.getFirstGoods().getGoodsId() != null) { - state = 2; - data.put("stateDesc", "閫夋嫨鎼滃埜鎴栬浆閾�"); - JSONObject params = new JSONObject(); - params.put("id", result.getFirstGoods().getGoodsId() + ""); - params.put("from", "杞摼"); - if (result.getFirstGoods().getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) { - view = new JumpDetailContentVO(); - view.setJumpDetail( - jumpDetailV2Service.getByTypeCache("goodsdetail", platformCode, version)); - view.setParams(params); - } else if (result.getFirstGoods().getGoodsType() == Constant.SOURCE_TYPE_JD) { - view = new JumpDetailContentVO(); - view.setJumpDetail( - jumpDetailV2Service.getByTypeCache("goodsdetail_jd", platformCode, version)); - view.setParams(params); - } else if (result.getFirstGoods().getGoodsType() == Constant.SOURCE_TYPE_PDD) { - view = new JumpDetailContentVO(); - view.setJumpDetail( - jumpDetailV2Service.getByTypeCache("goodsdetail_pdd", platformCode, version)); - view.setParams(params); - } - - } else if (!StringUtil.isNullOrEmpty(result.getFirstLink())) { - state = 2; - data.put("stateDesc", "閫夋嫨鎼滃埜鎴栬浆閾�"); - view = new JumpDetailContentVO(); - view.setJumpDetail(jumpDetailV2Service.getByTypeCache("web", platformCode, version)); - JSONObject params = new JSONObject(); - params.put("url", result.getFirstLink()); - view.setParams(params); - } else { - data.put("stateDesc", "鍘昏瘯璇曡浆閾�"); - state = 1; + @Override + public void onResult(String result) { + JSONObject root = new JSONObject(); + root.put("type", 2); + JSONObject data = new JSONObject(); + data.put("title", result); + root.put("data", data); + out.print(JsonUtil.loadTrueResult(root)); + return; } - data.put("state", state); - if (convert != null) - data.put("convert", gson.toJson(convert)); - if (view != null) - data.put("view", gson.toJson(view)); - if (guessLike != null) - data.put("guessLike", gson.toJson(guessLike)); + @Override + public void onResult(CommonGoods goods) { + if (goods.getGoodsId() != null) { + if (VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) {// 1.6.5鐗堟湰鍚庤繑鍥炲晢鍝佽鎯� + if (goods.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) { + TaoBaoGoodsBrief goodsBrief = null; + String specialId = userExtraTaoBaoInfoService.getSpecialIdByUid(uid); + try { + goodsBrief = TaoKeApiUtil.searchGoodsDetail(StringUtil.isNullOrEmpty(goods.getGoodsSign()) ? goods.getGoodsId() : goods.getGoodsSign(), specialId, null); + } catch (TaobaoGoodsDownException e) { + e.printStackTrace(); + } - root.put("data", data); - out.print(JsonUtil.loadTrueResult(root)); - return; - } + if (goodsBrief != null) { + goods = CommonGoodsFactory.create(goodsBrief); + Gson gson = JsonUtil + .getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) + .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd") + .create(); + data.put("type", 3); - @Override - public void onResult(String result) { - JSONObject root = new JSONObject(); - root.put("type", 2); - JSONObject data = new JSONObject(); - data.put("title", result); - root.put("data", data); - out.print(JsonUtil.loadTrueResult(root)); - return; - } - @Override - public void onResult(CommonGoods goods) { - if (goods.getGoodsId() != null) { - if (VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) {// 1.6.5鐗堟湰鍚庤繑鍥炲晢鍝佽鎯� - if (goods.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) { - TaoBaoGoodsBrief goodsBrief = null; - String specialId = userExtraTaoBaoInfoService.getSpecialIdByUid(uid); - try { - goodsBrief = TaoKeApiUtil.searchGoodsDetail(goods.getGoodsId(), specialId, null); - } catch (TaobaoGoodsDownException e) { - e.printStackTrace(); - } + GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertCommonGoods(goods, + orderHongBaoMoneyComputeService.getShowComputeRate( + acceptData.getPlatform(), + acceptData.getVersion(), acceptData.getSystem())); - if (goodsBrief != null) { - goods = CommonGoodsFactory.create(goodsBrief); - Gson gson = JsonUtil - .getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) + goodsDetailVO = goodsLijinMnager.loadTBMoneyInfo(acceptData.getSystem(), uid, goodsBrief, goodsDetailVO, false); + + data.put("goods", + gson.toJson(goodsDetailVO)); + // 璺宠浆璇︽儏 + if (VersionUtil.greaterThan_2_1_3(acceptData.getPlatform(), + acceptData.getVersion())) { + buildGoodsClick(data, goods, acceptData, gson); + } + + out.print(JsonUtil.loadTrueResult(data)); + return; + } + } else { + Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd") .create(); data.put("type", 3); data.put("goods", gson.toJson( - GoodsDetailVOFactory.convertCommonGoods(goods, - orderHongBaoMoneyComputeService.getShowComputeRate( - acceptData.getPlatform(), - acceptData.getVersion(), acceptData.getSystem())))); - // 璺宠浆璇︽儏 - if (VersionUtil.greaterThan_2_1_3(acceptData.getPlatform(), - acceptData.getVersion())) { - buildGoodsClick(data, goods, acceptData, gson); - } - + goodsLijinMnager.loadOtherMoneyInfo(acceptData.getSystem(), uid, goods, + GoodsDetailVOFactory.convertCommonGoods(goods, + orderHongBaoMoneyComputeService.getShowComputeRate( + acceptData.getPlatform(), + acceptData.getVersion(), acceptData.getSystem()))))); + // if + // (VersionUtil.greaterThan_2_1_2(acceptData.getPlatform(), + // acceptData.getVersion())) { + // buildGoodsClick(data, goods, acceptData, + // gson); + // } out.print(JsonUtil.loadTrueResult(data)); return; } } else { - Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) - .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd") - .create(); - data.put("type", 3); - data.put("goods", - gson.toJson( - GoodsDetailVOFactory.convertCommonGoods(goods, - orderHongBaoMoneyComputeService.getShowComputeRate( - acceptData.getPlatform(), - acceptData.getVersion(), acceptData.getSystem())))); - // if - // (VersionUtil.greaterThan_2_1_2(acceptData.getPlatform(), - // acceptData.getVersion())) { - // buildGoodsClick(data, goods, acceptData, - // gson); - // } - out.print(JsonUtil.loadTrueResult(data)); + // 浣庝簬1.6.5鐗堟湰 + JSONObject taoBaoGoodsJSON = new JSONObject(); + taoBaoGoodsJSON.put("title", goods.getTitle()); + taoBaoGoodsJSON.put("zkPrice", goods.getPrice() + ""); + taoBaoGoodsJSON.put("id", goods.getGoodsId()); + taoBaoGoodsJSON.put("goodsType", goods.getGoodsType()); + if (goods.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) { + taoBaoGoodsJSON.put("url", + "http://item.taobao.com/item.htm?id=" + goods.getGoodsId()); + } else if (goods.getGoodsType() == Constant.SOURCE_TYPE_JD) { + taoBaoGoodsJSON.put("url", + String.format("https://item.jd.com/%s.html", goods.getGoodsId() + "")); + } else if (goods.getGoodsType() == Constant.SOURCE_TYPE_PDD) { + taoBaoGoodsJSON.put("url", + "http://yangkeduo.com/goods.html?goods_id=" + goods.getGoodsId()); + } + data.put("goods", taoBaoGoodsJSON); + List<String> picList = new ArrayList<>(); + picList.add(goods.getPicture()); + data.put("imgs", picList); + JSONObject root = new JSONObject(); + root.put("type", 1); + root.put("data", data); + out.print(JsonUtil.loadTrueResult(root)); return; } - } else { - // 浣庝簬1.6.5鐗堟湰 - JSONObject taoBaoGoodsJSON = new JSONObject(); - taoBaoGoodsJSON.put("title", goods.getTitle()); - taoBaoGoodsJSON.put("zkPrice", goods.getPrice() + ""); - taoBaoGoodsJSON.put("id", goods.getGoodsId()); - taoBaoGoodsJSON.put("goodsType", goods.getGoodsType()); - if (goods.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) { - taoBaoGoodsJSON.put("url", - "http://item.taobao.com/item.htm?id=" + goods.getGoodsId()); - } else if (goods.getGoodsType() == Constant.SOURCE_TYPE_JD) { - taoBaoGoodsJSON.put("url", - String.format("https://item.jd.com/%s.html", goods.getGoodsId() + "")); - } else if (goods.getGoodsType() == Constant.SOURCE_TYPE_PDD) { - taoBaoGoodsJSON.put("url", - "http://yangkeduo.com/goods.html?goods_id=" + goods.getGoodsId()); - } - data.put("goods", taoBaoGoodsJSON); - List<String> picList = new ArrayList<>(); - picList.add(goods.getPicture()); - data.put("imgs", picList); - JSONObject root = new JSONObject(); - root.put("type", 1); - root.put("data", data); - out.print(JsonUtil.loadTrueResult(root)); - return; } + + JSONObject goodsJSON = new JSONObject(); + goodsJSON.put("title", goods.getTitle()); + goodsJSON.put("pictUrl", goods.getPicture()); + + data.put("type", 4); + data.put("desc", "璇ュ晢鍝佹棤鎺ㄥ箍淇℃伅"); + data.put("goods", goodsJSON); + out.print(JsonUtil.loadTrueResult(data)); + return; } - JSONObject goodsJSON = new JSONObject(); - goodsJSON.put("title", goods.getTitle()); - goodsJSON.put("pictUrl", goods.getPicture()); + @Override + public void onResult(TokenVO tokenVO) { + out.print(JsonUtil.loadTrueResult(tokenVO)); + return; + } - data.put("type", 4); - data.put("desc", "璇ュ晢鍝佹棤鎺ㄥ箍淇℃伅"); - data.put("goods", goodsJSON); - out.print(JsonUtil.loadTrueResult(data)); - return; - } + @Override + public void none() { + out.print(JsonUtil.loadFalseResult("鏃犳帹鑽�")); + } - @Override - public void onResult(TokenVO tokenVO) { - out.print(JsonUtil.loadTrueResult(tokenVO)); - return; - } + @Override + public void needLogin(String msg) { + out.print(JsonUtil.loadFalseResult(1001, msg)); + } + }); + } + } - @Override - public void none() { - out.print(JsonUtil.loadFalseResult("鏃犳帹鑽�")); - } - - @Override - public void needLogin(String msg) { - out.print(JsonUtil.loadFalseResult(1001, msg)); - } - }); + @RequestMapping(value = "getRecommendInfoTJ", method = RequestMethod.POST) + public void getRecommendInfoTJ(AcceptData acceptData, String text, Long uid, PrintWriter out) { + if (StringUtil.isNullOrEmpty(text)) { + out.print(JsonUtil.loadFalseResult("鍊间负绌�")); + return; + } + // 鍘婚櫎鍓嶅悗绌烘牸 + text = text.trim(); + Integer sourceType = clipboardAnalysisManager.tejiaParseSourceType(text); + JSONObject root = new JSONObject(); + root.put("type", 2); + JSONObject data = new JSONObject(); + data.put("title", text); + data.put("sourceType", sourceType); + root.put("data", data); + out.print(JsonUtil.loadTrueResult(root)); } private void buildGoodsClick(JSONObject data, CommonGoods goods, AcceptData acceptData, Gson gson) { @@ -379,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"; @@ -392,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)); // 鍘荤綉椤� @@ -410,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)); } @@ -485,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; } @@ -524,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(); @@ -562,7 +621,7 @@ /*--------- 浜笢鍟嗗搧 -------*/ if (goodsType.intValue() == Constant.SOURCE_TYPE_JD) { - searchJDGoods(acceptData, searchkey, page, filter, order, ap, out); + searchJDGoods(acceptData, uid, searchkey, page, filter, order, ap, out); return; } @@ -574,15 +633,112 @@ /*-------- 鍞搧浼氬晢鍝� ------*/ if (goodsType.intValue() == Constant.SOURCE_TYPE_VIP) { - searchVIPGoods(acceptData, searchkey, page, filter, order, ap, out); + searchVIPGoods(acceptData, uid, searchkey, page, filter, order, ap, out); return; } /*-------- 鑻忓畞鍟嗗搧 ------*/ if (goodsType.intValue() == Constant.SOURCE_TYPE_SUNING) { - searchSuningGoods(acceptData, searchkey, page, filter, order, ap, out); + searchSuningGoods(acceptData, uid, searchkey, page, filter, order, ap, out); 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); + + } + + + @RequestMapping(value = "searchGoodsTJ") + public void searchGoodsTJ(AcceptData acceptData, Integer goodsType, String key, Integer page, String filter, + Integer order, Long uid, String notifyType, HttpSession session, HttpServletRequest request, PrintWriter out) { + + if (goodsType == null || goodsType < 1 || goodsType > 5) { + out.print(JsonUtil.loadFalseResult(1, "璇蜂紶閫掓纭钩鍙板弬鏁�")); + return; + } + + if (page == null || page < 1) { + out.print(JsonUtil.loadFalseResult(1, "椤电爜涓嶈兘灏忎簬1")); + return; + } + + if (StringUtil.isNullOrEmpty(key)) { + out.print(JsonUtil.loadFalseResult(1, "璇疯緭鍏ユ悳绱㈠唴瀹�")); + return; + } + final String searchkey = key.trim(); + + + executor.execute(new Runnable() { + @Override + public void run() { + 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); + } + }); + + + AppPageNotification ap = null; + if (page == 1) { + ap = appPageNotificationService.getValidNotificationByTypeCache(notifyType, acceptData.getPlatform(), + Integer.parseInt(acceptData.getVersion()), acceptData.getSystem()); + // 娌℃湁閫氱煡 + if (ap == null || !ap.getShow()) { + ap = null; + } + + // else {// 鏈夐�氱煡 + // Gson gson = new + // GsonBuilder().excludeFieldsWithoutExposeAnnotation().create(); + // out.print(JsonUtil.loadTrueResult(gson.toJson(ap))); + // } + } + + /*--------- 浜笢鍟嗗搧 -------*/ + if (goodsType.intValue() == Constant.SOURCE_TYPE_JD) { + searchJDGoods(acceptData, uid, searchkey, page, filter, order, ap, out); + return; + } + + /*-------- 鎷煎澶氬晢鍝� -------*/ + if (goodsType.intValue() == Constant.SOURCE_TYPE_PDD) { + searchPDDGoods(acceptData, uid, searchkey, page, filter, order, ap, out); + return; + } + + /*-------- 鍞搧浼氬晢鍝� ------*/ + if (goodsType.intValue() == Constant.SOURCE_TYPE_VIP) { + searchVIPGoods(acceptData, uid, searchkey, page, filter, order, ap, out); + return; + } + + /*-------- 鑻忓畞鍟嗗搧 ------*/ + if (goodsType.intValue() == Constant.SOURCE_TYPE_SUNING) { + searchSuningGoods(acceptData, uid, searchkey, page, filter, order, ap, out); + 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); @@ -603,108 +759,203 @@ */ private void searchTaoBaoGoods(AcceptData acceptData, Long uid, String key, Integer page, String filter, Integer order, AppPageNotification ap, PrintWriter out) { - SearchFilter sf = new SearchFilter(); - sf.setKey(SearchFilterUtil.filterSearchContent(key)); - sf.setPage(page); - sf.setPageSize(Constant.PAGE_SIZE); - - if (order != null) { - if (order == 1) { // 閿�閲忛珮鍒颁綆 - sf.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW); - } else if (order == 2) { // 浠锋牸楂樺埌浣� - sf.setSort(TaoBaoUtil.SORT_PRICE_HIGH_TO_LOW); - } else if (order == 3) { // 浠锋牸浣庡埌楂� - sf.setSort(TaoBaoUtil.SORT_PRICE_LOW_TO_HIGH); - } else if (order == 4) { // 杩斿埄姣旈珮鍒颁綆 - sf.setSort(TaoBaoUtil.SORT_TKRATE_HIGH_TO_LOW); - } - } - - if (!StringUtil.isNullOrEmpty(filter)) { - JSONObject jsonfilter = JSONObject.fromObject(filter); - Boolean coupon = jsonfilter.optBoolean("coupon"); - if (coupon != null && coupon) { - sf.setQuan(1); // 鏈夊埜 - } - - Boolean tmall = jsonfilter.optBoolean("tmall"); - if (tmall != null && tmall) { - sf.setTmall(true); // 澶╃尗 - } - - String minPrice = jsonfilter.optString("minPrice"); - if (!StringUtil.isNullOrEmpty(minPrice)) { - sf.setStartPrice(new BigDecimal(minPrice)); - } - - String maxPrice = jsonfilter.optString("maxPrice"); - if (!StringUtil.isNullOrEmpty(maxPrice)) { - sf.setEndPrice(new BigDecimal(maxPrice)); - } - } - - // 鎼滅储澶ф窐瀹� - List<DaTaoKeDetailV2> daTaoKeList = null; + String goodsId = null; + //鏄惁鍖呭惈娣樺疂閾炬帴/鍙d护 if (page == 1) { - daTaoKeList = daTaoKeGoodsDetailV2Service.listByDtitle(key); - } - - String specialId = null; - if (uid != null) { - specialId = userExtraTaoBaoInfoService.getSpecialIdByUid(uid); - } - - // 娣樺疂api鎼滅储鍟嗗搧 - TaoBaoSearchResult result = taoBaoGoodsCacheUtil.getSearchResult(sf); // TaoBaoUtil.search(sf, specialId, null); - if (result == null) { - result = TaoBaoUtil.search(sf, specialId, null); - taoBaoGoodsCacheUtil.saveSearchResult(sf, result); - } - TaoBaoSearchResult finalResult = result; - // 鎼滅储缁撴灉缂撳瓨鍒皉edis - if (result != null && result.getTaoBaoGoodsBriefs() != null && result.getTaoBaoGoodsBriefs().size() > 0) { - ThreadUtil.run(new Runnable() { - @Override - public void run() { - // 鏇存柊鍒扮珐瀛� - for (TaoBaoGoodsBrief goods : finalResult.getTaoBaoGoodsBriefs()) - taoBaoGoodsCacheUtil.saveCommonTaoBaoGoodsInfo(goods); + List<String> linkList = HttpUtil.getUrlListFromText(key); + if (((linkList != null && linkList.size() > 0) || TaoBaoUtil.isHaveNewVersionTaoBaoToken(key))&&false) { + // 鏆傛椂涓嶉�氳繃閾炬帴鎼滅储 + String id = DaTaoKeApiUtil.parseGoodsIdFromToken(key); + if (id != null) { + goodsId = id; } - }); - } + if (goodsId == null) { + try { + TaoKeApiUtil.TokenConvertResult result = TaoKeApiUtil.tokenConvert(key); + if (result != null) { + goodsId = result.getNum_iid(); + } + } catch (TaoBaoTokenParseException e) { + e.printStackTrace(); + } - List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = null; - if (result != null) { - taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs(); - } - if (taoBaoGoodsBriefs == null) { - taoBaoGoodsBriefs = new ArrayList<>(); - } - if (daTaoKeList != null && daTaoKeList.size() > 0) { - try { - Collections.reverse(daTaoKeList); - for (DaTaoKeDetailV2 detail : daTaoKeList) { - taoBaoGoodsBriefs.add(0, TaoBaoUtil.convert(detail)); } - } catch (Exception e) { + 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; + } } } - List<GoodsDetailVO> list = new ArrayList<GoodsDetailVO>(); - ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), + + List<TaoBaoGoodsBrief> goodsBriefList = new ArrayList<>(); + int count = 0; + try { + if (goodsId != null) { + try { + TaoBaoGoodsBrief goods = TaoKeApiUtil.searchGoodsDetail(goodsId); + goods.setCreatetime(null); + goodsBriefList.add(goods); + count = 1; + } catch (TaobaoGoodsDownException e) { + e.printStackTrace(); + } + } else { + SearchFilter sf = new SearchFilter(); + sf.setKey(SearchFilterUtil.filterSearchContent(key)); + sf.setPage(page); + sf.setPageSize(Constant.PAGE_SIZE); + + if (order != null) { + if (order == 1) { // 閿�閲忛珮鍒颁綆 + sf.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW); + } else if (order == 2) { // 浠锋牸楂樺埌浣� + sf.setSort(TaoBaoUtil.SORT_PRICE_HIGH_TO_LOW); + } else if (order == 3) { // 浠锋牸浣庡埌楂� + sf.setSort(TaoBaoUtil.SORT_PRICE_LOW_TO_HIGH); + } else if (order == 4) { // 杩斿埄姣旈珮鍒颁綆 + sf.setSort(TaoBaoUtil.SORT_TKRATE_HIGH_TO_LOW); + } + } + + if (!StringUtil.isNullOrEmpty(filter)) { + JSONObject jsonfilter = JSONObject.fromObject(filter); + Boolean coupon = jsonfilter.optBoolean("coupon"); + if (coupon != null && coupon) { + sf.setQuan(1); // 鏈夊埜 + } + + Boolean tmall = jsonfilter.optBoolean("tmall"); + if (tmall != null && tmall) { + sf.setTmall(true); // 澶╃尗 + } + + String minPrice = jsonfilter.optString("minPrice"); + if (!StringUtil.isNullOrEmpty(minPrice)) { + sf.setStartPrice(new BigDecimal(minPrice)); + } + + String maxPrice = jsonfilter.optString("maxPrice"); + if (!StringUtil.isNullOrEmpty(maxPrice)) { + sf.setEndPrice(new BigDecimal(maxPrice)); + } + } + + // 鎼滅储澶ф窐瀹� + List<DaTaoKeDetailV2> daTaoKeList = null; + if (page == 1) { + daTaoKeList = daTaoKeGoodsDetailV2Service.listByDtitle(key); + } + + String specialId = null; + if (uid != null) { + specialId = userExtraTaoBaoInfoService.getSpecialIdByUid(uid); + } + + // 娣樺疂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; + // 鎼滅储缁撴灉缂撳瓨鍒皉edis + if (result != null && result.getTaoBaoGoodsBriefs() != null && result.getTaoBaoGoodsBriefs().size() > 0) { + ThreadUtil.run(new Runnable() { + @Override + public void run() { + // 鏇存柊鍒扮珐瀛� + for (TaoBaoGoodsBrief goods : finalResult.getTaoBaoGoodsBriefs()) + taoBaoGoodsCacheUtil.saveCommonTaoBaoGoodsInfo(goods); + } + }); + } + + List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = null; + if (result != null) { + taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs(); + } + if (taoBaoGoodsBriefs == null) { + taoBaoGoodsBriefs = new ArrayList<>(); + } + + if (daTaoKeList != null && daTaoKeList.size() > 0) { + try { + Collections.reverse(daTaoKeList); + for (DaTaoKeDetailV2 detail : daTaoKeList) { + taoBaoGoodsBriefs.add(0, TaoBaoUtil.convert(detail)); + } + } catch (Exception e) { + } + } + + count = result.getTaoBaoHead().getDocsfound(); + if (taoBaoGoodsBriefs != null) + goodsBriefList.addAll(taoBaoGoodsBriefs); + } + } catch (Exception e) { + + } + + GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), acceptData.getVersion(), acceptData.getSystem()); - for (TaoBaoGoodsBrief goods : taoBaoGoodsBriefs) { - list.add(GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO)); - } + List<GoodsDetailVO> list = goodsLijinMnager.loadTBMoneyInfo(acceptData.getSystem(), uid, goodsBriefList, paramsDTO, false); Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) .excludeFieldsWithoutExposeAnnotation().create(); JSONObject data = new JSONObject(); data.put("result", gson.toJson(list)); - data.put("count", result.getTaoBaoHead().getDocsfound()); + data.put("count", count); if (page == 1) { // 绗竴椤佃繑鍥炲簵閾轰俊鎭� String platform = acceptData.getPlatform(); @@ -761,165 +1012,191 @@ * @param ap * @param out */ - private void searchJDGoods(AcceptData acceptData, String key, Integer page, String filter, Integer order, + private void searchJDGoods(AcceptData acceptData, Long uid, String key, Integer page, String filter, Integer order, AppPageNotification ap, PrintWriter out) { - JDSearchResult result = null; - boolean hasCoupon = false; - String way = configService.getValue(ConfigKeyEnum.jdApiSearchKey.getKey(), acceptData.getSystem()); - if ("1".equals(way)) { - JDFilter filterAPI = new JDFilter(); - filterAPI.setKeyword(SearchFilterUtil.filterSearchContent(key)); - filterAPI.setPageIndex(page); - filterAPI.setPageSize(Constant.PAGE_SIZE); + String goodsId = null; + long count = 0; + List<JDGoods> goodsList = new ArrayList<>(); - if (order != null) { - int sort = order.intValue(); - switch (sort) { - case 1: // 閿�閲� desc - filterAPI.setSort(JDFilter.SORT_DESC); - filterAPI.setSortName(JDFilter.SORTNAME_ORDER_COUNT_30DAYS); - break; - case 2: // 浠锋牸鈥攄esc - filterAPI.setSort(JDFilter.SORT_DESC); - filterAPI.setSortName(JDFilter.SORTNAME_PRICE); - break; - case 3: // 浠锋牸鈥攁sc - filterAPI.setSort(JDFilter.SORT_ASC); - filterAPI.setSortName(JDFilter.SORTNAME_PRICE); - break; - case 4: // 杩斿埄姣斺�擠ESC - filterAPI.setSort(JDFilter.SORT_DESC); - filterAPI.setSortName(JDFilter.SORTNAME_COMMISSION_SHARE); - break; - default: - break; + if (page == 1) { + List<String> linkList = HttpUtil.getUrlListFromText(key); + if (linkList != null && linkList.size() > 0) { + String jdId = clipboardAnalysisManager.parseJDSkuIdFromLink(linkList.get(0)); + if (!StringUtil.isNullOrEmpty(jdId)) { + goodsId = jdId; } } - - if (!StringUtil.isNullOrEmpty(filter)) { - JSONObject jsonfilter = JSONObject.fromObject(filter); - Boolean coupon = jsonfilter.optBoolean("coupon"); - if (coupon != null && coupon) { - hasCoupon = true; - filterAPI.setIsCoupon(1); // 鏈夊埜 - } - - Boolean zy = jsonfilter.optBoolean("zy"); - if (zy != null && zy) { - filterAPI.setOwner("g"); // 鑷惀 - } - - String minPrice = jsonfilter.optString("minPrice"); - if (!StringUtil.isNullOrEmpty(minPrice)) { - filterAPI.setPricefrom(Double.parseDouble(minPrice)); - } - - String maxPrice = jsonfilter.optString("maxPrice"); - if (!StringUtil.isNullOrEmpty(maxPrice)) { - filterAPI.setPriceto(Double.parseDouble(maxPrice)); - } - } - - result = JDApiUtil.queryByKey(filterAPI); - } else { - // 缃戦〉鐖彇 - JDSearchFilter jdfilter = new JDSearchFilter(); - jdfilter.setKey(SearchFilterUtil.filterSearchContent(key)); - jdfilter.setPageNo(page); - jdfilter.setPageSize(Constant.PAGE_SIZE); - - if (order != null) { - int sort = order.intValue(); - switch (sort) { - case 1: // 閿�閲� desc - jdfilter.setSort(JDSearchFilter.SORT_DESC); - jdfilter.setSortName(JDSearchFilter.SORTNAME_ORDER_COUNT_30DAYS); - break; - case 2: // 浠锋牸鈥攄esc - jdfilter.setSort(JDSearchFilter.SORT_DESC); - jdfilter.setSortName(JDSearchFilter.SORTNAME_PRICE); - break; - case 3: // 浠锋牸鈥攁sc - jdfilter.setSort(JDSearchFilter.SORT_ASC); - jdfilter.setSortName(JDSearchFilter.SORTNAME_PRICE); - break; - case 4: // 杩斿埄姣斺�擠ESC - jdfilter.setSort(JDSearchFilter.SORT_DESC); - jdfilter.setSortName(JDSearchFilter.SORTNAME_COMMISSION_SHARE); - break; - default: - break; - } - } - - if (!StringUtil.isNullOrEmpty(filter)) { - JSONObject jsonfilter = JSONObject.fromObject(filter); - Boolean coupon = jsonfilter.optBoolean("coupon"); - if (coupon != null && coupon) { - hasCoupon = true; - jdfilter.setHasCoupon(1); // 鏈夊埜 - } - - Boolean zy = jsonfilter.optBoolean("zy"); - if (zy != null && zy) { - jdfilter.setIsZY(1); // 鑷惀 - } - - Boolean delivery = jsonfilter.optBoolean("delivery"); - if (delivery != null && delivery) { - jdfilter.setDeliveryType(1); // 浜笢閰嶉�� - } - - String minPrice = jsonfilter.optString("minPrice"); - if (!StringUtil.isNullOrEmpty(minPrice)) { - if (minPrice.contains(".")) { - minPrice = minPrice.replace(".", "-"); - minPrice = minPrice.split("-")[0]; - } - jdfilter.setFromPrice(Integer.parseInt(minPrice)); - } - - String maxPrice = jsonfilter.optString("maxPrice"); - if (!StringUtil.isNullOrEmpty(maxPrice)) { - if (maxPrice.contains(".")) { - maxPrice = maxPrice.replace(".", "-"); - maxPrice = maxPrice.split("-")[0]; - } - jdfilter.setToPrice(Integer.parseInt(maxPrice)); - } - } - result = JDUtil.searchByKey(jdfilter); - } - long count = 0; + boolean hasCoupon = false; + if (goodsId != null) { + JDGoods goods = JDApiUtil.getGoodsDetail(goodsId); + if (goods != null) { + count = 1; + goodsList.add(goods); + } + } else { + JDSearchResult result = null; + String way = configService.getValue(ConfigKeyEnum.jdApiSearchKey.getKey(), acceptData.getSystem()); + if ("1".equals(way)) { + JDFilter filterAPI = new JDFilter(); + filterAPI.setKeyword(SearchFilterUtil.filterSearchContent(key)); + filterAPI.setPageIndex(page); + filterAPI.setPageSize(Constant.PAGE_SIZE); + + if (order != null) { + int sort = order.intValue(); + switch (sort) { + case 1: // 閿�閲� desc + filterAPI.setSort(JDFilter.SORT_DESC); + filterAPI.setSortName(JDFilter.SORTNAME_ORDER_COUNT_30DAYS); + break; + case 2: // 浠锋牸鈥攄esc + filterAPI.setSort(JDFilter.SORT_DESC); + filterAPI.setSortName(JDFilter.SORTNAME_PRICE); + break; + case 3: // 浠锋牸鈥攁sc + filterAPI.setSort(JDFilter.SORT_ASC); + filterAPI.setSortName(JDFilter.SORTNAME_PRICE); + break; + case 4: // 杩斿埄姣斺�擠ESC + filterAPI.setSort(JDFilter.SORT_DESC); + filterAPI.setSortName(JDFilter.SORTNAME_COMMISSION_SHARE); + break; + default: + break; + } + } + + if (!StringUtil.isNullOrEmpty(filter)) { + JSONObject jsonfilter = JSONObject.fromObject(filter); + Boolean coupon = jsonfilter.optBoolean("coupon"); + if (coupon != null && coupon) { + hasCoupon = true; + filterAPI.setIsCoupon(1); // 鏈夊埜 + } + + Boolean zy = jsonfilter.optBoolean("zy"); + if (zy != null && zy) { + filterAPI.setOwner("g"); // 鑷惀 + } + + String minPrice = jsonfilter.optString("minPrice"); + if (!StringUtil.isNullOrEmpty(minPrice)) { + filterAPI.setPricefrom(Double.parseDouble(minPrice)); + } + + String maxPrice = jsonfilter.optString("maxPrice"); + if (!StringUtil.isNullOrEmpty(maxPrice)) { + filterAPI.setPriceto(Double.parseDouble(maxPrice)); + } + } + + result = JDApiUtil.queryByKey(filterAPI); + } else { + // 缃戦〉鐖彇 + JDSearchFilter jdfilter = new JDSearchFilter(); + jdfilter.setKey(SearchFilterUtil.filterSearchContent(key)); + jdfilter.setPageNo(page); + jdfilter.setPageSize(Constant.PAGE_SIZE); + + if (order != null) { + int sort = order.intValue(); + switch (sort) { + case 1: // 閿�閲� desc + jdfilter.setSort(JDSearchFilter.SORT_DESC); + jdfilter.setSortName(JDSearchFilter.SORTNAME_ORDER_COUNT_30DAYS); + break; + case 2: // 浠锋牸鈥攄esc + jdfilter.setSort(JDSearchFilter.SORT_DESC); + jdfilter.setSortName(JDSearchFilter.SORTNAME_PRICE); + break; + case 3: // 浠锋牸鈥攁sc + jdfilter.setSort(JDSearchFilter.SORT_ASC); + jdfilter.setSortName(JDSearchFilter.SORTNAME_PRICE); + break; + case 4: // 杩斿埄姣斺�擠ESC + jdfilter.setSort(JDSearchFilter.SORT_DESC); + jdfilter.setSortName(JDSearchFilter.SORTNAME_COMMISSION_SHARE); + break; + default: + break; + } + } + + if (!StringUtil.isNullOrEmpty(filter)) { + JSONObject jsonfilter = JSONObject.fromObject(filter); + Boolean coupon = jsonfilter.optBoolean("coupon"); + if (coupon != null && coupon) { + hasCoupon = true; + jdfilter.setHasCoupon(1); // 鏈夊埜 + } + + Boolean zy = jsonfilter.optBoolean("zy"); + if (zy != null && zy) { + jdfilter.setIsZY(1); // 鑷惀 + } + + Boolean delivery = jsonfilter.optBoolean("delivery"); + if (delivery != null && delivery) { + jdfilter.setDeliveryType(1); // 浜笢閰嶉�� + } + + String minPrice = jsonfilter.optString("minPrice"); + if (!StringUtil.isNullOrEmpty(minPrice)) { + if (minPrice.contains(".")) { + minPrice = minPrice.replace(".", "-"); + minPrice = minPrice.split("-")[0]; + } + jdfilter.setFromPrice(Integer.parseInt(minPrice)); + } + + String maxPrice = jsonfilter.optString("maxPrice"); + if (!StringUtil.isNullOrEmpty(maxPrice)) { + if (maxPrice.contains(".")) { + maxPrice = maxPrice.replace(".", "-"); + maxPrice = maxPrice.split("-")[0]; + } + jdfilter.setToPrice(Integer.parseInt(maxPrice)); + } + } + result = JDUtil.searchByKey(jdfilter); + } + + if (result != null) { + PageEntity pageEntity = result.getPageEntity(); + if (pageEntity != null) { + count = pageEntity.getTotalCount(); + } + + goodsList = result.getGoodsList(); + } + } + JSONObject data = new JSONObject(); JSONArray array = new JSONArray(); - if (result != null) { - PageEntity pageEntity = result.getPageEntity(); - if (pageEntity != null) { - count = pageEntity.getTotalCount(); - } - List<JDGoods> goodsList = result.getGoodsList(); - if (goodsList != null && goodsList.size() > 0) { - Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) - .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); - ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), - acceptData.getVersion(), acceptData.getSystem()); - for (JDGoods goods : goodsList) { - GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(goods, paramsDTO); - if (hasCoupon) { - if (goodsDetailVO.isHasCoupon()) { - array.add(gson.toJson(goodsDetailVO)); - } - } else { - array.add(gson.toJson(goodsDetailVO)); + if (goodsList != null && goodsList.size() > 0) { + Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) + .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); + GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), + acceptData.getVersion(), acceptData.getSystem()); + + + List<GoodsDetailVO> voList = goodsLijinMnager.loadOtherMoneyInfo(acceptData.getSystem(), uid, goodsList, paramsDTO); + + for (GoodsDetailVO vo : voList) { + if (hasCoupon) { + if (vo.isHasCoupon()) { + array.add(gson.toJson(vo)); } + } else { + array.add(gson.toJson(vo)); } } } + data.put("result", array); data.put("count", count); @@ -940,70 +1217,119 @@ */ private void searchPDDGoods(AcceptData acceptData, Long uid, String key, Integer page, String filter, Integer order, AppPageNotification ap, PrintWriter out) { - PDDSearchFilter pddfilter = new PDDSearchFilter(); - pddfilter.setKw(SearchFilterUtil.filterSearchContent(key)); - pddfilter.setPage(page); - pddfilter.setPageSize(Constant.PAGE_SIZE); - - if (order != null) { - int sort = order.intValue(); - switch (sort) { - case 1: // 閿�閲� desc - pddfilter.setSortType(6); - break; - case 2: // 浠锋牸鈥攄esc - pddfilter.setSortType(4); - break; - case 3: // 浠锋牸鈥攁sc - pddfilter.setSortType(3); - break; - case 4: // 杩斿埄姣斺�攄esc - pddfilter.setSortType(2); - break; - default: // 缁煎悎鎺掑簭 - pddfilter.setSortType(0); - break; + String goodsId = null; + if (page == 1) { + List<String> linkList = HttpUtil.getUrlListFromText(key); + if (linkList != null && linkList.size() > 0) { + String pddGoodsId = PinDuoDuoUtil.getPDDGoodsId(linkList.get(0)); + if (!StringUtil.isNullOrEmpty(pddGoodsId)) { + goodsId = pddGoodsId; + } } } - - if (!StringUtil.isNullOrEmpty(filter)) { - JSONObject jsonfilter = JSONObject.fromObject(filter); - Boolean coupon = jsonfilter.optBoolean("coupon"); - if (coupon != null && coupon) { - pddfilter.setHasCoupon(true); // 鏈夊埜 - } - - Boolean brand = jsonfilter.optBoolean("brand"); - if (brand != null && brand) { - pddfilter.setIsBrand(true); // 鏄惁鏄搧鐗� - } - } - int count = 0; - JSONObject data = new JSONObject(); - JSONArray array = new JSONArray(); - String customParams = Constant.PDD_SEARCH_CUSTOMER_PARAMS; + List<PDDGoodsDetail> goodsList = new ArrayList<>(); + String customParams = Constant.PDD_SEARCH_CUSTOMER_PARAMS; if (uid != null) { String cp = pddAuthService.getFanliCustomParams(uid); - if (PinDuoDuoApiUtil.isAuth(PinDuoDuoApiUtil.PID_FANLI, cp)) { + if (PinDuoDuoApiUtil.isAuth(pidManager.getPidCache(acceptData.getSystem(), Constant.SOURCE_TYPE_PDD, SystemPIDInfo.PidType.fanli), cp)) { customParams = cp; } } - PDDGoodsResult result = PinDuoDuoApiUtil.searchGoods(pddfilter, customParams); - if (result != null) { - count = result.getTotalCount(); - Gson gson = JsonUtil.getApiCommonGson(); - List<PDDGoodsDetail> goodsList = result.getGoodsList(); - if (goodsList != null && goodsList.size() > 0) { - ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), - acceptData.getVersion(), acceptData.getSystem()); - - for (PDDGoodsDetail goods : goodsList) { - GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(goods, paramsDTO); - array.add(gson.toJson(goodsDetailVO)); + if (goodsId != null) { + try { + 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(); + pddfilter.setKw(SearchFilterUtil.filterSearchContent(key)); + pddfilter.setPage(page); + pddfilter.setPageSize(Constant.PAGE_SIZE); + + if (order != null) { + int sort = order.intValue(); + switch (sort) { + case 1: // 閿�閲� desc + pddfilter.setSortType(6); + break; + case 2: // 浠锋牸鈥攄esc + pddfilter.setSortType(4); + break; + case 3: // 浠锋牸鈥攁sc + pddfilter.setSortType(3); + break; + case 4: // 杩斿埄姣斺�攄esc + pddfilter.setSortType(2); + break; + default: // 缁煎悎鎺掑簭 + pddfilter.setSortType(0); + break; + } + } + + if (!StringUtil.isNullOrEmpty(filter)) { + JSONObject jsonfilter = JSONObject.fromObject(filter); + Boolean coupon = jsonfilter.optBoolean("coupon"); + if (coupon != null && coupon) { + pddfilter.setHasCoupon(true); // 鏈夊埜 + } + + Boolean brand = jsonfilter.optBoolean("brand"); + if (brand != null && brand) { + pddfilter.setIsBrand(true); // 鏄惁鏄搧鐗� + } + } + + + PDDGoodsResult result = null; + try { + result = PinDuoDuoApiUtil.searchGoods(pddfilter, customParams); + } catch (PDDApiException e) { + e.printStackTrace(); + if (e.getCode() == PDDApiException.CODE_NOT_AUTH) { + try { + result = PinDuoDuoApiUtil.searchGoods(pddfilter, Constant.PDD_SEARCH_CUSTOMER_PARAMS); + } catch (PDDApiException e1) { + e1.printStackTrace(); + } + } + } + + if (result != null) { + count = result.getTotalCount(); + goodsList = result.getGoodsList(); + } + + } + + JSONObject data = new JSONObject(); + JSONArray array = new JSONArray(); + Gson gson = JsonUtil.getApiCommonGson(); + if (goodsList != null && goodsList.size() > 0) { + 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)); } } @@ -1013,7 +1339,7 @@ } /** - * 鎼滅储鍞搧浼氬晢鍝� + * 鎼滅储鎶栭煶鍟嗗搧 * * @param acceptData * @param key @@ -1025,63 +1351,188 @@ * @Title: searchVIPGoods * @Description: */ - private void searchVIPGoods(AcceptData acceptData, String key, Integer page, String filter, Integer order, - AppPageNotification ap, PrintWriter out) { - VIPSearchFilter searchFilter = new VIPSearchFilter(); - searchFilter.setKeyword(key); - searchFilter.setPage(page); - searchFilter.setPageSize(Constant.PAGE_SIZE); - - if (order != null) { - int sort = order.intValue(); - switch (sort) { - case 2: // 浠锋牸鈥攄esc - searchFilter.setFieldName("price"); - searchFilter.setOrder(1); - break; - case 3: // 浠锋牸鈥攁sc - searchFilter.setFieldName("price"); - searchFilter.setOrder(0); - break; - case 5: // 鎶樻墸鈥攁ec - searchFilter.setFieldName("discount"); - searchFilter.setOrder(0); - break; - default: // 缁煎悎鎺掑簭 - break; + 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; + } } } - if (!StringUtil.isNullOrEmpty(filter)) { - JSONObject jsonfilter = JSONObject.fromObject(filter); - String minPrice = jsonfilter.optString("minPrice"); - if (!StringUtil.isNullOrEmpty(minPrice)) { - searchFilter.setPriceStart(minPrice); + + 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; + } } - String maxPrice = jsonfilter.optString("maxPrice"); - if (!StringUtil.isNullOrEmpty(maxPrice)) { - searchFilter.setPriceEnd(maxPrice); + 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); + } + } + } } - int count = 0; JSONObject data = new JSONObject(); JSONArray array = new JSONArray(); - VIPSearchResult result = VipShopApiUtil.search(searchFilter); - if (result != null) { - count = result.getTotal(); + if (goodsList != null && goodsList.size() > 0) { Gson gson = JsonUtil.getApiCommonGson(); - List<VIPGoodsInfo> goodsList = result.getGoodsList(); - if (goodsList != null && goodsList.size() > 0) { - ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), - acceptData.getVersion(), acceptData.getSystem()); + GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), + acceptData.getVersion(), acceptData.getSystem()); - for (VIPGoodsInfo goods : goodsList) { - GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertVIPGoods(goods, paramsDTO); - array.add(gson.toJson(goodsDetailVO)); + 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; + if (page == 1) { + List<String> linkList = HttpUtil.getUrlListFromText(key); + if (linkList != null && linkList.size() > 0) { + String vipId = VipShopUtil.parseGoodsIdByUrl(linkList.get(0)); + if (!StringUtil.isNullOrEmpty(vipId)) { + goodsId = vipId; } + } + } + + + long count = 0; + List<VIPGoodsInfo> goodsList = new ArrayList<>(); + if (goodsId != null) { + VIPGoodsInfo goodsInfo = VipShopApiUtil.getGoodsDetail(goodsId); + if (goodsInfo != null) { + goodsList.add(goodsInfo); + count = 1; + } + } else { + VIPSearchFilter searchFilter = new VIPSearchFilter(); + searchFilter.setKeyword(key); + searchFilter.setPage(page); + searchFilter.setPageSize(Constant.PAGE_SIZE); + + if (order != null) { + int sort = order.intValue(); + switch (sort) { + case 2: // 浠锋牸鈥攄esc + searchFilter.setFieldName("price"); + searchFilter.setOrder(1); + break; + case 3: // 浠锋牸鈥攁sc + searchFilter.setFieldName("price"); + searchFilter.setOrder(0); + break; + case 5: // 鎶樻墸鈥攁ec + searchFilter.setFieldName("discount"); + searchFilter.setOrder(0); + break; + default: // 缁煎悎鎺掑簭 + break; + } + } + + if (!StringUtil.isNullOrEmpty(filter)) { + JSONObject jsonfilter = JSONObject.fromObject(filter); + String minPrice = jsonfilter.optString("minPrice"); + if (!StringUtil.isNullOrEmpty(minPrice)) { + searchFilter.setPriceStart(minPrice); + } + + String maxPrice = jsonfilter.optString("maxPrice"); + if (!StringUtil.isNullOrEmpty(maxPrice)) { + searchFilter.setPriceEnd(maxPrice); + } + } + + + VIPSearchResult result = VipShopApiUtil.search(searchFilter); + if (result != null) { + count = result.getTotal(); + + goodsList = result.getGoodsList(); + } + } + + 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)); } } @@ -1103,71 +1554,100 @@ * @Title: searchVIPGoods * @Description: */ - private void searchSuningGoods(AcceptData acceptData, String key, Integer page, String filter, Integer order, + private void searchSuningGoods(AcceptData acceptData, Long uid, String key, Integer page, String filter, Integer order, AppPageNotification ap, PrintWriter out) { - SuningQueryModel searchFilter = new SuningQueryModel(); - searchFilter.setKeyword(key); - searchFilter.setPageIndex(page); - searchFilter.setSize(10); - if (order != null) { - if (order == 1) { // 閿�閲忛珮鍒颁綆 - searchFilter.setSortType(2); - } else if (order == 2) { // 浠锋牸楂樺埌浣� - searchFilter.setSortType(3); - } else if (order == 3) { // 浠锋牸浣庡埌楂� - searchFilter.setSortType(4); - } else if (order == 4) { // 杩斿埄姣旈珮鍒颁綆 - searchFilter.setSortType(5); + String goodsId = null; + if (page == 1) { + List<String> linkList = HttpUtil.getUrlListFromText(key); + if (linkList != null && linkList.size() > 0) { + String suningId = SuningUtil.parseGoodsIdByUrl(linkList.get(0)); + if (!StringUtil.isNullOrEmpty(suningId)) { + goodsId = suningId; + } } } - if (!StringUtil.isNullOrEmpty(filter)) { - JSONObject jsonfilter = JSONObject.fromObject(filter); - Boolean coupon = jsonfilter.optBoolean("coupon"); - if (coupon != null && coupon) { - searchFilter.setCoupon(1); // 鏈夊埜 + long count = 0; + List<SuningGoodsInfo> goodsList = new ArrayList<>(); + if (goodsId != null) { + + String[] ids = SuningUtil.getGoodsIdDetail(goodsId); + if (ids != null && ids.length == 2) { + SuningGoodsInfo goodsInfo = SuningApiUtil.getGoodsDetail(ids[1], ids[0]); + if (goodsInfo != null) { + goodsList.add(goodsInfo); + count = 1; + } + } + } else { + SuningQueryModel searchFilter = new SuningQueryModel(); + searchFilter.setKeyword(key); + searchFilter.setPageIndex(page); + searchFilter.setSize(10); + + if (order != null) { + if (order == 1) { // 閿�閲忛珮鍒颁綆 + searchFilter.setSortType(2); + } else if (order == 2) { // 浠锋牸楂樺埌浣� + searchFilter.setSortType(3); + } else if (order == 3) { // 浠锋牸浣庡埌楂� + searchFilter.setSortType(4); + } else if (order == 4) { // 杩斿埄姣旈珮鍒颁綆 + searchFilter.setSortType(5); + } } - Boolean snfwservice = jsonfilter.optBoolean("snfwservice");// 鑻忓畞鏈嶅姟 - if (snfwservice != null && snfwservice) { - searchFilter.setSnfwservice(1); + if (!StringUtil.isNullOrEmpty(filter)) { + JSONObject jsonfilter = JSONObject.fromObject(filter); + Boolean coupon = jsonfilter.optBoolean("coupon"); + if (coupon != null && coupon) { + searchFilter.setCoupon(1); // 鏈夊埜 + } + + Boolean snfwservice = jsonfilter.optBoolean("snfwservice");// 鑻忓畞鏈嶅姟 + if (snfwservice != null && snfwservice) { + searchFilter.setSnfwservice(1); + } + + Boolean snhwg = jsonfilter.optBoolean("snhwg");// 鑻忓畞鍥介檯 + if (snhwg != null && snhwg) { + searchFilter.setSnhwg(1); + } + + Boolean suningService = jsonfilter.optBoolean("suningService");// 鑻忓畞鑷惀 + if (suningService != null && suningService) { + searchFilter.setSuningService(1); + } + + Boolean pgSearch = jsonfilter.optBoolean("pgSearch");// 鎷艰喘 + if (pgSearch != null && pgSearch) { + searchFilter.setPgSearch(1); + } + + String minPrice = jsonfilter.optString("minPrice"); + if (!StringUtil.isNullOrEmpty(minPrice)) { + searchFilter.setStartPrice(minPrice); + } + + String maxPrice = jsonfilter.optString("maxPrice"); + if (!StringUtil.isNullOrEmpty(maxPrice)) { + searchFilter.setEndPrice(maxPrice); + } } - Boolean snhwg = jsonfilter.optBoolean("snhwg");// 鑻忓畞鍥介檯 - if (snhwg != null && snhwg) { - searchFilter.setSnhwg(1); - } - - Boolean suningService = jsonfilter.optBoolean("suningService");// 鑻忓畞鑷惀 - if (suningService != null && suningService) { - searchFilter.setSuningService(1); - } - - Boolean pgSearch = jsonfilter.optBoolean("pgSearch");// 鎷艰喘 - if (pgSearch != null && pgSearch) { - searchFilter.setPgSearch(1); - } - - String minPrice = jsonfilter.optString("minPrice"); - if (!StringUtil.isNullOrEmpty(minPrice)) { - searchFilter.setStartPrice(minPrice); - } - - String maxPrice = jsonfilter.optString("maxPrice"); - if (!StringUtil.isNullOrEmpty(maxPrice)) { - searchFilter.setEndPrice(maxPrice); - } + goodsList = SuningApiUtil.searchGoodsOld(searchFilter); + count = 1000; } JSONObject data = new JSONObject(); JSONArray array = new JSONArray(); List<SuningGoodsInfo> resultList = null; - List<SuningGoodsInfo> list = SuningApiUtil.searchGoodsOld(searchFilter); - if (list != null && list.size() > 0) { + + if (goodsList != null && goodsList.size() > 0) { List<String> listId = new ArrayList<>(); - for (SuningGoodsInfo goodsInfo : list) { + for (SuningGoodsInfo goodsInfo : goodsList) { SuningCommodityInfo info = goodsInfo.getCommodityInfo(); if (info != null) { listId.add(info.getCommodityCode() + "-" + info.getSupplierCode()); @@ -1179,18 +1659,18 @@ if (resultList != null) { Gson gson = JsonUtil.getApiCommonGson(); if (resultList != null && resultList.size() > 0) { - ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), + GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), acceptData.getVersion(), acceptData.getSystem()); - for (SuningGoodsInfo goods : resultList) { - GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertSuningGoods(goods, paramsDTO); + List<GoodsDetailVO> voList = goodsLijinMnager.loadOtherMoneyInfo(acceptData.getSystem(), uid, resultList, paramsDTO); + for (GoodsDetailVO goodsDetailVO : voList) { array.add(gson.toJson(goodsDetailVO)); } } } data.put("result", array); - data.put("count", 1000); + data.put("count", count); out.print(JsonUtil.loadTrueResult(buildSearchResult(data, ap))); } -- Gitblit v1.8.0