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

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java |  557 ++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 488 insertions(+), 69 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 150b73c..921095f 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
@@ -3,6 +3,7 @@
 import java.awt.image.BufferedImage;
 import java.io.InputStream;
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
@@ -18,27 +19,38 @@
 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.tencentcloud.COSManager;
 
 import com.yeshi.fanli.dao.dynamic.GoodsEvaluateDao;
 import com.yeshi.fanli.dto.ConfigParamsDTO;
+import com.yeshi.fanli.dto.jd.JDCouponInfo;
 import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
 import com.yeshi.fanli.entity.bus.activity.ActivityUser;
 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;
 import com.yeshi.fanli.entity.jd.JDGoods;
+import com.yeshi.fanli.entity.system.ConfigKeyEnum;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.fanli.entity.taobao.TaoBaoLink;
 import com.yeshi.fanli.exception.dynamic.ActivityUserException;
 import com.yeshi.fanli.exception.dynamic.GoodsEvaluateException;
 import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.activity.ActivityUserService;
+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.config.HongBaoManageService;
+import com.yeshi.fanli.service.manger.goods.ConvertLinkManager;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.FilePathEnum;
 import com.yeshi.fanli.util.RedisManager;
@@ -46,6 +58,10 @@
 import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
 import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil;
 import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
+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.taobao.TaoBaoUtil;
 import com.yeshi.fanli.vo.goods.CouponInfoVO;
 import com.yeshi.fanli.vo.goods.GoodsDetailVO;
 import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
@@ -73,6 +89,17 @@
 
 	@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 {
@@ -85,7 +112,7 @@
 		if (StringUtil.isNullOrEmpty(tilte)) {
 			throw new GoodsEvaluateException(1, "鎺ㄨ崘璇笉鑳戒负绌�");
 		}
-
+		
 		try {
 			ActivityUser activityUser = activityUserService.getActivityUserByNickName(record.getUser(), file);
 			if (activityUser == null)
@@ -107,7 +134,7 @@
 		if (dynamicType == null) {
 			record.setDynamicType(1);
 		}
-		
+
 		if (record.getShareNum() == null)
 			record.setShareNum(0);
 
@@ -116,6 +143,7 @@
 
 		if (record.getStartTime() == null)
 			record.setStartTime(new Date());
+		
 		record.setPublishTime(record.getStartTime());
 
 		String id = record.getId();
@@ -186,17 +214,18 @@
 		List<String> listOld = new ArrayList<String>();
 
 		// 澶勭悊鍥剧墖
+		GoodsDetailVO oldGoodsVO = null;
 		List<ImgInfo> resultList = resultObj.getImgList();
 		if (resultList != null && resultList.size() > 0) {
 			for (ImgInfo info : resultList) {
 				ImgEnum type = info.getType();
 				if (type == ImgEnum.video) {
 					imgVideo = info;
-				} else if (type == ImgEnum.goods || type == ImgEnum.img) {
-					String url = info.getUrl();
-					if (!StringUtil.isNullOrEmpty(url)) {
-						listOld.add(url);
-					}
+				} else if (type == ImgEnum.goods ) {
+					listOld.add(info.getUrl());
+					oldGoodsVO = info.getGoodsVO();
+				} else if (type == ImgEnum.img){
+					listOld.add(info.getUrl());
 				}
 			}
 		}
@@ -212,7 +241,7 @@
 				BufferedImage sourceImg = ImageIO.read(inputStream);
 				int width = sourceImg.getWidth();
 				int height = sourceImg.getHeight();
-				
+
 				String picLink = uploadPicture(filevideo);
 				if (imgVideo != null) {
 					String url = imgVideo.getUrl();
@@ -265,7 +294,7 @@
 						if (file != null) {
 							picLink = uploadPicture(file);
 						}
-						
+
 					}
 					if (picLink.startsWith("http")) {
 						listpic.add(picLink);
@@ -279,11 +308,32 @@
 			picNum = 1;
 		}
 
-		GoodsDetailVO goodsDetailVO = getGoodsDetailVO(goodsId, goodsType);;
+		GoodsDetailVO goodsDetailVO = null;
+		JDGoods jdGoods = null;
+		PDDGoodsDetail pddGoods = null;
+		BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
+		BigDecimal shareRate = hongBaoManageService.getShareRate();
+		BigDecimal vipFanLiRate = hongBaoManageService.getVIPFanLiRate();
+		ConfigParamsDTO params = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE, vipFanLiRate);
+		if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
+			try {
+				TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
+				goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, params);
+			} catch (TaobaoGoodsDownException e) {
+				throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�");
+			}
+		} else if (goodsType == Constant.SOURCE_TYPE_JD) {
+			jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
+			goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(jdGoods, params);
+		} else if (goodsType == Constant.SOURCE_TYPE_PDD) {
+			pddGoods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
+			goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(pddGoods, params);
+		}
+		
 		if (goodsDetailVO == null) {
 			throw new GoodsEvaluateException(1, "璇ュ晢鍝佷俊鎭笉瀛樺湪");
 		}
