From 744594ef1a2f530fc3e86ea9dc48b62247f79420 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 19 五月 2020 17:13:23 +0800
Subject: [PATCH] 饿了么绘图,添加口碑

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java |  988 +++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 563 insertions(+), 425 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 39a473c..911bbd4 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;
@@ -55,6 +54,7 @@
 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.OrderHongBaoMoneyComputeService;
 import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
 import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service;
 import com.yeshi.fanli.service.manger.goods.ConvertLinkManager;
@@ -90,6 +90,9 @@
 
 	@Resource
 	private HongBaoManageService hongBaoManageService;
+	
+	@Resource
+	private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
 
 	@Resource(name = "taskExecutor")
 	private TaskExecutor executor;
@@ -112,6 +115,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();
@@ -138,7 +163,11 @@
 			if (record.getStartTime() != null && record.getEndTime().getTime() <= record.getStartTime().getTime())
 				throw new GoodsEvaluateException(1, "鎴鏃堕棿蹇呴』澶т簬寮�濮嬫椂闂�");
 		} else {
-			record.setEndTime(DateUtil.plusDayDate(3, new Date()));
+			if (record.getStartTime() == null) {
+				record.setEndTime(DateUtil.plusDayDate(3, new Date()));
+			} else {
+				record.setEndTime(DateUtil.plusDayDate(3, record.getStartTime()));
+			}
 		}
 
 		Integer dynamicType = record.getDynamicType();
@@ -224,6 +253,31 @@
 		}
 		return null;
 	}
+	
+	private ImgInfo uploadOriginalPicture(MultipartFile file) {
+		try {
+			InputStream inputStream = file.getInputStream();
+			String contentType = file.getContentType();
+			String type = contentType.substring(contentType.indexOf("/") + 1);
+			String filePath = FilePathEnum.goodsEvaluate.getPath() + UUID.randomUUID().toString().replace("-", "") + "."+ type;
+			
+			BufferedImage sourceImg = ImageIO.read(inputStream);
+			ImgInfo info = new ImgInfo();
+			int width = sourceImg.getWidth();
+			int height = sourceImg.getHeight();
+			
+			String picLink = COSManager.getInstance().uploadFile(file.getInputStream(), filePath).getUrl();
+			
+			info.setH(height);
+			info.setW(width);
+			info.setUrl(picLink);
+			return info;
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+	
 
 	private String uploadPicture(File file, String contentType) throws Exception {
 		InputStream inputStream = new FileInputStream(file);
@@ -339,8 +393,7 @@
 				}
 			}
 		}
-		
-		
+
 		// 涓婁紶鏂囦欢鏇挎崲
 		if (fileRequest != null) {
 			for (int i = 0; i < 9; i++) {
@@ -364,7 +417,7 @@
 		GoodsDetailVO goodsDetailVO = null;
 		JDGoods jdGoods = null;
 		PDDGoodsDetail pddGoods = null;
-		ConfigParamsDTO params = hongBaoManageService.getShowComputeRate("android", "55");
+		ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
 		params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 		if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
 			try {
@@ -447,7 +500,7 @@
 				lineNum = 1;
 			} else if (totalImg == 3) {
 				lineNum = 3;
-			} else if (totalImg <= 4) {
+			} else if (totalImg == 2 || totalImg == 4) {
 				lineNum = 2;
 			} else {
 				lineNum = 3;
@@ -476,8 +529,9 @@
 		}
 
 		/*
-		 * // 鏃犲埜涓嶈兘鑷姩 鐢熸垚璇勮 CouponInfoVO couponInfo1 = goodsDetailVO.getCouponInfo(); if
-		 * (couponInfo1 == null) { addComment = false; }
+		 * // 鏃犲埜涓嶈兘鑷姩 鐢熸垚璇勮 CouponInfoVO couponInfo1 =
+		 * goodsDetailVO.getCouponInfo(); if (couponInfo1 == null) { addComment
+		 * = false; }
 		 */
 
 		String commentText = "";
@@ -509,21 +563,25 @@
 				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("-", ""));
 			commentInfo.setContent(commentText);
 			commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
+			commentInfo.setNeedSpin(true);
 			commentsNew.add(commentInfo);
 			resultObj.setComments(commentsNew);
 		}
