From 306345e91a05dfbdf6ced32cf0cfc3f378aaac4d Mon Sep 17 00:00:00 2001
From: Administrator <Administrator@MS-20170306HGUF>
Date: 星期五, 28 二月 2020 11:57:14 +0800
Subject: [PATCH] 发圈画图+添加评论

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java |  141 +++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 118 insertions(+), 23 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
index a00ead7..08bc284 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
@@ -2,11 +2,8 @@
 
 import java.awt.image.BufferedImage;
 import java.io.InputStream;
-import java.io.PrintWriter;
-import java.lang.reflect.Type;
 import java.math.BigDecimal;
 import java.util.ArrayList;
-import java.util.Calendar;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Date;
@@ -22,25 +19,16 @@
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.yeshi.utils.DateUtil;
-import org.yeshi.utils.JsonUtil;
 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.dao.dynamic.GoodsEvaluateDao;
 import com.yeshi.fanli.dto.ConfigParamsDTO;
+import com.yeshi.fanli.dto.jd.JDCouponInfo;
 import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
-import com.yeshi.fanli.entity.accept.AcceptData;
 import com.yeshi.fanli.entity.bus.activity.ActivityUser;
-import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
-import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.entity.dynamic.CommentInfo;
-import com.yeshi.fanli.entity.dynamic.DynamicInfo;
 import com.yeshi.fanli.entity.dynamic.CommentInfo.CommentInfoEnum;
+import com.yeshi.fanli.entity.dynamic.DynamicInfo;
 import com.yeshi.fanli.entity.dynamic.GoodsEvaluate;
 import com.yeshi.fanli.entity.dynamic.GoodsEvaluate.EvaluateEnum;
 import com.yeshi.fanli.entity.dynamic.GoodsPicture;
@@ -48,13 +36,17 @@
 import com.yeshi.fanli.entity.dynamic.ImgInfo.ImgEnum;
 import com.yeshi.fanli.entity.dynamic.SimpleGoods;
 import com.yeshi.fanli.entity.jd.JDGoods;
+import com.yeshi.fanli.entity.system.ConfigKeyEnum;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.fanli.entity.taobao.TaoBaoLink;
 import com.yeshi.fanli.exception.dynamic.ActivityUserException;
 import com.yeshi.fanli.exception.dynamic.GoodsEvaluateException;
 import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.activity.ActivityUserService;
+import com.yeshi.fanli.service.inter.config.ConfigService;
 import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService;
+import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
 import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.FilePathEnum;
@@ -63,11 +55,13 @@
 import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
 import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil;
 import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
+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.taobao.TaoBaoUtil;
 import com.yeshi.fanli.vo.goods.CouponInfoVO;
 import com.yeshi.fanli.vo.goods.GoodsDetailVO;
 import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
-
-import net.sf.json.JSONObject;
 
 @Service
 public class GoodsEvaluateServiceImpl implements GoodsEvaluateService {
@@ -92,6 +86,14 @@
 
 	@Resource
 	private PinDuoDuoCacheUtil pinDuoDuoCacheUtil;
+	
+	@Resource
+	private ConfigService configService;
+	
+	@Resource
+	private ShareGoodsService shareGoodsService;
+	
+	
 
 	@Override
 	public String saveHead(MultipartFile file, GoodsEvaluate record) throws GoodsEvaluateException {
@@ -205,17 +207,18 @@
 		List<String> listOld = new ArrayList<String>();
 
 		// 澶勭悊鍥剧墖
+		GoodsDetailVO oldGoodsVO = null;
 		List<ImgInfo> resultList = resultObj.getImgList();
 		if (resultList != null && resultList.size() > 0) {
 			for (ImgInfo info : resultList) {
 				ImgEnum type = info.getType();
 				if (type == ImgEnum.video) {
 					imgVideo = info;
-				} else if (type == ImgEnum.goods || type == ImgEnum.img) {
-					String url = info.getUrl();
-					if (!StringUtil.isNullOrEmpty(url)) {
-						listOld.add(url);
-					}
+				} else if (type == ImgEnum.goods ) {
+					listOld.add(info.getUrl());
+					oldGoodsVO = info.getGoodsVO();
+				} else if (type == ImgEnum.img){
+					listOld.add(info.getUrl());
 				}
 			}
 		}
@@ -298,8 +301,28 @@
 			picNum = 1;
 		}
 
-		GoodsDetailVO goodsDetailVO = getGoodsDetailVO(goodsId, goodsType);
-		;
+		GoodsDetailVO goodsDetailVO = null;
+		JDGoods jdGoods = null;
+		PDDGoodsDetail pddGoods = null;
+		BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
+		BigDecimal shareRate = hongBaoManageService.getShareRate();
+		BigDecimal vipFanLiRate = hongBaoManageService.getVIPFanLiRate();
+		ConfigParamsDTO params = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE, vipFanLiRate);
+		if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
+			try {
+				TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
+				goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, params);
+			} catch (TaobaoGoodsDownException e) {
+				throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�");
+			}
+		} else if (goodsType == Constant.SOURCE_TYPE_JD) {
+			jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
+			goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(jdGoods, params);
+		} else if (goodsType == Constant.SOURCE_TYPE_PDD) {
+			pddGoods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
+			goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(pddGoods, params);
+		}
+		
 		if (goodsDetailVO == null) {
 			throw new GoodsEvaluateException(1, "璇ュ晢鍝佷俊鎭笉瀛樺湪");
 		}