-		
+
 		int totalImg = 0;
 		if (listpic != null && listpic.size() > 0) {
 			for (int i = 0; i < listpic.size(); i++) {
@@ -299,17 +349,15 @@
 				if (picNum - 1 == i) {
 					imgInfo0.setType(ImgEnum.goods);
 					SimpleGoods simpleGoods = new SimpleGoods();
+					simpleGoods.setState(goodsDetailVO.getState());
 					simpleGoods.setGoodsId(goodsId);
 					simpleGoods.setGoodsType(goodsType);
-					simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
 					CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo();
 					if (couponInfo == null) {
 						simpleGoods.setPrice(goodsDetailVO.getZkPrice());
-						simpleGoods.setState(1);
 					} else {
 						simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
 						simpleGoods.setAmount(couponInfo.getAmount());
-						simpleGoods.setState(0);
 					}
 					imgInfo0.setGoods(simpleGoods);
 					imgInfo0.setGoodsVO(goodsDetailVO);
@@ -317,7 +365,7 @@
 					imgInfo0.setType(ImgEnum.img);
 				}
 				listImg.add(imgInfo0);
-				totalImg ++;
+				totalImg++;
 			}
 		}
 
@@ -325,17 +373,17 @@
 			for (int j = 0; j < listOld.size(); j++) {
 				boolean del = true;
 				String oldPic = listOld.get(j);
-				for (ImgInfo imgInfo: listImg) {
+				for (ImgInfo imgInfo : listImg) {
 					String url = imgInfo.getUrl();
 					if (url.equals(oldPic)) {
 						del = false;
-					} 
+					}
 				}
 				if (del)
 					listDel.add(listOld.get(j));
 			}
 		}
-		
+
 		int lineNum = 0;
 		if (totalImg > 0) {
 			if (totalImg == 1) {
@@ -346,11 +394,75 @@
 				lineNum = 3;
 			}
 		}
-		
+
 		resultObj.setLineNum(lineNum);
 		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) {
+			for (CommentInfo commentInfo: comments) {
+				if (commentInfo.getTypeEnum() == CommentInfoEnum.goodsCoupon) {
+					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;
+		}
+		
+		
+		if (addComment) {
+			String commentText = "";
+			if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
+				TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsId, "0");
+				String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
+				commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
+			} else if (goodsType == Constant.SOURCE_TYPE_JD) {
+				String couponUrl = null;
+				JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods);
+				if (couponInfo != null) {
+					couponUrl = couponInfo.getLink();
+				}
+				String materialId = "https://item.jd.com/" + goodsId + ".html";
+				String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "","1");
+				String template = configService.get(ConfigKeyEnum.quickShareJDCommentText.getKey());
+				commentText = template.replace("[閾炬帴]", jumpLink);			
+			} else if (goodsType == Constant.SOURCE_TYPE_PDD) {
+				String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsId, PinDuoDuoApiUtil.PID_SHARE + "", "1");
+				String template = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey());
+				commentText = template.replace("[閾炬帴]", jumpLink);
+			}
+			
+			commentText = commentText.replace("[鍘熶环]", goodsDetailVO.getZkPrice().toString());
+			if (!goodsDetailVO.isHasCoupon()) {
+				commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
+				commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
+			} 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");
+
+			
+			CommentInfo commentInfo = new CommentInfo();
+			commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
+			commentInfo.setContent(commentText);
+			commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
+			commentsNew.add(commentInfo);
+			resultObj.setComments(commentsNew);
+		}
 		goodsEvaluateDao.save(resultObj);
 
 		// 鍒犻櫎鍥剧墖
