From 3340ed122e19e3943ce4f93eb52103b623a3fc2c Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 27 四月 2022 15:43:58 +0800
Subject: [PATCH] 订单消息bug修改

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java |  153 +++++++++++++++++++++++++++++---------------------
 1 files changed, 89 insertions(+), 64 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..fc51314 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,35 @@
 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.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;
@@ -80,10 +59,12 @@
 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,9 +72,28 @@
 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.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")
@@ -171,7 +171,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 +188,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 +201,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 +223,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 +241,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);
@@ -301,7 +301,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));
@@ -439,7 +439,7 @@
         }
 
         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 +453,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,7 +528,7 @@
      */
     @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) {
             out.print(JsonUtil.loadFalseResult(1, "璇蜂紶閫掓纭钩鍙板弬鏁�"));
@@ -567,18 +567,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();
@@ -635,7 +634,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 +656,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);
             }
         });
 
@@ -748,6 +746,22 @@
                         goodsId = id;
                     }
                 }
+                if (goodsId == null) {
+                    //瑙f瀽閾炬帴
+                    if (linkList != null && linkList.size() > 0) {
+                        String tempGoodsId = clipboardAnalysisManager.parseTBAuctionIdFromLink(linkList.get(0));
+                        if (!StringUtil.isNullOrEmpty(tempGoodsId)) {
+                            goodsId = Long.parseLong(tempGoodsId);
+                        }
+                    }
+                }
+            }
+
+            //鍟嗗搧ID涓虹┖锛屼笖鏄彛浠ょ殑褰㈠紡灏变互鏈姞鍏ユ窐瀹濊仈鐩熺殑鍟嗗搧澶勭悊
+            if (goodsId == null && (linkList != null && linkList.size() > 0) && TaoBaoUtil.isHaveNewVersionTaoBaoToken(key)) {
+                String[] ks = key.trim().split("  ");
+                if (ks.length > 1)
+                    key = ks[1].trim();
             }
         }
 
@@ -864,7 +878,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();
@@ -1163,6 +1177,17 @@
                 }
             } catch (PDDApiException e) {
                 e.printStackTrace();
+                if (e.getCode() == PDDApiException.CODE_NOT_AUTH) {
+                    try {
+                        PDDGoodsDetail pddGoodsDetail = PinDuoDuoApiUtil.getGoodsDetail(Long.parseLong(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();

--
Gitblit v1.8.0