From e40d1c22c7202aac843c66f9ee9cc000744f9e10 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 30 六月 2020 15:52:49 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java |  428 +++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 333 insertions(+), 95 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 911bbd4..b01df9b 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
@@ -7,6 +7,7 @@
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Date;
@@ -31,6 +32,9 @@
 import com.yeshi.fanli.dto.ConfigParamsDTO;
 import com.yeshi.fanli.dto.jd.JDCouponInfo;
 import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
+import com.yeshi.fanli.dto.suning.SuningGoodsInfo;
+import com.yeshi.fanli.dto.vip.goods.VIPGoodsInfo;
+import com.yeshi.fanli.entity.bus.activity.ActivityRuleUser;
 import com.yeshi.fanli.entity.bus.activity.ActivityUser;
 import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
 import com.yeshi.fanli.entity.dynamic.CommentInfo;
@@ -48,6 +52,7 @@
 import com.yeshi.fanli.exception.dynamic.ActivityUserException;
 import com.yeshi.fanli.exception.dynamic.GoodsEvaluateException;
 import com.yeshi.fanli.exception.goods.ConvertLinkExceptionException;
+import com.yeshi.fanli.exception.share.ShareGoodsException;
 import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.activity.ActivityUserService;
@@ -64,6 +69,7 @@
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
 import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil;
 import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
@@ -90,7 +96,7 @@
 
 	@Resource
 	private HongBaoManageService hongBaoManageService;
-	
+
 	@Resource
 	private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
 
@@ -115,18 +121,17 @@
 	@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;
@@ -135,8 +140,7 @@
 		}
 		goodsEvaluateDao.updateSatate(id, state);
 	}
-	
-	
+
 	@Override
 	public String saveHead(MultipartFile file, GoodsEvaluate record) throws GoodsEvaluateException {
 		Integer state = record.getState();
@@ -253,21 +257,22 @@
 		}
 		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;
-			
+			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);
@@ -277,7 +282,6 @@
 		}
 		return null;
 	}
-	
 
 	private String uploadPicture(File file, String contentType) throws Exception {
 		InputStream inputStream = new FileInputStream(file);
@@ -300,7 +304,7 @@
 	}
 
 	@Override
-	public String saveSingleGoods(String pid, Long goodsId, Integer goodsType, String videoUrl, Integer picNum,
+	public String saveSingleGoods(String pid, String goodsId, Integer goodsType, String videoUrl, Integer picNum,
 			String picUrls, MultipartHttpServletRequest fileRequest) throws GoodsEvaluateException, Exception {
 		if (StringUtil.isNullOrEmpty(pid)) {
 			throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅");
@@ -421,16 +425,16 @@
 		params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 		if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
 			try {
-				TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
+				TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsId));
 				goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, params);
 			} catch (TaobaoGoodsDownException e) {
 				throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�");
 			}
 		} else if (goodsType == Constant.SOURCE_TYPE_JD) {
-			jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
+			jdGoods = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
 			goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(jdGoods, params);
 		} else if (goodsType == Constant.SOURCE_TYPE_PDD) {
-			pddGoods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
+			pddGoods = pinDuoDuoCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
 			goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(pddGoods, params);
 		}
 
@@ -518,7 +522,7 @@
 		if (comments != null && comments.size() > 0) {
 			for (CommentInfo commentInfo : comments) {
 				if (commentInfo.getTypeEnum() == CommentInfoEnum.goodsCoupon) {
-					if (oldGoodsVO != null && oldGoodsVO.getGoodsId().longValue() == goodsId.longValue()
+					if (oldGoodsVO != null && oldGoodsVO.getGoodsId().equalsIgnoreCase(goodsId)
 							&& oldGoodsVO.getGoodsType() == goodsType) {
 						addComment = false;
 					}
@@ -537,7 +541,7 @@
 		String commentText = "";
 		if (addComment) {
 			if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
-				TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsId, "0");
+				TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, Long.parseLong(goodsId), "0");
 				String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
 				commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
 			} else if (goodsType == Constant.SOURCE_TYPE_JD) {
@@ -555,7 +559,7 @@
 				}
 				commentText = template.replace("[閾炬帴]", jumpLink);
 			} else if (goodsType == Constant.SOURCE_TYPE_PDD) {
-				String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsId, PinDuoDuoApiUtil.PID_SHARE + "", "1");
+				String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(Long.parseLong(goodsId), PinDuoDuoApiUtil.PID_SHARE + "", "1");
 				if (jumpLink == null) {
 					throw new GoodsEvaluateException(1, "璇ュ晢鍝佽浆閾惧け璐�");
 				}
@@ -603,13 +607,13 @@
 	private String createTokenAndLink(GoodsDetailVO goodsDetailVO) throws Exception {
 		String commentText = "";
 		if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
-			TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsDetailVO.getGoodsId(), "0");
+			TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L,Long.parseLong(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) {
 			String couponUrl = null;
 
-			JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsDetailVO.getGoodsId());
+			JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsDetailVO.getGoodsId()));
 			JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods);
 			if (couponInfo != null) {
 				couponUrl = couponInfo.getLink();
@@ -620,7 +624,7 @@
 			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(),
+			String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(Long.parseLong(goodsDetailVO.getGoodsId()),
 					PinDuoDuoApiUtil.PID_SHARE + "", "1");
 			String template = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey());
 			commentText = template.replace("[閾炬帴]", jumpLink);
