From b416c2ffd263ca9d191fc1109bd72d10f8c5176d Mon Sep 17 00:00:00 2001
From: yj <Administrator@192>
Date: 星期三, 04 三月 2020 14:19:11 +0800
Subject: [PATCH] Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java |  180 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 146 insertions(+), 34 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 cc9edc0..4843754 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
@@ -3,6 +3,7 @@
 import java.awt.image.BufferedImage;
 import java.io.InputStream;
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
@@ -19,6 +20,7 @@
 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.yeshi.fanli.dao.dynamic.GoodsEvaluateDao;
@@ -48,6 +50,7 @@
 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.service.manger.goods.ConvertLinkManager;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.FilePathEnum;
 import com.yeshi.fanli.util.RedisManager;
@@ -93,6 +96,9 @@
 	@Resource
 	private ShareGoodsService shareGoodsService;
 	
+	@Resource
+	private ConvertLinkManager convertLinkManager;
+	
 	
 
 	@Override
@@ -106,7 +112,7 @@
 		if (StringUtil.isNullOrEmpty(tilte)) {
 			throw new GoodsEvaluateException(1, "鎺ㄨ崘璇笉鑳戒负绌�");
 		}
-
+		
 		try {
 			ActivityUser activityUser = activityUserService.getActivityUserByNickName(record.getUser(), file);
 			if (activityUser == null)
@@ -342,17 +348,15 @@
 				if (picNum - 1 == i) {
 					imgInfo0.setType(ImgEnum.goods);
 					SimpleGoods simpleGoods = new SimpleGoods();
+					simpleGoods.setState(goodsDetailVO.getState());
 					simpleGoods.setGoodsId(goodsId);
 					simpleGoods.setGoodsType(goodsType);
-					simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
 					CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo();
 					if (couponInfo == null) {
 						simpleGoods.setPrice(goodsDetailVO.getZkPrice());
-						simpleGoods.setState(1);
 					} else {
 						simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
 						simpleGoods.setAmount(couponInfo.getAmount());
-						simpleGoods.setState(0);
 					}
 					imgInfo0.setGoods(simpleGoods);
 					imgInfo0.setGoodsVO(goodsDetailVO);
@@ -400,23 +404,21 @@
 		List<CommentInfo> comments = resultObj.getComments();
 		if (comments != null) {
 			for (CommentInfo commentInfo: comments) {
-				if (commentInfo.getType() == CommentInfoEnum.goodsCoupon) {
+				if (commentInfo.getTypeEnum() == 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);
+				TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsId, "0");
 				String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
 				commentText = template.replace("[鍙d护]", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
 			} else if (goodsType == Constant.SOURCE_TYPE_JD) {
@@ -426,11 +428,11 @@
 					couponUrl = couponInfo.getLink();
 				}
 				String materialId = "https://item.jd.com/" + goodsId + ".html";
-				String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "","0");
+				String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "","1");
 				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 jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsId, PinDuoDuoApiUtil.PID_SHARE + "", "1");
 				String template = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey());
 				commentText = template.replace("[閾炬帴]", jumpLink);
 			}
@@ -443,10 +445,13 @@
 				commentText = commentText.replace("[鍒稿悗浠穄", goodsDetailVO.getCouponPrice().toString());
 			}
 			
+			commentText =commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
+
+			
 			CommentInfo commentInfo = new CommentInfo();
 			commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
 			commentInfo.setContent(commentText);
-			commentInfo.setType(CommentInfoEnum.goodsCoupon);
+			commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
 			commentsNew.add(commentInfo);
 			resultObj.setComments(commentsNew);
 		}
@@ -597,18 +602,19 @@
 					imgInfo0.setType(ImgEnum.goods);
 
 					SimpleGoods simpleGoods = new SimpleGoods();
+					simpleGoods.setState(goodsDetailVO.getState());
 					simpleGoods.setGoodsId(goodsDetailVO.getGoodsId());
 					simpleGoods.setGoodsType(goodsDetailVO.getGoodsType());
-					simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
 					CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo();
 					if (couponInfo == null) {
-						simpleGoods.setState(1);
+						simpleGoods.setPrice(goodsDetailVO.getZkPrice());
 					} else {
+						simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
 						simpleGoods.setAmount(couponInfo.getAmount());
-						simpleGoods.setState(0);
 					}
 					imgInfo0.setGoods(simpleGoods);
 					imgInfo0.setGoodsVO(goodsDetailVO);
+					
 					listImg.add(imgInfo0);
 					totalImg++;
 				}
@@ -681,7 +687,7 @@
 	}
 
 	@Override