@@ -581,7 +639,7 @@
 
 	public GoodsDetailVO getGoodsDetailVO(Long goodsId, Integer goodsType) throws GoodsEvaluateException {
 		GoodsDetailVO goodsDetail = null;
-		ConfigParamsDTO params = hongBaoManageService.getShowComputeRate("android", "55");
+		ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
 		params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 		if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
 			try {
@@ -732,8 +790,6 @@
 				}
 			}
 		}
-		
-		
 
 		// 鏁版嵁瀵规瘮 鍒犻櫎鍥剧墖
 		if (oldGoodsList != null && oldGoodsList.size() > 0) {
@@ -779,7 +835,7 @@
 				lineNum = 1;
 			} else if (totalImg == 3) {
 				lineNum = 3;
-			} else if (totalImg <= 4) {
+			} else if (totalImg == 2 || totalImg == 4) {
 				lineNum = 2;
 			} else {
 				lineNum = 3;
@@ -851,7 +907,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);
@@ -865,60 +922,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 {
@@ -926,33 +930,44 @@
 			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");
+		GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid);
+		if (resultObj == null)
+			throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
+		
+		if (EvaluateEnum.activity != resultObj.getType()) {
+			if (StringUtil.isNullOrEmpty(commentInfo.getCoupon())) {
+				throw new GoodsEvaluateException(1, "鍒搁潰棰濅笉鑳戒负绌�");
 			}
-		} else {
-			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");
+				}
+			} else {
+				throw new GoodsEvaluateException(1, "璇峰~鍐欏埜鎴鏃堕棿");
+			}
 		}
 
-		if (!StringUtil.isNullOrEmpty(content) && kind != 3) { // 娲诲姩涓嶉獙璇�
+		if (commentInfo.getNeedSpin() == null) {
+			commentInfo.setNeedSpin(false);
+		}
+		
+		String content = commentInfo.getContent();
+		if (!StringUtil.isNullOrEmpty(content) && commentInfo.getNeedSpin()) {
 			try {
 				convertLinkManager.convertLinkFromText(content, Constant.LINK_TOKEN_VERIFY_UID, true);
 			} catch (ConvertLinkExceptionException e) {
@@ -964,9 +979,6 @@
 			}
 		}
 
-		GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid);
-		if (resultObj == null)
-			throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
 
 		List<CommentInfo> comments = new ArrayList<>();
 		CommentInfo currencyCoupon = null;
@@ -1018,7 +1030,7 @@
 	}
 
 	@Override
