From 4995469ae28ce99f5e682895c0708d15f4dc63cd Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 15 十月 2024 14:38:03 +0800
Subject: [PATCH] 将CMQ替换为rabbitmq
---
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java | 281 ++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 222 insertions(+), 59 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
index b5cac21..93024e6 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
@@ -1,46 +1,12 @@
package com.yeshi.fanli.controller.client.v2;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintWriter;
-import java.lang.reflect.Type;
-import java.math.BigDecimal;
-import java.net.MalformedURLException;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import javax.annotation.Resource;
-
+import com.google.gson.*;
+import com.yeshi.common.vo.ClientTextStyleVO;
+import com.yeshi.fanli.dto.jd.JDCouponInfo;
import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
import com.yeshi.fanli.entity.SystemEnum;
import com.yeshi.fanli.entity.SystemFunction;
import com.yeshi.fanli.entity.SystemPIDInfo;
-import com.yeshi.fanli.exception.taobao.TaoBaoConvertLinkException;
-import com.yeshi.fanli.service.manger.PIDManager;
-import com.yeshi.fanli.service.manger.goods.TaoBaoLinkManager;
-import com.yeshi.fanli.util.*;
-import com.yeshi.fanli.util.StringUtil;
-import org.apache.commons.beanutils.PropertyUtils;
-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.*;
-import org.yeshi.utils.entity.FileUploadResult;
-import org.yeshi.utils.tencentcloud.COSManager;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonPrimitive;
-import com.google.gson.JsonSerializationContext;
-import com.google.gson.JsonSerializer;
-import com.yeshi.fanli.dto.jd.JDCouponInfo;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
import com.yeshi.fanli.entity.bus.homemodule.CommonShareInfo;
@@ -60,7 +26,10 @@
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.entity.taobao.TaoBaoLink;
-import com.yeshi.fanli.exception.goods.ConvertLinkExceptionException;
+import com.yeshi.fanli.exception.goods.ConvertLinkException;
+import com.yeshi.fanli.exception.pdd.PDDAuthException;
+import com.yeshi.fanli.exception.pdd.PDDGoodsException;
+import com.yeshi.fanli.exception.taobao.TaoBaoConvertLinkException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
import com.yeshi.fanli.service.inter.config.ConfigService;
@@ -68,31 +37,61 @@
import com.yeshi.fanli.service.inter.dynamic.ArticleOfficialService;
import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService;
import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService;
-import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
import com.yeshi.fanli.service.inter.homemodule.CommonShareInfoService;
import com.yeshi.fanli.service.inter.homemodule.SpecialService;
import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
+import com.yeshi.fanli.service.inter.pdd.PDDAuthService;
import com.yeshi.fanli.service.inter.user.QrCodeService;
+import com.yeshi.fanli.service.inter.user.UserFunctionsLimitService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
-import com.yeshi.fanli.service.inter.user.cloud.UserCloudService;
import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
+import com.yeshi.fanli.service.manger.PIDManager;
import com.yeshi.fanli.service.manger.goods.ConvertLinkManager;
+import com.yeshi.fanli.service.manger.goods.TaoBaoLinkManager;
+import com.yeshi.fanli.service.manger.goods.jd.JDConvertLinkManager;
+import com.yeshi.fanli.service.manger.goods.pdd.PDDConvertLinkManager;
+import com.yeshi.fanli.service.manger.goods.tb.TBConvertLinkManager;
+import com.yeshi.fanli.util.*;
+import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
+import com.yeshi.fanli.util.exception.ExceptionConstant;
+import com.yeshi.fanli.util.goods.GoodsJumpUtil;
+import com.yeshi.fanli.util.goods.GoodsTextUtil;
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.taobao.DaTaoKeUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
+import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.vo.dynamic.ArticleVO;
+import com.yeshi.fanli.vo.goods.ConvertLinkJumpVO;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
import com.yeshi.fanli.vo.homemodule.BannerVO;
import com.yeshi.fanli.vo.homemodule.SpecialVO;
-import com.yeshi.common.vo.ClientTextStyleVO;
-
+import com.yeshi.fanli.vo.pdd.PDDConvertLinkResultVO;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
+import org.apache.commons.beanutils.PropertyUtils;
+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.*;
+import org.yeshi.utils.entity.FileUploadResult;
+import org.yeshi.utils.tencentcloud.COSManager;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintWriter;
+import java.lang.reflect.Type;
+import java.math.BigDecimal;
+import java.net.MalformedURLException;
+import java.util.*;
/**
* 鍔ㄦ��
@@ -102,6 +101,8 @@
@Controller
@RequestMapping("api/v2/dynamic")
public class DynamicControllerV2 {
+
+ private Logger logger= LoggerFactory.getLogger(DynamicControllerV2.class);
@Resource
private TaoBaoLinkManager taoBaoLinkManager;
@@ -145,10 +146,25 @@
private ConvertLinkManager convertLinkManager;
@Resource
+ private TBConvertLinkManager tbConvertLinkManager;
+
+ @Resource
+ private JDConvertLinkManager jdConvertLinkManager;
+
+ @Resource
+ private PDDConvertLinkManager pddConvertLinkManager;
+
+ @Resource
private DailyCountMomentsService dailyCountMomentsService;
@Resource
private CommonShareInfoService commonShareInfoService;
+
+ @Resource
+ private PDDAuthService pddAuthService;
+
+ @Resource
+ private UserFunctionsLimitService userFunctionsLimitService;
@Resource
@@ -271,7 +287,8 @@
list.add(map.get(TYPE_FAQUAN));
list.add(map.get(TYPE_HUODONG));
// list.add(map.get(TYPE_XUEYUAN));
- list.add(map.get(TYPE_SUCAI));
+ // 涓嶈繑鍥炵礌鏉愪簡
+ // list.add(map.get(TYPE_SUCAI));
} else {
list.add(map.get(TYPE_FAQUAN));
}
@@ -643,6 +660,9 @@
}
for (GoodsEvaluate goodsEvaluate : list) {
+ if (goodsEvaluate.getGoods() != null) {
+ goodsEvaluate.getGoods().setCreatetime(null);
+ }
GoodsEvaluate evaluateNew = new GoodsEvaluate();
try {
PropertyUtils.copyProperties(evaluateNew, goodsEvaluate);
@@ -678,7 +698,7 @@
for (ImgInfo imgInfo : goodsEvaluate.getImgList()) {
- if (acceptData.getSystem() == SystemEnum.yhqjx) {
+ if (acceptData.getSystem() == SystemEnum.yhqjx || acceptData.getSystem() == SystemEnum.hsb) {
imgInfo.setGoods(null);
imgInfo.setGoodsVO(null);
}
@@ -822,6 +842,121 @@
}
+
+ /**
+ * 杞摼
+ *
+ * @param acceptData
+ * @param uid
+ * @param link
+ * @param out
+ */
+ @RequestMapping(value = "convertLink", method = RequestMethod.POST)
+ public void convertLink(AcceptData acceptData, Long uid, String link, PrintWriter out) {
+ if (StringUtil.isNullOrEmpty(link)) {
+ out.print(JsonUtil.loadFalseResult("閾炬帴涓虹┖"));
+ return;
+ }
+
+ ConvertLinkJumpVO convertLinkJumpVO = null;
+ //鍒ゆ柇result鏄惁涓烘窐鍙d护
+ List<String> urlList = UrlUtils.parseUrlsFromText(link);
+ if (urlList.size() > 0) {
+ //鍙鐞嗕含涓�/鎷煎澶氶摼鎺�
+ String url = urlList.get(0);
+ if (JDUtil.isJDLink(url)) {
+ try {
+ url = jdConvertLinkManager.convertShortUrl(url, uid, acceptData.getSystem(), uid == null ? SystemPIDInfo.PidType.coupon : SystemPIDInfo.PidType.fanli);
+ } catch (Exception e) {
+ logger.warn(String.format("浜笢杞摼鍑洪敊锛歮aterialId-%s",url), e);
+ }
+ convertLinkJumpVO = new ConvertLinkJumpVO(GoodsJumpUtil.getJDJumpInfo(url), Constant.SOURCE_TYPE_JD);
+ outPrintConvertResult(convertLinkJumpVO, out);
+ return;
+ }
+
+ if (PinDuoDuoUtil.isPDDLink(url)) {
+ String pddGoodsId = PinDuoDuoUtil.getPDDGoodsId(url);
+ String customParams = pddAuthService.getFanliCustomParams(uid);
+ PDDConvertLinkResultVO convertLinkResult = null;
+ try {
+ convertLinkResult = pddConvertLinkManager.convertGoods(pddGoodsId, acceptData.getSystem(), customParams, uid == null ? SystemPIDInfo.PidType.coupon : SystemPIDInfo.PidType.fanli);
+ convertLinkJumpVO = new ConvertLinkJumpVO(GoodsJumpUtil.getPDDJumpInfo(convertLinkResult), Constant.SOURCE_TYPE_PDD);
+ outPrintConvertResult(convertLinkJumpVO, out);
+ return;
+ } catch (PDDGoodsException e) {
+ e.printStackTrace();
+ //鍟嗗搧涓嬬嚎
+ out.print(JsonUtil.loadFalseResult(ExceptionConstant.CODE_GOODS_OFFLINE, "鍟嗗搧宸蹭笅绾�"));
+ return;
+ } catch (PDDAuthException e) {
+ e.printStackTrace();
+ //鎷煎澶氭湭鎺堟潈
+ out.print(JsonUtil.loadFalseResult(ExceptionConstant.CODE_AUTH_PDD_NO_AUTH, "鎷煎澶氬皻鏈巿鏉冿紝璇锋巿鏉�"));
+ return;
+ }
+ }
+
+
+ return;
+ }
+
+ List<String> tokenList = TaoBaoUtil.getTokenListFromTextWithKuoHao(link);
+ if (tokenList.size() > 0) {
+ //杩樺師鍙d护
+ try {
+ TaoKeApiUtil.TokenConvertResult convertResult = TaoKeApiUtil.tokenConvert(tokenList.get(0));
+ if (convertResult != null) {
+ String originUrl = convertResult.getOrigin_url();
+ String goodsId = convertResult.getNum_iid();
+ TaoBaoLink taoBaoLink = tbConvertLinkManager.convertGoods(goodsId, uid, acceptData.getSystem(), uid == null ? SystemPIDInfo.PidType.coupon : SystemPIDInfo.PidType.fanli);
+ convertLinkJumpVO = new ConvertLinkJumpVO(GoodsJumpUtil.getTBJumpInfo(taoBaoLink), Constant.SOURCE_TYPE_TAOBAO);
+ outPrintConvertResult(convertLinkJumpVO, out);
+ return;
+ } else {
+ throw new Exception("杞摼澶辫触");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ //杈撳嚭鍘熸潵鐨勬窐鍙d护
+ JSONObject root = new JSONObject();
+ root.put("data", new Gson().toJson(new ConvertLinkJumpVO(null, Constant.SOURCE_TYPE_TAOBAO)));
+ root.put("code", ExceptionConstant.CODE_JUMP_NO_SUPPORT);
+ out.print(root.toString());
+ return;
+ }
+
+ }
+ out.print(JsonUtil.loadFalseResult("涓嶆敮鎸佺殑绫诲瀷"));
+ }
+
+
+ private void outPrintConvertResult(ConvertLinkJumpVO vo, PrintWriter out) {
+ out.print(JsonUtil.loadTrueResult(new Gson().toJson(vo)));
+ }
+
+
+ /**
+ * 澶嶅埗鎺ㄨ崘璇�
+ *
+ * @param acceptData
+ * @param uid
+ * @param id
+ * @param out
+ */
+ @RequestMapping(value = "evaluateCopyRecommend", method = RequestMethod.POST)
+ public void evaluateCopyRecommend(AcceptData acceptData, Long uid, String id, PrintWriter out) {
+ GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id);
+ if (goodsEvaluate == null) {
+ out.print(JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
+ return;
+ }
+ JSONObject data = new JSONObject();
+ String result = GoodsTextUtil.decodeAppHtmlText(goodsEvaluate.getTitle());
+ data.put("content", result);
+ out.print(JsonUtil.loadTrueResult(data));
+ }
+
/**
* @param acceptData
* @param uid
@@ -866,6 +1001,13 @@
out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
return;
}
+
+
+ if (userFunctionsLimitService.isLimit(uid, SystemFunction.share, new Date())) {
+ out.print(JsonUtil.loadFalseResult(1, "璇ュ姛鑳介檺鍒朵娇鐢�"));
+ return;
+ }
+
UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
String relationId = null;
@@ -1006,7 +1148,7 @@
if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
TaoBaoLink taoBaoLink = null;
try {
- taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(system, user.getId(), Long.parseLong(goodsVO.getGoodsId()),
+ taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(system, user.getId(),goodsVO.getGoodsId(),
relationId, null);
} catch (TaoBaoConvertLinkException e) {
e.printStackTrace();
@@ -1026,10 +1168,14 @@
couponUrl = couponInfo.getLink();
}
String materialId = "https://item.jd.com/" + goodsVO.getGoodsId() + ".html";
- jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, pidManager.getPidCache(system, Constant.SOURCE_TYPE_JD, SystemPIDInfo.PidType.share),
- user.getId() + "");
+ try {
+ jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, pidManager.getPidCache(system, Constant.SOURCE_TYPE_JD, SystemPIDInfo.PidType.share),
+ user.getId() + "");
+ } catch (Exception e) {
+ logger.warn(String.format("浜笢杞摼鍑洪敊锛歮aterialId-%s couponUrl-%s",materialId,couponUrl), e);
+ }
} else if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_PDD) {
- PDDGoodsDetail pddGoodsDetail = PinDuoDuoApiUtil.getGoodsDetail(Long.parseLong(goodsVO.getGoodsId()));
+ PDDGoodsDetail pddGoodsDetail = PinDuoDuoApiUtil.getGoodsDetail(goodsVO.getGoodsId());
if (pddGoodsDetail == null) {
return null;
}
@@ -1077,6 +1223,11 @@
return;
}
+ if (userFunctionsLimitService.isLimit(uid, SystemFunction.share, new Date())) {
+ out.print(JsonUtil.loadFalseResult(1, "璇ュ姛鑳介檺鍒朵娇鐢�"));
+ return;
+ }
+
UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
String relationId = null;
if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null
@@ -1102,11 +1253,23 @@
}
String newText = text; // 闈為�氱敤鍒搁渶瑕侀獙璇�
+
+ //鐗逛环鍙渶瑕佸鍒舵枃瀛楋紝涓嶉渶瑕佽浆閾�
+ if (acceptData.getSystem() == SystemEnum.yhqjx || acceptData.getSystem() == SystemEnum.hsb) {
+ newText = GoodsTextUtil.decodeAppHtmlText(newText);
+ //鍙鍒舵枃瀛�
+ JSONObject data = new JSONObject();
+ data.put("text", newText);
+ out.print(JsonUtil.loadTrueResult(data));
+ return;
+ }
+
+
if (comment != null && (comment.getNeedSpin() == null || comment.getNeedSpin())) {
try {
newText = convertLinkManager.convertLinkFromText(acceptData.getSystem(), text, uid, true, true);
- } catch (ConvertLinkExceptionException e) {
- if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
+ } catch (ConvertLinkException e) {
+ if (e.getCode() != ConvertLinkException.CODE_NONE) {
out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
return;
}
@@ -1189,8 +1352,8 @@
if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) {
try {
newText = convertLinkManager.convertLinkFromText(acceptData.getSystem(), text, uid, true, true);
- } catch (ConvertLinkExceptionException e) {
- if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
+ } catch (ConvertLinkException e) {
+ if (e.getCode() != ConvertLinkException.CODE_NONE) {
out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
return;
}
@@ -1258,7 +1421,7 @@
int platformCode = Constant.getPlatformCode(acceptData.getPlatform());
jumpDetail = jumpDetailV2Service.getByTypeCache("web", platformCode,
- Integer.parseInt(acceptData.getVersion()));
+ Integer.parseInt(acceptData.getVersion()), acceptData.getSystem());
JSONObject inner = new JSONObject();
inner.put("url", jumpLink);
params = inner.toString();
@@ -1384,8 +1547,8 @@
if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) {
try {
newText = convertLinkManager.convertLinkFromText(acceptData.getSystem(), text, uid, true, true);
- } catch (ConvertLinkExceptionException e) {
- if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
+ } catch (ConvertLinkException e) {
+ if (e.getCode() != ConvertLinkException.CODE_NONE) {
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
return;
}
@@ -1536,8 +1699,8 @@
}
imgUrl = createActivityShareImg(type, id, erCodeContent);
- } catch (ConvertLinkExceptionException e) {
- if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
+ } catch (ConvertLinkException e) {
+ if (e.getCode() != ConvertLinkException.CODE_NONE) {
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
return;
}
@@ -1613,8 +1776,8 @@
if (comment != null && (comment.getNeedSpin() == null || comment.getNeedSpin())) {
try {
newText = convertLinkManager.convertLinkFromText(acceptData.getSystem(), text, uid, true, true);
- } catch (ConvertLinkExceptionException e) {
- if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
+ } catch (ConvertLinkException e) {
+ if (e.getCode() != ConvertLinkException.CODE_NONE) {
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
return;
}
--
Gitblit v1.8.0