@@ -427,7 +539,7 @@
 				BufferedImage sourceImg = ImageIO.read(inputStream);
 				int width = sourceImg.getWidth();
 				int height = sourceImg.getHeight();
-				
+
 				String picLink = uploadPicture(filevideo);
 				if (imgVideo != null) {
 					String url = imgVideo.getUrl();
@@ -498,20 +610,21 @@
 					imgInfo0.setType(ImgEnum.goods);
 
 					SimpleGoods simpleGoods = new SimpleGoods();
+					simpleGoods.setState(goodsDetailVO.getState());
 					simpleGoods.setGoodsId(goodsDetailVO.getGoodsId());
 					simpleGoods.setGoodsType(goodsDetailVO.getGoodsType());
-					simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
 					CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo();
 					if (couponInfo == null) {
-						simpleGoods.setState(1);
+						simpleGoods.setPrice(goodsDetailVO.getZkPrice());
 					} else {
+						simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
 						simpleGoods.setAmount(couponInfo.getAmount());
-						simpleGoods.setState(0);
 					}
 					imgInfo0.setGoods(simpleGoods);
 					imgInfo0.setGoodsVO(goodsDetailVO);
+					
 					listImg.add(imgInfo0);
-					totalImg ++;
+					totalImg++;
 				}
 			}
 		}
@@ -564,9 +677,9 @@
 				lineNum = 3;
 			}
 		}
-		
+
 		resultObj.setLineNum(lineNum);
-		
+
 		// 淇濆瓨鍥剧墖淇℃伅
 		resultObj.setImgList(listImg);
 		goodsEvaluateDao.save(resultObj);
@@ -582,7 +695,7 @@
 	}
 
 	@Override
-	public void saveGoodsCoupon(String pid, String tags, String content) throws GoodsEvaluateException, Exception {
+	public void saveGoodsCoupon(String pid, String content) throws GoodsEvaluateException, Exception {
 		if (StringUtil.isNullOrEmpty(pid)) {
 			throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅");
 		}
@@ -595,15 +708,15 @@
 		CommentInfo currencyCoupon = null;
 		List<CommentInfo> oldComments = resultObj.getComments();
 		if (oldComments != null) {
-			for (CommentInfo info: oldComments) {
-				if(CommentInfoEnum.goodsCoupon == info.getType()) {
+			for (CommentInfo info : oldComments) {
+				if (CommentInfoEnum.goodsCoupon == info.getTypeEnum()) {
 					goodsCoupon = info;
-				} else if (CommentInfoEnum.currencyCoupon == info.getType()) {
+				} else if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) {
 					currencyCoupon = info;
 				}
 			}
 		}
-		
+
 		List<CommentInfo> comments = new ArrayList<>();
 		if (!StringUtil.isNullOrEmpty(content)) {
 			CommentInfo commentInfo = new CommentInfo();
@@ -613,24 +726,60 @@
 				commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
 			}
 			commentInfo.setContent(content);
-			commentInfo.setType(CommentInfoEnum.goodsCoupon);
+			commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
+			commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
 			comments.add(commentInfo);
 		}
-		
+
 		if (currencyCoupon != null) {
 			comments.add(currencyCoupon);
 		}
-		
+
 		resultObj.setComments(comments);
 		goodsEvaluateDao.save(resultObj);
 	}
-	
+
 	@Override
 	public void saveSingleGoodsCoupon(String pid, 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) ) {
+			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)) {
+			try {
+				convertLinkManager.convertLinkFromText(content, 1L, true);
+			} catch (Exception e) {
+				throw new GoodsEvaluateException(1, "杞摼澶辫触");
+			}
+		}
+		
 		GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid);
 		if (resultObj == null)
 			throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
