From ee1d39f11b9483b64a88029f1755a6e7166fea15 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期日, 26 四月 2020 16:49:21 +0800
Subject: [PATCH] 等级显示问题

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java |  237 ++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 131 insertions(+), 106 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 a063e7f..4a3cdcb 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
@@ -17,6 +17,7 @@
 import javax.imageio.ImageIO;
 
 import org.apache.commons.beanutils.PropertyUtils;
+import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.core.task.TaskExecutor;
 import org.springframework.stereotype.Service;
@@ -34,10 +35,8 @@
 import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
 import com.yeshi.fanli.entity.dynamic.CommentInfo;
 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;
 import com.yeshi.fanli.entity.dynamic.ImgInfo;
 import com.yeshi.fanli.entity.dynamic.ImgInfo.ImgEnum;
 import com.yeshi.fanli.entity.dynamic.SimpleGoods;
@@ -112,6 +111,28 @@
 	@Resource
 	private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service;
 
+	
+	@Override
+	public void switchState(String id) throws GoodsEvaluateException {
+		if (id == null) {
+			throw new GoodsEvaluateException(1, "璇蜂紶閫掓纭弬鏁�");
+		}
+		
+		GoodsEvaluate resultObj = goodsEvaluateDao.getById(id);
+		if (resultObj == null) {
+			throw new GoodsEvaluateException(1, "姝ゅ唴瀹瑰凡涓嶅瓨鍦�");
+		}
+		
+		Integer state = resultObj.getState();
+		if (state == null || state == 0) {
+			state = 1;
+		} else {
+			state = 0;
+		}
+		goodsEvaluateDao.updateSatate(id, state);
+	}
+	
+	
 	@Override
 	public String saveHead(MultipartFile file, GoodsEvaluate record) throws GoodsEvaluateException {
 		Integer state = record.getState();
@@ -527,6 +548,7 @@
 			commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
 			commentInfo.setContent(commentText);
 			commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
+			commentInfo.setNeedSpin(true);
 			commentsNew.add(commentInfo);
 			resultObj.setComments(commentsNew);
 		}
@@ -852,7 +874,8 @@
 			if (StringUtil.isNullOrEmpty(commentInfo.getId())) {
 				commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
 			}
-
+			
+			commentInfo.setNeedSpin(true);
 			commentInfo.setType(commentInfo.getTags());
 			commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
 			newList.add(commentInfo);
@@ -866,60 +889,7 @@
 		goodsEvaluateDao.save(resultObj);
 	}
 
-	@Override
-	public void saveGoodsCoupon(String pid, String content) throws GoodsEvaluateException, Exception {
-		if (StringUtil.isNullOrEmpty(pid)) {
-			throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅");
-		}
-
-		GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid);
-		if (resultObj == null)
-			throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
-
-		CommentInfo goodsCoupon = null;
-		CommentInfo currencyCoupon = null;
-		List<CommentInfo> oldComments = resultObj.getComments();
-		if (oldComments != null) {
-			for (CommentInfo info : oldComments) {
-				if (CommentInfoEnum.goodsCoupon == info.getTypeEnum()) {
-					goodsCoupon = info;
-				} else if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) {
-					currencyCoupon = info;
-				}
-			}
-		}
-
-		List<CommentInfo> comments = new ArrayList<>();
-		if (!StringUtil.isNullOrEmpty(content)) {
-
-			if (!StringUtil.isNullOrEmpty(content)) {
-				try {
-					convertLinkManager.convertLinkFromText(content, 1L, true);
-				} catch (Exception e) {
-					throw new GoodsEvaluateException(1, "涓嶅寘鍚彲杞摼鐨勫彛浠や笌閾炬帴");
-				}
-			}
-
-			CommentInfo commentInfo = new CommentInfo();
-			if (goodsCoupon != null) {
-				commentInfo.setId(goodsCoupon.getId());
-			} else {
-				commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
-			}
-			commentInfo.setContent(content);
-			commentInfo.setType(commentInfo.getTags());
-			commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
-			comments.add(commentInfo);
-		}
-
-		if (currencyCoupon != null) {
-			comments.add(currencyCoupon);
-		}
-
-		resultObj.setComments(comments);
-		goodsEvaluateDao.save(resultObj);
-	}
-
+	 
 	@Override
 	public void saveCurrencyCoupon(String pid, int kind, CommentInfo commentInfo)
 			throws GoodsEvaluateException, Exception {
@@ -953,16 +923,21 @@
 			throw new GoodsEvaluateException(1, "璇峰~鍐欏埜鎴鏃堕棿");
 		}
 
