From ce2c33ba07d0b0cbb14ec6b37b72b19d073b15af Mon Sep 17 00:00:00 2001
From: admin <2780501319@qq.com>
Date: 星期五, 06 三月 2020 11:15:53 +0800
Subject: [PATCH] 视频封面图裁剪bug修复

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java |  383 ++++++++++++++++++++++++++++++------------------------
 1 files changed, 211 insertions(+), 172 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 0a2512b..2855b15 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
@@ -1,6 +1,8 @@
 package com.yeshi.fanli.service.impl.dynamic;
 
 import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.FileInputStream;
 import java.io.InputStream;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
@@ -14,13 +16,14 @@
 import javax.annotation.Resource;
 import javax.imageio.ImageIO;
 
+import org.apache.commons.beanutils.PropertyUtils;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.core.task.TaskExecutor;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.yeshi.utils.DateUtil;
-import org.yeshi.utils.JsonUtil;
+import org.yeshi.utils.ImageCropUtil;
 import org.yeshi.utils.tencentcloud.COSManager;
 
 import com.yeshi.fanli.dao.dynamic.GoodsEvaluateDao;
@@ -54,11 +57,11 @@
 import com.yeshi.fanli.service.manger.goods.ConvertLinkManager;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.FilePathEnum;
+import com.yeshi.fanli.util.FileUtil;
 import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
 import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil;
-import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil;
 import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
 import com.yeshi.fanli.util.jd.JDApiUtil;
 import com.yeshi.fanli.util.jd.JDUtil;
@@ -86,23 +89,20 @@
 	@Resource(name = "taskExecutor")
 	private TaskExecutor executor;
 
-
 	@Resource
 	private JDGoodsCacheUtil jdGoodsCacheUtil;
 
 	@Resource
 	private PinDuoDuoCacheUtil pinDuoDuoCacheUtil;
-	
+
 	@Resource
 	private ConfigService configService;
-	
+
 	@Resource
 	private ShareGoodsService shareGoodsService;
-	
+
 	@Resource
 	private ConvertLinkManager convertLinkManager;
-	
-	
 
 	@Override
 	public String saveHead(MultipartFile file, GoodsEvaluate record) throws GoodsEvaluateException {
@@ -115,7 +115,7 @@
 		if (StringUtil.isNullOrEmpty(tilte)) {
 			throw new GoodsEvaluateException(1, "鎺ㄨ崘璇笉鑳戒负绌�");
 		}
-		
+
 		try {
 			ActivityUser activityUser = activityUserService.getActivityUserByNickName(record.getUser(), file);
 			if (activityUser == null)
@@ -129,7 +129,7 @@
 			if (record.getStartTime() != null && record.getEndTime().getTime() <= record.getStartTime().getTime())
 				throw new GoodsEvaluateException(1, "鎴鏃堕棿蹇呴』澶т簬寮�濮嬫椂闂�");
 		} else {
-			record.setEndTime(DateUtil.plusDayDate(3,new Date()));
+			record.setEndTime(DateUtil.plusDayDate(3, new Date()));
 		}
 
 		Integer dynamicType = record.getDynamicType();
@@ -137,8 +137,8 @@
 			record.setDynamicType(1);
 		}
 