@@ -800,7 +804,7 @@
 				}
 
 				boolean del = false;
-				long oldGoodsId = old.getGoods().getGoodsId().longValue();
+				String oldGoodsId = old.getGoods().getGoodsId();
 				int oldGoodsType = old.getGoods().getGoodsType().intValue();
 				for (ImgInfo newInfo : listImg) {
 					ImgEnum type2 = old.getType();
@@ -808,7 +812,7 @@
 						continue;
 					}
 
-					if (oldGoodsId == newInfo.getGoods().getGoodsId().longValue()
+					if (oldGoodsId .equalsIgnoreCase(newInfo.getGoods().getGoodsId())
 							&& oldGoodsType == newInfo.getGoods().getGoodsType().intValue()) {
 						String url = newInfo.getUrl();
 						if (url.equals(old.getUrl())) {
@@ -907,7 +911,7 @@
 			if (StringUtil.isNullOrEmpty(commentInfo.getId())) {
 				commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
 			}
-			
+
 			commentInfo.setNeedSpin(true);
 			commentInfo.setType(commentInfo.getTags());
 			commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
@@ -922,7 +926,6 @@
 		goodsEvaluateDao.save(resultObj);
 	}
 
-	 
 	@Override
 	public void saveCurrencyCoupon(String pid, int kind, CommentInfo commentInfo)
 			throws GoodsEvaluateException, Exception {
@@ -933,7 +936,7 @@
 		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, "鍒搁潰棰濅笉鑳戒负绌�");
@@ -965,7 +968,7 @@
 		if (commentInfo.getNeedSpin() == null) {
 			commentInfo.setNeedSpin(false);
 		}
-		
+
 		String content = commentInfo.getContent();
 		if (!StringUtil.isNullOrEmpty(content) && commentInfo.getNeedSpin()) {
 			try {
@@ -978,7 +981,6 @@
 				throw new GoodsEvaluateException(1, "鍖呭惈涓嶅彲杞摼鐨勫彛浠や笌閾炬帴");
 			}
 		}
-
 
 		List<CommentInfo> comments = new ArrayList<>();
 		CommentInfo currencyCoupon = null;
@@ -1039,7 +1041,7 @@
 		GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid);
 		if (resultObj == null)
 			throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け");
-		
+
 		if (imgInfo == null || StringUtil.isNullOrEmpty(imgInfo.getActivityUrl())) {
 			throw new GoodsEvaluateException(1, "娲诲姩閾炬帴涓嶈兘涓虹┖");
 		}
@@ -1057,7 +1059,7 @@
 				}
 			}
 		}
-		
+
 		// 瑙嗛閮ㄥ垎
 		if (fileRequest != null) {
 			MultipartFile filevideo = fileRequest.getFile("filevideo");
@@ -1090,7 +1092,6 @@
 			}
 		}
 
-		
 		List<ImgInfo> listImg = new ArrayList<ImgInfo>();
 		if (imgVideo != null) {
 			if (!StringUtil.isNullOrEmpty(imgInfo.getVideoUrl())) {
@@ -1106,7 +1107,7 @@
 				}
 			}
 		}
- 
+
 		String activityUrl = imgInfo.getActivityUrl();
 		// 缂栬緫鍥剧墖
 		List<ImgInfo> tempList = new ArrayList<ImgInfo>();
