From 2e9aa4267b4e6df56ab3166d72ab9edf87322ef7 Mon Sep 17 00:00:00 2001
From: yj <Administrator@192>
Date: 星期四, 05 三月 2020 22:22:01 +0800
Subject: [PATCH] 发圈

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java |  158 +++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 123 insertions(+), 35 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 48eba2c..0a2512b 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
@@ -43,6 +43,7 @@
 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.goods.ConvertLinkExceptionException;
 import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.activity.ActivityUserService;
@@ -482,6 +483,42 @@
 		}
 	}
 
+	
+	private String createTokenAndLink(GoodsDetailVO goodsDetailVO) throws Exception {
+		String commentText = "";
+		if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
+			TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsDetailVO.getGoodsId(), "0");
+			String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
+			commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
+		} else if (goodsDetailVO.getGoodsType()  == Constant.SOURCE_TYPE_JD) {
+			String couponUrl = null;
+			
+			JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsDetailVO.getGoodsId());
+			JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods);
+			if (couponInfo != null) {
+				couponUrl = couponInfo.getLink();
+			}
+			String materialId = "https://item.jd.com/" + goodsDetailVO.getGoodsId() + ".html";
+			String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "","1");
+			String template = configService.get(ConfigKeyEnum.quickShareJDCommentText.getKey());
+			commentText = template.replace("[閾炬帴]", jumpLink);			
+		} else if (goodsDetailVO.getGoodsType()  == Constant.SOURCE_TYPE_PDD) {
+			String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsDetailVO.getGoodsId(), PinDuoDuoApiUtil.PID_SHARE + "", "1");
+			String template = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey());
+			commentText = template.replace("[閾炬帴]", jumpLink);
+		}
+		
+		commentText = commentText.replace("[鍘熶环]", goodsDetailVO.getZkPrice().toString());
+		if (!goodsDetailVO.isHasCoupon()) {
+			commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
+			commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
+		} else {
+			commentText = commentText.replace("[鍒稿悗浠穄", goodsDetailVO.getCouponPrice().toString());
+		}
+		
+		return commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
+	}
+	
 	public GoodsDetailVO getGoodsDetailVO(Long goodsId, Integer goodsType) throws GoodsEvaluateException {
 		GoodsDetailVO goodsDetail = null;
 		BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
@@ -706,6 +743,68 @@
 		}
 	}
 
+	
+	@Override
+	public void saveGoodsComment(String id, int kind, List<CommentInfo> comments) throws GoodsEvaluateException, Exception {
+		if (comments == null || comments.size() == 0 ) {
+			throw new GoodsEvaluateException(1, "鍐呭涓嶈兘涓虹┖");
+		}
+
+		GoodsEvaluate resultObj = goodsEvaluateDao.getById(id);
+		if (resultObj == null)
+			throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
+		
+		GoodsDetailVO goods = resultObj.getGoods();
+		if(kind == 1 && goods == null) {
+			throw new GoodsEvaluateException(1, "璇峰厛褰曞叆鍟嗗搧淇℃伅");
+		}
+
+		CommentInfo currencyCoupon = null;
+		List<CommentInfo> oldComments = resultObj.getComments();
+		if (oldComments != null) {
+			for (int i =0;i < oldComments.size(); i ++) {
+				CommentInfo info = oldComments.get(i);
+				if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) {
+					currencyCoupon = info;
+					continue;
+				} 
+			}
+		}
+		
+		List<CommentInfo> newList = new ArrayList<>();
+		for (int i =0;i < comments.size(); i ++) {
+			CommentInfo commentInfo =  comments.get(i);
+			String content = commentInfo.getContent();
+			if (StringUtil.isNullOrEmpty(content)) {
+				if (i == 0 && kind == 1) {
+					content = createTokenAndLink(goods);
+				} else {
+					continue;
+				}
+			} else if (i == 0 && kind == 1) {
+				try {
+					convertLinkManager.convertLinkFromText(content, Constant.LINK_TOKEN_VERIFY_UID, true);
+				} catch (Exception e) {
+					throw new GoodsEvaluateException(1, "涓嶅寘鍚彲杞摼鐨勫彛浠や笌閾炬帴");
+				}
+			}
+			
+			if (StringUtil.isNullOrEmpty(commentInfo.getId())) {
+				commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
+			}
+			
+			commentInfo.setType(commentInfo.getTags());
+			commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
+			newList.add(commentInfo);
+		} 
+		if (currencyCoupon != null) {
+			comments.add(currencyCoupon);
+		}
+
+		resultObj.setComments(comments);
+		goodsEvaluateDao.save(resultObj);
+	}
+	
 	@Override
 	public void saveGoodsCoupon(String pid, String content) throws GoodsEvaluateException, Exception {
 		if (StringUtil.isNullOrEmpty(pid)) {
@@ -747,7 +846,7 @@
 				commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
 			}
 			commentInfo.setContent(content);
-			commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
+			commentInfo.setType(commentInfo.getTags());
 			commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
 			comments.add(commentInfo);
 		}
@@ -761,7 +860,7 @@
 	}
 
 	@Override