-		if (record.getShareNum() == null || record.getShareNum() <=0 ) {
-			record.setShareNum((int)(Math.random()*5000)+1000);
+		if (record.getShareNum() == null || record.getShareNum() <= 0) {
+			record.setShareNum((int) (Math.random() * 5000) + 1000);
 		}
 
 		if (record.getWeight() == null)
@@ -146,7 +146,7 @@
 
 		if (record.getStartTime() == null)
 			record.setStartTime(new Date());
-		
+
 		record.setPublishTime(record.getStartTime());
 
 		String id = record.getId();
@@ -182,6 +182,39 @@
 	private String uploadPicture(MultipartFile file) throws Exception {
 		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;
+		return COSManager.getInstance().uploadFile(inputStream, filePath).getUrl();
+	}
+
+	private ImgInfo uploadVideoPicture(MultipartFile filevideo) {
+		try {
+			File tempFile = new File(FileUtil.getCacheDir() + "/" + filevideo.getOriginalFilename());
+			if (tempFile.exists())
+				tempFile.delete();
+			tempFile.createNewFile();
+			filevideo.transferTo(tempFile);
+			File destFile = new File(FileUtil.getCacheDir() + "/temp_" + filevideo.getOriginalFilename());
+			// 瑁佸壀瑙嗛灏侀潰锛屽楂樻瘮涓�2:1
+			ImageCropUtil.centerCrop(tempFile, destFile, 2.0f);
+			BufferedImage sourceImg = ImageIO.read(new FileInputStream(destFile));
+			ImgInfo info = new ImgInfo();
+			int width = sourceImg.getWidth();
+			int height = sourceImg.getHeight();
+			String picLink = uploadPicture(destFile, filevideo.getContentType());
+			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);
 		String type = contentType.substring(contentType.indexOf("/") + 1);
 		String filePath = FilePathEnum.goodsEvaluate.getPath() + UUID.randomUUID().toString().replace("-", "") + "."
 				+ type;
@@ -224,10 +257,10 @@
 				ImgEnum type = info.getType();
 				if (type == ImgEnum.video) {
 					imgVideo = info;
-				} else if (type == ImgEnum.goods ) {
+				} else if (type == ImgEnum.goods) {
 					listOld.add(info.getUrl());
 					oldGoodsVO = info.getGoodsVO();
-				} else if (type == ImgEnum.img){
+				} else if (type == ImgEnum.img) {
 					listOld.add(info.getUrl());
 				}
 			}
@@ -240,31 +273,28 @@
 				if (StringUtil.isNullOrEmpty(videoUrl)) {
 					throw new GoodsEvaluateException(1, "瑙嗛閾炬帴涓嶈兘涓虹┖");
 				}
-				InputStream inputStream = filevideo.getInputStream();
-				BufferedImage sourceImg = ImageIO.read(inputStream);
-				int width = sourceImg.getWidth();
-				int height = sourceImg.getHeight();
-
-				String picLink = uploadPicture(filevideo);
+				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(picLink);
-					imgVideo.setUrlHD(picLink);
+					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(picLink);
-					imgVideo.setUrlHD(picLink);
+					imgVideo.setUrl(info.getUrl());
+					imgVideo.setUrlHD(info.getUrl());
 					imgVideo.setVideoUrl(videoUrl);
 					imgVideo.setType(ImgEnum.video);
 				}
-				imgVideo.setW(width);
-				imgVideo.setH(height);
+				imgVideo.setW(info.getW());
+				imgVideo.setH(info.getH());
 			}
 		}
 
@@ -332,7 +362,7 @@
 			pddGoods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
 			goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(pddGoods, params);
 		}
-		
+
 		if (goodsDetailVO == null) {
 			throw new GoodsEvaluateException(1, "璇ュ晢鍝佷俊鎭笉瀛樺湪");
 		}
@@ -373,7 +403,7 @@
 				totalImg++;
 			}
 		}
-		
+
 		if (tempList.size() > 0) {
 			listImg.addAll(tempList);
 		}
@@ -408,29 +438,29 @@
 		resultObj.setGoods(goodsDetailVO);
 		resultObj.setMainPicNum(picNum);
 		resultObj.setImgList(listImg);
-		
+
 		boolean addComment = true;
 		List<CommentInfo> commentsNew = new ArrayList<>();
 		List<CommentInfo> comments = resultObj.getComments();
 		if (comments != null && comments.size() > 0) {
-			for (CommentInfo commentInfo: comments) {
+			for (CommentInfo commentInfo : comments) {
 				if (commentInfo.getTypeEnum() == CommentInfoEnum.goodsCoupon) {
-					if (oldGoodsVO != null && oldGoodsVO.getGoodsId().longValue() == goodsId.longValue() 
+					if (oldGoodsVO != null && oldGoodsVO.getGoodsId().longValue() == goodsId.longValue()
 							&& oldGoodsVO.getGoodsType() == goodsType) {
 						addComment = false;
-					} 
+					}
 					continue;
-				} 
+				}
 				commentsNew.add(commentInfo);
 			}
-		} 
-		
+		}
+
 		/*
-		 * // 鏃犲埜涓嶈兘鑷姩 鐢熸垚璇勮 CouponInfoVO couponInfo1 = goodsDetailVO.getCouponInfo(); if
-		 * (couponInfo1 == null) { addComment = false; }
+		 * // 鏃犲埜涓嶈兘鑷姩 鐢熸垚璇勮 CouponInfoVO couponInfo1 =
+		 * goodsDetailVO.getCouponInfo(); if (couponInfo1 == null) { addComment
+		 * = false; }
 		 */