@@ -1117,7 +1118,7 @@
 					String picLink = pics[i];
 					if (picLink.startsWith("http")) {
 						if (listOld != null) {
-							for (ImgInfo info: listOld) {
+							for (ImgInfo info : listOld) {
 								if (info.getUrl().equals(picLink)) {
 									info.setActivityUrl(activityUrl);
 									tempList.add(info);
@@ -1130,7 +1131,6 @@
 			}
 		}
 
-		
 		// 涓婁紶鏂囦欢鏇挎崲
 		if (fileRequest != null) {
 			for (int i = 0; i < 9; i++) {
@@ -1152,11 +1152,10 @@
 					} else {
 						tempList.add(imgInfo0);
 					}
-				} 
+				}
 			}
 		}
-		
-		
+
 		int lineNum = 0;
 		int totalImg = tempList.size();
 		if (totalImg > 0) {
@@ -1170,19 +1169,19 @@
 				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) {
+			for (ImgInfo infoOld : listOld) {
 				boolean del = true;
 				String oldPic = infoOld.getUrl();
 				for (ImgInfo info : listImg) {
@@ -1194,12 +1193,12 @@
 					listDel.add(infoOld.getUrl());
 			}
 		}
-		
+
 		resultObj.setJumpLink(activityUrl);
 		resultObj.setLineNum(lineNum);
 		resultObj.setImgList(listImg);
 		goodsEvaluateDao.save(resultObj);
-		
+
 		// 鍒犻櫎鍥剧墖
 		if (listDel.size() > 0) {
 			for (String url : listDel) {
@@ -1423,7 +1422,26 @@
 	public GoodsEvaluate getById(String id) {
 		return goodsEvaluateDao.getById(id);
 	}
+	
+	
+	@Override
+	public List<GoodsEvaluate> listByStartTime(Date date) {
+		return goodsEvaluateDao.listByStartTime(date);
+	}
 
+	@Override
+	public List<GoodsEvaluate> queryValidSortASC(int start, int count, EvaluateEnum tyepEnum, boolean sortDesc) {
+		return goodsEvaluateDao.queryValidSortASC(start, count, tyepEnum, sortDesc);
+	}
+	
+	
+	@Override
+	public List<GoodsEvaluate> queryValidZeroPoint(int start, int count) {
+		return goodsEvaluateDao.queryValidZeroPoint(start, count);
+	}
+	
+	
+	
 	@Override
 	public void saveComment(String pid, CommentInfo commentInfo) throws GoodsEvaluateException {
 		GoodsEvaluate goodsEvaluate = goodsEvaluateDao.getById(pid);
@@ -1540,7 +1558,8 @@
 	}
 
 	@Override
-	public List<GoodsEvaluate> query(int start, int count, String key, Integer state, int dynamicType, String typeEnum) {
+	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);
 	}
 
@@ -1600,7 +1619,7 @@
 
 				// 鍒犻櫎宸茶繃鏈�
 				removeOverdue();
-				
+
 				removeDownGoods();
 			}
 		});
@@ -1769,7 +1788,7 @@
 
 				// 鍒犻櫎宸茶繃鏈�
 				removeOverdue();
-				
+
 				removeDownGoods();
 			}
 		});
@@ -1796,7 +1815,7 @@
 
 		try {
 			Date now = new Date();
-			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+			SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 			ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
 			params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 			for (GoodsEvaluate goodsEvaluate : list) {
@@ -1822,7 +1841,7 @@
 							if (commentInfoEnum != null && commentInfoEnum == CommentInfoEnum.currencyCoupon) {
 								String endTime = commentInfo.getEndTime();
 								if (!StringUtil.isNullOrEmpty(endTime)) {
-									Date endDay = sdf.parse(endTime);
+									Date endDay = format.parse(endTime);
 									if (endDay.getTime() < now.getTime()) {
 										goodsEvaluate.setState(0); // 娲诲姩杩囨湡
 									}
@@ -1891,12 +1910,12 @@
 		}
 	}
 
-	private GoodsDetailVO getGoodsNewInfo(Long goodsId, int goodsType, ConfigParamsDTO paramsDTO) {
+	private GoodsDetailVO getGoodsNewInfo(String goodsId, int goodsType, ConfigParamsDTO paramsDTO) {
 		GoodsDetailVO vo = null;
 		if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
 			TaoBaoGoodsBrief goods;
 			try {
-				goods = redisManager.getTaoBaoGoodsBrief(goodsId);
+				goods = redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsId));
 				if (goods != null) {
 					vo = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
 				}
@@ -1905,12 +1924,12 @@
 			}
 
 		} else if (goodsType == Constant.SOURCE_TYPE_JD) {
-			JDGoods goodsInfo = jdGoodsCacheUtil.getGoodsInfo(goodsId);
+			JDGoods goodsInfo = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
 			if (goodsInfo != null) {
 				vo = GoodsDetailVOFactory.convertJDGoods(goodsInfo, paramsDTO);
 			}
 		} else if (goodsType == Constant.SOURCE_TYPE_PDD) {
-			PDDGoodsDetail goodsInfo = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
+			PDDGoodsDetail goodsInfo = pinDuoDuoCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
 			if (goodsInfo != null)
 				vo = GoodsDetailVOFactory.convertPDDGoods(goodsInfo, paramsDTO);
 		}
@@ -1918,19 +1937,21 @@
 	}
 
 	@Override