-	public void saveActivityPic(String pid, ImgInfo imgInfo, MultipartHttpServletRequest fileRequest)
+	public void saveActivityPic(String pid, ImgInfo imgInfo, String picUrls, MultipartHttpServletRequest fileRequest)
 			throws GoodsEvaluateException, Exception {
 		if (StringUtil.isNullOrEmpty(pid)) {
 			throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅");
@@ -1027,122 +1039,175 @@
 		GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid);
 		if (resultObj == null)
 			throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
+		
+		if (imgInfo == null || StringUtil.isNullOrEmpty(imgInfo.getActivityUrl())) {
+			throw new GoodsEvaluateException(1, "娲诲姩閾炬帴涓嶈兘涓虹┖");
+		}
 
-		String videoPic = null;
-		String activityPic = null;
 		ImgInfo imgVideo = null;
-		ImgInfo imgactivity = null;
+		List<String> listDel = new ArrayList<String>();
+		List<ImgInfo> listOld = new ArrayList<ImgInfo>();
 		List<ImgInfo> resultList = resultObj.getImgList();
 		if (resultList != null && resultList.size() > 0) {
 			for (ImgInfo info : resultList) {
-				if (info.getType() == ImgEnum.activity) {
-					activityPic = info.getActivityPic();
-					imgactivity = info;
-				} else {
+				if (info.getType() == ImgEnum.video) {
 					imgVideo = info;
-					videoPic = info.getUrl();
+				} else {
+					listOld.add(info);
+				}
+			}
+		}
+		
+		// 瑙嗛閮ㄥ垎
+		if (fileRequest != null) {
+			MultipartFile filevideo = fileRequest.getFile("filevideo");
+			if (filevideo != null) {
+				if (StringUtil.isNullOrEmpty(imgInfo.getVideoUrl())) {
+					throw new GoodsEvaluateException(1, "瑙嗛閾炬帴涓嶈兘涓虹┖");
+				}
+				ImgInfo info = uploadVideoPicture(filevideo);
+				if (info == null)
+					throw new GoodsEvaluateException(2, "瑙嗛鍥剧墖涓婁紶澶辫触");
+				if (imgVideo != null) {
+					String url = imgVideo.getUrl();
+					if (!StringUtil.isNullOrEmpty(url)) {
+						listDel.add(url);
+					}
+					imgVideo.setUrl(info.getUrl());
+					imgVideo.setUrlHD(info.getUrl());
+				} else {
+					imgVideo = new ImgInfo();
+					imgVideo.setId(UUID.randomUUID().toString().replace("-", ""));
+					imgVideo.setLarge(true);
+					imgVideo.setPid(pid);
+					imgVideo.setUrl(info.getUrl());
+					imgVideo.setUrlHD(info.getUrl());
+					imgVideo.setVideoUrl(imgInfo.getVideoUrl());
+					imgVideo.setType(ImgEnum.video);
+				}
+				imgVideo.setW(info.getW());
+				imgVideo.setH(info.getH());
+			}
+		}
+
+		
+		List<ImgInfo> listImg = new ArrayList<ImgInfo>();
+		if (imgVideo != null) {
+			if (!StringUtil.isNullOrEmpty(imgInfo.getVideoUrl())) {
+				if (imgVideo != null && StringUtil.isNullOrEmpty(imgVideo.getUrl())) {
+					throw new GoodsEvaluateException(1, "瑙嗛灏侀潰鍥句笉鑳戒负绌�");
+				}
+				imgVideo.setVideoUrl(imgInfo.getVideoUrl());
+				listImg.add(imgVideo);
+			} else {
+				String url = imgVideo.getUrl();
+				if (!StringUtil.isNullOrEmpty(url)) {
+					listDel.add(url);
+				}
+			}
+		}
+ 
+		String activityUrl = imgInfo.getActivityUrl();
+		// 缂栬緫鍥剧墖
+		List<ImgInfo> tempList = new ArrayList<ImgInfo>();
+		if (!StringUtil.isNullOrEmpty(picUrls)) {
+			String[] pics = picUrls.split(",");
+			if (pics != null) {
+				for (int i = 0; i < pics.length; i++) {
+					String picLink = pics[i];
+					if (picLink.startsWith("http")) {
+						if (listOld != null) {
+							for (ImgInfo info: listOld) {
+								if (info.getUrl().equals(picLink)) {
+									info.setActivityUrl(activityUrl);
+									tempList.add(info);
+									break;
+								}
+							}
+						}
+					}
 				}
 			}
 		}
 
-		int width = 0;
-		int height = 0;
-		int width2 = 0;
-		int height2 = 0;
-		List<ImgInfo> listImg = new ArrayList<ImgInfo>();
+		
+		// 涓婁紶鏂囦欢鏇挎崲
 		if (fileRequest != null) {
-			MultipartFile filevideo = fileRequest.getFile("filevideo");
-			if (filevideo != null) {
-				removePicture(videoPic);
-
-				ImgInfo info = uploadVideoPicture(filevideo);
-				if (info == null)
-					throw new GoodsEvaluateException(2, "瑙嗛鍥剧墖涓婁紶澶辫触");
-				videoPic = info.getUrl();
-				width = info.getW();
-				height = info.getH();
-			}
-
-			MultipartFile activityfile = fileRequest.getFile("activityfile");
-			if (activityfile != null) {
-				removePicture(activityPic);
-				InputStream inputStream = activityfile.getInputStream();
-				BufferedImage sourceImg = ImageIO.read(inputStream);
-				width2 = sourceImg.getWidth();
-				height2 = sourceImg.getHeight();
-				String picLink = uploadPicture(activityfile);
-				activityPic = picLink;
+			for (int i = 0; i < 9; i++) {
+				MultipartFile file = fileRequest.getFile("file" + i);
+				if (file != null) {
+					ImgInfo info = uploadOriginalPicture(file);
+					ImgInfo imgInfo0 = new ImgInfo();
+					imgInfo0.setId(UUID.randomUUID().toString().replace("-", ""));
+					imgInfo0.setLarge(false);
+					imgInfo0.setPid(pid);
+					imgInfo0.setUrl(info.getUrl());
+					imgInfo0.setUrlHD(info.getUrl());
+					imgInfo0.setType(ImgEnum.activity);
+					imgInfo0.setW(info.getW());
+					imgInfo0.setH(info.getH());
+					imgInfo0.setActivityUrl(activityUrl);
+					if (i < tempList.size()) {
+						tempList.set(i, imgInfo0);
+					} else {
+						tempList.add(imgInfo0);
+					}
+				} 
 			}
 		}
-
-		if (!StringUtil.isNullOrEmpty(videoPic) || !StringUtil.isNullOrEmpty(imgInfo.getVideoUrl())) {
-			if (imgVideo != null) {
-				imgVideo.setUrl(videoPic);
-				imgVideo.setUrlHD(videoPic);
-				imgVideo.setVideoUrl(imgInfo.getVideoUrl());
-			} else {
-				imgVideo = new ImgInfo();
-				imgVideo.setId(UUID.randomUUID().toString().replace("-", ""));
-				imgVideo.setLarge(true);
-				imgVideo.setPid(pid);
-				imgVideo.setUrl(videoPic);
-				imgVideo.setUrlHD(videoPic);
-				imgVideo.setVideoUrl(imgInfo.getVideoUrl());
-				imgVideo.setType(ImgEnum.video);
-			}
-			if (width > 0) {
-				imgVideo.setW(width);
-				imgVideo.setH(height);
-			} else {
-				imgVideo.setW(imgVideo.getW());
-				imgVideo.setH(imgVideo.getH());
-			}
-			listImg.add(imgVideo);
-		}
-
-		int totalImg = 0;
-		if (!StringUtil.isNullOrEmpty(activityPic) || !StringUtil.isNullOrEmpty(imgInfo.getActivityUrl())) {
-			if (imgactivity != null) {
-				imgactivity.setUrl(activityPic);
-				imgactivity.setUrlHD(activityPic);
-				imgactivity.setActivityUrl(imgInfo.getActivityUrl());
-			} else {
-				imgactivity = new ImgInfo();
-				imgactivity.setId(UUID.randomUUID().toString().replace("-", ""));
-				imgactivity.setLarge(true);
-				imgactivity.setPid(pid);
-				imgactivity.setUrl(activityPic);
-				imgactivity.setUrlHD(activityPic);
-				imgactivity.setActivityUrl(imgInfo.getActivityUrl());
-				imgactivity.setType(ImgEnum.activity);
-			}
-			if (width2 > 0) {
-				imgactivity.setW(width2);
-				imgactivity.setH(height2);
-			} else {
-				imgactivity.setW(imgactivity.getW());
-				imgactivity.setH(imgactivity.getH());
-			}
-			listImg.add(imgactivity);
-			totalImg++;
-		}
-
+		
+		
 		int lineNum = 0;
+		int totalImg = tempList.size();
 		if (totalImg > 0) {
 			if (totalImg == 1) {
 				lineNum = 1;
 			} else if (totalImg == 3) {
 				lineNum = 3;
-			} else if (totalImg <= 4) {
+			} else if (totalImg == 2 || totalImg == 4) {
 				lineNum = 2;
 			} else {
 				lineNum = 3;
 			}
 		}
-
+		
+		// 涓�寮犲浘鏄剧ず涓哄ぇ鍥�
+		if (tempList.size() == 1) {
+			tempList.get(0).setLarge(true);
+		}
+		
+		if (tempList.size() > 0) {
+			listImg.addAll(tempList);
+		}
+		
+		// 娓呯悊鑰佸浘鐗�
+		if (listOld != null && listOld.size() > 0) {
+			for (ImgInfo infoOld: listOld) {
+				boolean del = true;
+				String oldPic = infoOld.getUrl();
+				for (ImgInfo info : listImg) {
+					if (info.getUrl().equals(oldPic)) {
+						del = false;
+					}
+				}
+				if (del)
+					listDel.add(infoOld.getUrl());
+			}
+		}
+		
+		resultObj.setJumpLink(activityUrl);
 		resultObj.setLineNum(lineNum);
 		resultObj.setImgList(listImg);
 		goodsEvaluateDao.save(resultObj);
+		
+		// 鍒犻櫎鍥剧墖
+		if (listDel.size() > 0) {
+			for (String url : listDel) {
+				if (url.contains(FilePathEnum.goodsEvaluate.getPath())) {
+					removePicture(url);
+				}
+			}
+		}
 	}
 
 	@Override
@@ -1270,7 +1335,7 @@
 				}
 			}
 		}
