From 2f2860b50f24e5e3598d223db03d43df61d95c97 Mon Sep 17 00:00:00 2001
From: yj <Administrator@192>
Date: 星期五, 13 三月 2020 16:31:30 +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 |  674 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 611 insertions(+), 63 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 2855b15..663d431 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
@@ -31,6 +31,7 @@
 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.bus.clazz.GoodsClass;
 import com.yeshi.fanli.entity.dynamic.CommentInfo;
 import com.yeshi.fanli.entity.dynamic.CommentInfo.CommentInfoEnum;
 import com.yeshi.fanli.entity.dynamic.DynamicInfo;
@@ -44,6 +45,7 @@
 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.entity.taobao.dataoke.DaTaoKeDetailV2;
 import com.yeshi.fanli.exception.dynamic.ActivityUserException;
 import com.yeshi.fanli.exception.dynamic.GoodsEvaluateException;
 import com.yeshi.fanli.exception.goods.ConvertLinkExceptionException;
@@ -54,10 +56,12 @@
 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.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service;
 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.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
@@ -66,7 +70,10 @@
 import com.yeshi.fanli.util.jd.JDApiUtil;
 import com.yeshi.fanli.util.jd.JDUtil;
 import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
+import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil;
+import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
+import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
 import com.yeshi.fanli.vo.goods.CouponInfoVO;
 import com.yeshi.fanli.vo.goods.GoodsDetailVO;
 import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
@@ -104,12 +111,16 @@
 	@Resource
 	private ConvertLinkManager convertLinkManager;
 
+	@Resource
+	private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service;
+
 	@Override
 	public String saveHead(MultipartFile file, GoodsEvaluate record) throws GoodsEvaluateException {
 		Integer state = record.getState();
 		if (state == null) {
 			state = 0;
 		}
+		record.setState(state);
 
 		String tilte = record.getTitle();
 		if (StringUtil.isNullOrEmpty(tilte)) {
@@ -155,18 +166,21 @@
 			record.setId(id);
 			record.setShareNumReal(0);
 			record.setCreateTime(new Date());
+			record.setUpdateTime(new Date());
 			goodsEvaluateDao.save(record);
 		} else {
 			GoodsEvaluate resultObj = goodsEvaluateDao.getById(id);
 			if (resultObj == null)
 				throw new GoodsEvaluateException(1, "淇敼鍐呭宸蹭笉瀛樺湪");
 
+			resultObj.setState(record.getState());
 			resultObj.setUser(record.getUser());
 			resultObj.setShareNum(record.getShareNum());
 			resultObj.setWeight(record.getWeight());
 			resultObj.setStartTime(record.getStartTime());
 			resultObj.setEndTime(record.getEndTime());
 			resultObj.setTitle(tilte);
+			resultObj.setUpdateTime(new Date());
 			goodsEvaluateDao.save(resultObj);
 		}
 		return id;
@@ -234,7 +248,7 @@
 	}
 
 	@Override
-	public void saveSingleGoods(String pid, Long goodsId, Integer goodsType, String videoUrl, Integer picNum,
+	public String saveSingleGoods(String pid, Long goodsId, Integer goodsType, String videoUrl, Integer picNum,
 			String picUrls, MultipartHttpServletRequest fileRequest) throws GoodsEvaluateException, Exception {
 		if (StringUtil.isNullOrEmpty(pid)) {
 			throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅");
@@ -344,10 +358,8 @@
 		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);
+		ConfigParamsDTO params = hongBaoManageService.getShowComputeRate("android", "55");
+		params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 		if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
 			try {
 				TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
@@ -427,6 +439,8 @@
 		if (totalImg > 0) {
 			if (totalImg == 1) {
 				lineNum = 1;
+			} else if (totalImg == 3) {
+				lineNum = 3;
 			} else if (totalImg <= 4) {
 				lineNum = 2;
 			} else {
@@ -456,13 +470,12 @@
 		}
 
 		/*
-		 * // 鏃犲埜涓嶈兘鑷姩 鐢熸垚璇勮 CouponInfoVO couponInfo1 =
-		 * goodsDetailVO.getCouponInfo(); if (couponInfo1 == null) { addComment
-		 * = false; }
+		 * // 鏃犲埜涓嶈兘鑷姩 鐢熸垚璇勮 CouponInfoVO couponInfo1 = goodsDetailVO.getCouponInfo(); if
+		 * (couponInfo1 == null) { addComment = false; }
 		 */
 
+		String commentText = "";
 		if (addComment) {
-			String commentText = "";
 			if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
 				TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsId, "0");
 				String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
@@ -477,23 +490,29 @@
 				String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl,
 						JDApiUtil.POSITION_SHARE + "", "1");
 				String template = configService.get(ConfigKeyEnum.quickShareJDCommentText.getKey());
+				if (jumpLink == null) {
+					throw new GoodsEvaluateException(1, "璇ュ晢鍝佽浆閾惧け璐�");
+				}
 				commentText = template.replace("[閾炬帴]", jumpLink);
 			} else if (goodsType == Constant.SOURCE_TYPE_PDD) {
 				String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsId, PinDuoDuoApiUtil.PID_SHARE + "", "1");
+				if (jumpLink == null) {
+					throw new GoodsEvaluateException(1, "璇ュ晢鍝佽浆閾惧け璐�");
+				}
 				String template = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey());
 				commentText = template.replace("[閾炬帴]", jumpLink);
 			}
 
