From 1dc1b5e88283c2ea8cf53c9f014300b3ad0f53de Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期四, 02 四月 2020 11:20:43 +0800
Subject: [PATCH] vip消息

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java |  356 ++++++++++++++++++++++++++++-------------------------------
 1 files changed, 168 insertions(+), 188 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 3ecc09d..6d928e1 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
@@ -1855,107 +1855,140 @@
 	}
 
 	@Override
-	public void addGoodsEvaluateByDynamicInfo(DynamicInfo info) {
-		if (1 > 0) {
-			return; // 鏆備笉鍚敤鑷姩鐢熸垚
+	public void addGoodsEvaluate(Long goodsId, Integer cid, String title, String comment) throws GoodsEvaluateException{
+		if (goodsId == null || cid == null || StringUtil.isNullOrEmpty(title)) {
+			throw new GoodsEvaluateException(1, "鐩稿叧鍙傛暟涓嶈兘涓虹┖");
 		}
-
-		if (info == null) {
-			return;
-		}
-
+		
+		TaoBaoGoodsBrief goodsBrief = null;
 		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());
-					}
-					imgInfo.setGoods(simpleGoods);
-
-					TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsVO.getGoodsId(), "0");
-
-					// TaoBaoLink taoBaoLink =
-					// shareGoodsService.getTaoBaoLinkForShare(Constant.LINK_TOKEN_VERIFY_UID,
-					// goodsVO.getGoodsId(), null);
-					String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
-					String commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
-
-					commentText = commentText.replace("[鍘熶环]", goodsVO.getZkPrice().toString());
-					if (!goodsVO.isHasCoupon()) {
-						commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
-						commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
-					} else {
-						commentText = commentText.replace("[鍒稿悗浠穄", goodsVO.getCouponPrice().toString());
-					}
-					commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n")
-							.replace("\r\n\r\n", "\r\n");
-
-					CommentInfo commentInfo = new CommentInfo();
-					commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
-					commentInfo.setContent(commentText);
-					commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
-					commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
-
-					List<CommentInfo> commentsNew = new ArrayList<>();
-					commentsNew.add(commentInfo);
-					goodsEvaluate.setComments(commentsNew);
-
-					goodsEvaluate.setGoods(goodsVO);
-
-				}
-				imgList.add(imgInfo);
-			}
-			goodsEvaluate.setImgList(imgList);
-			goodsEvaluateDao.save(goodsEvaluate);
-		} catch (Exception e) {
-			LogHelper.errorDetailInfo(e);
+			goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
+		} catch (TaobaoGoodsDownException e) {
+			throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�");
 		}
+
+		if (goodsBrief == null) {
+			throw new GoodsEvaluateException(1, "鏈壘鍒板晢鍝佷俊鎭�");
+		}
+
+		BigDecimal couponAmount = goodsBrief.getCouponAmount();
+		if (couponAmount == null || couponAmount.compareTo(new BigDecimal(0)) < 1) {
+			throw new GoodsEvaluateException(1, "璇ュ晢鍝佹棤鍒�");
+		}
+
+		// 鍙戝竷鐢ㄦ埛
+		ActivityUser user = activityUserService.getRandomByDaTaoKeCid(cid);
+		if (user == null) {
+			throw new GoodsEvaluateException(1, "鏈壘鍒板彂甯冪敤鎴�");
+		}
+
+		
+		// 鐧藉簳鍥�
+		List<String> imgs = new ArrayList<>();
+		if (!StringUtil.isNullOrEmpty(goodsBrief.getPictUrlWhite())) {
+			imgs.add(goodsBrief.getPictUrlWhite());
+		}
+		imgs.addAll(goodsBrief.getImgList());
+
+		// 鍟嗗搧VO
+		ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
+		paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
+		GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
+
+		// 鍟嗗搧鍥剧墖淇℃伅
+		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);
+			}
+			imgList.add(imgInfo);
+			i++;
+		}
+		
+		// 璇勮鍐呭
+		CommentInfo commentInfo = new CommentInfo();
+		commentInfo.setId(UUID.randomUUID().toString().replace("-", ""));
+		commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon);
+		if (!StringUtil.isNullOrEmpty(comment)) {
+			commentInfo.setContent(comment);
+			commentInfo.setType("");
+		} else {
+			String token = shareGoodsService.createTaoBaoToken(Constant.LINK_TOKEN_VERIFY_UID, goodsBrief);
+			String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
+			String commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(token));
+			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.setContent(commentText);
+			commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc());
+		}
+
+		List<CommentInfo> commentsNew = new ArrayList<>();
+		commentsNew.add(commentInfo);
+		
+		// 涓�琛屾樉绀哄灏戜釜鍥剧墖
+		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 goodsEvaluate = new GoodsEvaluate();
+		goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", ""));
+		goodsEvaluate.setUser(user);
+		goodsEvaluate.setTitle(getDescNew(title));
+		goodsEvaluate.setState(1);
+		goodsEvaluate.setDynamicType(1);
+		goodsEvaluate.setType(EvaluateEnum.single);
+		goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000);
+		goodsEvaluate.setShareNumReal(0);
+		goodsEvaluate.setWeight(0.0);
+		goodsEvaluate.setStartTime(new Date());
+		goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date()));
+		goodsEvaluate.setPublishTime(new Date());
+		goodsEvaluate.setCreateTime(new Date());
+		goodsEvaluate.setUpdateTime(new Date());
+		goodsEvaluate.setGoods(goodsVO);
+		goodsEvaluate.setLineNum(lineNum);
+		goodsEvaluate.setImgList(imgList);
+		goodsEvaluate.setComments(commentsNew);
+		goodsEvaluateDao.save(goodsEvaluate);
 	}
 
 	@Override
