From 0ec22dcf4fd9c4496e6f681e7fab89f56c6e4e8a Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期四, 02 四月 2020 14:45:20 +0800
Subject: [PATCH] vip 消息

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java |  689 +++++++++++++++++++++++++++++++++------------------------
 1 files changed, 400 insertions(+), 289 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 2ca96d5..45a984c 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
@@ -70,10 +70,8 @@
 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.goods.CouponInfoVO;
 import com.yeshi.fanli.vo.goods.GoodsDetailVO;
 import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
@@ -166,6 +164,7 @@
 			record.setId(id);
 			record.setShareNumReal(0);
 			record.setCreateTime(new Date());
+			record.setUpdateTime(new Date());
 			goodsEvaluateDao.save(record);
 		} else {
 			GoodsEvaluate resultObj = goodsEvaluateDao.getById(id);
@@ -179,6 +178,7 @@
 			resultObj.setStartTime(record.getStartTime());
 			resultObj.setEndTime(record.getEndTime());
 			resultObj.setTitle(tilte);
+			resultObj.setUpdateTime(new Date());
 			goodsEvaluateDao.save(resultObj);
 		}
 		return id;
@@ -327,21 +327,28 @@
 		}
 
 		// 缂栬緫鍥剧墖
-		List<String> listpic = null;
+		List<String> listpic = new ArrayList<>();
 		if (!StringUtil.isNullOrEmpty(picUrls)) {
 			String[] pics = picUrls.split(",");
 			if (pics != null) {
-				listpic = new ArrayList<>();
 				for (int i = 0; i < pics.length; i++) {
 					String picLink = pics[i];
-					if (fileRequest != null) {
-						MultipartFile file = fileRequest.getFile("file" + i);
-						if (file != null) {
-							picLink = uploadPicture(file);
-						}
-
-					}
 					if (picLink.startsWith("http")) {
+						listpic.add(picLink);
+					}
+				}
+			}
+		}
+
+		// 涓婁紶鏂囦欢鏇挎崲
+		if (fileRequest != null) {
+			for (int i = 0; i < 9; i++) {
+				MultipartFile file = fileRequest.getFile("file" + i);
+				if (file != null) {
+					String picLink = uploadPicture(file);
+					if (i < listpic.size()) {
+						listpic.set(i, picLink);
+					} else {
 						listpic.add(picLink);
 					}
 				}
@@ -468,8 +475,9 @@
 		}
 
 		/*
-		 * // 鏃犲埜涓嶈兘鑷姩 鐢熸垚璇勮 CouponInfoVO couponInfo1 = goodsDetailVO.getCouponInfo(); if
-		 * (couponInfo1 == null) { addComment = false; }
+		 * // 鏃犲埜涓嶈兘鑷姩 鐢熸垚璇勮 CouponInfoVO couponInfo1 =
+		 * goodsDetailVO.getCouponInfo(); if (couponInfo1 == null) { addComment
+		 * = false; }
 		 */
 
 		String commentText = "";
@@ -488,23 +496,32 @@
 				String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl,
 						JDApiUtil.POSITION_SHARE + "", "1");
 				String template = configService.get(ConfigKeyEnum.quickShareJDCommentText.getKey());
+				if (jumpLink == null) {
+					throw new GoodsEvaluateException(1, "璇ュ晢鍝佽浆閾惧け璐�");
+				}
 				commentText = template.replace("[閾炬帴]", jumpLink);
 			} else if (goodsType == Constant.SOURCE_TYPE_PDD) {
 				String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsId, PinDuoDuoApiUtil.PID_SHARE + "", "1");
+				if (jumpLink == null) {
+					throw new GoodsEvaluateException(1, "璇ュ晢鍝佽浆閾惧け璐�");
+				}
 				String template = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey());
 				commentText = template.replace("[閾炬帴]", jumpLink);
 			}
 