-			commentText = commentText.replace("[鍘熶环]", 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");
+//			commentText = commentText.replace("[鍘熶环]", MoneyBigDecimalUtil.getWithNoZera(goodsDetailVO.getZkPrice())+"");
+//			if (!goodsDetailVO.isHasCoupon()) {
+//				commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
+//				commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
+//			} else {
+//				commentText = commentText.replace("[鍒稿悗浠穄",  MoneyBigDecimalUtil.getWithNoZera(goodsDetailVO.getCouponPrice())+"");
+//			}
+//
+//			commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n",
+//					"\r\n");
 
 			CommentInfo commentInfo = new CommentInfo();
 			commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
@@ -502,6 +521,7 @@
 			commentsNew.add(commentInfo);
 			resultObj.setComments(commentsNew);
 		}
+		resultObj.setUpdateTime(new Date());
 		goodsEvaluateDao.save(resultObj);
 
 		// 鍒犻櫎鍥剧墖
@@ -512,6 +532,8 @@
 				}
 			}
 		}
+
+		return commentText;
 	}
 
 	private String createTokenAndLink(GoodsDetailVO goodsDetailVO) throws Exception {
@@ -553,10 +575,8 @@
 
 	public GoodsDetailVO getGoodsDetailVO(Long goodsId, Integer goodsType) throws GoodsEvaluateException {
 		GoodsDetailVO goodsDetail = null;
-		BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
-		BigDecimal shareRate = hongBaoManageService.getShareRate();
-		BigDecimal vipFanLiRate = hongBaoManageService.getVIPFanLiRate();
-		ConfigParamsDTO params = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE, vipFanLiRate);
+		ConfigParamsDTO params = hongBaoManageService.getShowComputeRate("android", "55");
+		params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 		if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
 			try {
 				TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
@@ -750,6 +770,8 @@
 		if (totalImg > 0) {
 			if (totalImg == 1) {
 				lineNum = 1;
+			} else if (totalImg == 3) {
+				lineNum = 3;
 			} else if (totalImg <= 4) {
 				lineNum = 2;
 			} else {
@@ -832,6 +854,7 @@
 		}
 
 		resultObj.setComments(comments);
+		resultObj.setUpdateTime(new Date());
 		goodsEvaluateDao.save(resultObj);
 	}
 
@@ -1029,8 +1052,8 @@
 				if (info == null)
 					throw new GoodsEvaluateException(2, "瑙嗛鍥剧墖涓婁紶澶辫触");
 				videoPic = info.getUrl();
-				width=info.getW();
-				height=info.getH();
+				width = info.getW();
+				height = info.getH();
 			}
 
 			MultipartFile activityfile = fileRequest.getFile("activityfile");
@@ -1070,6 +1093,7 @@
 			listImg.add(imgVideo);
 		}
 
+		int totalImg = 0;
 		if (!StringUtil.isNullOrEmpty(activityPic) || !StringUtil.isNullOrEmpty(imgInfo.getActivityUrl())) {
 			if (imgactivity != null) {
 				imgactivity.setUrl(activityPic);
@@ -1093,8 +1117,23 @@
 				imgactivity.setH(imgactivity.getH());
 			}
 			listImg.add(imgactivity);
+			totalImg++;
 		}