@@ -371,6 +394,59 @@
 		resultObj.setGoods(goodsDetailVO);
 		resultObj.setMainPicNum(picNum);
 		resultObj.setImgList(listImg);
+		
+		boolean addComment = true;
+		List<CommentInfo> commentsNew = new ArrayList<>();
+		List<CommentInfo> comments = resultObj.getComments();
+		if (comments != null) {
+			for (CommentInfo commentInfo: comments) {
+				if (commentInfo.getType() == CommentInfoEnum.goodsCoupon) {
+					if (oldGoodsVO != null && oldGoodsVO.getGoodsId().longValue() == goodsId.longValue() 
+							&& oldGoodsVO.getGoodsType() == goodsType) {
+						addComment = true;
+					} else {
+						addComment = false;
+					}
+					continue;
+				} 
+				commentsNew.add(commentInfo);
+			}
+		}
+		
+		if (addComment) {
+			String commentText = "";
+			if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
+				TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(0L, goodsId, null);
+				String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
+				commentText = template.replace("[鍙d护]", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
+			} else if (goodsType == Constant.SOURCE_TYPE_JD) {
+				String couponUrl = null;
+				JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods);
+				if (couponInfo != null) {
+					couponUrl = couponInfo.getLink();
+				}
+				String materialId = "https://item.jd.com/" + goodsId + ".html";
+				String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "","0");
+				String template = configService.get(ConfigKeyEnum.quickShareJDCommentText.getKey());
+				commentText = template.replace("[閾炬帴]", jumpLink);			
+			} else if (goodsType == Constant.SOURCE_TYPE_PDD) {
+				String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsId, PinDuoDuoApiUtil.PID_SHARE + "", "0");
+				String template = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey());
+				commentText = template.replace("[閾炬帴]", jumpLink);
+			}
+			
+			commentText = commentText.replace("[鍘熶环]", goodsDetailVO.getZkPrice().toString());
+			if (!goodsDetailVO.isHasCoupon()) {
+				commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
+			} 
+			
+			CommentInfo commentInfo = new CommentInfo();
+			commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
+			commentInfo.setContent(commentText);
+			commentInfo.setType(CommentInfoEnum.goodsCoupon);
+			commentsNew.add(commentInfo);
+			resultObj.setComments(commentsNew);
+		}
 		goodsEvaluateDao.save(resultObj);
 
 		// 鍒犻櫎鍥剧墖
@@ -1333,6 +1409,25 @@
 					}
 					imgInfo.setGoods(simpleGoods);
 					goodsEvaluate.setGoods(goodsVO);
+					
+					
+					TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(0L, goodsVO.getGoodsId(), null);
+					String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
+					String commentText = template.replace("[鍙d护]", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
+				
+					commentText = commentText.replace("[鍘熶环]", goodsVO.getZkPrice().toString());
+					if (!goodsVO.isHasCoupon()) {
+						commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
+					} 
+					
+					CommentInfo commentInfo = new CommentInfo();
+					commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
+					commentInfo.setContent(commentText);
+					commentInfo.setType(CommentInfoEnum.goodsCoupon);
+					
+					List<CommentInfo> commentsNew = new ArrayList<>();
+					commentsNew.add(commentInfo);
+					goodsEvaluate.setComments(commentsNew);
 				}
 				imgList.add(imgInfo);
 			}

--
Gitblit v1.8.0