-	public void addGoodsEvaluate(Long goodsId, List<ImgInfo> imgList, ActivityUser user, String title, String comment,
+	public void addGoodsEvaluate(String goodsId, List<ImgInfo> imgList, ActivityUser user, String title, String comment,
 			Date startTime) throws GoodsEvaluateException {
 		if (goodsId == null || user == null || StringUtil.isNullOrEmpty(title)) {
 			throw new GoodsEvaluateException(1, "鐩稿叧鍙傛暟涓嶈兘涓虹┖");
 		}
 
-		List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO, goodsId);
+		Date limitDate = DateUtil.reduceDay(new Date(), 7);
+		
+		List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExistLimitTime(Constant.SOURCE_TYPE_TAOBAO, goodsId, limitDate);
 		if (evaluateList != null && evaluateList.size() > 0)
-			return;
+			throw new GoodsEvaluateException(1, "璇ュ晢鍝佸凡瀛樺湪");
 
 		TaoBaoGoodsBrief goodsBrief = null;
 		try {
-			goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
+			goodsBrief = redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsId));
 		} catch (TaobaoGoodsDownException e) {
 			throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�");
 		}
@@ -1946,9 +1967,7 @@
 
 		// 鐧藉簳鍥�
 		List<String> imgs = new ArrayList<>();
-		if (!StringUtil.isNullOrEmpty(goodsBrief.getPictUrlWhite())) {
-			imgs.add(goodsBrief.getPictUrlWhite());
-		}
+		
 		imgs.addAll(goodsBrief.getImgList());
 
 		// 鍟嗗搧VO
@@ -1958,7 +1977,10 @@
 
 		// 鍟嗗搧鍥剧墖淇℃伅
 		int i = 0;
-		if (imgList == null || imgList.size() == 0)
+		if (imgList == null) 
+			imgList = new ArrayList<ImgInfo>();
+		 
+		if (imgList.size() == 0)
 			for (String img : imgs) {
 				ImgInfo imgInfo = new ImgInfo();
 				imgInfo.setH(1);
@@ -1997,14 +2019,16 @@
 			commentInfo.setContent(comment);
 			commentInfo.setType("");
 		} else {
+			goodsBrief.setCouponLink(null);
 			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");
-			} 
+				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());
 		}
@@ -2050,6 +2074,165 @@
 		goodsEvaluateDao.save(goodsEvaluate);
 	}
 