-		
-		
+
 		if (addComment) {
 			String commentText = "";
 			if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
@@ -444,15 +474,16 @@
 					couponUrl = couponInfo.getLink();
 				}
 				String materialId = "https://item.jd.com/" + goodsId + ".html";
-				String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "","1");
+				String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl,
+						JDApiUtil.POSITION_SHARE + "", "1");
 				String template = configService.get(ConfigKeyEnum.quickShareJDCommentText.getKey());
-				commentText = template.replace("[閾炬帴]", jumpLink);			
+				commentText = template.replace("[閾炬帴]", jumpLink);
 			} else if (goodsType == Constant.SOURCE_TYPE_PDD) {
 				String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsId, PinDuoDuoApiUtil.PID_SHARE + "", "1");
 				String template = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey());
 				commentText = template.replace("[閾炬帴]", jumpLink);
 			}
-			
+
 			commentText = commentText.replace("[鍘熶环]", goodsDetailVO.getZkPrice().toString());
 			if (!goodsDetailVO.isHasCoupon()) {
 				commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
@@ -460,10 +491,10 @@
 			} else {
 				commentText = commentText.replace("[鍒稿悗浠穄", goodsDetailVO.getCouponPrice().toString());
 			}
-			
-			commentText =commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
 
-			
+			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);
@@ -483,31 +514,32 @@
 		}
 	}
 
-	
 	private String createTokenAndLink(GoodsDetailVO goodsDetailVO) throws Exception {
 		String commentText = "";
 		if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
 			TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsDetailVO.getGoodsId(), "0");
 			String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
 			commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
-		} else if (goodsDetailVO.getGoodsType()  == Constant.SOURCE_TYPE_JD) {
+		} else if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_JD) {
 			String couponUrl = null;
-			
+
 			JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsDetailVO.getGoodsId());
 			JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods);
 			if (couponInfo != null) {
 				couponUrl = couponInfo.getLink();
 			}
 			String materialId = "https://item.jd.com/" + goodsDetailVO.getGoodsId() + ".html";
-			String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "","1");
+			String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "",
+					"1");
 			String template = configService.get(ConfigKeyEnum.quickShareJDCommentText.getKey());
-			commentText = template.replace("[閾炬帴]", jumpLink);			
-		} else if (goodsDetailVO.getGoodsType()  == Constant.SOURCE_TYPE_PDD) {
-			String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsDetailVO.getGoodsId(), PinDuoDuoApiUtil.PID_SHARE + "", "1");
+			commentText = template.replace("[閾炬帴]", jumpLink);
+		} else if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_PDD) {
+			String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsDetailVO.getGoodsId(),
+					PinDuoDuoApiUtil.PID_SHARE + "", "1");
 			String template = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey());
 			commentText = template.replace("[閾炬帴]", jumpLink);
 		}
-		
+
 		commentText = commentText.replace("[鍘熶环]", goodsDetailVO.getZkPrice().toString());
 		if (!goodsDetailVO.isHasCoupon()) {
 			commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
@@ -515,10 +547,10 @@
 		} else {
 			commentText = commentText.replace("[鍒稿悗浠穄", goodsDetailVO.getCouponPrice().toString());
 		}
-		
+
 		return commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
 	}
-	
+
 	public GoodsDetailVO getGoodsDetailVO(Long goodsId, Integer goodsType) throws GoodsEvaluateException {
 		GoodsDetailVO goodsDetail = null;
 		BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
@@ -583,31 +615,29 @@
 					throw new GoodsEvaluateException(1, "瑙嗛閾炬帴涓嶈兘涓虹┖");
 				}
 