-		// 鍧囦笉楠岃瘉
-		/*
-		 * if (!StringUtil.isNullOrEmpty(content) && kind != 3) { try {
-		 * 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, "鍖呭惈涓嶅彲杞摼鐨勫彛浠や笌閾炬帴"); } }
-		 */
+		if (commentInfo.getNeedSpin() == null) {
+			commentInfo.setNeedSpin(false);
+		}
+		
+		if (!StringUtil.isNullOrEmpty(content) && commentInfo.getNeedSpin()) {
+			try {
+				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, "鍖呭惈涓嶅彲杞摼鐨勫彛浠や笌閾炬帴");
+			}
+		}
 
 		GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid);
 		if (resultObj == null)
@@ -1569,9 +1544,6 @@
 			// 鎸夌収鍙戝竷鏄剧ず鏃堕棿娈佃捣濮嬫椂闂翠负鍑嗐��
 			goodsEvaluate.setPublishTime(goodsEvaluate.getStartTime());
 
-			// 鎸夌収鍙戝竷鏄剧ず鏃堕棿娈佃捣濮嬫椂闂翠负鍑嗐��
-			goodsEvaluate.setPublishTime(goodsEvaluate.getStartTime());
-
 			List<CommentInfo> comments = evaluateNew.getComments();
 			if (comments != null && comments.size() > 0) {
 				EvaluateEnum typeEnum = evaluateNew.getType();
@@ -1852,11 +1824,15 @@
 	}
 
 	@Override
-	public void addGoodsEvaluate(Long goodsId, List<ImgInfo> imgList, ActivityUser user, String title, String comment)
-			throws GoodsEvaluateException {
+	public void addGoodsEvaluate(Long goodsId, List<ImgInfo> imgList, ActivityUser user, String title, String comment,
+			Date startTime) throws GoodsEvaluateException {
 		if (goodsId == null || user == null || StringUtil.isNullOrEmpty(title)) {
 			throw new GoodsEvaluateException(1, "鐩稿叧鍙傛暟涓嶈兘涓虹┖");
 		}
+
+		List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO, goodsId);
+		if (evaluateList != null && evaluateList.size() > 0)
+			return;
 
 		TaoBaoGoodsBrief goodsBrief = null;
 		try {
@@ -1920,6 +1896,7 @@
 
 		// 璇勮鍐呭
 		CommentInfo commentInfo = new CommentInfo();
+		commentInfo.setNeedSpin(true);
 		commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
 		commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
 		if (!StringUtil.isNullOrEmpty(comment)) {
@@ -1929,16 +1906,11 @@
 			String token = shareGoodsService.createTaoBaoToken(Constant.LINK_TOKEN_VERIFY_UID, goodsBrief);
 			String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
 			String commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(token));
-			commentText = commentText.replace("[鍘熶环]", MoneyBigDecimalUtil.getWithNoZera(goodsVO.getZkPrice()) + "");
 			if (!goodsVO.isHasCoupon()) {
 				commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
 				commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
-			} else {
-				commentText = commentText.replace("[鍒稿悗浠穄",
-						MoneyBigDecimalUtil.getWithNoZera(goodsVO.getCouponPrice()) + "");
-			}
-			commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n",
-					"\r\n");
+				commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n","\r\n");
+			} 
 			commentInfo.setContent(commentText);
 			commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
 		}
@@ -1948,12 +1920,12 @@
 
 		// 涓�琛屾樉绀哄灏戜釜鍥剧墖
 		int lineNum = 0;
-		if (imgs.size() > 0) {
-			if (imgs.size() == 1) {
+		if (imgList.size() > 0) {
+			if (imgList.size() == 1) {
 				lineNum = 1;
-			} else if (imgs.size() == 3) {
+			} else if (imgList.size() == 3) {
 				lineNum = 3;
-			} else if (imgs.size() <= 4) {
+			} else if (imgList.size() <= 4) {
 				lineNum = 2;
 			} else {
 				lineNum = 3;
@@ -1970,7 +1942,9 @@
 		goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000);
 		goodsEvaluate.setShareNumReal(0);
 		goodsEvaluate.setWeight(0.0);
-		goodsEvaluate.setStartTime(new Date());
+		if (startTime == null)
+			startTime = new Date();
+		goodsEvaluate.setStartTime(startTime);
 		goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date()));
 		goodsEvaluate.setPublishTime(new Date());
 		goodsEvaluate.setCreateTime(new Date());
@@ -2089,19 +2063,6 @@
 			}
 			imgs.addAll(goodsimgs);
 