-			commentText = commentText.replace("[鍘熶环]", MoneyBigDecimalUtil.getWithNoZera(goodsDetailVO.getZkPrice())+"");
-			if (!goodsDetailVO.isHasCoupon()) {
-				commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
-				commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
-			} else {
-				commentText = commentText.replace("[鍒稿悗浠穄",  MoneyBigDecimalUtil.getWithNoZera(goodsDetailVO.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("[鍘熶环]",
+			// MoneyBigDecimalUtil.getWithNoZera(goodsDetailVO.getZkPrice())+"");
+			// if (!goodsDetailVO.isHasCoupon()) {
+			// commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
+			// commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
+			// } else {
+			// commentText = commentText.replace("[鍒稿悗浠穄",
+			// MoneyBigDecimalUtil.getWithNoZera(goodsDetailVO.getCouponPrice())+"");
+			// }
+			//
+			// 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("-", ""));
@@ -513,6 +530,7 @@
 			commentsNew.add(commentInfo);
 			resultObj.setComments(commentsNew);
 		}
+		resultObj.setUpdateTime(new Date());
 		goodsEvaluateDao.save(resultObj);
 
 		// 鍒犻櫎鍥剧墖
@@ -681,7 +699,6 @@
 					}
 
 					String picUrl = goodsDetailVO.getPicUrl();
-
 					if (fileRequest != null) {
 						MultipartFile file = fileRequest.getFile("file" + i);
 						if (file != null) {
@@ -718,6 +735,8 @@
 				}
 			}
 		}
+		
+		
 
 		// 鏁版嵁瀵规瘮 鍒犻櫎鍥剧墖
 		if (oldGoodsList != null && oldGoodsList.size() > 0) {
@@ -845,6 +864,7 @@
 		}
 
 		resultObj.setComments(comments);
+		resultObj.setUpdateTime(new Date());
 		goodsEvaluateDao.save(resultObj);
 	}
 
@@ -935,17 +955,15 @@
 			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 (!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, "鍖呭惈涓嶅彲杞摼鐨勫彛浠や笌閾炬帴"); } }
+		 */
 
 		GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid);
 		if (resultObj == null)
@@ -1240,49 +1258,52 @@
 			listImg.add(imgActivity);
 		}
 
-		int totalImg = 0;
 		// 缂栬緫鍥剧墖
+		List<String> listpic = new ArrayList<>();
 		if (!StringUtil.isNullOrEmpty(picUrls)) {
 			String[] pics = picUrls.split(",");
 			if (pics != null) {
 				for (int i = 0; i < pics.length; i++) {
 					String picLink = pics[i];
-					if (fileRequest != null) {
-						MultipartFile file = fileRequest.getFile("file" + i);
-						if (file != null) {
-							picLink = uploadPicture(file);
-
-							ImgInfo imgInfo0 = new ImgInfo();
-							imgInfo0.setId(UUID.randomUUID().toString().replace("-", ""));
-							imgInfo0.setLarge(false);
-							imgInfo0.setPid(pid);
-							imgInfo0.setUrl(picLink);
-							imgInfo0.setUrlHD(picLink);
-							imgInfo0.setType(ImgEnum.img);
-							imgInfo0.setW(1);
-							imgInfo0.setH(1);
-							listImg.add(imgInfo0);
-							totalImg++;
-							continue;
-						}
-					}
-
 					if (picLink.startsWith("http")) {
-						if (listOldImgInfo != null) {
-							for (ImgInfo imgInfo : listOldImgInfo) {
-								String url = imgInfo.getUrl();
-								if (picLink.equals(url)) {
-									listImg.add(imgInfo);
-									totalImg++;
-									break;
-								}
-							}
-						}
+						listpic.add(picLink);
 					}
 				}
 			}
 		}
 