-	public void saveGoodsCoupon(String pid, String tags, String content) throws GoodsEvaluateException, Exception {
+	public void saveGoodsCoupon(String pid, String content) throws GoodsEvaluateException, Exception {
 		if (StringUtil.isNullOrEmpty(pid)) {
 			throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅");
 		}
@@ -695,9 +701,9 @@
 		List<CommentInfo> oldComments = resultObj.getComments();
 		if (oldComments != null) {
 			for (CommentInfo info : oldComments) {
-				if (CommentInfoEnum.goodsCoupon == info.getType()) {
+				if (CommentInfoEnum.goodsCoupon == info.getTypeEnum()) {
 					goodsCoupon = info;
-				} else if (CommentInfoEnum.currencyCoupon == info.getType()) {
+				} else if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) {
 					currencyCoupon = info;
 				}
 			}
@@ -712,7 +718,8 @@
 				commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
 			}
 			commentInfo.setContent(content);
-			commentInfo.setType(CommentInfoEnum.goodsCoupon);
+			commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
+			commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
 			comments.add(commentInfo);
 		}
 
@@ -729,7 +736,39 @@
 		if (StringUtil.isNullOrEmpty(pid)) {
 			throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅");
 		}
+		
+		if (StringUtil.isNullOrEmpty(commentInfo.getCoupon())) {
+			throw new GoodsEvaluateException(1, "鍒搁潰棰濅笉鑳戒负绌�");
+		}
+		
+		if (StringUtil.isNullOrEmpty(commentInfo.getTagDesc())) {
+			throw new GoodsEvaluateException(1, "鎻忚堪璇笉鑳戒负绌�");
+		}
+		
+		String tagUrl = commentInfo.getTagUrl();
+		String content = commentInfo.getContent();
+		if (StringUtil.isNullOrEmpty(tagUrl) && StringUtil.isNullOrEmpty(content) ) {
+			throw new GoodsEvaluateException(1, "璇勮璇拰閾炬帴涓嶈兘鍚屾椂涓虹┖");
+		}
 
+		String endTime = commentInfo.getEndTime();
+		if (!StringUtil.isNullOrEmpty(endTime)) {
+			try {
+				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+				sdf.parse(endTime);
+			} catch (Exception e) {
+				throw new GoodsEvaluateException(1, "璇峰~鍐欐纭殑鏃堕棿鏍煎紡锛�2020-03-05");
+			}
+		}
+		
+		if(!StringUtil.isNullOrEmpty(content)) {
+			try {
+				convertLinkManager.convertLinkFromText(content, 1L, true);
+			} catch (Exception e) {
+				throw new GoodsEvaluateException(1, "杞摼澶辫触");
+			}
+		}
+		
 		GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid);
 		if (resultObj == null)
 			throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
@@ -739,9 +778,9 @@
 		List<CommentInfo> oldComments = resultObj.getComments();
 		if (oldComments != null) {
 			for (CommentInfo info : oldComments) {
-				if (CommentInfoEnum.goodsCoupon == info.getType()) {
+				if (CommentInfoEnum.goodsCoupon == info.getTypeEnum()) {
 					goodsCoupon = info;
-				} else if (CommentInfoEnum.currencyCoupon == info.getType()) {
+				} else if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) {
 					currencyCoupon = info;
 				}
 			}
@@ -758,8 +797,16 @@
 			} else {
 				commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
 			}
-			commentInfo.setType(CommentInfoEnum.currencyCoupon);
-
+			// 鍒哥被鍨�
+			
+			String tags = commentInfo.getTags();
+			if (StringUtil.isNullOrEmpty(tags)) {
+				commentInfo.setType(CommentInfoEnum.currencyCoupon.getDesc());
+			} else {
+				commentInfo.setType(tags);
+			}
+			commentInfo.setTypeEnum(CommentInfoEnum.currencyCoupon);
+			
 			// 鏍囩淇℃伅
 			List<ClientTextStyleVO> tagList = new ArrayList<>();
 			String couponSource = commentInfo.getCouponSource();
@@ -1244,15 +1291,69 @@
 
 	@Override
 	@Cacheable(value = "dynamicCache", key = "'queryMaterialsCache-'+#start+'-'+#type")