+
+	
+	@Override
+	public int addGoodsEvaluate(TaoBaoGoodsBrief goodsBrief, List<String> imgs, ActivityUser user, String title) throws GoodsEvaluateException {
+		if (goodsBrief == null || user == null || StringUtil.isNullOrEmpty(title)) {
+			throw new GoodsEvaluateException(1, "鐩稿叧鍙傛暟涓嶈兘涓虹┖");
+		}
+		Date limitDate = DateUtil.reduceDay(new Date(), 7);
+		
+		Long goodsId = goodsBrief.getAuctionId();
+		List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExistLimitTime(Constant.SOURCE_TYPE_TAOBAO, goodsId + "", limitDate);
+		if (evaluateList != null && evaluateList.size() > 0)
+			throw new GoodsEvaluateException(1, "璇ュ晢鍝佸凡瀛樺湪");
+
+		if (imgs == null) {
+			imgs = new ArrayList<>();
+		}
+		if (imgs.size() == 0) {
+			imgs.addAll(goodsBrief.getImgList());
+		}
+
+		// 鍟嗗搧VO
+		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
+		paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
+		GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
+
+		// 鍟嗗搧鍥剧墖淇℃伅
+		int i = 0;
+		List<ImgInfo> imgList = new ArrayList<ImgInfo>();
+		 
+		for (String img : imgs) {
+			ImgInfo imgInfo = new ImgInfo();
+			imgInfo.setH(1);
+			imgInfo.setW(1);
+			imgInfo.setLarge(false);
+			imgInfo.setUrl(img);
+			imgInfo.setUrlHD(img);
+			if (i != 0) {
+				imgInfo.setType(ImgEnum.img);
+			} else {
+				imgInfo.setType(ImgEnum.goods);
+				SimpleGoods simpleGoods = new SimpleGoods();
+				simpleGoods.setGoodsId(goodsVO.getGoodsId());
+				simpleGoods.setGoodsType(goodsVO.getGoodsType());
+				simpleGoods.setState(goodsVO.getState());
+				CouponInfoVO couponInfo = goodsVO.getCouponInfo();
+				if (couponInfo == null) {
+					simpleGoods.setPrice(goodsVO.getZkPrice());
+				} else {
+					simpleGoods.setPrice(goodsVO.getCouponPrice());
+					simpleGoods.setAmount(couponInfo.getAmount());
+				}
+				imgInfo.setGoods(simpleGoods);
+				imgInfo.setGoodsVO(goodsVO);
+			}
+			imgList.add(imgInfo);
+			i++;
+		}
+
+		
+		// 鐢熸垚鍙d护
+		String token = null;
+		try {
+			TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(Constant.LINK_TOKEN_VERIFY_UID, goodsBrief.getAuctionId(), "1");
+			token = taoBaoLink.getTaoToken();
+		} catch (ShareGoodsException e) {
+			e.printStackTrace();
+			throw new GoodsEvaluateException(1, "杞摼澶辫触");
+		}
+		 
+		 
+		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 commentInfo = new CommentInfo();
+		commentInfo.setNeedSpin(true);
+		commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
+		commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
+		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;
+			}
+		}
+		
+		int result = 0;
+		int zeroPoint = 0;
+		// 鈽呮繁澶滃ぇ绂忓埄锛氬厛鎶㈠埜锛�0鐐瑰噯鏃朵笅鍗曗槄
+		// 鍚繖绉嶆枃鏈殑瀹氫簬姣忔櫄10鐐瑰湪鍔ㄦ��-鍙戝湀 闆嗕腑鍙戯紝姣忔櫄10鐐瑰湪缇ゅ彂鍗曚腑鍙彂涓�鏉°��
+		Date startTime = new Date();
+		if (!StringUtil.isNullOrEmpty(title)) {
+			String value = configService.get(ConfigKeyEnum.evaluateZeroKey.getKey());
+			if (!StringUtil.isNullOrEmpty(value)) {
+				List<String> asList = Arrays.asList(value.split(","));
+				if (asList != null && asList.size() > 0) {
+					boolean zero = false;
+					for (String zerokey: asList) {
+						if(title.contains(zerokey)) {
+							zero = true;
+							break;
+						}
+					}
+					
+					if (zero) {
+						result = 1;
+						zeroPoint = 1;
+						startTime = TimeUtil.parseYYYYMMDD_HHMM(TimeUtil.getGernalTime(startTime) + " 22:00");
+					}
+				}
+			}
+		}
+		
+		
+		GoodsEvaluate goodsEvaluate = new GoodsEvaluate();
+		goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", ""));
+		goodsEvaluate.setUser(user);
+		goodsEvaluate.setTitle(getDescNew(title));
+		goodsEvaluate.setState(1);
+		goodsEvaluate.setZeroPoint(zeroPoint);
+		goodsEvaluate.setDynamicType(1);
+		goodsEvaluate.setType(EvaluateEnum.single);
+		goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000);
+		goodsEvaluate.setShareNumReal(0);
+		goodsEvaluate.setWeight(0.0);
+		goodsEvaluate.setStartTime(startTime);
+		goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, startTime));
+		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);
+		
+		return result;
+		
+		
+	}
+	
 	@Override
 	public void addGoodsEvaluateByDaTaoKe() {
 		List<Long> listId = null;
@@ -2059,7 +2242,7 @@
 			for (GoodsEvaluate goodsEvaluate : listExist) {
 				GoodsDetailVO goods = goodsEvaluate.getGoods();
 				if (goods != null && goods.getGoodsType() == 1) {
-					listId.add(goods.getGoodsId());
+					listId.add(Long.parseLong(goods.getGoodsId()));
 				}
 			}
 		}