-				InputStream inputStream = filevideo.getInputStream();
-				BufferedImage sourceImg = ImageIO.read(inputStream);
-				int width = sourceImg.getWidth();
-				int height = sourceImg.getHeight();
+				ImgInfo info = uploadVideoPicture(filevideo);
+				if (info == null)
+					throw new GoodsEvaluateException(2, "瑙嗛鍥剧墖涓婁紶澶辫触");
 
-				String picLink = uploadPicture(filevideo);
 				if (imgVideo != null) {
 					String url = imgVideo.getUrl();
 					if (!StringUtil.isNullOrEmpty(url)) {
 						listDel.add(url);
 					}
-					imgVideo.setUrl(picLink);
-					imgVideo.setUrlHD(picLink);
+					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(picLink);
-					imgVideo.setUrlHD(picLink);
+					imgVideo.setUrl(info.getUrl());
+					imgVideo.setUrlHD(info.getUrl());
 					imgVideo.setVideoUrl(videoUrl);
 					imgVideo.setType(ImgEnum.video);
 				}
-				imgVideo.setW(width);
-				imgVideo.setH(height);
+				imgVideo.setW(info.getW());
+				imgVideo.setH(info.getH());
 			}
 		}
 
@@ -640,7 +670,7 @@
 					}
 
 					String picUrl = goodsDetailVO.getPicUrl();
-						
+
 					if (fileRequest != null) {
 						MultipartFile file = fileRequest.getFile("file" + i);
 						if (file != null) {
@@ -671,7 +701,7 @@
 					}
 					imgInfo0.setGoods(simpleGoods);
 					imgInfo0.setGoodsVO(goodsDetailVO);
-					
+
 					listImg.add(imgInfo0);
 					totalImg++;
 				}
@@ -743,37 +773,37 @@
 		}
 	}
 
-	
 	@Override