@@ -639,27 +788,35 @@
 		CommentInfo currencyCoupon = null;
 		List<CommentInfo> oldComments = resultObj.getComments();
 		if (oldComments != null) {
-			for (CommentInfo info: oldComments) {
-				if(CommentInfoEnum.goodsCoupon == info.getType()) {
+			for (CommentInfo info : oldComments) {
+				if (CommentInfoEnum.goodsCoupon == info.getTypeEnum()) {
 					goodsCoupon = info;
-				} else if (CommentInfoEnum.currencyCoupon == info.getType()) {
+				} else if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) {
 					currencyCoupon = info;
 				}
 			}
 		}
-		
+
 		List<CommentInfo> comments = new ArrayList<>();
 		if (goodsCoupon != null) {
 			comments.add(goodsCoupon);
 		}
-		
+
 		if (commentInfo != null) {
 			if (currencyCoupon != null) {
 				commentInfo.setId(currencyCoupon.getId());
 			} else {
 				commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
 			}
-			commentInfo.setType(CommentInfoEnum.currencyCoupon);
+			// 鍒哥被鍨�
+			
+			String tags = commentInfo.getTags();
+			if (StringUtil.isNullOrEmpty(tags)) {
+				commentInfo.setType(CommentInfoEnum.currencyCoupon.getDesc());
+			} else {
+				commentInfo.setType(tags);
+			}
+			commentInfo.setTypeEnum(CommentInfoEnum.currencyCoupon);
 			
 			// 鏍囩淇℃伅
 			List<ClientTextStyleVO> tagList = new ArrayList<>();
@@ -678,10 +835,10 @@
 				tagList.add(styleVO);
 			}
 			commentInfo.setTagList(tagList);
-			
+
 			comments.add(commentInfo);
 		}
-		
+
 		resultObj.setComments(comments);
 
 		goodsEvaluateDao.save(resultObj);
@@ -724,7 +881,7 @@
 			MultipartFile filevideo = fileRequest.getFile("filevideo");
 			if (filevideo != null) {
 				removePicture(videoPic);
-				
+
 				InputStream inputStream = filevideo.getInputStream();
 				BufferedImage sourceImg = ImageIO.read(inputStream);
 				width = sourceImg.getWidth();
@@ -800,8 +957,8 @@
 	}
 
 	@Override
-	public void saveSuCai(String pid, String videoUrl, String picUrls, 
-			MultipartHttpServletRequest fileRequest) throws GoodsEvaluateException, Exception {
+	public void saveSuCai(String pid, String videoUrl, String picUrls, MultipartHttpServletRequest fileRequest)
+			throws GoodsEvaluateException, Exception {
 		if (StringUtil.isNullOrEmpty(pid)) {
 			throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅");
 		}
@@ -812,9 +969,10 @@
 
 		// 鍘熷皝瑙嗛闈㈠浘
 		ImgInfo imgVideo = null;
+		ImgInfo imgActivity = null;
 		List<String> listDel = new ArrayList<String>();
 		List<String> listOld = new ArrayList<String>();
-		
+
 		List<ImgInfo> listOldImgInfo = new ArrayList<ImgInfo>();
 		// 澶勭悊鍥剧墖
 		List<ImgInfo> resultList = resultObj.getImgList();
@@ -829,10 +987,13 @@
 					if (!StringUtil.isNullOrEmpty(url)) {
 						listOld.add(url);
 					}
+				} else if (type == ImgEnum.activity) {
+					imgActivity = info;
 				}
 			}
 		}
 
+		MultipartFile activityFile = null;
 		// 瑙嗛閮ㄥ垎
 		if (fileRequest != null) {
 			MultipartFile filevideo = fileRequest.getFile("filevideo");
@@ -844,7 +1005,7 @@
 				BufferedImage sourceImg = ImageIO.read(inputStream);
 				int width = sourceImg.getWidth();
 				int height = sourceImg.getHeight();
-				
+
 				String picLink = uploadPicture(filevideo);
 				if (imgVideo != null) {
 					String url = imgVideo.getUrl();
@@ -866,6 +1027,8 @@
 				imgVideo.setW(width);
 				imgVideo.setH(height);
 			}
+
+			activityFile = fileRequest.getFile("activityFile");
 		}
 
 		List<ImgInfo> listImg = new ArrayList<ImgInfo>();
