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

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java |  141 ++++++++++++++++++++++++++++++++++------------
 1 files changed, 104 insertions(+), 37 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
index 8c1f598..2763715 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
@@ -2,6 +2,7 @@
 
 import java.io.PrintWriter;
 import java.lang.reflect.Type;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
@@ -11,6 +12,7 @@
 
 import javax.annotation.Resource;
 
+import org.springframework.core.task.TaskExecutor;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -33,6 +35,7 @@
 import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.entity.common.JumpDetailV2;
 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;
@@ -40,12 +43,13 @@
 import com.yeshi.fanli.entity.dynamic.ImgInfo.ImgEnum;
 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.goods.ConvertLinkExceptionException;
 import com.yeshi.fanli.exception.share.ShareGoodsException;
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
 import com.yeshi.fanli.service.inter.config.ConfigService;
+import com.yeshi.fanli.service.inter.count.DailyCountMomentsService;
 import com.yeshi.fanli.service.inter.dynamic.ArticleOfficialService;
 import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService;
 import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService;
@@ -60,6 +64,7 @@
 import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
 import com.yeshi.fanli.service.manger.goods.ConvertLinkManager;
 import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.VersionUtil;
 import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
@@ -128,10 +133,15 @@
 
 	@Resource
 	private ConvertLinkManager convertLinkManager;
-	
+
 	@Resource
 	private ShareGoodsService shareGoodsService;
-
+	
+	@Resource
+	private DailyCountMomentsService dailyCountMomentsService;
+	
+	@Resource(name = "taskExecutor")
+	private TaskExecutor executor;
 	
 
 	private final static long TYPE_REXIAO = 1;// 鐑攢
@@ -247,9 +257,8 @@
 			// 2.0.7杩斿洖鍙戝湀+娲诲姩+瀛﹂櫌+绱犳潗
 			list.add(map.get(TYPE_FAQUAN));
 			list.add(map.get(TYPE_HUODONG));
-//			list.add(map.get(TYPE_XUEYUAN));
-			list.add(map.get(TYPE_SUCAI));
-
+			// list.add(map.get(TYPE_XUEYUAN));
+			// list.add(map.get(TYPE_SUCAI));
 		} else if (VersionUtil.greaterThan_2_0_6(acceptData.getPlatform(), acceptData.getVersion())) {
 			// 2.0.6杩斿洖鐑攢+娲诲姩+鎺ㄨ崘+瀛﹂櫌+閭�璇�
 			list.add(map.get(TYPE_REXIAO));
@@ -600,7 +609,7 @@
 
 		try {
 			int type = 1;
-			if (cid == TYPE_FAQUAN){
+			if (cid == TYPE_FAQUAN) {
 				type = 1;
 			} else if (cid == TYPE_SUCAI) {
 				type = 2;
@@ -611,7 +620,7 @@
 			if (list == null) {
 				list = new ArrayList<>();
 			}
-			
+
 			GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
 			gsonBuilder.registerTypeAdapter(ImgEnum.class, new JsonSerializer<ImgEnum>() {
 				@Override
@@ -620,6 +629,16 @@
 						return new JsonPrimitive("");
 					} else {
 						return new JsonPrimitive(value.getVlaue());
+					}
+				}
+			}).registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() {
+				@Override
+				public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) {
+					if (value == null) {
+						return new JsonPrimitive("");
+					} else {
+						// 淇濈暀2浣嶅皬鏁�
+						return new JsonPrimitive(MoneyBigDecimalUtil.getWithNoZera(value)+"");
 					}
 				}
 			}).registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
@@ -677,27 +696,31 @@
 			});
 			Gson gson = gsonBuilder.create();
 			long count = goodsEvaluateService.countValidMaterials(type);
-			
+
 			JSONArray jsonArray = new JSONArray();
-			
+
 			String listStr = gson.toJson(list);
 			JSONArray array = JSONArray.fromObject(listStr);