+		// 涓婁紶鏂囦欢鏇挎崲
+		if (fileRequest != null) {
+			for (int i = 0; i < 9; i++) {
+				MultipartFile file = fileRequest.getFile("file" + i);
+				if (file != null) {
+					String picLink = uploadPicture(file);
+					if (i < listpic.size()) {
+						listpic.set(i, picLink);
+					} else {
+						listpic.add(picLink);
+					}
+				}
+			}
+		}
+
+		int totalImg = 0;
+		for (String pic : listpic) {
+			ImgInfo imgInfo0 = new ImgInfo();
+			imgInfo0.setId(UUID.randomUUID().toString().replace("-", ""));
+			imgInfo0.setLarge(false);
+			imgInfo0.setPid(pid);
+			imgInfo0.setUrl(pic);
+			imgInfo0.setUrlHD(pic);
+			imgInfo0.setType(ImgEnum.img);
+			imgInfo0.setW(1);
+			imgInfo0.setH(1);
+			listImg.add(imgInfo0);
+			totalImg++;
+		}
+
+		
+		// 娓呯悊鑰佸浘鐗�
 		if (listOld != null && listOld.size() > 0) {
 			for (int j = 0; j < listOld.size(); j++) {
 				boolean del = true;
@@ -1466,6 +1487,43 @@
 	}
 
 	@Override
+	public void addRanDomShareCount() {
+		// 鍙戝湀
+		try {
+			List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(0, Integer.MAX_VALUE, 1);
+			if (list != null) {
+				for (GoodsEvaluate goodsEvaluate : list) {
+					Integer shareNum = goodsEvaluate.getShareNum();
+					if (shareNum == null) {
+						shareNum = 0;
+					}
+					goodsEvaluate.setShareNum(shareNum + (int) (Math.random() * 100) + 10);
+					goodsEvaluateDao.save(goodsEvaluate);
+				}
+			}
+		} catch (Exception e) {
+			LogHelper.errorDetailInfo(e);
+		}
+
+		// 绱犳潗
+		try {
+			List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(0, Integer.MAX_VALUE, 2);
+			if (list != null) {
+				for (GoodsEvaluate goodsEvaluate : list) {
+					Integer shareNum = goodsEvaluate.getShareNum();
+					if (shareNum == null) {
+						shareNum = 0;
+					}
+					goodsEvaluate.setShareNum(shareNum + (int) (Math.random() * 100) + 10);
+					goodsEvaluateDao.save(goodsEvaluate);
+				}
+			}
+		} catch (Exception e) {
+			LogHelper.errorDetailInfo(e);
+		}
+	}
+
+	@Override
 	@Cacheable(value = "dynamicCache", key = "'queryValidEvaluateCache-'+#start")
 	public List<GoodsEvaluate> queryValidEvaluateCache(int start, int count) {
 		List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(start, count, 1);
@@ -1474,7 +1532,11 @@
 		executor.execute(new Runnable() {
 			@Override
 			public void run() {
+				// 鏇存柊淇℃伅
 				updateGoodInfo(list);
+
+				// 鍒犻櫎宸茶繃鏈�
+				removeOverdue();
 			}
 		});
 
@@ -1487,7 +1549,7 @@
 	}
 
 	@Override
-//	@Cacheable(value = "dynamicCache", key = "'queryMaterialsCache-'+#start+'-'+#type")
+	@Cacheable(value = "dynamicCache", key = "'queryMaterialsCache-'+#start+'-'+#type")
 	public List<GoodsEvaluate> queryMaterialsCache(int start, int count, int type) throws Exception {
 		List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(start, count, type);
 		if (list == null) {
@@ -1498,7 +1560,6 @@
 
 		List<GoodsEvaluate> listNew = new ArrayList<>();
 		for (GoodsEvaluate goodsEvaluate : list) {
-
 			GoodsEvaluate evaluateNew = new GoodsEvaluate();
 			try {
 				PropertyUtils.copyProperties(evaluateNew, goodsEvaluate);
@@ -1506,13 +1567,17 @@
 				e.printStackTrace();
 				continue;
 			}
-
-			int comment = 0;
+			
+			// 鎸夌収鍙戝竷鏄剧ず鏃堕棿娈佃捣濮嬫椂闂翠负鍑嗐��
+			goodsEvaluate.setPublishTime(goodsEvaluate.getStartTime());
+						
 			List<CommentInfo> comments = evaluateNew.getComments();
 			if (comments != null && comments.size() > 0) {
 				EvaluateEnum typeEnum = evaluateNew.getType();
 				List<CommentInfo> commentNew = new ArrayList<>();
 
+				boolean singleCoupn = true;
+				boolean currencyCoupon = true;
 				for (CommentInfo commentInfo : comments) {
 					if (StringUtil.isNullOrEmpty(commentInfo.getContent())
 							&& StringUtil.isNullOrEmpty(commentInfo.getCoupon())) {
@@ -1527,7 +1592,40 @@
 						continue;
 					}
 
-					comment++;
+					if (typeEnum != null && typeEnum == EvaluateEnum.single) {
+						GoodsDetailVO goods = evaluateNew.getGoods();
+						if (goods != null) {
+							String content = commentInfoNew.getContent();
+							if (!StringUtil.isNullOrEmpty(content)) {
+								content = content.replace("[鍘熶环]",
+										MoneyBigDecimalUtil.getWithNoZera(goods.getZkPrice()) + "");
+								if (goods.isHasCoupon()) {
+									content = content.replace("[鍒稿悗浠穄",
+											MoneyBigDecimalUtil.getWithNoZera(goods.getCouponPrice()) + "");
+								} else {
+									singleCoupn = false;
+									content = content.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
+									content = content.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
+								}
+								content = content.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
+								// 鏇挎崲娣樺疂瀹樻柟娲诲姩
+								List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(content);
+								for (String st : activityIdList)
+									content = content.replace(st, "");
+
+								commentInfoNew.setContent(content);
+							}
+						}
+					}
+					if (typeEnum != null && typeEnum == EvaluateEnum.activity) {
+						// 鏇挎崲娣樺疂瀹樻柟娲诲姩
+						String content = commentInfoNew.getContent();
+						List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(content);
+						for (String st : activityIdList)
+							content = content.replace(st, "");
+						commentInfoNew.setContent(content);
+					}
+
 					CommentInfoEnum typeComment = commentInfoNew.getTypeEnum();
 					if (typeComment != null && typeComment == CommentInfoEnum.goodsCoupon) {
 						GoodsDetailVO goods = evaluateNew.getGoods();
@@ -1558,9 +1656,11 @@
 								commentNew.add(commentInfoNew);
 								continue;
 							} else {
+								currencyCoupon = false;
 								continue;
 							}
 						} else {
+							currencyCoupon = false;
 							continue;
 						}
 					}
@@ -1570,11 +1670,11 @@
 				evaluateNew.setComments(commentNew);
 
 				if (typeEnum != null && typeEnum == EvaluateEnum.single) {
-					if (comment > 0 && commentNew.size() == 0) { // 鎵�鏈夊埜璇勮涓嬫灦
+					if (!currencyCoupon && !singleCoupn) { // 鎵�鏈夊埜璇勮涓嬫灦
 						GoodsDetailVO goods = evaluateNew.getGoods();
 						if (goods != null) {
 							goods.setState(1); // 璇勮涓嶅瓨鍦� 涓嬫灦
-							LogHelper.test("鑾峰彇鍒楄〃鍟嗗搧涓嬫灦1");
+							evaluateNew.setRemarks("璇勮楠岃瘉涓嬫灦");
 						}
 
 						List<ImgInfo> imgList = evaluateNew.getImgList();
@@ -1583,7 +1683,7 @@
 								SimpleGoods simpleGoods = imgInfo.getGoods();
 								if (simpleGoods != null) {
 									simpleGoods.setState(1);
-									LogHelper.test("鑾峰彇鍒楄〃鍟嗗搧涓嬫灦2");
+									simpleGoods.setRemarks("璇勮楠岃瘉涓嬫灦");
 								}
 							}
 
@@ -1601,6 +1701,9 @@
 			@Override
 			public void run() {
 				updateGoodInfo(listOBJ);
+
+				// 鍒犻櫎宸茶繃鏈�
+				removeOverdue();
 			}
 		});
 
@@ -1669,6 +1772,7 @@
 					if (goodsNew != null) {
 						goodsEvaluate.setGoods(goodsNew);
 					} else {
+						goodsEvaluate.setRemarks("鏇存柊-浣嶇疆鎵惧埌鍟嗗搧淇℃伅");
 						goodsEvaluate.setState(0); // 宸插晢鍝佷笅鏋�
 						goods.setState(1);
 						goodsEvaluate.setGoods(goods);
@@ -1701,6 +1805,7 @@
 						imgInfo.setGoods(simpleGoods);
 						imgInfo.setGoodsVO(goodsDetailVO);
 					} else {
+						simpleGoods.setRemarks("鏇存柊-浣嶇疆鎵惧埌鍟嗗搧淇℃伅");
 						simpleGoods.setState(1);
 						imgInfo.setGoods(simpleGoods);
 						GoodsDetailVO goodsVO = imgInfo.getGoodsVO();
@@ -1746,105 +1851,140 @@
 	}
 
 	@Override
-	public void addGoodsEvaluateByDynamicInfo(DynamicInfo info) {
-		if (1 > 0) {
-			return; // 鏆備笉鍚敤鑷姩鐢熸垚
+	public void addGoodsEvaluate(Long goodsId, Integer cid, String title, String comment) throws GoodsEvaluateException{
+		if (goodsId == null || cid == null || StringUtil.isNullOrEmpty(title)) {
+			throw new GoodsEvaluateException(1, "鐩稿叧鍙傛暟涓嶈兘涓虹┖");
 		}
-
-		if (info == null) {
-			return;
-		}
-
+		
+		TaoBaoGoodsBrief goodsBrief = null;
 		try {
-			GoodsEvaluate goodsEvaluate = new GoodsEvaluate();
-			goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", ""));
-			ActivityUser user = info.getUser();
-			goodsEvaluate.setUser(user);
-			goodsEvaluate.setState(1);
-			goodsEvaluate.setDynamicType(1);
-			goodsEvaluate.setType(EvaluateEnum.single);
-			goodsEvaluate.setLineNum(2);
-			goodsEvaluate.setShareNum(info.getShareCount());
-			goodsEvaluate.setShareNumReal(0);
-			goodsEvaluate.setPublishTime(info.getCreateTime());
-			goodsEvaluate.setCreateTime(new Date());
-			goodsEvaluate.setUpdateTime(new Date());
-			goodsEvaluate.setWeight(0.0);
-			goodsEvaluate.setStartTime(new Date());
-			goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date()));
-
-			List<ClientTextStyleVO> titles = info.getTitle();
-			if (titles != null) {
-				goodsEvaluate.setTitle(info.getTitle().get(0).getContent());
-			} else {
-				goodsEvaluate.setTitle("");
-			}
-
-			List<ImgInfo> imgList = new ArrayList<>();
-
-			List<GoodsPicture> imgs = info.getImgs();
-			for (GoodsPicture goodsPicture : imgs) {
-				ImgInfo imgInfo = new ImgInfo();
-				imgInfo.setH(1);
-				imgInfo.setW(1);
-				imgInfo.setLarge(false);
-				imgInfo.setUrl(goodsPicture.getUrl());
-				imgInfo.setUrlHD(goodsPicture.getUrl());
-
-				GoodsDetailVO goodsVO = goodsPicture.getGoodsVO();
-				if (goodsVO == null) {
-					imgInfo.setType(ImgEnum.img);
-				} else {
-					imgInfo.setType(ImgEnum.goods);
-					SimpleGoods simpleGoods = new SimpleGoods();
-					simpleGoods.setGoodsId(goodsVO.getGoodsId());
-					simpleGoods.setGoodsType(goodsVO.getGoodsType());
-					simpleGoods.setState(goodsVO.getState());
-					CouponInfoVO couponInfo = goodsVO.getCouponInfo();
-					if (couponInfo == null) {
-						simpleGoods.setPrice(goodsVO.getZkPrice());
-					} else {
-						simpleGoods.setPrice(goodsVO.getCouponPrice());
-						simpleGoods.setAmount(couponInfo.getAmount());
-					}
-					imgInfo.setGoods(simpleGoods);
-
-					TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsVO.getGoodsId(), "0");
-
-//					TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(Constant.LINK_TOKEN_VERIFY_UID, goodsVO.getGoodsId(), null);
-					String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
-					String commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
-
-					commentText = commentText.replace("[鍘熶环]", goodsVO.getZkPrice().toString());
-					if (!goodsVO.isHasCoupon()) {
-						commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
-						commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
-					} 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.setTypeEnum(CommentInfoEnum.goodsCoupon);
-					commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
-
-					List<CommentInfo> commentsNew = new ArrayList<>();
-					commentsNew.add(commentInfo);
-					goodsEvaluate.setComments(commentsNew);
-
-					goodsEvaluate.setGoods(goodsVO);
-
-				}
-				imgList.add(imgInfo);
-			}
-			goodsEvaluate.setImgList(imgList);
-			goodsEvaluateDao.save(goodsEvaluate);
-		} catch (Exception e) {
-			LogHelper.errorDetailInfo(e);
+			goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
+		} catch (TaobaoGoodsDownException e) {
+			throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�");
 		}
+
+		if (goodsBrief == null) {
+			throw new GoodsEvaluateException(1, "鏈壘鍒板晢鍝佷俊鎭�");
+		}
+
+		BigDecimal couponAmount = goodsBrief.getCouponAmount();
+		if (couponAmount == null || couponAmount.compareTo(new BigDecimal(0)) < 1) {
+			throw new GoodsEvaluateException(1, "璇ュ晢鍝佹棤鍒�");
+		}
+
+		// 鍙戝竷鐢ㄦ埛
+		ActivityUser user = activityUserService.getRandomByDaTaoKeCid(cid);
+		if (user == null) {
+			throw new GoodsEvaluateException(1, "鏈壘鍒板彂甯冪敤鎴�");
+		}
+
+		
+		// 鐧藉簳鍥�
+		List<String> imgs = new ArrayList<>();
+		if (!StringUtil.isNullOrEmpty(goodsBrief.getPictUrlWhite())) {
+			imgs.add(goodsBrief.getPictUrlWhite());
+		}
+		imgs.addAll(goodsBrief.getImgList());
+
+		// 鍟嗗搧VO
+		ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
+		paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
+		GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
+
+		// 鍟嗗搧鍥剧墖淇℃伅
+		int i = 0;
+		List<ImgInfo> imgList = new ArrayList<>();
+		for (String img : imgs) {
+			ImgInfo imgInfo = new ImgInfo();
+			imgInfo.setH(1);
+			imgInfo.setW(1);
+			imgInfo.setLarge(false);
+			imgInfo.setUrl(img);
+			imgInfo.setUrlHD(img);
+			if (i != 0) {
+				imgInfo.setType(ImgEnum.img);
+			} else {
+				imgInfo.setType(ImgEnum.goods);
+				SimpleGoods simpleGoods = new SimpleGoods();
+				simpleGoods.setGoodsId(goodsVO.getGoodsId());
+				simpleGoods.setGoodsType(goodsVO.getGoodsType());
+				simpleGoods.setState(goodsVO.getState());
+				CouponInfoVO couponInfo = goodsVO.getCouponInfo();
+				if (couponInfo == null) {
+					simpleGoods.setPrice(goodsVO.getZkPrice());
+				} else {
+					simpleGoods.setPrice(goodsVO.getCouponPrice());
+					simpleGoods.setAmount(couponInfo.getAmount());
+				}
+				imgInfo.setGoods(simpleGoods);
+				imgInfo.setGoodsVO(goodsVO);
+			}
+			imgList.add(imgInfo);
+			i++;
+		}
+		
+		// 璇勮鍐呭
+		CommentInfo commentInfo = new CommentInfo();
+		commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
+		commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
+		if (!StringUtil.isNullOrEmpty(comment)) {
+			commentInfo.setContent(comment);
+			commentInfo.setType("");
+		} else {
+			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");
+			commentInfo.setContent(commentText);
+			commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
+		}
+
+		List<CommentInfo> commentsNew = new ArrayList<>();
+		commentsNew.add(commentInfo);
+		
+		// 涓�琛屾樉绀哄灏戜釜鍥剧墖
+		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 goodsEvaluate = new GoodsEvaluate();
+		goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", ""));
+		goodsEvaluate.setUser(user);
+		goodsEvaluate.setTitle(getDescNew(title));
+		goodsEvaluate.setState(1);
+		goodsEvaluate.setDynamicType(1);
+		goodsEvaluate.setType(EvaluateEnum.single);
+		goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000);
+		goodsEvaluate.setShareNumReal(0);
+		goodsEvaluate.setWeight(0.0);
+		goodsEvaluate.setStartTime(new Date());
+		goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date()));
+		goodsEvaluate.setPublishTime(new Date());
+		goodsEvaluate.setCreateTime(new Date());
+		goodsEvaluate.setUpdateTime(new Date());
+		goodsEvaluate.setGoods(goodsVO);
+		goodsEvaluate.setLineNum(lineNum);
+		goodsEvaluate.setImgList(imgList);
+		goodsEvaluate.setComments(commentsNew);
+		goodsEvaluateDao.save(goodsEvaluate);
 	}
 
 	@Override