-		resultObj.setLineNum(1);
+
+		int lineNum = 0;
+		if (totalImg > 0) {
+			if (totalImg == 1) {
+				lineNum = 1;
+			} else if (totalImg == 3) {
+				lineNum = 3;
+			} else if (totalImg <= 4) {
+				lineNum = 2;
+			} else {
+				lineNum = 3;
+			}
+		}
+
+		resultObj.setLineNum(lineNum);
 		resultObj.setImgList(listImg);
 		goodsEvaluateDao.save(resultObj);
 	}
@@ -1211,6 +1250,7 @@
 			listImg.add(imgActivity);
 		}
 
+		int totalImg = 0;
 		// 缂栬緫鍥剧墖
 		if (!StringUtil.isNullOrEmpty(picUrls)) {
 			String[] pics = picUrls.split(",");
@@ -1224,14 +1264,15 @@
 
 							ImgInfo imgInfo0 = new ImgInfo();
 							imgInfo0.setId(UUID.randomUUID().toString().replace("-", ""));
-							imgInfo0.setLarge(true);
+							imgInfo0.setLarge(false);
 							imgInfo0.setPid(pid);
 							imgInfo0.setUrl(picLink);
 							imgInfo0.setUrlHD(picLink);
 							imgInfo0.setType(ImgEnum.img);
-							imgVideo.setW(1);
-							imgVideo.setH(1);
+							imgInfo0.setW(1);
+							imgInfo0.setH(1);
 							listImg.add(imgInfo0);
+							totalImg++;
 							continue;
 						}
 					}
@@ -1242,6 +1283,7 @@
 								String url = imgInfo.getUrl();
 								if (picLink.equals(url)) {
 									listImg.add(imgInfo);
+									totalImg++;
 									break;
 								}
 							}
@@ -1265,7 +1307,21 @@
 					listDel.add(listOld.get(j));
 			}
 		}
-		resultObj.setLineNum(1);
+
+		int lineNum = 0;
+		if (totalImg > 0) {
+			if (totalImg == 1) {
+				lineNum = 1;
+			} else if (totalImg == 3) {
+				lineNum = 3;
+			} else if (totalImg <= 4) {
+				lineNum = 2;
+			} else {
+				lineNum = 3;
+			}
+		}
+
+		resultObj.setLineNum(lineNum);
 		resultObj.setImgList(listImg);
 		goodsEvaluateDao.save(resultObj);
 
@@ -1419,6 +1475,45 @@
 		return goodsEvaluateDao.count(key, state, dynamicType);
 	}
 
+	
+	@Override
+	public void addRanDomShareCount() {
+		// 鍙戝湀
+		try {
+			List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(0, Integer.MAX_VALUE, 1);
+			if (list != null) {
+				for (GoodsEvaluate goodsEvaluate: list) {
+					Integer shareNum = goodsEvaluate.getShareNum();
+					if (shareNum == null) {
+						shareNum = 0;
+					}
+					goodsEvaluate.setShareNum(shareNum + (int) (Math.random() * 100) + 10);
+					goodsEvaluateDao.save(goodsEvaluate);
+				}
+			}
+		} catch (Exception e) {
+			LogHelper.errorDetailInfo(e);
+		}
+		
+		// 绱犳潗
+		try {
+			List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(0, Integer.MAX_VALUE, 2);
+			if (list != null) {
+				for (GoodsEvaluate goodsEvaluate: list) {
+					Integer shareNum = goodsEvaluate.getShareNum();
+					if (shareNum == null) {
+						shareNum = 0;
+					}
+					goodsEvaluate.setShareNum(shareNum + (int) (Math.random() * 100) + 10);
+					goodsEvaluateDao.save(goodsEvaluate);
+				}
+			}
+		} catch (Exception e) {
+			LogHelper.errorDetailInfo(e);
+		}
+	}
+	
+	
 	@Override
 	@Cacheable(value = "dynamicCache", key = "'queryValidEvaluateCache-'+#start")
 	public List<GoodsEvaluate> queryValidEvaluateCache(int start, int count) {
@@ -1441,19 +1536,17 @@
 	}
 
 	@Override