-			for (int i = 0; i< array.size() ; i++) {
+			for (int i = 0; i < array.size(); i++) {
 				Object object = array.get(i);
 				JSONObject json = JSONObject.fromObject(object);
 				Object shareNum = json.get("shareNum");
 				if (shareNum != null) {
 					int num = Integer.parseInt(shareNum.toString());
-					if (num >= 10000) {
+
+					if (num >= 100000000) {
+						double sales = num;
+						String salesCountMidea = String.format("%.1f", sales / 100000000);
+						json.put("shareNum", salesCountMidea + "浜�");
+					} else if (num >= 10000) {
 						double sales = num;
 						String salesCountMidea = String.format("%.1f", sales / 10000);
 						json.put("shareNum", salesCountMidea + "涓�");
-					} 
+					}
 				}
 				jsonArray.add(json);
 			}
-			
-			
+
 			JSONObject data = new JSONObject();
 			data.put("count", count);
 			data.put("list", jsonArray);
@@ -707,7 +730,7 @@
 			out.print(JsonUtil.loadFalseResult(1, "鏌ヨ淇℃伅澶辫触"));
 			LogHelper.errorDetailInfo(e);
 		}
-		
+
 	}
 
 	/**
@@ -797,16 +820,17 @@
 				// 鍗曞搧
 				if (goodsEvaluate.getType() == EvaluateEnum.single) {
 					for (ImgInfo imgInfo : imgs) {
-						if ( type == 3 && imgInfo.getType() == ImgEnum.video)
+						if (imgInfo.getType() == ImgEnum.video)
 							continue;
-						
+
 						GoodsDetailVO goodsVO = imgInfo.getGoodsVO();
 						if (goodsVO == null) {
-							list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl() : imgInfo.getUrlHD());
+							list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl()
+									: imgInfo.getUrlHD());
 							continue;
 						}
 
-						String jumpLink = getJumpLink(goodsVO, user, relationId, inviteCode);
+						String jumpLink = getJumpLink(goodsVO, user, relationId, inviteCode, imgInfo.getUrl());
 						if (!StringUtil.isNullOrEmpty(jumpLink)) {
 							list.add(jumpLink);
 						}
@@ -818,7 +842,7 @@
 							if (imgInfo.getGoodsVO() != null)
 								if (imgInfo.getGoodsVO().getGoodsId().longValue() == goodsId.longValue()
 										&& imgInfo.getGoodsVO().getGoodsType() == goodsType.intValue()) {
-									String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, relationId, inviteCode);
+									String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, relationId, inviteCode, imgInfo.getUrl());
 									if (!StringUtil.isNullOrEmpty(jumpLink)) {
 										list.add(jumpLink);
 									}
@@ -828,7 +852,7 @@
 					} else if (type == 2 || type == 3) {
 						for (ImgInfo imgInfo : imgs) {
 							if (imgInfo.getGoodsVO() != null) {
-								String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, relationId, inviteCode);
+								String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, relationId, inviteCode, imgInfo.getUrl() );
 								if (!StringUtil.isNullOrEmpty(jumpLink)) {
 									list.add(jumpLink);
 								}
@@ -841,10 +865,13 @@
 						if (imgInfo.getType() == ImgEnum.goods || imgInfo.getType() == ImgEnum.video)
 							continue;
 						if (imgInfo.getType() == ImgEnum.img)
-							list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl() : imgInfo.getUrlHD());
+							list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl()
+									: imgInfo.getUrlHD());
 						else if (imgInfo.getType() == ImgEnum.activity)
 							if (!StringUtil.isNullOrEmpty(imgInfo.getActivityPic())) {
 								list.add(imgInfo.getActivityPic());
+							}else if(!StringUtil.isNullOrEmpty(imgInfo.getUrl())){
+								list.add(imgInfo.getUrl());
 							}
 					}
 				}
@@ -858,6 +885,13 @@
 			if (type == 3) {
 				shareCount++;
 				goodsEvaluateService.addShareNum(id);
+				
+				executor.execute(new Runnable() {
+					@Override
+					public void run() { // 娣诲姞姣忔棩缁熻
+						dailyCountMomentsService.addShareClick();
+					}
+				});
 			}
 
 			if (list.size() == 0) {
@@ -875,8 +909,7 @@
 		}
 	}
 
-	
-	private String getJumpLink(GoodsDetailVO goodsVO, UserInfo user, String relationId, String inviteCode) {
+	private String getJumpLink(GoodsDetailVO goodsVO, UserInfo user, String relationId, String inviteCode, String mainPic) {
 		String jumpLink = null;
 		if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
 			TaoBaoLink taoBaoLink = null;
@@ -885,8 +918,9 @@
 			} catch (ShareGoodsException e) {
 				e.printStackTrace();
 			}
-			jumpLink = ShareControllerV2.getERCodeContentNew(configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey()),
-					taoBaoLink.getGoods(), TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
+			jumpLink = ShareControllerV2.getERCodeContentNew(
+					configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey()), taoBaoLink.getGoods(),
+					TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
 		} else if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_JD) {
 			JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsVO.getGoodsId());
 			if (jdGoods == null) {
@@ -907,14 +941,13 @@
 		}
 
 		FileUploadResult uploadResult = qrCodeService.drawDynamicGoodsPoster(jumpLink, user.getPortrait(), inviteCode,
-				goodsVO);
+				mainPic, goodsVO);
 		if (uploadResult != null) {
 			return uploadResult.getUrl();
 		}
 		return null;
 	}
 
-	
 	/**
 	 * 璇勮澶嶅埗
 	 * 
@@ -960,26 +993,60 @@
 		}
 
 		String text = "";
+		CommentInfo comment = null;
 		List<CommentInfo> comments = goodsEvaluate.getComments();
 		if (comments != null) {
 			for (CommentInfo commentInfo : comments) {
 				if (cid.equals(commentInfo.getId())) {
 					text = commentInfo.getContent();
+					comment = commentInfo;
+					break;
 				}
 			}
 		}
 
-		try {
-			text = convertLinkManager.convertLinkFromText(text, uid, true);
-		} catch (Exception e) {
-			e.printStackTrace();
-			out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
-			return;
+		String newText = text; // 闈為�氱敤鍒搁渶瑕侀獙璇�
+		if ((comment != null && comment.getTypeEnum() != CommentInfoEnum.currencyCoupon)
+				|| goodsEvaluate.getType() == EvaluateEnum.activity) {
+			try {
+				newText = convertLinkManager.convertLinkFromText(text, uid, true);
+			} catch (ConvertLinkExceptionException e) {
+				if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
+					out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+					return;
+				}
+			} catch (Exception e) {
+				LogHelper.errorDetailInfo(e);
+				out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+				return;
+			}
 		}
-
+	
+		
+		// 鏇挎崲浠锋牸
+		if (goodsEvaluate.getType() == EvaluateEnum.single) {
+			GoodsDetailVO goods = goodsEvaluate.getGoods();
+			newText = newText.replace("[鍘熶环]", MoneyBigDecimalUtil.getWithNoZera(goods.getZkPrice()) +"");
+			if (!goods.isHasCoupon()) {
+				newText = newText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
+				newText = newText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
+			} else {
+				newText = newText.replace("[鍒稿悗浠穄", MoneyBigDecimalUtil.getWithNoZera(goods.getCouponPrice())+"");
+			}
+			newText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
+		}
+		
+		
 		JSONObject data = new JSONObject();
-		data.put("text", text);
+		data.put("text", newText);
 		out.print(JsonUtil.loadTrueResult(data));
+		
+		executor.execute(new Runnable() {
+			@Override
+			public void run() { // 娣诲姞姣忔棩缁熻
+				dailyCountMomentsService.addCopyComment();
+			}
+		});
 	}
 
 }

--
Gitblit v1.8.0