-	public void saveGoodsComment(String id, int kind, List<CommentInfo> comments) throws GoodsEvaluateException, Exception {
-		if (comments == null || comments.size() == 0 ) {
+	public void saveGoodsComment(String id, int kind, List<CommentInfo> comments)
+			throws GoodsEvaluateException, Exception {
+		if (comments == null || comments.size() == 0) {
 			throw new GoodsEvaluateException(1, "鍐呭涓嶈兘涓虹┖");
 		}
 
 		GoodsEvaluate resultObj = goodsEvaluateDao.getById(id);
 		if (resultObj == null)
 			throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
-		
+
 		GoodsDetailVO goods = resultObj.getGoods();
-		if(kind == 1 && goods == null) {
+		if (kind == 1 && goods == null) {
 			throw new GoodsEvaluateException(1, "璇峰厛褰曞叆鍟嗗搧淇℃伅");
 		}
 
 		CommentInfo currencyCoupon = null;
 		List<CommentInfo> oldComments = resultObj.getComments();
 		if (oldComments != null) {
-			for (int i =0;i < oldComments.size(); i ++) {
+			for (int i = 0; i < oldComments.size(); i++) {
 				CommentInfo info = oldComments.get(i);
 				if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) {
 					currencyCoupon = info;
 					continue;
-				} 
+				}
 			}
 		}
-		
+
 		List<CommentInfo> newList = new ArrayList<>();
-		for (int i =0;i < comments.size(); i ++) {
-			CommentInfo commentInfo =  comments.get(i);
+		for (int i = 0; i < comments.size(); i++) {
+			CommentInfo commentInfo = comments.get(i);
 			String content = commentInfo.getContent();
 			if (StringUtil.isNullOrEmpty(content)) {
 				if (i == 0 && kind == 1) {
@@ -788,15 +818,15 @@
 					throw new GoodsEvaluateException(1, "涓嶅寘鍚彲杞摼鐨勫彛浠や笌閾炬帴");
 				}
 			}
-			
+
 			if (StringUtil.isNullOrEmpty(commentInfo.getId())) {
 				commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
 			}
-			
+
 			commentInfo.setType(commentInfo.getTags());
 			commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
 			newList.add(commentInfo);
-		} 
+		}
 		if (currencyCoupon != null) {
 			comments.add(currencyCoupon);
 		}
@@ -804,7 +834,7 @@
 		resultObj.setComments(comments);
 		goodsEvaluateDao.save(resultObj);
 	}
-	
+
 	@Override
 	public void saveGoodsCoupon(String pid, String content) throws GoodsEvaluateException, Exception {
 		if (StringUtil.isNullOrEmpty(pid)) {
@@ -830,15 +860,15 @@
 
 		List<CommentInfo> comments = new ArrayList<>();
 		if (!StringUtil.isNullOrEmpty(content)) {
-			
-			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());
@@ -860,22 +890,23 @@
 	}
 
 	@Override
-	public void saveCurrencyCoupon(String pid, int kind, CommentInfo commentInfo) throws GoodsEvaluateException, Exception {
+	public void saveCurrencyCoupon(String pid, int kind, CommentInfo commentInfo)
+			throws GoodsEvaluateException, Exception {
 		if (StringUtil.isNullOrEmpty(pid)) {
 			throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅");
 		}
-		
+
 		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) ) {
+		if (StringUtil.isNullOrEmpty(tagUrl) && StringUtil.isNullOrEmpty(content)) {
 			throw new GoodsEvaluateException(1, "璇勮璇拰閾炬帴涓嶈兘鍚屾椂涓虹┖");
 		}
 
@@ -890,8 +921,8 @@
 		} else {
 			throw new GoodsEvaluateException(1, "璇峰~鍐欏埜鎴鏃堕棿");
 		}
-		
-		if(!StringUtil.isNullOrEmpty(content) && kind != 3) { // 娲诲姩涓嶉獙璇�
+
+		if (!StringUtil.isNullOrEmpty(content) && kind != 3) { // 娲诲姩涓嶉獙璇�
 			try {
 				convertLinkManager.convertLinkFromText(content, Constant.LINK_TOKEN_VERIFY_UID, true);
 			} catch (ConvertLinkExceptionException e) {
@@ -902,7 +933,7 @@
 				throw new GoodsEvaluateException(1, "鍖呭惈涓嶅彲杞摼鐨勫彛浠や笌閾炬帴");
 			}
 		}
-		
+
 		GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid);
 		if (resultObj == null)
 			throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
@@ -927,10 +958,10 @@
 				commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
 			}
 			// 鍒哥被鍨�
-			
+
 			commentInfo.setType(commentInfo.getTags());
 			commentInfo.setTypeEnum(CommentInfoEnum.currencyCoupon);
-			
+
 			// 鏍囩淇℃伅
 			List<ClientTextStyleVO> tagList = new ArrayList<>();
 			String couponSource = commentInfo.getCouponSource();
@@ -994,12 +1025,12 @@
 			if (filevideo != null) {
 				removePicture(videoPic);
 
-				InputStream inputStream = filevideo.getInputStream();
-				BufferedImage sourceImg = ImageIO.read(inputStream);
-				width = sourceImg.getWidth();
-				height = sourceImg.getHeight();
-				String picLink = uploadPicture(filevideo);
-				videoPic = picLink;
+				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");
@@ -1113,31 +1144,28 @@
 				if (StringUtil.isNullOrEmpty(videoUrl)) {
 					throw new GoodsEvaluateException(1, "瑙嗛閾炬帴涓嶈兘涓虹┖");
 				}
-				InputStream inputStream = filevideo.getInputStream();
-				BufferedImage sourceImg = ImageIO.read(inputStream);
-				int width = sourceImg.getWidth();
-				int height = sourceImg.getHeight();
-
-				String picLink = uploadPicture(filevideo);
+				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(picLink);
-					imgVideo.setUrlHD(picLink);
+					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(picLink);
-					imgVideo.setUrlHD(picLink);
+					imgVideo.setUrl(info.getUrl());
+					imgVideo.setUrlHD(info.getUrl());
 					imgVideo.setVideoUrl(videoUrl);
 					imgVideo.setType(ImgEnum.video);
 				}
-				imgVideo.setW(width);
-				imgVideo.setH(height);
+				imgVideo.setW(info.getW());
+				imgVideo.setH(info.getH());
 			}
 
 			activityFile = fileRequest.getFile("activityFile");
@@ -1413,44 +1441,44 @@
 	}
 
 	@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);