-				
+
 		// 涓婁紶鏂囦欢鏇挎崲
 		if (fileRequest != null) {
 			for (int i = 0; i < 9; i++) {
@@ -1285,7 +1350,7 @@
 				}
 			}
 		}
-		
+
 		int totalImg = 0;
 		for (String pic : listpic) {
 			ImgInfo imgInfo0 = new ImgInfo();
@@ -1301,7 +1366,6 @@
 			totalImg++;
 		}
 
-		
 		// 娓呯悊鑰佸浘鐗�
 		if (listOld != null && listOld.size() > 0) {
 			for (int j = 0; j < listOld.size(); j++) {
@@ -1324,7 +1388,7 @@
 				lineNum = 1;
 			} else if (totalImg == 3) {
 				lineNum = 3;
-			} else if (totalImg <= 4) {
+			} else if (totalImg == 2 || totalImg == 4) {
 				lineNum = 2;
 			} else {
 				lineNum = 3;
@@ -1476,23 +1540,22 @@
 	}
 
 	@Override
-	public List<GoodsEvaluate> query(int start, int count, String key, Integer state, int dynamicType) {
-		return goodsEvaluateDao.query(start, count, key, state, dynamicType);
+	public List<GoodsEvaluate> query(int start, int count, String key, Integer state, int dynamicType, String typeEnum) {
+		return goodsEvaluateDao.query(start, count, key, state, dynamicType, typeEnum);
 	}
 
 	@Override
-	public long count(String key, Integer state, int dynamicType) {
-		return goodsEvaluateDao.count(key, state, dynamicType);
+	public long count(String key, Integer state, int dynamicType, String typeEnum) {
+		return goodsEvaluateDao.count(key, state, dynamicType, typeEnum);
 	}
 
-	
 	@Override
 	public void addRanDomShareCount() {
 		// 鍙戝湀
 		try {
 			List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(0, Integer.MAX_VALUE, 1);
 			if (list != null) {
-				for (GoodsEvaluate goodsEvaluate: list) {
+				for (GoodsEvaluate goodsEvaluate : list) {
 					Integer shareNum = goodsEvaluate.getShareNum();
 					if (shareNum == null) {
 						shareNum = 0;
@@ -1504,12 +1567,12 @@
 		} catch (Exception e) {
 			LogHelper.errorDetailInfo(e);
 		}
-		
+
 		// 绱犳潗
 		try {
 			List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(0, Integer.MAX_VALUE, 2);
 			if (list != null) {
-				for (GoodsEvaluate goodsEvaluate: list) {
+				for (GoodsEvaluate goodsEvaluate : list) {
 					Integer shareNum = goodsEvaluate.getShareNum();
 					if (shareNum == null) {
 						shareNum = 0;
@@ -1522,8 +1585,7 @@
 			LogHelper.errorDetailInfo(e);
 		}
 	}
-	
-	
+
 	@Override
 	@Cacheable(value = "dynamicCache", key = "'queryValidEvaluateCache-'+#start")
 	public List<GoodsEvaluate> queryValidEvaluateCache(int start, int count) {
@@ -1535,9 +1597,11 @@
 			public void run() {
 				// 鏇存柊淇℃伅
 				updateGoodInfo(list);
-				
+
 				// 鍒犻櫎宸茶繃鏈�
 				removeOverdue();
+				
+				removeDownGoods();
 			}
 		});
 
@@ -1569,6 +1633,9 @@
 				continue;
 			}
 
+			// 鎸夌収鍙戝竷鏄剧ず鏃堕棿娈佃捣濮嬫椂闂翠负鍑嗐��
+			evaluateNew.setPublishTime(evaluateNew.getStartTime());
+
 			List<CommentInfo> comments = evaluateNew.getComments();
 			if (comments != null && comments.size() > 0) {
 				EvaluateEnum typeEnum = evaluateNew.getType();
@@ -1595,20 +1662,35 @@
 						if (goods != null) {
 							String content = commentInfoNew.getContent();
 							if (!StringUtil.isNullOrEmpty(content)) {
-								content = content.replace("[鍘熶环]", MoneyBigDecimalUtil.getWithNoZera(goods.getZkPrice())+"");
+								content = content.replace("[鍘熶环]",
+										MoneyBigDecimalUtil.getWithNoZera(goods.getZkPrice()) + "");
 								if (goods.isHasCoupon()) {
-									content = content.replace("[鍒稿悗浠穄",MoneyBigDecimalUtil.getWithNoZera(goods.getCouponPrice())+"");
+									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();
@@ -1684,9 +1766,11 @@
 			@Override
 			public void run() {
 				updateGoodInfo(listOBJ);
-				
+
 				// 鍒犻櫎宸茶繃鏈�
 				removeOverdue();
+				
+				removeDownGoods();
 			}
 		});
 
@@ -1713,7 +1797,7 @@
 		try {
 			Date now = new Date();
 			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-			ConfigParamsDTO params = hongBaoManageService.getShowComputeRate("android", "55");
+			ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
 			params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 			for (GoodsEvaluate goodsEvaluate : list) {
 				// 鏄惁2涓皬鏃朵箣鍐呭凡鏇存柊
@@ -1834,53 +1918,55 @@
 	}
 
 	@Override
-	public void addGoodsEvaluateByDynamicInfo(DynamicInfo info) {
-		if (1 > 0) {
-			return; // 鏆備笉鍚敤鑷姩鐢熸垚
+	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, "鐩稿叧鍙傛暟涓嶈兘涓虹┖");
 		}
 
-		if (info == null) {
+		List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO, goodsId);
+		if (evaluateList != null && evaluateList.size() > 0)
 			return;
+
+		TaoBaoGoodsBrief goodsBrief = null;
+		try {
+			goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
+		} catch (TaobaoGoodsDownException e) {
+			throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�");
 		}
 
-		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()));
+		if (goodsBrief == null) {
+			throw new GoodsEvaluateException(1, "鏈壘鍒板晢鍝佷俊鎭�");
+		}
 
-			List<ClientTextStyleVO> titles = info.getTitle();
-			if (titles != null) {
-				goodsEvaluate.setTitle(info.getTitle().get(0).getContent());
-			} else {
-				goodsEvaluate.setTitle("");
-			}
+		BigDecimal couponAmount = goodsBrief.getCouponAmount();
+		if (couponAmount == null || couponAmount.compareTo(new BigDecimal(0)) < 1) {
+			throw new GoodsEvaluateException(1, "璇ュ晢鍝佹棤鍒�");
+		}
 
-			List<ImgInfo> imgList = new ArrayList<>();
+		// 鐧藉簳鍥�
+		List<String> imgs = new ArrayList<>();
+		if (!StringUtil.isNullOrEmpty(goodsBrief.getPictUrlWhite())) {
+			imgs.add(goodsBrief.getPictUrlWhite());
+		}
+		imgs.addAll(goodsBrief.getImgList());
 
-			List<GoodsPicture> imgs = info.getImgs();
-			for (GoodsPicture goodsPicture : imgs) {
+		// 鍟嗗搧VO
+		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
+		paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
+		GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
+
+		// 鍟嗗搧鍥剧墖淇℃伅
+		int i = 0;
+		if (imgList == null || imgList.size() == 0)
+			for (String img : 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.setUrl(img);
+				imgInfo.setUrlHD(img);
+				if (i != 0) {
 					imgInfo.setType(ImgEnum.img);
 				} else {
 					imgInfo.setType(ImgEnum.goods);
@@ -1896,43 +1982,72 @@
 						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);
-
+					imgInfo.setGoodsVO(goodsVO);
 				}
 				imgList.add(imgInfo);
+				i++;
 			}
-			goodsEvaluate.setImgList(imgList);
-			goodsEvaluateDao.save(goodsEvaluate);
-		} catch (Exception e) {
-			LogHelper.errorDetailInfo(e);
+
+		// 璇勮鍐呭
+		CommentInfo commentInfo = new CommentInfo();
+		commentInfo.setNeedSpin(true);
+		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));
+			if (!goodsVO.isHasCoupon()) {
+				commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
+				commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
+				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 (imgList.size() > 0) {
+			if (imgList.size() == 1) {
+				lineNum = 1;
+			} else if (imgList.size() == 3) {
+				lineNum = 3;
+			} else if (imgList.size() == 2 || imgList.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);
+		if (startTime == null)
+			startTime = new Date();
+		goodsEvaluate.setStartTime(startTime);
+		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
@@ -1978,7 +2093,7 @@
 				return false;
 			}
 
-			ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
+			ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
 			paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 			GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
 			// 鍙戝竷鐢ㄦ埛
@@ -2042,19 +2157,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<>();
@@ -2091,18 +2193,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);
@@ -2118,32 +2216,46 @@
 					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("");
-					
-					
+					commentInfo2.setNeedSpin(true);
+
 					List<CommentInfo> commentsNew = new ArrayList<>();
 					commentsNew.add(commentInfo);
 					commentsNew.add(commentInfo2);
 					goodsEvaluate.setComments(commentsNew);
-					
-					goodsEvaluate.setGoods(goodsVO);
 				}
 				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() == 2 || imgList.size() == 4) {
+					lineNum = 2;
+				} else {
+					lineNum = 3;
+				}
+			}
+			goodsEvaluate.setLineNum(lineNum);
+
+			goodsEvaluate.setGoods(goodsVO);
 			goodsEvaluate.setImgList(imgList);
 			goodsEvaluateDao.save(goodsEvaluate);
 		} catch (Exception e) {
@@ -2154,122 +2266,68 @@
 		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");
+
+			ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.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) {
@@ -2279,14 +2337,14 @@
 		if (queryExist == null || queryExist.size() == 0) {
 			return;
 		}
-		
-		ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
+
+		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.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) {
@@ -2296,23 +2354,23 @@
 		if (queryExist == null || queryExist.size() == 0) {
 			return;
 		}
-		
-		ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
+
+		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.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) {
@@ -2321,12 +2379,11 @@
 
 			for (ImgInfo imgInfo : imgList) {
 				SimpleGoods simpleGoods = imgInfo.getGoods();
-				if (simpleGoods == null || simpleGoods.getGoodsId() != goodsId  
+				if (simpleGoods == null || simpleGoods.getGoodsId() != goodsId
 						|| goodsType != simpleGoods.getGoodsType()) {
 					continue;
 				}
 
-				
 				simpleGoods.setState(0);
 				simpleGoods.setPrice(goodsNew.getCouponPrice());
 				CouponInfoVO couponInfo = goodsNew.getCouponInfo();
@@ -2336,18 +2393,79 @@
 					simpleGoods.setPrice(goodsNew.getCouponPrice());
 					simpleGoods.setAmount(couponInfo.getAmount());
 				}
-				
+
 				imgInfo.setGoods(simpleGoods);
 				imgInfo.setGoodsVO(goodsNew);
 			}
-			
+
 			goodsEvaluate.setImgList(imgList);
 			goodsEvaluate.setUpdateTime(new Date());
 			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() {
+		if(1>0)
+			return;
+		
 		List<GoodsEvaluate> list = goodsEvaluateDao.queryOverdue();
 		if (list == null || list.size() == 0) {
 			return;
@@ -2355,16 +2473,36 @@
 		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) {
+		for (GoodsEvaluate goodsEvaluate : list) {
 			long diff = time - goodsEvaluate.getEndTime().getTime();
-			long min = diff % nd % nh / nm; 
-			
+			long min = diff % nd % nh / nm;
+
 			// 杩囨湡瓒呰繃10鍒嗛挓灏卞垹闄�
 			if (min > 10) {
 				goodsEvaluateDao.remove(goodsEvaluate);
 			}
 		}
 	}
+
+	/**
+	 * 鍒犻櫎鍟嗗搧宸蹭笅鏋�-鍗曞搧
+	 */
+	private void removeDownGoods() {
+		if(1>0)
+			return;
+		try {
+			List<GoodsEvaluate> list = goodsEvaluateDao.removeDownGoods();
+			if (list == null || list.size() == 0) {
+				return;
+			}
+
+			for (GoodsEvaluate goodsEvaluate : list) {
+				goodsEvaluateDao.remove(goodsEvaluate);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
 }

--
Gitblit v1.8.0