From 036fc28606e5fcb2203cbc7c4736c99512a522f7 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 14 四月 2020 10:52:05 +0800
Subject: [PATCH] 订单统计测试中的相关代码的bug修改
---
fanli/src/main/java/com/yeshi/fanli/service/manger/ClipboardAnalysisManager.java | 335 ++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 229 insertions(+), 106 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/manger/ClipboardAnalysisManager.java b/fanli/src/main/java/com/yeshi/fanli/service/manger/ClipboardAnalysisManager.java
index 949d64c..47c4f3b 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/manger/ClipboardAnalysisManager.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/manger/ClipboardAnalysisManager.java
@@ -1,6 +1,7 @@
package com.yeshi.fanli.service.manger;
-import java.util.Arrays;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@@ -20,11 +21,14 @@
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
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.service.inter.user.TokenRecordService;
import com.yeshi.fanli.service.manger.goods.jd.JDGoodsLinkParseManager;
import com.yeshi.fanli.service.manger.goods.tb.TaoBaoTokenAuctionIdMapManager;
+import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.DouYinUtil;
+import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TokenUtil;
import com.yeshi.fanli.util.Utils;
@@ -35,7 +39,6 @@
import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
-import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.vo.msg.TokenVO;
import com.yeshi.fanli.vo.search.GoodsDocParseResultVO;
@@ -58,6 +61,9 @@
@Resource
private TaoBaoTokenAuctionIdMapManager taoBaoTokenAuctionIdMapManager;
+
+ @Resource
+ private RedisManager redisManager;
/**
* @Title: parseContentType @Description: 瑙f瀽鏂囨湰鐨勭被鍨� @param text @return Set
@@ -139,6 +145,25 @@
// 瑙f瀽鍟嗗搧
CommonGoods goods = parseLink(text);
if (goods == null) {
+ // 鍒ゆ柇閾炬帴涔嬩腑鏄惁鍖呭惈鍙d护
+ try {
+ String newText = URLDecoder.decode(text, "UTF-8");
+ List<String> tokenList = TaoBaoUtil.getTokenListFromTextWithKuoHao(newText);
+ if (tokenList != null && tokenList.size() > 0) {
+ try {
+ goods = parseTaoBaoToken(tokenList.get(0));
+ } catch (TaoBaoTokenParseException e) {
+ }
+ if (goods != null && goods.getGoodsId() != null) {
+ resultListener.onResult(goods);
+ return;
+ }
+ }
+
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+
resultListener.none();
} else {
resultListener.onResult(goods);
@@ -191,7 +216,15 @@
if (!StringUtil.isNullOrEmpty(link)) {
CommonGoods goods = parseLink(urlList.get(0));
if (goods == null || goods.getGoodsId() == null) {
- resultListener.onResult(new GoodsDocParseResultVO(text, urlList.get(0)));
+ if (urlList.size() > 1)
+ resultListener.onResult(new GoodsDocParseResultVO(text, urlList.get(0)));
+ else {// 鍗曢摼鎺�
+ // 鍒ゆ柇鏄惁鍖呭惈鍙浆閾剧殑閾炬帴
+ if (!isContainsLinkConvert(link))
+ resultListener.none();
+ else
+ resultListener.onResult(new GoodsDocParseResultVO(text, link));
+ }
} else {
if (VersionUtil.greaterThan_2_0_7(platform, version)) {
if (urlList.size() == 1)// 鍗曢摼鎺�+鏂囨湰
@@ -211,15 +244,23 @@
return;
}
if (goods != null && goods.getGoodsId() != null) {
- resultListener.onResult(new GoodsDocParseResultVO(text, goods));
+ if (tokenList.size() == 1) {// 鍗曚釜鍙d护
+ resultListener.onResult(goods);
+ } else
+ resultListener.onResult(new GoodsDocParseResultVO(text, goods));
} else {
resultListener.onResult(new GoodsDocParseResultVO(text));
}
-
}
} else if (typeSet.size() == 3) {// 鍙d护+閾炬帴+鏂囨湰
- List<String> tokenList = TaoBaoUtil.getTokenListFromText(text);
+ // 娣樺彛浠�
+ List<String> tokenList = null;
+ if (VersionUtil.greaterThan_2_0_7(platform, version))
+ tokenList = TaoBaoUtil.getTokenListFromTextWithKuoHao(text);
+ else
+ tokenList = TaoBaoUtil.getTokenListFromText(text);
+
List<String> urlList = HttpUtil.getUrlListFromText(text);
if (text.contains("銆�") && tokenList != null && tokenList.size() == 1 && urlList != null
&& urlList.size() == 1) {// Android娣樺疂閾炬帴澶嶅埗
@@ -246,32 +287,31 @@
} else {// 鏂囨
- String link = null;
String token = null;
+ token = tokenList.get(0);
- if (text.indexOf(urlList.get(0)) < text.indexOf(tokenList.get(0)))// 绗竴涓摼鎺ュ湪绗竴涓彛浠ゅ墠闈�
- link = urlList.get(0);
- else// 绗竴涓彛浠ゅ湪绗竴涓摼鎺ュ墠闈�
- token = tokenList.get(0);
-
- if (!StringUtil.isNullOrEmpty(link)) {
- CommonGoods goods = parseLink(urlList.get(0));
- if (goods == null || goods.getGoodsId() == null) {
- resultListener.onResult(new GoodsDocParseResultVO(text, urlList.get(0)));
- } else {
- resultListener.onResult(new GoodsDocParseResultVO(text, goods));
- }
- } else {
+ if (!StringUtil.isNullOrEmpty(token)) {
CommonGoods goods = null;
try {
goods = parseTaoBaoToken(token);
if (goods != null && goods.getGoodsId() != null) {
- resultListener.onResult(new GoodsDocParseResultVO(text, goods));
+ // 濡�:http://rd.wechat.com/qrcode/confirm?block_type=101&content=%E3%80%90%E5%8E%9F%E4%BB%B7%E3%80%9120%E5%85%83%0A%E3%80%90%E5%88%B8%E5%90%8E%E4%BB%B7%E3%80%9120%E5%85%83%0A-----------------%0A%E5%BE%A9%E8%A3%BD%E8%BF%99%E6%9D%A1%EF%BC%8C(psNX1UPRJNe)%EF%BC%8C%E8%BF%9B%E5%85%A5%E3%80%90Tao%E5%AE%9D%E3%80%91%E5%8D%B3%E5%8F%AF%E6%8A%A2%E8%B4%AD&lang=zh_CN&scene=37
+ if (text.contains("//rd.wechat.com/qrcode/")) {// 寰俊澶嶅埗杩囨潵鐨�
+ resultListener.onResult(goods);
+ } else
+ resultListener.onResult(new GoodsDocParseResultVO(text, goods));
} else {
resultListener.onResult(new GoodsDocParseResultVO(text));
}
} catch (TaoBaoTokenParseException e) {
resultListener.onResult(new GoodsDocParseResultVO(text));
+ }
+ } else {
+ CommonGoods goods = parseLink(urlList.get(0));
+ if (goods == null || goods.getGoodsId() == null) {
+ resultListener.onResult(new GoodsDocParseResultVO(text, urlList.get(0)));
+ } else {
+ resultListener.onResult(new GoodsDocParseResultVO(text, goods));
}
}
}
@@ -286,12 +326,131 @@
*/
public CommonGoods parseLink(String link) {
+ SimpleCommonGoods simpleGoods = parseGoodsIdFromLink(link);
+ if (simpleGoods == null) {
+ return null;
+ }
+
+ CommonGoods commonGoods = null;
+ if (simpleGoods.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
+ TaoBaoGoodsBrief goods = null;
+ try {
+ goods = redisManager.getTaoBaoGoodsBrief(Long.parseLong(simpleGoods.getGoodsId()));
+ } catch (NumberFormatException e) {
+ e.printStackTrace();
+ } catch (TaobaoGoodsDownException e) {
+ e.printStackTrace();
+ }
+
+ if (goods != null) {
+ commonGoods = CommonGoodsFactory.create(goods);
+ } else {
+ goods = TaoBaoUtil.getTmallGoodsInfo(simpleGoods.getGoodsId());
+ if (goods != null) {
+ commonGoods = new CommonGoods();
+ commonGoods.setTitle(goods.getTitle());
+ commonGoods.setPicture(goods.getPictUrl());
+ } else {
+ // TODO 鏍规嵁娣樺疂鍟嗗搧ID瑙f瀽鏍囬涓庡浘鐗�
+ }
+ }
+
+ } else if (simpleGoods.getGoodsType() == Constant.SOURCE_TYPE_JD) {
+ // 浼樺厛閲囩敤楂樼骇鎺ュ彛璇锋眰鏁版嵁
+ JDGoods jdGoods = null;
+ try {
+ // 闃叉楂樼骇鎺ュ彛琚敹鍥�
+ jdGoods = JDApiUtil.queryGoodsDetail(Long.parseLong(simpleGoods.getGoodsId()));
+ } catch (Exception e) {
+ }
+ if (jdGoods == null) {
+ jdGoods = JDApiUtil.getGoodsDetail(Long.parseLong(simpleGoods.getGoodsId()));
+ }
+ if (jdGoods != null) {
+ commonGoods = CommonGoodsFactory.create(jdGoods);
+ } else {// 鍟嗗搧骞舵湭鍙備笌鎺ㄥ箍
+ jdGoods = JDUtil.getSimpleGoodsInfo(simpleGoods.getGoodsId());
+ if (jdGoods != null) {
+ commonGoods = new CommonGoods();
+ commonGoods.setTitle(jdGoods.getSkuName());
+ commonGoods.setPicture(jdGoods.getPicUrl());
+ }
+ }
+ } else if (simpleGoods.getGoodsType() == Constant.SOURCE_TYPE_PDD) {
+ PDDGoodsDetail goods = PinDuoDuoApiUtil.getGoodsDetail(Long.parseLong(simpleGoods.getGoodsId()));
+ if (goods != null) {
+ commonGoods = CommonGoodsFactory.create(goods);
+ } else {
+ goods = PinDuoDuoUtil.getPDDGoodsInfo(simpleGoods.getGoodsId());
+ if (goods != null) {
+ commonGoods = new CommonGoods();
+ commonGoods.setTitle(goods.getGoodsName());
+ commonGoods.setPicture(goods.getGoodsThumbnailUrl());
+ }
+ }
+ }
+
+ return commonGoods;
+ }
+
+ /**
+ * 浠庨摼鎺ヤ腑瑙f瀽鍟嗗搧ID
+ *
+ * @return
+ */
+ public SimpleCommonGoods parseGoodsIdFromLink(String link) {
+
+ String jdId = parseJDSkuIdFromLink(link);
+
+ if (!StringUtil.isNullOrEmpty(jdId)) {
+ return new SimpleCommonGoods(jdId, Constant.SOURCE_TYPE_JD);
+ }
+
+ // 瑙f瀽鎷煎澶�
+ String pddId = PinDuoDuoUtil.getPDDGoodsId(link);
+ if (!StringUtil.isNullOrEmpty(pddId)) {
+ return new SimpleCommonGoods(pddId, Constant.SOURCE_TYPE_PDD);
+ }
+ // 瑙f瀽娣樺疂
+ String auctionId = parseTBAuctionIdFromLink(link);
+ if (!StringUtil.isNullOrEmpty(auctionId)) {
+ return new SimpleCommonGoods(auctionId, Constant.SOURCE_TYPE_TAOBAO);
+ }
+
+ return null;
+ }
+
+ /**
+ * 浠庨摼鎺ヤ腑瑙f瀽浜笢鍟嗗搧鐨凷KUID
+ *
+ * @param link
+ * @return
+ */
+ public String parseJDSkuIdFromLink(String link) {
+ // 瑙f瀽鍏朵粬鍟嗗搧
+ String jdId = JDUtil.getJDGoodsId(link);
+
+ // 寰俊閾炬帴
+ if (StringUtil.isNullOrEmpty(jdId)) {
+ jdId = JDUtil.getJDGoodsIdByWeiXin(link);
+ }
+
+ // 棰嗗埜鐭繛鎺�
+ if (StringUtil.isNullOrEmpty(jdId) && link.contains("u.jd.com")) {
+ jdId = jdGoodsLinkParseManager.parseGoodsIdByJDShortUrl(link);
+ }
+
+ return jdId;
+ }
+
+ public String parseTBAuctionIdFromLink(String link) {
TaoBaoGoodsBrief tb = null;
+ String auctionId = null;
if (link.startsWith("https://a.m.taobao.com/i"))// 娣樺疂璐﹀彿鏈櫥褰曠姸鎬�
{
link = link.substring("https://a.m.taobao.com/i".length(), link.indexOf(".htm"));
if (NumberUtil.isNumeric(link)) {
- tb = TaoBaoUtil.isAlimama(link);
+ auctionId = link + "";
}
} else if (link.contains("ju.taobao.com") || link.contains(".juhuasuan.com")) {// 鑱氬垝绠�
int index = link.indexOf("item_id");
@@ -304,108 +463,36 @@
else {
id = link.substring(link.indexOf("=" + 1));
}
- tb = TaoBaoUtil.isAlimama(id);
- if (tb == null) {
- tb = new TaoBaoGoodsBrief(Long.parseLong(id));
- }
+ auctionId = id;
}
} else if (link.contains("http://zmnxbc.com")) { // 鎵嬫満绔ぉ鐚獳PP鍒嗕韩
tb = TaoBaoUtil.parsePhoneShareUrlByTM(link);
- } else if (link.contains("h5.m.taobao") || link.contains("detail.m.tmall") || link.contains("item.taobao")
+ if (tb != null)
+ auctionId = tb.getAuctionId() + "";
+ } else if (link.contains("h5.m.taobao") || link.contains("detail.m.tmall")|| link.contains("item.taobao")
|| link.contains("detail.tmall")) { // 鎵嬫満椤甸潰鍜岀數鑴戦〉闈�
Map<String, String> map = Utils.parseURL(link);
String id = "";
id = map.get("id").replace("}", "");
- tb = TaoBaoUtil.isAlimama(id);
- if (tb == null) {
- tb = new TaoBaoGoodsBrief(Long.parseLong(id));
- }
+ auctionId = id;
} else if (link.contains("v.douyin.com")) { // 鎶栭煶
tb = analysisDouYin(link);
if (tb != null) {
if (!StringUtil.isNullOrEmpty(tb.getAuctionUrl())) {// 鎶栭煶瑙f瀽鍒版窐瀹濆晢鍝侀摼鎺�
- return parseLink(tb.getAuctionUrl());
+ CommonGoods goods = parseLink(tb.getAuctionUrl());
+ if (goods != null) {
+ auctionId = goods.getGoodsId() + "";
+ }
}
}
} else {
tb = TaoBaoUtil.parsePhoneShareUrlByTB(link);
+ if (tb != null)
+ auctionId = tb.getAuctionId() + "";
}
- // 娌¤В鏋愬埌娣樺疂鐩稿叧鍟嗗搧
- if (tb == null) {
- String goodsId = TaoBaoUtil.getGoodsIdByPhoneShareUrl(link);
- if (!StringUtil.isNullOrEmpty(goodsId)) {
- tb = TaoBaoUtil.isAlimama(goodsId);
- if (tb == null) {
- tb = new TaoBaoGoodsBrief(Long.parseLong(goodsId));
- }
- }
- }
+ return auctionId;
- CommonGoods commonGoods = null;
-
- // 娣樺疂鍟嗗搧瑙f瀽缁撴潫
- if (tb != null) {
- if (StringUtil.isNullOrEmpty(tb.getTitle())) {
- tb = TaoBaoUtil.getTaoBaoGoodsBriefNotInPub(tb.getId());
- if (tb != null) {
- commonGoods = new CommonGoods();
- commonGoods.setPicture(tb.getPictUrl());
- commonGoods.setTitle(tb.getTitle());
- }
- } else {
- commonGoods = CommonGoodsFactory.create(tb);
- }
- } else {
- // 瑙f瀽鍏朵粬鍟嗗搧
- String jdId = JDUtil.getJDGoodsId(link);
-
- // 寰俊閾炬帴
- if (StringUtil.isNullOrEmpty(jdId)) {
- jdId = JDUtil.getJDGoodsIdByWeiXin(link);
- }
-
- // 棰嗗埜鐭繛鎺�
- if (StringUtil.isNullOrEmpty(jdId) && link.contains("u.jd.com")) {
- jdId = jdGoodsLinkParseManager.parseGoodsIdByJDShortUrl(link);
- }
-
- if (!StringUtil.isNullOrEmpty(jdId)) {
- JDGoods goods = JDApiUtil.getGoodsDetail(Long.parseLong(jdId));
- if (goods != null) {
- // 楂樼骇鎺ュ彛 -- 淇℃伅鏇村畬鏁�
- JDGoods jdGoods = JDApiUtil.queryGoodsDetail(Long.parseLong(jdId));
- if (jdGoods != null) {
- commonGoods = CommonGoodsFactory.create(jdGoods);
- } else {
- commonGoods = CommonGoodsFactory.create(goods);
- }
- } else {
- goods = JDUtil.getSimpleGoodsInfo(jdId);
- if (goods != null) {
- commonGoods = new CommonGoods();
- commonGoods.setTitle(goods.getSkuName());
- commonGoods.setPicture(goods.getPicUrl());
- }
- }
- } else {
- String pddId = PinDuoDuoUtil.getPDDGoodsId(link);
- if (!StringUtil.isNullOrEmpty(pddId)) {
- PDDGoodsDetail goods = PinDuoDuoApiUtil.getGoodsDetail(Long.parseLong(pddId));
- if (goods != null) {
- commonGoods = CommonGoodsFactory.create(goods);
- } else {
- goods = PinDuoDuoUtil.getPDDGoodsInfo(pddId);
- if (goods != null) {
- commonGoods = new CommonGoods();
- commonGoods.setTitle(goods.getGoodsName());
- commonGoods.setPicture(goods.getGoodsThumbnailUrl());
- }
- }
- }
- }
- }
- return commonGoods;
}
private CommonGoods parseTaoBaoToken(String token) throws TaoBaoTokenParseException {
@@ -454,6 +541,42 @@
}
return null;
}
+
+ private boolean isContainsLinkConvert(String link) {
+ if (link.contains(".jd.com"))
+ return true;
+ else if (link.contains(".taobao.com") || link.contains(".tmall"))
+ return true;
+ else if (link.contains(".pinduoduo.com") || link.contains(".yangkeduo.com"))
+ return true;
+ return false;
+ }
+
+ class SimpleCommonGoods {
+ private String goodsId;
+ private int goodsType;
+
+ public SimpleCommonGoods(String goodsId, int goodsType) {
+ this.goodsId = goodsId;
+ this.goodsType = goodsType;
+ }
+
+ public String getGoodsId() {
+ return goodsId;
+ }
+
+ public void setGoodsId(String goodsId) {
+ this.goodsId = goodsId;
+ }
+
+ public int getGoodsType() {
+ return goodsType;
+ }
+
+ public void setGoodsType(int goodsType) {
+ this.goodsType = goodsType;
+ }
+ }
}
/**
--
Gitblit v1.8.0