@@ -874,7 +1037,7 @@
 				if (imgVideo != null && StringUtil.isNullOrEmpty(imgVideo.getUrl())) {
 					throw new GoodsEvaluateException(1, "瑙嗛灏侀潰鍥句笉鑳戒负绌�");
 				}
-				
+
 				imgVideo.setVideoUrl(videoUrl);
 				listImg.add(imgVideo);
 			} else {
@@ -883,6 +1046,29 @@
 					listDel.add(url);
 				}
 			}
+		}
+
+		if (activityFile != null) {
+			InputStream inputStream = activityFile.getInputStream();
+			BufferedImage sourceImg = ImageIO.read(inputStream);
+			int width = sourceImg.getWidth();
+			int height = sourceImg.getHeight();
+
+			String picLink = uploadPicture(activityFile);
+
+			ImgInfo activity = new ImgInfo();
+			activity.setId(UUID.randomUUID().toString().replace("-", ""));
+			activity.setLarge(true);
+			activity.setPid(pid);
+			activity.setUrl(picLink);
+			activity.setUrlHD(picLink);
+			activity.setActivityPic(picLink);
+			activity.setW(width);
+			activity.setH(height);
+			activity.setType(ImgEnum.activity);
+			listImg.add(activity);
+		} else if (imgActivity != null) {
+			listImg.add(imgActivity);
 		}
 
 		// 缂栬緫鍥剧墖
@@ -894,12 +1080,8 @@
 					if (fileRequest != null) {
 						MultipartFile file = fileRequest.getFile("file" + i);
 						if (file != null) {
-							InputStream inputStream = file.getInputStream();
-							BufferedImage sourceImg = ImageIO.read(inputStream);
-							int width = sourceImg.getWidth();
-							int height = sourceImg.getHeight();
 							picLink = uploadPicture(file);
-							
+
 							ImgInfo imgInfo0 = new ImgInfo();
 							imgInfo0.setId(UUID.randomUUID().toString().replace("-", ""));
 							imgInfo0.setLarge(true);
@@ -907,18 +1089,18 @@
 							imgInfo0.setUrl(picLink);
 							imgInfo0.setUrlHD(picLink);
 							imgInfo0.setType(ImgEnum.img);
-							imgVideo.setW(width);
-							imgVideo.setH(height);
+							imgVideo.setW(1);
+							imgVideo.setH(1);
 							listImg.add(imgInfo0);
 							continue;
 						}
 					}