-	// @Cacheable(value = "dynamicCache", key =
-	// "'queryMaterialsCache-'+#start+'-'+#type")
+	@Cacheable(value = "dynamicCache", key = "'queryMaterialsCache-'+#start+'-'+#type")
 	public List<GoodsEvaluate> queryMaterialsCache(int start, int count, int type) throws Exception {
 		List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(start, count, type);
 		if (list == null) {
 			list = new ArrayList<>();
 		}
 		Date now = new Date();
-		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
 		List<GoodsEvaluate> listNew = new ArrayList<>();
 		for (GoodsEvaluate goodsEvaluate : list) {
-
 			GoodsEvaluate evaluateNew = new GoodsEvaluate();
 			try {
 				PropertyUtils.copyProperties(evaluateNew, goodsEvaluate);
@@ -1462,54 +1555,95 @@
 				continue;
 			}
 
-			int comment = 0;
 			List<CommentInfo> comments = evaluateNew.getComments();
 			if (comments != null && comments.size() > 0) {
 				EvaluateEnum typeEnum = evaluateNew.getType();
 				List<CommentInfo> commentNew = new ArrayList<>();
 
+				boolean singleCoupn = true;
+				boolean currencyCoupon = true;
 				for (CommentInfo commentInfo : comments) {
-					comment++;
-					CommentInfoEnum typeComment = commentInfo.getTypeEnum();
+					if (StringUtil.isNullOrEmpty(commentInfo.getContent())
+							&& StringUtil.isNullOrEmpty(commentInfo.getCoupon())) {
+						continue;
+					}
+
+					CommentInfo commentInfoNew = new CommentInfo();
+					try {
+						PropertyUtils.copyProperties(commentInfoNew, commentInfo);
+					} catch (Exception e) {
+						e.printStackTrace();
+						continue;
+					}
+
+					if (typeEnum != null && typeEnum == EvaluateEnum.single) {
+						GoodsDetailVO goods = evaluateNew.getGoods();
+						if (goods != null) {
+							String content = commentInfoNew.getContent();
+							if (!StringUtil.isNullOrEmpty(content)) {
+								content = content.replace("[鍘熶环]", MoneyBigDecimalUtil.getWithNoZera(goods.getZkPrice())+"");
+								if (goods.isHasCoupon()) {
+									content = content.replace("[鍒稿悗浠穄",MoneyBigDecimalUtil.getWithNoZera(goods.getCouponPrice())+"");
+								} else {
+									singleCoupn = false;
+									content = content.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
+									content = content.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
+								}
+								content = content.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
+								commentInfoNew.setContent(content);
+							}
+						}
+					}
+					
+					CommentInfoEnum typeComment = commentInfoNew.getTypeEnum();
 					if (typeComment != null && typeComment == CommentInfoEnum.goodsCoupon) {
 						GoodsDetailVO goods = evaluateNew.getGoods();
-						if (goods.isHasCoupon()) {
-							commentNew.add(commentInfo);
+						if (goods != null && goods.isHasCoupon()) {
+							commentNew.add(commentInfoNew);
 							continue;
 						}
 					}
 
-					String coupon = commentInfo.getCoupon();
-					String endTime = commentInfo.getEndTime();
+					String coupon = commentInfoNew.getCoupon();
+					String endTime = commentInfoNew.getEndTime();
 					if (!StringUtil.isNullOrEmpty(coupon) && !StringUtil.isNullOrEmpty(endTime)) {
 						Date endDay = sdf.parse(endTime);
 						if (endDay.getTime() > now.getTime()) {
-							int daysBetween = DateUtil.daysBetween(now, endDay);
-							if (daysBetween > 0) {
+							String daysBetween = DateUtil.dateDiff5(now, endDay);
+							if (!StringUtil.isNullOrEmpty(daysBetween)) {
+								List<ClientTextStyleVO> tagListNew = new ArrayList<>();
+								List<ClientTextStyleVO> tagList = commentInfoNew.getTagList();
+								if (tagList != null) {
+									tagListNew.addAll(tagList);
+								}
+
 								ClientTextStyleVO styleVO = new ClientTextStyleVO();
 								styleVO.setColor("#E5005C");
-								styleVO.setContent(daysBetween + "澶╁悗杩囨湡");
-
-								List<ClientTextStyleVO> tagList = commentInfo.getTagList();
-								tagList.add(styleVO);
-								commentInfo.setTagList(tagList);
-
-								commentNew.add(commentInfo);
+								styleVO.setContent(daysBetween + "鍚庤繃鏈�");
+								tagListNew.add(styleVO);
+								commentInfoNew.setTagList(tagListNew);
+								commentNew.add(commentInfoNew);
+								continue;
+							} else {
+								currencyCoupon = false;
 								continue;
 							}
+						} else {
+							currencyCoupon = false;
+							continue;
 						}
 					}
 
-					commentNew.add(commentInfo);
+					commentNew.add(commentInfoNew);
 				}
 				evaluateNew.setComments(commentNew);
 
 				if (typeEnum != null && typeEnum == EvaluateEnum.single) {
-					if (comment > 0 && commentNew.size() == 0) { // 鎵�鏈夊埜璇勮涓嬫灦
+					if (!currencyCoupon && !singleCoupn) { // 鎵�鏈夊埜璇勮涓嬫灦
 						GoodsDetailVO goods = evaluateNew.getGoods();
 						if (goods != null) {
 							goods.setState(1); // 璇勮涓嶅瓨鍦� 涓嬫灦
-							LogHelper.test("鑾峰彇鍒楄〃鍟嗗搧涓嬫灦1");
+							evaluateNew.setRemarks("璇勮楠岃瘉涓嬫灦");
 						}
 
 						List<ImgInfo> imgList = evaluateNew.getImgList();
@@ -1518,7 +1652,7 @@
 								SimpleGoods simpleGoods = imgInfo.getGoods();
 								if (simpleGoods != null) {
 									simpleGoods.setState(1);
-									LogHelper.test("鑾峰彇鍒楄〃鍟嗗搧涓嬫灦2");
+									simpleGoods.setRemarks("璇勮楠岃瘉涓嬫灦");
 								}
 							}
 
@@ -1562,11 +1696,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();
-			ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE,
-					vipFanLiRate);
+			ConfigParamsDTO params = hongBaoManageService.getShowComputeRate("android", "55");
+			params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
 			for (GoodsEvaluate goodsEvaluate : list) {
 				// 鏄惁2涓皬鏃朵箣鍐呭凡鏇存柊
 				Date updateTime = goodsEvaluate.getUpdateTime();
@@ -1603,10 +1734,11 @@
 
 				GoodsDetailVO goods = goodsEvaluate.getGoods();
 				if (goods != null) {
-					GoodsDetailVO goodsNew = getGoodsNewInfo(goods.getGoodsId(), goods.getGoodsType(), paramsDTO);
+					GoodsDetailVO goodsNew = getGoodsNewInfo(goods.getGoodsId(), goods.getGoodsType(), params);
 					if (goodsNew != null) {
 						goodsEvaluate.setGoods(goodsNew);
 					} else {
+						goodsEvaluate.setRemarks("鏇存柊-浣嶇疆鎵惧埌鍟嗗搧淇℃伅");
 						goodsEvaluate.setState(0); // 宸插晢鍝佷笅鏋�
 						goods.setState(1);
 						goodsEvaluate.setGoods(goods);
@@ -1625,7 +1757,7 @@
 					}
 
 					GoodsDetailVO goodsDetailVO = getGoodsNewInfo(simpleGoods.getGoodsId(), simpleGoods.getGoodsType(),
-							paramsDTO);
+							params);
 					if (goodsDetailVO != null) {
 						simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
 						simpleGoods.setState(0);
@@ -1639,6 +1771,7 @@
 						imgInfo.setGoods(simpleGoods);
 						imgInfo.setGoodsVO(goodsDetailVO);
 					} else {
+						simpleGoods.setRemarks("鏇存柊-浣嶇疆鎵惧埌鍟嗗搧淇℃伅");
 						simpleGoods.setState(1);
 						imgInfo.setGoods(simpleGoods);
 						GoodsDetailVO goodsVO = imgInfo.getGoodsVO();
@@ -1648,7 +1781,7 @@
 						}
 					}
 				}
-
+				goodsEvaluate.setImgList(imgList);
 				goodsEvaluate.setUpdateTime(new Date());
 				goodsEvaluateDao.save(goodsEvaluate);
 			}
@@ -1747,7 +1880,9 @@
 					}
 					imgInfo.setGoods(simpleGoods);
 
-					TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsVO.getGoodsId(), null);
+					TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsVO.getGoodsId(), "0");
+
+//					TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(Constant.LINK_TOKEN_VERIFY_UID, goodsVO.getGoodsId(), null);
 					String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
 					String commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
 
@@ -1783,4 +1918,417 @@
 		}
 	}
 