-		
-		List<GoodsEvaluate> listOBJ = list;
-		// 鏇存柊鍟嗗搧淇℃伅
-		executor.execute(new Runnable() {
-			@Override
-			public void run() {
-				updateGoodInfo(listOBJ);
-			}
-		});
-
 		if (list == null) {
 			list = new ArrayList<>();
 		}
 		Date now = new Date();
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-		for (GoodsEvaluate goodsEvaluate: list) {
-			
+
+		List<GoodsEvaluate> listNew = new ArrayList<>();
+		for (GoodsEvaluate goodsEvaluate : list) {
+
+			GoodsEvaluate evaluateNew = new GoodsEvaluate();
+			try {
+				PropertyUtils.copyProperties(evaluateNew, goodsEvaluate);
+			} catch (Exception e) {
+				e.printStackTrace();
+				continue;
+			}
+
 			int comment = 0;
-			List<CommentInfo> comments = goodsEvaluate.getComments();
+			List<CommentInfo> comments = evaluateNew.getComments();
 			if (comments != null && comments.size() > 0) {
-				EvaluateEnum typeEnum = goodsEvaluate.getType();
+				EvaluateEnum typeEnum = evaluateNew.getType();
 				List<CommentInfo> commentNew = new ArrayList<>();
-				
-				for (CommentInfo commentInfo: comments) {
-					comment ++;
-					
+
+				for (CommentInfo commentInfo : comments) {
+					comment++;
 					CommentInfoEnum typeComment = commentInfo.getTypeEnum();
-					if (typeComment != null && typeComment ==CommentInfoEnum.goodsCoupon) {
-						GoodsDetailVO goods = goodsEvaluate.getGoods();
+					if (typeComment != null && typeComment == CommentInfoEnum.goodsCoupon) {
+						GoodsDetailVO goods = evaluateNew.getGoods();
 						if (goods.isHasCoupon()) {
 							commentNew.add(commentInfo);
 							continue;
 						}
 					}
-					
+
 					String coupon = commentInfo.getCoupon();
 					String endTime = commentInfo.getEndTime();
 					if (!StringUtil.isNullOrEmpty(coupon) && !StringUtil.isNullOrEmpty(endTime)) {
@@ -1461,46 +1489,57 @@
 								ClientTextStyleVO styleVO = new ClientTextStyleVO();
 								styleVO.setColor("#E5005C");
 								styleVO.setContent(daysBetween + "澶╁悗杩囨湡");
-								
+
 								List<ClientTextStyleVO> tagList = commentInfo.getTagList();
 								tagList.add(styleVO);
 								commentInfo.setTagList(tagList);
-								
+
 								commentNew.add(commentInfo);
 								continue;
 							}
 						}
 					}
-					
+
 					commentNew.add(commentInfo);
 				}
-				goodsEvaluate.setComments(commentNew);
-				
+				evaluateNew.setComments(commentNew);
+
 				if (typeEnum != null && typeEnum == EvaluateEnum.single) {
 					if (comment > 0 && commentNew.size() == 0) { // 鎵�鏈夊埜璇勮涓嬫灦
-						 GoodsDetailVO goods = goodsEvaluate.getGoods();
-						 if (goods != null) {
-							 goods.setState(1); // 璇勮涓嶅瓨鍦� 涓嬫灦
-							 LogHelper.test("鑾峰彇鍒楄〃鍟嗗搧涓嬫灦1");
-						 }
-						 
-						 List<ImgInfo> imgList = goodsEvaluate.getImgList();
-						 if (imgList != null) {
-							for (ImgInfo imgInfo: imgList) {
+						GoodsDetailVO goods = evaluateNew.getGoods();
+						if (goods != null) {
+							goods.setState(1); // 璇勮涓嶅瓨鍦� 涓嬫灦
+							LogHelper.test("鑾峰彇鍒楄〃鍟嗗搧涓嬫灦1");
+						}
+
+						List<ImgInfo> imgList = evaluateNew.getImgList();
+						if (imgList != null) {
+							for (ImgInfo imgInfo : imgList) {
 								SimpleGoods simpleGoods = imgInfo.getGoods();
 								if (simpleGoods != null) {
 									simpleGoods.setState(1);
-									 LogHelper.test("鑾峰彇鍒楄〃鍟嗗搧涓嬫灦2");
+									LogHelper.test("鑾峰彇鍒楄〃鍟嗗搧涓嬫灦2");
 								}
 							}
-							
-						 }
-					 }
+
+						}
+					}
 				}
 			}
+
+			listNew.add(evaluateNew);
 		}
-		
-		return list;
+
+		List<GoodsEvaluate> listOBJ = list;
+		// 鏇存柊鍟嗗搧淇℃伅
+		executor.execute(new Runnable() {
+			@Override
+			public void run() {
+				updateGoodInfo(listOBJ);
+			}
+		});
+
+		return listNew;
 	}
 
 	@Override