@@ -2004,12 +2144,14 @@
 					String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
 					String commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(token));
 
-					commentText = commentText.replace("[鍘熶环]", MoneyBigDecimalUtil.getWithNoZera(goodsVO.getZkPrice())+"");
+					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("[鍒稿悗浠穄",
+								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");
@@ -2030,32 +2172,31 @@
 					if (!StringUtil.isNullOrEmpty(evaluateText)) {
 						text2 += evaluateText;
 					}
-					
+
 					String dtitle = daTaoKe.getDtitle();
 					if (!StringUtil.isNullOrEmpty(dtitle)) {
-						text2 = text2 + dtitle +"\n";
+						text2 = text2 + dtitle + "\n";
 					} else if (!StringUtil.isNullOrEmpty(evaluateText)) {
 						text2 += "\n";
 					}
-					text2 += "鍏堥銆�"+ couponAmount +"鍏冧紭鎯犲埜銆戜笅鍗�";
-							
+					text2 += "鍏堥銆�" + couponAmount + "鍏冧紭鎯犲埜銆戜笅鍗�";
+
 					CommentInfo commentInfo2 = new CommentInfo();
 					commentInfo2.setId(UUID.randomUUID().toString().replace("-", ""));
 					commentInfo2.setContent(text2);
 					commentInfo2.setTypeEnum(CommentInfoEnum.goodsCoupon);
 					commentInfo2.setType("");
-					
-					
+
 					List<CommentInfo> commentsNew = new ArrayList<>();
 					commentsNew.add(commentInfo);
 					commentsNew.add(commentInfo2);
 					goodsEvaluate.setComments(commentsNew);
-					
-					goodsEvaluate.setGoods(goodsVO);
 				}
 				imgList.add(imgInfo);
 				i++;
 			}