+	@Override
+	public void addGoodsEvaluateByDaTaoKe() {
+		List<Long> listId = null;
+		List<GoodsEvaluate> listExist = goodsEvaluateDao.querySingleExist();
+		if (listExist != null && listExist.size() > 0) {
+			listId = new ArrayList<Long>();
+			for (GoodsEvaluate goodsEvaluate : listExist) {
+				GoodsDetailVO goods = goodsEvaluate.getGoods();
+				if (goods != null && goods.getGoodsType() == 1) {
+					listId.add(goods.getGoodsId());
+				}
+			}
+		}
+		// 鐑攢鍗曞搧鐨勫垎绫�
+		List<GoodsClass> listClass = DaTaoKeUtil.goodsClasses;
+		int ci = (int) (Math.random() * listClass.size());
+		Long subId = listClass.get(ci).getId();
+
+		List<DaTaoKeDetailV2> list = daTaoKeGoodsDetailV2Service.getGoodsNotInList(subId, listId, 1);
+		if (list == null || list.size() == 0) {
+			return;
+		}
+
+		for (int i = 0; i < list.size(); i++) {
+			boolean cerateGoods = cerateGoods(list.get(i));
+			if (cerateGoods) {
+				break;
+			}
+		}
+	}
+
+	private boolean cerateGoods(DaTaoKeDetailV2 daTaoKe) {
+		try {
+			TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(daTaoKe.getGoodsId());
+			if (goodsBrief == null) {
+				return false;
+			}
+
+			BigDecimal couponAmount = goodsBrief.getCouponAmount();
+			if (couponAmount == null || couponAmount.compareTo(new BigDecimal(0)) < 1) {
+				return false;
+			}
+
+			ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
+			paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
+			GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
+			// 鍙戝竷鐢ㄦ埛
+			ActivityUser user = activityUserService.getRandomByDaTaoKeCid(daTaoKe.getCid());
+
+			String desc = daTaoKe.getDesc().replace(",", "锛�");
+			String[] split = desc.split("锛�");
+			int max = 1;
+			if (Math.random() > 0.5) {
+				max = 2;
+			}
+			int e = 0;
+			String emojis = "";
+			String descNew = "";
+			if (split.length > 0) {
+				for (int i = 0; i < split.length; i++) {
+					if (Math.random() > 0.5 && e < max) {
+						for (int j = 0; j < 10; j++) {
+							String emojisTemp = DaTaoKeUtil.getEvaluateEmojis();
+							if (!emojis.equals(emojisTemp)) {
+								emojis = emojisTemp;
+								break;
+							}
+						}
+						e++;
+						descNew += split[i] + emojis;
+					} else {
+						descNew += split[i] + "锛�";
+					}
+				}
+			} else {
+				descNew = desc;
+			}
+
+			if (descNew.endsWith("锛�")) {
+				descNew = descNew.substring(0, descNew.length() - 1);
+			}
+
+			GoodsEvaluate goodsEvaluate = new GoodsEvaluate();
+			goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", ""));
+			goodsEvaluate.setUser(user);
+			goodsEvaluate.setTitle(descNew);
+			goodsEvaluate.setState(1);
+			goodsEvaluate.setDynamicType(1);
+			goodsEvaluate.setType(EvaluateEnum.single);
+
+			goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000);
+			goodsEvaluate.setShareNumReal(0);
+			goodsEvaluate.setWeight(0.0);
+			goodsEvaluate.setStartTime(new Date());
+			goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date()));
+			goodsEvaluate.setPublishTime(new Date());
+			goodsEvaluate.setCreateTime(new Date());
+			goodsEvaluate.setUpdateTime(new Date());
+
+			List<String> goodsimgs = goodsBrief.getImgList();
+
+			List<String> imgs = new ArrayList<>();
+			if (!StringUtil.isNullOrEmpty(goodsBrief.getPictUrlWhite())) {
+				imgs.add(goodsBrief.getPictUrlWhite());
+			}
+			imgs.addAll(goodsimgs);
+
+			int lineNum = 0;
+			if (imgs.size() > 0) {
+				if (imgs.size() == 1) {
+					lineNum = 1;
+				} else if (imgs.size() == 3) {
+					lineNum = 3;
+				} else if (imgs.size() <= 4) {
+					lineNum = 2;
+				} else {
+					lineNum = 3;
+				}
+			}
+			goodsEvaluate.setLineNum(lineNum);
+
+			int i = 0;
+			List<ImgInfo> imgList = new ArrayList<>();
+			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);
+
+					// TaoBaoLink taoBaoLink =
+					// shareGoodsService.getTaoBaoLinkForShare(Constant.LINK_TOKEN_VERIFY_UID,
+					// goodsVO.getGoodsId(), 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));
+
+					commentText = commentText.replace("[鍘熶环]", MoneyBigDecimalUtil.getWithNoZera(goodsVO.getZkPrice())+"");
+					if (!goodsVO.isHasCoupon()) {
+						commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
+						commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
+					} else {
+						commentText = commentText.replace("[鍒稿悗浠穄", MoneyBigDecimalUtil.getWithNoZera(goodsVO.getCouponPrice())+"");
+					}
+					commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n")
+							.replace("\r\n\r\n", "\r\n");
+
+					CommentInfo commentInfo = new CommentInfo();
+					commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
+					commentInfo.setContent(commentText);
+					commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
+					commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
+
+					String text2 = "";
+					String evaluateEmojis = configService.get(ConfigKeyEnum.evaluateEmojis.getKey());
+					if (!StringUtil.isNullOrEmpty(evaluateEmojis)) {
+						text2 = evaluateEmojis + "\n";
+					}
+
+					String evaluateText = configService.get(ConfigKeyEnum.evaluateText.getKey());
+					if (!StringUtil.isNullOrEmpty(evaluateText)) {
+						text2 += evaluateText;
+					}
+					
+					String dtitle = daTaoKe.getDtitle();
+					if (!StringUtil.isNullOrEmpty(dtitle)) {
+						text2 = text2 + dtitle +"\n";
+					} else if (!StringUtil.isNullOrEmpty(evaluateText)) {
+						text2 += "\n";
+					}
+					text2 += "鍏堥銆�"+ couponAmount +"鍏冧紭鎯犲埜銆戜笅鍗�";
+							
+					CommentInfo commentInfo2 = new CommentInfo();
+					commentInfo2.setId(UUID.randomUUID().toString().replace("-", ""));
+					commentInfo2.setContent(text2);
+					commentInfo2.setTypeEnum(CommentInfoEnum.goodsCoupon);
+					commentInfo2.setType("");
+					
+					
+					List<CommentInfo> commentsNew = new ArrayList<>();
+					commentsNew.add(commentInfo);
+					commentsNew.add(commentInfo2);
+					goodsEvaluate.setComments(commentsNew);
+					
+					goodsEvaluate.setGoods(goodsVO);
+				}
+				imgList.add(imgInfo);
+				i++;
+			}
+			goodsEvaluate.setImgList(imgList);
+			goodsEvaluateDao.save(goodsEvaluate);
+		} catch (Exception e) {
+			e.printStackTrace();
+			LogHelper.errorDetailInfo(e);
+			return false;
+		}
+		return true;
+	}
+
+	private String getDesc(String desc) {
+		System.out.println(desc);
+		String newDesc = "";
+		int emoji = 0;
+		String content = desc.replace("锛�", ",");
+		while (content.length() > 0) {
+			int length = 0;
+			boolean end = true;
+			for (int i = 0; i < content.length(); i++) {
+				if (content.substring(0, i).length() >= 18) {
+					length = i;
+					end = false;
+					break;
+				}
+			}
+
+			if (end) {
+				length = content.length();
+			}
+
+			String introduce = content.substring(0, length);
+			System.out.println(introduce);
+			if (verify(introduce)) {
+				if (emoji >= 4) {
+					introduce = introduce.replace(",", "\n"); // 闇�瑕佹崲琛�
+				} else {
+					emoji++;
+					introduce = introduce.replace(",", DaTaoKeUtil.getRandomCommonEmoji() + "\n"); // 闇�瑕佹崲琛�
+				}
+			}
+
+			// 闅忔満鏇挎崲emoji
+			if (emoji <= 4 && Math.random() > 0.5) {
+				introduce = introduce.replace(",", DaTaoKeUtil.getRandomCommonEmoji());
+				emoji++;
+			}
+			newDesc += introduce;
+			content = content.substring(length);
+		}
+		return newDesc;
+	}
+
+	private boolean verify(String content) {
+		// 18涓瓧绗﹀唴锛堝寘鍚爣鐐逛篃绠椾竴涓瓧绗︼級鏈夊涓�楀彿锛屽垯涓嶆崲琛�
+		char d = ',';
+		int count = 0;
+		char chs[] = content.toCharArray();// 杞崲鎴恈har鏁扮粍
+		for (int i = 0; i < chs.length; i++) {
+			if (d == chs[i]) {
+				count++;
+			}
+		}
+		if (count > 1) {
+			return false;
+		}
+
+		// 涔﹀悕鍙凤紝澶ф嫭鍙凤紝灏忔嫭鍙烽噷闈㈢殑鍐呭涓嶆崲琛�
+		if (content.contains("[") && content.contains("]")) {
+			return false;
+		} else if (content.contains("銆�") && content.contains("銆�")) {
+			return false;
+		} else if (content.contains("{") && content.contains("}")) {
+			return false;
+		} else if (content.contains("(") && content.contains(")")) {
+			return false;
+		}
+
+		int index = content.lastIndexOf(",");
+		// (闄ゅ紑閫楀彿浠ュ鐨勭鍙凤級鎰熷徆鍙�/鍙ュ彿/闂彿鍓嶉潰鏈夐�楀彿锛屼笉鎹㈣
+		if (content.contains("!") && index < content.lastIndexOf("!")) {
+			return false;
+		}
+
+		if (content.contains("锛�") && index < content.lastIndexOf("锛�")) {
+			return false;
+		}
+
+		if (content.contains("銆�") && index < content.lastIndexOf("銆�")) {
+			return false;
+		}
+
+		if (content.contains("?") && index < content.lastIndexOf("?")) {
+			return false;
+		}
+
+		if (content.contains("锛�") && index < content.lastIndexOf("锛�")) {
+			return false;
+		}
+
+		if (content.contains("锛�")) {
+			return false;
+		}
+		return true;
+	}
+	
+	@Override
+	public void updateTaoBaoGoods(TaoBaoGoodsBrief goods) {
+		try {
+			if (goods == null) {
+				return;
+			}
+			List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO, goods.getAuctionId());
+			if (queryExist == null || queryExist.size() == 0) {
+				return;
+			}
+			
+			ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
+			paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
+			GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
+			updateGoods(queryExist, goodsNew);
+		
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	@Override
+	public void updateJDGoods(JDGoods jdGoods) {
+		if (jdGoods == null) {
+			return;
+		}
+		List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_JD, jdGoods.getSkuId());
+		if (queryExist == null || queryExist.size() == 0) {
+			return;
+		}
+		
+		ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
+		paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
+		GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertJDGoods(jdGoods, paramsDTO);
+		
+		updateGoods(queryExist, goodsNew);
+	}
+	
+	@Override
+	public void updatePDDGoods(PDDGoodsDetail pddGoods) {
+		if (pddGoods == null) {
+			return;
+		}
+		List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_PDD, pddGoods.getGoodsId());
+		if (queryExist == null || queryExist.size() == 0) {
+			return;
+		}
+		
+		ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
+		paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
+		GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertPDDGoods(pddGoods, paramsDTO);
+		updateGoods(queryExist, goodsNew);
+	}
+	
+	private void updateGoods(List<GoodsEvaluate> listExist, GoodsDetailVO goodsNew) {
+		long goodsId = goodsNew.getGoodsId();
+		int goodsType = goodsNew.getGoodsType();
+		for (GoodsEvaluate goodsEvaluate: listExist) {
+			GoodsDetailVO goodsDetailVO = goodsEvaluate.getGoods();
+			if (goodsDetailVO != null && goodsDetailVO.getGoodsId() != null 
+				&& goodsDetailVO.getGoodsId() == goodsId && goodsDetailVO.getGoodsType() == goodsType) {
+				goodsEvaluate.setGoods(goodsNew);
+			}
+			
+			// 鏇存柊鍟嗗搧淇℃伅
+			List<ImgInfo> imgList = goodsEvaluate.getImgList();
+			if (imgList == null || imgList.size() == 0) {
+				continue;
+			}
+
+			for (ImgInfo imgInfo : imgList) {
+				SimpleGoods simpleGoods = imgInfo.getGoods();
+				if (simpleGoods == null || simpleGoods.getGoodsId() != goodsId  
+						|| goodsType != simpleGoods.getGoodsType()) {
+					continue;
+				}
+
+				
+				simpleGoods.setState(0);
+				simpleGoods.setPrice(goodsNew.getCouponPrice());
+				CouponInfoVO couponInfo = goodsNew.getCouponInfo();
+				if (couponInfo == null) {
+					simpleGoods.setPrice(goodsNew.getZkPrice());
+				} else {
+					simpleGoods.setPrice(goodsNew.getCouponPrice());
+					simpleGoods.setAmount(couponInfo.getAmount());
+				}
+				
+				imgInfo.setGoods(simpleGoods);
+				imgInfo.setGoodsVO(goodsNew);
+			}
+			
+			goodsEvaluate.setImgList(imgList);
+			goodsEvaluate.setUpdateTime(new Date());
+			goodsEvaluateDao.save(goodsEvaluate);
+		}
+	}
+	
+	
 }

--
Gitblit v1.8.0