@@ -2074,15 +2257,24 @@
 		}
 
 		for (int i = 0; i < list.size(); i++) {
-			boolean cerateGoods = cerateGoods(list.get(i));
+			boolean cerateGoods = addByDaTaoKeGoods(list.get(i));
 			if (cerateGoods) {
 				break;
 			}
 		}
 	}
 
-	private boolean cerateGoods(DaTaoKeDetailV2 daTaoKe) {
+	
+	@Override
+	public boolean addByDaTaoKeGoods(DaTaoKeDetailV2 daTaoKe) {
 		try {
+			Date limitDate = DateUtil.reduceDay(new Date(), 7);
+			
+			List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExistLimitTime(Constant.SOURCE_TYPE_TAOBAO, 
+					daTaoKe.getGoodsId()+"", limitDate);
+			if (evaluateList != null && evaluateList.size() > 0)
+				return false;
+
 			TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(daTaoKe.getGoodsId());
 			if (goodsBrief == null) {
 				return false;
@@ -2096,8 +2288,15 @@
 			ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
 			paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 			GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
-			// 鍙戝竷鐢ㄦ埛
-			ActivityUser user = activityUserService.getRandomByDaTaoKeCid(daTaoKe.getCid());
+			
+			ActivityUser user = null;
+			if(daTaoKe.getCid() != null) {
+				user = activityUserService.getRandomByDaTaoKeCid(daTaoKe.getCid());
+			} else {
+				List<ActivityRuleUser> ruleList = activityUserService.listByRuleCode(ActivityRuleUser.RULE_HAOHUO, 1, 20);
+				user = ruleList.get((int) (ruleList.size() * Math.random())).getActivityUser();
+			}
+			
 
 			String desc = daTaoKe.getDesc().replace(",", "锛�");
 			String[] split = desc.split("锛�");
@@ -2139,7 +2338,6 @@
 			goodsEvaluate.setState(1);
 			goodsEvaluate.setDynamicType(1);
 			goodsEvaluate.setType(EvaluateEnum.single);
-
 			goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000);
 			goodsEvaluate.setShareNumReal(0);
 			goodsEvaluate.setWeight(0.0);
@@ -2152,11 +2350,7 @@
 			List<String> goodsimgs = goodsBrief.getImgList();
 
 			List<String> imgs = new ArrayList<>();
-			if (!StringUtil.isNullOrEmpty(goodsBrief.getPictUrlWhite())) {
-				imgs.add(goodsBrief.getPictUrlWhite());
-			}
 			imgs.addAll(goodsimgs);
-
 
 			int i = 0;
 			List<ImgInfo> imgList = new ArrayList<>();
@@ -2196,8 +2390,9 @@
 					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");
-					} 
+						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);
@@ -2240,7 +2435,7 @@
 				imgList.add(imgInfo);
 				i++;
 			}
-			
+
 			int lineNum = 0;
 			if (imgList.size() > 0) {
 				if (imgList.size() == 1) {
@@ -2313,7 +2508,7 @@
 				return;
 			}
 			List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO,
-					goods.getAuctionId());
+					goods.getAuctionId()+"");
 			if (queryExist == null || queryExist.size() == 0) {
 				return;
 			}
@@ -2333,7 +2528,7 @@
 		if (jdGoods == null) {
 			return;
 		}
-		List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_JD, jdGoods.getSkuId());
+		List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_JD, jdGoods.getSkuId()+"");
 		if (queryExist == null || queryExist.size() == 0) {
 			return;
 		}
@@ -2350,7 +2545,7 @@
 		if (pddGoods == null) {
 			return;
 		}
-		List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_PDD, pddGoods.getGoodsId());
+		List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_PDD, pddGoods.getGoodsId()+"");
 		if (queryExist == null || queryExist.size() == 0) {
 			return;
 		}
@@ -2361,12 +2556,46 @@
 		updateGoods(queryExist, goodsNew);
 	}
 