-			int lineNum = 0;
-			if (imgs.size() > 0) {
-				if (imgs.size() == 1) {
-					lineNum = 1;
-				} else if (imgs.size() == 3) {
-					lineNum = 3;
-				} else if (imgs.size() <= 4) {
-					lineNum = 2;
-				} else {
-					lineNum = 3;
-				}
-			}
-			goodsEvaluate.setLineNum(lineNum);
 
 			int i = 0;
 			List<ImgInfo> imgList = new ArrayList<>();
@@ -2138,20 +2099,14 @@
 
 					String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
 					String commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(token));
-
-					commentText = commentText.replace("[鍘熶环]",
-							MoneyBigDecimalUtil.getWithNoZera(goodsVO.getZkPrice()) + "");
 					if (!goodsVO.isHasCoupon()) {
 						commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
 						commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
-					} else {
-						commentText = commentText.replace("[鍒稿悗浠穄",
-								MoneyBigDecimalUtil.getWithNoZera(goodsVO.getCouponPrice()) + "");
-					}
-					commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n")
-							.replace("\r\n\r\n", "\r\n");
+						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.setNeedSpin(true);
 					commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
 					commentInfo.setContent(commentText);
 					commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
@@ -2181,6 +2136,7 @@
 					commentInfo2.setContent(text2);
 					commentInfo2.setTypeEnum(CommentInfoEnum.goodsCoupon);
 					commentInfo2.setType("");
+					commentInfo2.setNeedSpin(true);
 
 					List<CommentInfo> commentsNew = new ArrayList<>();
 					commentsNew.add(commentInfo);
@@ -2190,6 +2146,20 @@
 				imgList.add(imgInfo);
 				i++;
 			}
+			
+			int lineNum = 0;
+			if (imgList.size() > 0) {
+				if (imgList.size() == 1) {
+					lineNum = 1;
+				} else if (imgList.size() == 3) {
+					lineNum = 3;
+				} else if (imgList.size() <= 4) {
+					lineNum = 2;
+				} else {
+					lineNum = 3;
+				}
+			}
+			goodsEvaluate.setLineNum(lineNum);
 
 			goodsEvaluate.setGoods(goodsVO);
 			goodsEvaluate.setImgList(imgList);
@@ -2339,6 +2309,61 @@
 			goodsEvaluateDao.save(goodsEvaluate);
 		}
 	}
+	
+	
+	@Override
+	public void offlineTaoBaoGoods(Long goodsId) {
+		try {
+			if (goodsId == null) {
+				return;
+			}
+			List<GoodsEvaluate> list = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO, goodsId);
+			if (list == null || list.size() == 0) {
+				return;
+			}
+			
+			// 涓嬫灦鍟嗗搧
+			offlineGoods(list, Constant.SOURCE_TYPE_TAOBAO, goodsId);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	@CacheEvict(value = "dynamicCache", allEntries = true)
+	private void offlineGoods(List<GoodsEvaluate> list, int goodsType, Long goodsId) {
+		
+		for (GoodsEvaluate goodsEvaluate : list) {
+			// 鍟嗗搧涓嬫灦
+			GoodsDetailVO goodsDetailVO = goodsEvaluate.getGoods();
+			goodsDetailVO.setState(1);
+		 
+			List<ImgInfo> imgList = goodsEvaluate.getImgList();
+			if (imgList == null || imgList.size() == 0) {
+				goodsEvaluate.setUpdateTime(new Date());
+				goodsEvaluateDao.save(goodsEvaluate);
+				continue;
+			}
+
+			for (ImgInfo imgInfo : imgList) {
+				SimpleGoods simpleGoods = imgInfo.getGoods();
+				if (simpleGoods == null || simpleGoods.getGoodsId() != goodsId
+						|| goodsType != simpleGoods.getGoodsType()) {
+					continue;
+				}
+				simpleGoods.setState(1);
+				GoodsDetailVO goodsVO = imgInfo.getGoodsVO();
+				goodsVO.setState(1);
+				
+				imgInfo.setGoods(simpleGoods);
+				imgInfo.setGoodsVO(goodsVO);
+			}
+
+			goodsEvaluate.setImgList(imgList);
+			goodsEvaluate.setUpdateTime(new Date());
+			goodsEvaluateDao.save(goodsEvaluate);
+		}
+	}
+	
 
 	private void removeOverdue() {
 		List<GoodsEvaluate> list = goodsEvaluateDao.queryOverdue();

--
Gitblit v1.8.0