+			
+			goodsEvaluate.setGoods(goodsVO);
 			goodsEvaluate.setImgList(imgList);
 			goodsEvaluateDao.save(goodsEvaluate);
 		} catch (Exception e) {
@@ -2066,122 +2207,69 @@
 		return true;
 	}
 
-	private String getDesc(String desc) {
-		System.out.println(desc);
-		String newDesc = "";
-		int emoji = 0;
-		String content = desc.replace("锛�", ",");
-		while (content.length() > 0) {
-			int length = 0;
-			boolean end = true;
-			for (int i = 0; i < content.length(); i++) {
-				if (content.substring(0, i).length() >= 18) {
-					length = i;
-					end = false;
-					break;
-				}
-			}
-
-			if (end) {
-				length = content.length();
-			}
-
-			String introduce = content.substring(0, length);
-			System.out.println(introduce);
-			if (verify(introduce)) {
-				if (emoji >= 4) {
-					introduce = introduce.replace(",", "\n"); // 闇�瑕佹崲琛�
+	/**
+	 * 鍙戝湀鏍囬 鍔犲叆琛ㄦ儏
+	 * @param desc
+	 * @return
+	 */
+	private String getDescNew(String desc) {
+		String[] split = desc.split("锛�");
+		int max = 1;
+		if (Math.random() > 0.5) {
+			max = 2;
+		}
+		int e = 0;
+		String emojis = "";
+		String descNew = "";
+		if (split.length > 0) {
+			for (int i = 0; i < split.length; i++) {
+				if (Math.random() > 0.5 && e < max) {
+					for (int j = 0; j < 10; j++) {
+						String emojisTemp = DaTaoKeUtil.getEvaluateEmojis();
+						if (!emojis.equals(emojisTemp)) {
+							emojis = emojisTemp;
+							break;
+						}
+					}
+					e++;
+					descNew += split[i] + emojis;
 				} else {
-					emoji++;
-					introduce = introduce.replace(",", DaTaoKeUtil.getRandomCommonEmoji() + "\n"); // 闇�瑕佹崲琛�
+					descNew += split[i] + "锛�";
 				}
 			}
-
-			// 闅忔満鏇挎崲emoji
-			if (emoji <= 4 && Math.random() > 0.5) {
-				introduce = introduce.replace(",", DaTaoKeUtil.getRandomCommonEmoji());
-				emoji++;
-			}
-			newDesc += introduce;
-			content = content.substring(length);
+		} else {
+			descNew = desc;
 		}
-		return newDesc;
+
+		if (descNew.endsWith("锛�")) {
+			descNew = descNew.substring(0, descNew.length() - 1);
+		}
+		return descNew;
 	}
 
-	private boolean verify(String content) {
-		// 18涓瓧绗﹀唴锛堝寘鍚爣鐐逛篃绠椾竴涓瓧绗︼級鏈夊涓�楀彿锛屽垯涓嶆崲琛�
-		char d = ',';
-		int count = 0;
-		char chs[] = content.toCharArray();// 杞崲鎴恈har鏁扮粍
-		for (int i = 0; i < chs.length; i++) {
-			if (d == chs[i]) {
-				count++;
-			}
-		}
-		if (count > 1) {
-			return false;
-		}
 
-		// 涔﹀悕鍙凤紝澶ф嫭鍙凤紝灏忔嫭鍙烽噷闈㈢殑鍐呭涓嶆崲琛�
-		if (content.contains("[") && content.contains("]")) {
-			return false;
-		} else if (content.contains("銆�") && content.contains("銆�")) {
-			return false;
-		} else if (content.contains("{") && content.contains("}")) {
-			return false;
-		} else if (content.contains("(") && content.contains(")")) {
-			return false;
-		}
-
-		int index = content.lastIndexOf(",");
-		// (闄ゅ紑閫楀彿浠ュ鐨勭鍙凤級鎰熷徆鍙�/鍙ュ彿/闂彿鍓嶉潰鏈夐�楀彿锛屼笉鎹㈣
-		if (content.contains("!") && index < content.lastIndexOf("!")) {
-			return false;
-		}
-
-		if (content.contains("锛�") && index < content.lastIndexOf("锛�")) {
-			return false;
-		}
-
-		if (content.contains("銆�") && index < content.lastIndexOf("銆�")) {
-			return false;
-		}
-
-		if (content.contains("?") && index < content.lastIndexOf("?")) {
-			return false;
-		}
-
-		if (content.contains("锛�") && index < content.lastIndexOf("锛�")) {
-			return false;
-		}
-
-		if (content.contains("锛�")) {
-			return false;
-		}
-		return true;
-	}
-	
 	@Override
 	public void updateTaoBaoGoods(TaoBaoGoodsBrief goods) {
 		try {
 			if (goods == null) {
 				return;
 			}
-			List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO, goods.getAuctionId());
+			List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO,
+					goods.getAuctionId());
 			if (queryExist == null || queryExist.size() == 0) {
 				return;
 			}
-			
+
 			ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
 			paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 			GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
 			updateGoods(queryExist, goodsNew);
-		
+
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
 	}
-	
+
 	@Override
 	public void updateJDGoods(JDGoods jdGoods) {
 		if (jdGoods == null) {
@@ -2191,13 +2279,14 @@
 		if (queryExist == null || queryExist.size() == 0) {
 			return;
 		}
-		
+
 		ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
 		paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 		GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertJDGoods(jdGoods, paramsDTO);
+
 		updateGoods(queryExist, goodsNew);
 	}
-	
+
 	@Override
 	public void updatePDDGoods(PDDGoodsDetail pddGoods) {
 		if (pddGoods == null) {
@@ -2207,23 +2296,23 @@
 		if (queryExist == null || queryExist.size() == 0) {
 			return;
 		}
-		
+
 		ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
 		paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 		GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertPDDGoods(pddGoods, paramsDTO);
 		updateGoods(queryExist, goodsNew);
 	}
-	
+
 	private void updateGoods(List<GoodsEvaluate> listExist, GoodsDetailVO goodsNew) {
 		long goodsId = goodsNew.getGoodsId();
 		int goodsType = goodsNew.getGoodsType();
-		for (GoodsEvaluate goodsEvaluate: listExist) {
+		for (GoodsEvaluate goodsEvaluate : listExist) {
 			GoodsDetailVO goodsDetailVO = goodsEvaluate.getGoods();
-			if (goodsDetailVO != null && goodsDetailVO.getGoodsId() != null 
-				&& goodsDetailVO.getGoodsId() == goodsId && goodsDetailVO.getGoodsType() == goodsType ) {
+			if (goodsDetailVO != null && goodsDetailVO.getGoodsId() != null && goodsDetailVO.getGoodsId() == goodsId
+					&& goodsDetailVO.getGoodsType() == goodsType) {
 				goodsEvaluate.setGoods(goodsNew);
 			}
-			
+
 			// 鏇存柊鍟嗗搧淇℃伅
 			List<ImgInfo> imgList = goodsEvaluate.getImgList();
 			if (imgList == null || imgList.size() == 0) {
@@ -2232,28 +2321,50 @@
 
 			for (ImgInfo imgInfo : imgList) {
 				SimpleGoods simpleGoods = imgInfo.getGoods();
-				if (simpleGoods == null) {
+				if (simpleGoods == null || simpleGoods.getGoodsId() != goodsId
+						|| goodsType != simpleGoods.getGoodsType()) {
 					continue;
 				}
 
 				simpleGoods.setState(0);
-				simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
-				CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo();
+				simpleGoods.setPrice(goodsNew.getCouponPrice());
+				CouponInfoVO couponInfo = goodsNew.getCouponInfo();
 				if (couponInfo == null) {
-					simpleGoods.setPrice(goodsDetailVO.getZkPrice());
+					simpleGoods.setPrice(goodsNew.getZkPrice());
 				} else {
-					simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
+					simpleGoods.setPrice(goodsNew.getCouponPrice());
 					simpleGoods.setAmount(couponInfo.getAmount());
 				}
+
 				imgInfo.setGoods(simpleGoods);
-				imgInfo.setGoodsVO(goodsDetailVO);
+				imgInfo.setGoodsVO(goodsNew);
 			}
-			
+
 			goodsEvaluate.setImgList(imgList);
 			goodsEvaluate.setUpdateTime(new Date());
 			goodsEvaluateDao.save(goodsEvaluate);
 		}
 	}
-	
-	
+
+	private void removeOverdue() {
+		List<GoodsEvaluate> list = goodsEvaluateDao.queryOverdue();
+		if (list == null || list.size() == 0) {
+			return;
+		}
+		long nm = 1000 * 60;// 涓�鍒嗛挓鐨勬绉掓暟
+		long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟
+		long nd = 1000 * 24 * 60 * 60;// 涓�澶╃殑姣鏁�
+
+		long time = java.lang.System.currentTimeMillis();
+		for (GoodsEvaluate goodsEvaluate : list) {
+			long diff = time - goodsEvaluate.getEndTime().getTime();
+			long min = diff % nd % nh / nm;
+
+			// 杩囨湡瓒呰繃10鍒嗛挓灏卞垹闄�
+			if (min > 10) {
+				goodsEvaluateDao.remove(goodsEvaluate);
+			}
+		}
+	}
+
 }

--
Gitblit v1.8.0