+	@Override
+	public void updateVIPGoods(VIPGoodsInfo goods) {
+		if (goods == null) {
+			return;
+		}
+		List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_VIP,
+				goods.getGoodsId());
+		if (queryExist == null || queryExist.size() == 0) {
+			return;
+		}
+
+		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
+		paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
+		GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertVIPGoods(goods, paramsDTO);
+		updateGoods(queryExist, goodsNew);
+	}
+
+	@Override
+	public void updateSuningGoods(SuningGoodsInfo goods) {
+		if (goods == null) {
+			return;
+		}
+		List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_SUNING,
+				goods.getCommodityInfo().getCommodityCode());
+		if (queryExist == null || queryExist.size() == 0) {
+			return;
+		}
+
+		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
+		paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
+		GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertSuningGoods(goods, paramsDTO);
+		updateGoods(queryExist, goodsNew);
+	}
+
 	private void updateGoods(List<GoodsEvaluate> listExist, GoodsDetailVO goodsNew) {
-		long goodsId = goodsNew.getGoodsId();
+		String goodsId = goodsNew.getGoodsId();
 		int goodsType = goodsNew.getGoodsType();
 		for (GoodsEvaluate goodsEvaluate : listExist) {
 			GoodsDetailVO goodsDetailVO = goodsEvaluate.getGoods();
-			if (goodsDetailVO != null && goodsDetailVO.getGoodsId() != null && goodsDetailVO.getGoodsId() == goodsId
+			if (goodsDetailVO != null && goodsDetailVO.getGoodsId() != null && goodsDetailVO.getGoodsId().equalsIgnoreCase(goodsId)
 					&& goodsDetailVO.getGoodsType() == goodsType) {
 				goodsEvaluate.setGoods(goodsNew);
 			}
@@ -2379,7 +2608,7 @@
 
 			for (ImgInfo imgInfo : imgList) {
 				SimpleGoods simpleGoods = imgInfo.getGoods();
-				if (simpleGoods == null || simpleGoods.getGoodsId() != goodsId
+				if (simpleGoods == null || !simpleGoods.getGoodsId().equalsIgnoreCase(goodsId)
 						|| goodsType != simpleGoods.getGoodsType()) {
 					continue;
 				}
@@ -2403,19 +2632,18 @@
 			goodsEvaluateDao.save(goodsEvaluate);
 		}
 	}
-	
-	
+
 	@Override
-	public void offlineTaoBaoGoods(Long goodsId) {
+	public void offlineTaoBaoGoods(String goodsId) {
 		try {
 			if (goodsId == null) {
 				return;
 			}
-			List<GoodsEvaluate> list = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO, goodsId);
+			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) {
@@ -2424,13 +2652,13 @@
 	}
 
 	@CacheEvict(value = "dynamicCache", allEntries = true)
-	private void offlineGoods(List<GoodsEvaluate> list, int goodsType, Long goodsId) {
-		
+	private void offlineGoods(List<GoodsEvaluate> list, int goodsType, String 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());
@@ -2447,7 +2675,7 @@
 				simpleGoods.setState(1);
 				GoodsDetailVO goodsVO = imgInfo.getGoodsVO();
 				goodsVO.setState(1);
-				
+
 				imgInfo.setGoods(simpleGoods);
 				imgInfo.setGoodsVO(goodsVO);
 			}
@@ -2457,15 +2685,14 @@
 			goodsEvaluateDao.save(goodsEvaluate);
 		}
 	}
-	
 
 	/**
 	 * 鍒犻櫎宸茶繃鏈熸椂闂�
 	 */
 	private void removeOverdue() {
-		if(1>0)
+		if (1 > 0)
 			return;
-		
+
 		List<GoodsEvaluate> list = goodsEvaluateDao.queryOverdue();
 		if (list == null || list.size() == 0) {
 			return;
@@ -2490,7 +2717,7 @@
 	 * 鍒犻櫎鍟嗗搧宸蹭笅鏋�-鍗曞搧
 	 */
 	private void removeDownGoods() {
-		if(1>0)
+		if (1 > 0)
 			return;
 		try {
 			List<GoodsEvaluate> list = goodsEvaluateDao.removeDownGoods();
@@ -2505,4 +2732,15 @@
 			e.printStackTrace();
 		}
 	}
+
+	
+	@Override
+	public GoodsEvaluate queryExistSingle(String goodsId, int goodsType) {
+		List<GoodsEvaluate> list = goodsEvaluateDao.queryExistSingle(goodsType, goodsId);
+		if (list != null && list.size() > 0)
+			return list.get(0);
+		return null;
+	}
+	
+	
 }

--
Gitblit v1.8.0