@@ -2162,12 +2195,12 @@
 					commentsNew.add(commentInfo);
 					commentsNew.add(commentInfo2);
 					goodsEvaluate.setComments(commentsNew);
-
-					goodsEvaluate.setGoods(goodsVO);
 				}
 				imgList.add(imgInfo);
 				i++;
 			}
+			
+			goodsEvaluate.setGoods(goodsVO);
 			goodsEvaluate.setImgList(imgList);
 			goodsEvaluateDao.save(goodsEvaluate);
 		} catch (Exception e) {
@@ -2178,100 +2211,46 @@
 		return true;
 	}
 
-	private String getDesc(String desc) {
-		System.out.println(desc);
-		String newDesc = "";
-		int emoji = 0;
-		String content = desc.replace("锛�", ",");
-		while (content.length() > 0) {
-			int length = 0;
-			boolean end = true;
-			for (int i = 0; i < content.length(); i++) {
-				if (content.substring(0, i).length() >= 18) {
-					length = i;
-					end = false;
-					break;
-				}
-			}
-
-			if (end) {
-				length = content.length();
-			}
-
-			String introduce = content.substring(0, length);
-			System.out.println(introduce);
-			if (verify(introduce)) {
-				if (emoji >= 4) {
-					introduce = introduce.replace(",", "\n"); // 闇�瑕佹崲琛�
+	/**
+	 * 鍙戝湀鏍囬 鍔犲叆琛ㄦ儏
+	 * @param desc
+	 * @return
+	 */
+	private String getDescNew(String desc) {
+		String[] split = desc.split("锛�");
+		int max = 1;
+		if (Math.random() > 0.5) {
+			max = 2;
+		}
+		int e = 0;
+		String emojis = "";
+		String descNew = "";
+		if (split.length > 0) {
+			for (int i = 0; i < split.length; i++) {
+				if (Math.random() > 0.5 && e < max) {
+					for (int j = 0; j < 10; j++) {
+						String emojisTemp = DaTaoKeUtil.getEvaluateEmojis();
+						if (!emojis.equals(emojisTemp)) {
+							emojis = emojisTemp;
+							break;
+						}
+					}
+					e++;
+					descNew += split[i] + emojis;
 				} else {
-					emoji++;
-					introduce = introduce.replace(",", DaTaoKeUtil.getRandomCommonEmoji() + "\n"); // 闇�瑕佹崲琛�
+					descNew += split[i] + "锛�";
 				}
 			}
-
-			// 闅忔満鏇挎崲emoji
-			if (emoji <= 4 && Math.random() > 0.5) {
-				introduce = introduce.replace(",", DaTaoKeUtil.getRandomCommonEmoji());
-				emoji++;
-			}
-			newDesc += introduce;
-			content = content.substring(length);
+		} else {
+			descNew = desc;
 		}
-		return newDesc;
+
+		if (descNew.endsWith("锛�")) {
+			descNew = descNew.substring(0, descNew.length() - 1);
+		}
+		return descNew;
 	}
 
-	private boolean verify(String content) {
-		// 18涓瓧绗﹀唴锛堝寘鍚爣鐐逛篃绠椾竴涓瓧绗︼級鏈夊涓�楀彿锛屽垯涓嶆崲琛�
-		char d = ',';
-		int count = 0;
-		char chs[] = content.toCharArray();// 杞崲鎴恈har鏁扮粍
-		for (int i = 0; i < chs.length; i++) {
-			if (d == chs[i]) {
-				count++;
-			}
-		}
-		if (count > 1) {
-			return false;
-		}
-
-		// 涔﹀悕鍙凤紝澶ф嫭鍙凤紝灏忔嫭鍙烽噷闈㈢殑鍐呭涓嶆崲琛�
-		if (content.contains("[") && content.contains("]")) {
-			return false;
-		} else if (content.contains("銆�") && content.contains("銆�")) {
-			return false;
-		} else if (content.contains("{") && content.contains("}")) {
-			return false;
-		} else if (content.contains("(") && content.contains(")")) {
-			return false;
-		}
-
-		int index = content.lastIndexOf(",");
-		// (闄ゅ紑閫楀彿浠ュ鐨勭鍙凤級鎰熷徆鍙�/鍙ュ彿/闂彿鍓嶉潰鏈夐�楀彿锛屼笉鎹㈣
-		if (content.contains("!") && index < content.lastIndexOf("!")) {
-			return false;
-		}
-
-		if (content.contains("锛�") && index < content.lastIndexOf("锛�")) {
-			return false;
-		}
-
-		if (content.contains("銆�") && index < content.lastIndexOf("銆�")) {
-			return false;
-		}
-
-		if (content.contains("?") && index < content.lastIndexOf("?")) {
-			return false;
-		}
-
-		if (content.contains("锛�") && index < content.lastIndexOf("锛�")) {
-			return false;
-		}
-
-		if (content.contains("锛�")) {
-			return false;
-		}
-		return true;
-	}
 
 	@Override
 	public void updateTaoBaoGoods(TaoBaoGoodsBrief goods) {
@@ -2391,4 +2370,5 @@
 			}
 		}
 	}
+
 }

--
Gitblit v1.8.0