-	public void saveSingleGoodsCoupon(String pid, CommentInfo commentInfo) throws GoodsEvaluateException, Exception {
+	public void saveCurrencyCoupon(String pid, int kind, CommentInfo commentInfo) throws GoodsEvaluateException, Exception {
 		if (StringUtil.isNullOrEmpty(pid)) {
 			throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅");
 		}
@@ -773,7 +872,6 @@
 		if (StringUtil.isNullOrEmpty(commentInfo.getTagDesc())) {
 			throw new GoodsEvaluateException(1, "鎻忚堪璇笉鑳戒负绌�");
 		}
-		
 		
 		String tagUrl = commentInfo.getTagUrl();
 		String content = commentInfo.getContent();
@@ -793,11 +891,15 @@
 			throw new GoodsEvaluateException(1, "璇峰~鍐欏埜鎴鏃堕棿");
 		}
 		
-		if(!StringUtil.isNullOrEmpty(content)) {
+		if(!StringUtil.isNullOrEmpty(content) && kind != 3) { // 娲诲姩涓嶉獙璇�
 			try {
-				convertLinkManager.convertLinkFromText(content, 1L, true);
+				convertLinkManager.convertLinkFromText(content, Constant.LINK_TOKEN_VERIFY_UID, true);
+			} catch (ConvertLinkExceptionException e) {
+				if (ConvertLinkExceptionException.CODE_NONE != e.getCode()) {
+					throw new GoodsEvaluateException(1, "鍖呭惈涓嶅彲杞摼鐨勫彛浠や笌閾炬帴");
+				}
 			} catch (Exception e) {
-				throw new GoodsEvaluateException(1, "涓嶅寘鍚彲杞摼鐨勫彛浠や笌閾炬帴");
+				throw new GoodsEvaluateException(1, "鍖呭惈涓嶅彲杞摼鐨勫彛浠や笌閾炬帴");
 			}
 		}
 		
@@ -805,22 +907,17 @@
 		if (resultObj == null)
 			throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
 
-		CommentInfo goodsCoupon = null;
+		List<CommentInfo> comments = new ArrayList<>();
 		CommentInfo currencyCoupon = null;
 		List<CommentInfo> oldComments = resultObj.getComments();
 		if (oldComments != null) {
 			for (CommentInfo info : oldComments) {
 				if (CommentInfoEnum.goodsCoupon == info.getTypeEnum()) {
-					goodsCoupon = info;
+					comments.add(info);
 				} else if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) {
 					currencyCoupon = info;
 				}
 			}
-		}
-
-		List<CommentInfo> comments = new ArrayList<>();
-		if (goodsCoupon != null) {
-			comments.add(goodsCoupon);
 		}
 
 		if (commentInfo != null) {
@@ -831,12 +928,7 @@
 			}
 			// 鍒哥被鍨�
 			
-			String tags = commentInfo.getTags();
-			if (StringUtil.isNullOrEmpty(tags)) {
-				commentInfo.setType(CommentInfoEnum.currencyCoupon.getDesc());
-			} else {
-				commentInfo.setType(tags);
-			}
+			commentInfo.setType(commentInfo.getTags());
 			commentInfo.setTypeEnum(CommentInfoEnum.currencyCoupon);
 			
 			// 鏍囩淇℃伅
@@ -861,7 +953,6 @@
 		}
 
 		resultObj.setComments(comments);
-
 		goodsEvaluateDao.save(resultObj);
 	}
 
@@ -1350,18 +1441,6 @@
 				
 				for (CommentInfo commentInfo: comments) {
 					comment ++;
-					String typeCoupon = commentInfo.getType();
-					if (StringUtil.isNullOrEmpty(typeCoupon)) {
-						if (commentInfo.getTypeEnum() == null) {
-							commentInfo.setType("");
-						} else {
-							commentInfo.setType(commentInfo.getTypeEnum().getDesc());
-						}
-					} else if (typeCoupon.equals(CommentInfoEnum.goodsCoupon.name())) {
-						commentInfo.setType("鍟嗗搧浼樻儬鍒�");
-					} else if (typeCoupon.equals(CommentInfoEnum.currencyCoupon.name())) {
-						commentInfo.setType("閫氱敤浼樻儬鍒�");
-					}
 					
 					CommentInfoEnum typeComment = commentInfo.getTypeEnum();
 					if (typeComment != null && typeComment ==CommentInfoEnum.goodsCoupon) {
@@ -1372,27 +1451,28 @@
 						}
 					}
 					
-					
 					String coupon = commentInfo.getCoupon();
 					String endTime = commentInfo.getEndTime();
 					if (!StringUtil.isNullOrEmpty(coupon) && !StringUtil.isNullOrEmpty(endTime)) {
 						Date endDay = sdf.parse(endTime);
 						if (endDay.getTime() > now.getTime()) {
-							int daysBetween = DateUtil.daysBetween(endDay, now);
+							int daysBetween = DateUtil.daysBetween(now, endDay);
 							if (daysBetween > 0) {
 								ClientTextStyleVO styleVO = new ClientTextStyleVO();
 								styleVO.setColor("#E5005C");
 								styleVO.setContent(daysBetween + "澶╁悗杩囨湡");
-								styleVO.setContent(coupon);
 								
 								List<ClientTextStyleVO> tagList = commentInfo.getTagList();
 								tagList.add(styleVO);
 								commentInfo.setTagList(tagList);
 								
 								commentNew.add(commentInfo);
+								continue;
 							}
 						}
 					}
+					
+					commentNew.add(commentInfo);
 				}
 				goodsEvaluate.setComments(commentNew);
 				
@@ -1566,6 +1646,14 @@
 
 	@Override
 	public void addGoodsEvaluateByDynamicInfo(DynamicInfo info) {
+		if (1 > 0) {
+			return; // 鏆備笉鍚敤鑷姩鐢熸垚
+		}
+		
+		if (info == null) {
+			return;
+		}
+		
 		try {
 			GoodsEvaluate goodsEvaluate = new GoodsEvaluate();
 			goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", ""));

--
Gitblit v1.8.0