-					
+
 					if (picLink.startsWith("http")) {
-						if(listOldImgInfo != null) {
-							for (ImgInfo imgInfo:listOldImgInfo) {
+						if (listOldImgInfo != null) {
+							for (ImgInfo imgInfo : listOldImgInfo) {
 								String url = imgInfo.getUrl();
-								if (picLink.equals(url)){
+								if (picLink.equals(url)) {
 									listImg.add(imgInfo);
 									break;
 								}
@@ -933,11 +1115,11 @@
 			for (int j = 0; j < listOld.size(); j++) {
 				boolean del = true;
 				String oldPic = listOld.get(j);
-				for (ImgInfo imgInfo: listImg) {
+				for (ImgInfo imgInfo : listImg) {
 					String url = imgInfo.getUrl();
 					if (url.equals(oldPic)) {
 						del = false;
-					} 
+					}
 				}
 				if (del)
 					listDel.add(listOld.get(j));
@@ -956,7 +1138,7 @@
 			}
 		}
 	}
-	
+
 	@Override
 	public void deleteBatchByPrimaryKey(List<String> list) {
 		if (list == null || list.size() == 0) {
@@ -1028,7 +1210,7 @@
 		goodsEvaluate.setComments(comments);
 		goodsEvaluateDao.save(goodsEvaluate);
 	}
-	
+
 	@Override
 	public void release(String id) throws GoodsEvaluateException {
 		GoodsEvaluate goodsEvaluate = goodsEvaluateDao.getById(id);
@@ -1038,7 +1220,6 @@
 		goodsEvaluate.setState(1);
 		goodsEvaluateDao.save(goodsEvaluate);
 	}
-
 
 	@Override
 	public void deleteComment(String pid, List<String> list) throws GoodsEvaluateException {
@@ -1118,18 +1299,104 @@
 	public long countValid() {
 		return goodsEvaluateDao.countValid(1);
 	}
-	
+
 	@Override
 	@Cacheable(value = "dynamicCache", key = "'queryMaterialsCache-'+#start+'-'+#type")
-	public List<GoodsEvaluate> queryMaterialsCache(int start, int count, int type) {
+	public List<GoodsEvaluate> queryMaterialsCache(int start, int count, int type) throws Exception {
 		List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(start, count, type);
+		
+		List<GoodsEvaluate> listOBJ = list;
 		// 鏇存柊鍟嗗搧淇℃伅
 		executor.execute(new Runnable() {
 			@Override
 			public void run() {
-				updateGoodInfo(list);
+				updateGoodInfo(listOBJ);
 			}
 		});
+
+		if (list == null) {
+			list = new ArrayList<>();
+		}
+		Date now = new Date();
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+		for (GoodsEvaluate goodsEvaluate: list) {
+			List<CommentInfo> comments = goodsEvaluate.getComments();
+			if (comments != null) {
+				EvaluateEnum typeEnum = goodsEvaluate.getType();
+				List<CommentInfo> commentNew = new ArrayList<>();
+				
+				for (CommentInfo commentInfo: comments) {
+					String typeCoupon = commentInfo.getType();
+					if (StringUtil.isNullOrEmpty(typeCoupon)) {
+						if (commentInfo.getTypeEnum() == null) {
+							commentInfo.setType("");
+						} else {
+							commentInfo.setType(commentInfo.getTypeEnum().getDesc());
+						}
+					} else if (typeCoupon.equals(CommentInfoEnum.goodsCoupon.name())) {
+						commentInfo.setType("鍟嗗搧浼樻儬鍒�");
+					} else if (typeCoupon.equals(CommentInfoEnum.currencyCoupon.name())) {
+						commentInfo.setType("閫氱敤浼樻儬鍒�");
+					}
+					
+					CommentInfoEnum typeComment = commentInfo.getTypeEnum();
+					if (typeComment != null && typeComment ==CommentInfoEnum.goodsCoupon) {
+						GoodsDetailVO goods = goodsEvaluate.getGoods();
+						if (goods.isHasCoupon()) {
+							commentNew.add(commentInfo);
+							continue;
+						}
+					}
+					
+					String coupon = commentInfo.getCoupon();
+					String endTime = commentInfo.getEndTime();
+					if (!StringUtil.isNullOrEmpty(coupon) && !StringUtil.isNullOrEmpty(endTime)) {
+						Date endDay = sdf.parse(endTime);
+						if (endDay.getTime() > now.getTime()) {
+							int daysBetween = DateUtil.daysBetween(endDay, now);
+							if (daysBetween > 0) {
+								ClientTextStyleVO styleVO = new ClientTextStyleVO();
+								styleVO.setColor("#E5005C");
+								styleVO.setContent(daysBetween + "澶╁悗杩囨湡");
+								styleVO.setContent(coupon);
+								
+								List<ClientTextStyleVO> tagList = commentInfo.getTagList();
+								tagList.add(styleVO);
+								
+								commentInfo.setTagList(tagList);
+								
+								if (typeEnum != null && typeEnum == EvaluateEnum.single) {
+									//鏂板
+									commentNew.add(commentInfo);
+								}
+							}
+						}
+					}
+				}
+				goodsEvaluate.setComments(commentNew);
+				
+				if (typeEnum != null && typeEnum == EvaluateEnum.single) {
+					 if (commentNew.size() == 0) {
+						 GoodsDetailVO goods = goodsEvaluate.getGoods();
+						 if (goods != null) {
+							 goods.setState(1); // 璇勮涓嶅瓨鍦� 涓嬫灦
+						 }
+						 
+						 List<ImgInfo> imgList = goodsEvaluate.getImgList();
+						 if (imgList != null) {
+							for (ImgInfo imgInfo: imgList) {
+								SimpleGoods simpleGoods = imgInfo.getGoods();
+								if (simpleGoods != null) {
+									simpleGoods.setState(1);
+								}
+							}
+							
+						 }
+					 }
+				}
+			}
+		}
+		
 		return list;
 	}
 
@@ -1151,6 +1418,8 @@
 		}
 
 		try {
+			Date now = new Date();
+			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 			BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
 			BigDecimal shareRate = hongBaoManageService.getShareRate();
 			BigDecimal vipFanLiRate = hongBaoManageService.getVIPFanLiRate();
@@ -1170,9 +1439,36 @@
 					}
 				}
 
+				EvaluateEnum type = goodsEvaluate.getType();
+				if (type != null &&  type == EvaluateEnum.activity) {
+					List<CommentInfo> comments = goodsEvaluate.getComments();
+					if (comments != null) {
+						for (CommentInfo commentInfo: comments) {
+							CommentInfoEnum commentInfoEnum = commentInfo.getTypeEnum();
+							if (commentInfoEnum != null && commentInfoEnum== CommentInfoEnum.currencyCoupon) {
+								String endTime = commentInfo.getEndTime();
+								if (!StringUtil.isNullOrEmpty(endTime)) {
+									Date endDay = sdf.parse(endTime);
+									if (endDay.getTime() < now.getTime()) {
+										goodsEvaluate.setState(1); // 娲诲姩杩囨湡
+									}
+								}
+							}
+							
+						}
+					}
+				}
+				
 				GoodsDetailVO goods = goodsEvaluate.getGoods();
 				if (goods != null) {
 					GoodsDetailVO goodsNew = getGoodsNewInfo(goods.getGoodsId(), goods.getGoodsType(), paramsDTO);
+					if (goodsNew != null) {
+						goodsEvaluate.setGoods(goodsNew);
+					} else {
+						goodsEvaluate.setState(0); // 宸插晢鍝佷笅鏋�
+						goods.setState(1);
+						goodsEvaluate.setGoods(goods);
+					}
 				}
 				// 鏇存柊鍟嗗搧淇℃伅
 				List<ImgInfo> imgList = goodsEvaluate.getImgList();
@@ -1180,6 +1476,39 @@
 					continue;
 				}
 
+				for (ImgInfo imgInfo : imgList) {
+					SimpleGoods simpleGoods = imgInfo.getGoods();
+					if (simpleGoods == null) {
+						continue;
+					}
+
+					GoodsDetailVO goodsDetailVO = getGoodsNewInfo(simpleGoods.getGoodsId(), simpleGoods.getGoodsType(),
+							paramsDTO);
+					if (goodsDetailVO != null) {
+						simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
+						simpleGoods.setState(0);
+						CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo();
+						if (couponInfo == null) {
+							simpleGoods.setPrice(goodsDetailVO.getZkPrice());
+						} else {
+							simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
+							simpleGoods.setAmount(couponInfo.getAmount());
+						}
+						imgInfo.setGoods(simpleGoods);
+						imgInfo.setGoodsVO(goodsDetailVO);
+					} else {
+						simpleGoods.setState(1);
+						imgInfo.setGoods(simpleGoods);
+						GoodsDetailVO goodsVO = imgInfo.getGoodsVO();
+						if (goodsVO != null) {
+							goodsVO.setState(1);
+							imgInfo.setGoodsVO(goodsVO);
+						}
+					}
+				}
+
+				goodsEvaluate.setUpdateTime(new Date());
+				goodsEvaluateDao.save(goodsEvaluate);
 			}
 		} catch (Exception e) {
 			LogHelper.errorDetailInfo(e);
@@ -1203,5 +1532,95 @@
 		return vo;
 	}
 
-}
+	@Override
+	public void addGoodsEvaluateByDynamicInfo(DynamicInfo info) {
+		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());
+						
+						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("棰嗗埜鎶㈣喘", "鎶㈣喘");
+							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);
+					}
+					imgInfo.setGoods(simpleGoods);
+					goodsEvaluate.setGoods(goodsVO);
+					
+				}
+				imgList.add(imgInfo);
+			}
+			goodsEvaluate.setImgList(imgList);
+			goodsEvaluateDao.save(goodsEvaluate);
+		} catch (Exception e) {
+			LogHelper.errorDetailInfo(e);
+		}
+	}
+
+}

--
Gitblit v1.8.0