-	public List<GoodsEvaluate> queryMaterialsCache(int start, int count, int type) {
+	public List<GoodsEvaluate> queryMaterialsCache(int start, int count, int type) throws Exception {
 		List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(start, count, type);
+		
+		List<GoodsEvaluate> listOBJ = list;
 		// 鏇存柊鍟嗗搧淇℃伅
 		executor.execute(new Runnable() {
 			@Override
 			public void run() {
-				updateGoodInfo(list);
+				updateGoodInfo(listOBJ);
 			}
 		});
+
+		if (list == null) {
+			list = new ArrayList<>();
+		}
+		
+		for (GoodsEvaluate goodsEvaluate: list) {
+			List<CommentInfo> comments = goodsEvaluate.getComments();
+			if (comments != null) {
+				Date now = new Date();
+				for (CommentInfo commentInfo: comments) {
+					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("閫氱敤浼樻儬鍒�");
+					}
+					
+					String coupon = commentInfo.getCoupon();
+					String endTime = commentInfo.getEndTime();
+					if (!StringUtil.isNullOrEmpty(coupon) && !StringUtil.isNullOrEmpty(endTime)) {
+						
+						SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+						Date endDay = sdf.parse(endTime);
+						if (endDay.getTime() <= now.getTime()) {
+							continue;
+						}
+						
+						int daysBetween = DateUtil.daysBetween(endDay, now);
+						if (daysBetween <= 0) {
+							continue;
+						}
+						
+						ClientTextStyleVO styleVO = new ClientTextStyleVO();
+						styleVO.setColor("#E5005C");
+						styleVO.setContent(daysBetween + "澶╁悗杩囨湡");
+						styleVO.setContent(coupon);
+						
+						List<ClientTextStyleVO> tagList = commentInfo.getTagList();
+						tagList.add(styleVO);
+						
+						commentInfo.setTagList(tagList);
+					}
+				}
+			}
+		}
+		
 		return list;
 	}
 
@@ -1296,8 +1397,12 @@
 				GoodsDetailVO goods = goodsEvaluate.getGoods();
 				if (goods != null) {
 					GoodsDetailVO goodsNew = getGoodsNewInfo(goods.getGoodsId(), goods.getGoodsType(), paramsDTO);
-					if (goodsNew != null)
+					if (goodsNew != null) {
 						goodsEvaluate.setGoods(goodsNew);
+					} else {
+						goods.setState(1);
+						goodsEvaluate.setGoods(goods);
+					}
 				}
 				// 鏇存柊鍟嗗搧淇℃伅
 				List<ImgInfo> imgList = goodsEvaluate.getImgList();
@@ -1318,14 +1423,20 @@
 						CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo();
 						if (couponInfo == null) {
 							simpleGoods.setPrice(goodsDetailVO.getZkPrice());
-							simpleGoods.setState(1);
 						} else {
 							simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
 							simpleGoods.setAmount(couponInfo.getAmount());
-							simpleGoods.setState(0);
 						}
 						imgInfo.setGoods(simpleGoods);
 						imgInfo.setGoodsVO(goodsDetailVO);
+					} else {
+						simpleGoods.setState(1);
+						imgInfo.setGoods(simpleGoods);
+						GoodsDetailVO goodsVO = imgInfo.getGoodsVO();
+						if (goodsVO != null) {
+							goodsVO.setState(1);
+							imgInfo.setGoodsVO(goodsVO);
+						}
 					}
 				}
 
@@ -1400,13 +1511,11 @@
 					SimpleGoods simpleGoods = new SimpleGoods();
 					simpleGoods.setGoodsId(goodsVO.getGoodsId());
 					simpleGoods.setGoodsType(goodsVO.getGoodsType());
-
+					simpleGoods.setState(goodsVO.getState());
 					CouponInfoVO couponInfo = goodsVO.getCouponInfo();
 					if (couponInfo == null) {
-						simpleGoods.setState(0);
 						simpleGoods.setPrice(goodsVO.getZkPrice());
 					} else {
-						simpleGoods.setState(goodsVO.getState());
 						simpleGoods.setPrice(goodsVO.getCouponPrice());
 						simpleGoods.setAmount(couponInfo.getAmount());
 					}
@@ -1414,7 +1523,7 @@
 					goodsEvaluate.setGoods(goodsVO);
 					
 					
-					TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(0L, goodsVO.getGoodsId(), null);
+					TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsVO.getGoodsId(), null);
 					String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
 					String commentText = template.replace("[鍙d护]", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
 				
@@ -1425,11 +1534,14 @@
 					} else {
 						commentText = commentText.replace("[鍒稿悗浠穄", goodsVO.getCouponPrice().toString());
 					}
+					commentText =commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
+
 					
 					CommentInfo commentInfo = new CommentInfo();
 					commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
 					commentInfo.setContent(commentText);
-					commentInfo.setType(CommentInfoEnum.goodsCoupon);
+					commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
+					commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
 					
 					List<CommentInfo> commentsNew = new ArrayList<>();
 					commentsNew.add(commentInfo);

--
Gitblit v1.8.0