@@ -1543,12 +1582,12 @@
 				}
 
 				EvaluateEnum type = goodsEvaluate.getType();
-				if (type != null &&  type == EvaluateEnum.activity) {
+				if (type != null && type == EvaluateEnum.activity) {
 					List<CommentInfo> comments = goodsEvaluate.getComments();
 					if (comments != null) {
-						for (CommentInfo commentInfo: comments) {
+						for (CommentInfo commentInfo : comments) {
 							CommentInfoEnum commentInfoEnum = commentInfo.getTypeEnum();
-							if (commentInfoEnum != null && commentInfoEnum== CommentInfoEnum.currencyCoupon) {
+							if (commentInfoEnum != null && commentInfoEnum == CommentInfoEnum.currencyCoupon) {
 								String endTime = commentInfo.getEndTime();
 								if (!StringUtil.isNullOrEmpty(endTime)) {
 									Date endDay = sdf.parse(endTime);
@@ -1557,11 +1596,11 @@
 									}
 								}
 							}
-							
+
 						}
 					}
 				}
-				
+
 				GoodsDetailVO goods = goodsEvaluate.getGoods();
 				if (goods != null) {
 					GoodsDetailVO goodsNew = getGoodsNewInfo(goods.getGoodsId(), goods.getGoodsType(), paramsDTO);
@@ -1630,7 +1669,7 @@
 			} catch (TaobaoGoodsDownException e) {
 				e.printStackTrace();
 			}
-			
+
 		} else if (goodsType == Constant.SOURCE_TYPE_JD) {
 			JDGoods goodsInfo = jdGoodsCacheUtil.getGoodsInfo(goodsId);
 			if (goodsInfo != null) {
@@ -1649,11 +1688,11 @@
 		if (1 > 0) {
 			return; // 鏆備笉鍚敤鑷姩鐢熸垚
 		}
-		
+
 		if (info == null) {
 			return;
 		}
-		
+
 		try {
 			GoodsEvaluate goodsEvaluate = new GoodsEvaluate();
 			goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", ""));
@@ -1670,7 +1709,7 @@
 			goodsEvaluate.setUpdateTime(new Date());
 			goodsEvaluate.setWeight(0.0);
 			goodsEvaluate.setStartTime(new Date());
-			goodsEvaluate.setEndTime(DateUtil.plusDayDate(3,new Date()));
+			goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date()));
 
 			List<ClientTextStyleVO> titles = info.getTitle();
 			if (titles != null) {
@@ -1707,11 +1746,11 @@
 						simpleGoods.setAmount(couponInfo.getAmount());
 					}
 					imgInfo.setGoods(simpleGoods);
-					
+
 					TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, 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("棰嗗埜鎶㈣喘", "鎶㈣喘");
@@ -1719,21 +1758,21 @@
 					} 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");
+					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);
 			}

--
Gitblit v1.8.0