From 24a8d17e007545f7426c48352109aa1a9c6587ee Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 06 五月 2020 12:02:09 +0800
Subject: [PATCH] IOS上线隐藏我的界面的banner与超级会员升级信息

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java |  793 +++++++++++++++++++++++---------------------------------
 1 files changed, 323 insertions(+), 470 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 4404bd1..93c7820 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
@@ -12,10 +12,10 @@
 
 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;
-import org.yeshi.utils.HttpUtil;
 import org.yeshi.utils.JsonUtil;
 import org.yeshi.utils.entity.FileUploadResult;
 
@@ -27,7 +27,6 @@
 import com.google.gson.JsonSerializer;
 import com.yeshi.fanli.dto.jd.JDCouponInfo;
 import com.yeshi.fanli.entity.accept.AcceptData;
-import com.yeshi.fanli.entity.bus.activity.ActivityUser;
 import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
 import com.yeshi.fanli.entity.bus.homemodule.Special;
 import com.yeshi.fanli.entity.bus.homemodule.SpecialLabel;
@@ -36,21 +35,24 @@
 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;
-import com.yeshi.fanli.entity.dynamic.GoodsPicture;
 import com.yeshi.fanli.entity.dynamic.ImgInfo;
 import com.yeshi.fanli.entity.dynamic.ImgInfo.ImgEnum;
-import com.yeshi.fanli.entity.dynamic.SimpleGoods;
 import com.yeshi.fanli.entity.jd.JDGoods;
 import com.yeshi.fanli.entity.system.ConfigKeyEnum;
+import com.yeshi.fanli.entity.taobao.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;
+import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
 import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
 import com.yeshi.fanli.service.inter.homemodule.SpecialService;
 import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
@@ -60,8 +62,8 @@
 import com.yeshi.fanli.service.inter.user.UserInfoService;
 import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
 import com.yeshi.fanli.service.manger.goods.ConvertLinkManager;
-import com.yeshi.fanli.util.AESUtil;
 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;
@@ -69,11 +71,12 @@
 import com.yeshi.fanli.util.jd.JDUtil;
 import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
 import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
+import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.vo.dynamic.ArticleVO;
-import com.yeshi.fanli.vo.goods.CouponInfoVO;
 import com.yeshi.fanli.vo.goods.GoodsDetailVO;
 import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
 
+import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
 
 /**
@@ -126,9 +129,18 @@
 
 	@Resource
 	private QrCodeService qrCodeService;
-	
+
 	@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;// 鐑攢
 	private final static long TYPE_TUIJIAN = 2;// 鎺ㄨ崘
@@ -244,8 +256,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_SUCAI));
 		} else if (VersionUtil.greaterThan_2_0_6(acceptData.getPlatform(), acceptData.getVersion())) {
 			// 2.0.6杩斿洖鐑攢+娲诲姩+鎺ㄨ崘+瀛﹂櫌+閭�璇�
 			list.add(map.get(TYPE_REXIAO));
@@ -360,12 +371,7 @@
 			if (special.getState() == 1L) {
 				list.remove(i--);
 			} else {
-				if (special.getStartTime() != null && special.getEndTime() != null)
-					special.setTimeTask(true);
-				else
-					special.setTimeTask(false);
-
-				if (special.isTimeTask()) {
+				if (special.getStartTime() != null && special.getEndTime() != null) {
 					if (time < special.getStartTime().getTime() || time > special.getEndTime().getTime()) {
 						list.remove(i--);
 					} else// 璁剧疆鍊掕鏃�
@@ -593,99 +599,131 @@
 	 */
 	@RequestMapping(value = "getDynamicList", method = RequestMethod.POST)
 	public void getDynamicListNew(AcceptData acceptData, Integer page, Long cid, String subId, PrintWriter out) {
-		int type = 1;
-		if (cid == TYPE_FAQUAN){
-			type = 1;
-			oldDynamicInfo(acceptData, page, subId, out); // 鑰佺増鍔ㄦ��
-			return;
-		} else if (cid == TYPE_SUCAI) {
-			type = 2;
-		}
 
-		List<GoodsEvaluate> list = goodsEvaluateService.queryMaterialsCache((page - 1) * Constant.PAGE_SIZE,
-				Constant.PAGE_SIZE, type);
-		if (list == null) {
-			list = new ArrayList<>();
-		}
-		GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
-		gsonBuilder.registerTypeAdapter(CommentInfoEnum.class, new JsonSerializer<CommentInfoEnum>() {
-			@Override
-			public JsonElement serialize(CommentInfoEnum value, Type theType, JsonSerializationContext context) {
-				if (value == null) {
-					return new JsonPrimitive(1);
-				} else {
-					return new JsonPrimitive(value.getDesc());
-				}
+		try {
+			int type = 1;
+			if (cid == TYPE_FAQUAN) {
+				type = 1;
+			} else if (cid == TYPE_SUCAI) {
+				type = 2;
 			}
-		}).registerTypeAdapter(ImgEnum.class, new JsonSerializer<ImgEnum>() {
-			@Override
-			public JsonElement serialize(ImgEnum value, Type theType, JsonSerializationContext context) {
-				if (value == null) {
-					return new JsonPrimitive("");
-				} else {
-					return new JsonPrimitive(value.getVlaue());
-				}
+
+			List<GoodsEvaluate> list = goodsEvaluateService.queryMaterialsCache((page - 1) * Constant.PAGE_SIZE,
+					Constant.PAGE_SIZE, type);
+			if (list == null) {
+				list = new ArrayList<>();
 			}
-		}).registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
-			@Override
-			public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
-				String desc = "";
-				if (value != null) {
-					// 鍒ゆ柇鏄惁鏄悓涓�澶�
 
-					Calendar calendar = Calendar.getInstance();
-					calendar.setTime(value);
-					int y1 = calendar.get(Calendar.YEAR);// 鑾峰彇骞翠唤
-					int d1 = calendar.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶�
-
-					Date nowDate = new Date();
-					Calendar calendar2 = Calendar.getInstance();
-					calendar2.setTime(nowDate);
-					int y2 = calendar2.get(Calendar.YEAR);// 鑾峰彇骞翠唤
-					int d2 = calendar2.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶�
-
-					long old = value.getTime();
-					long now = nowDate.getTime();
-					if (y1 == y2) {
-						if (d1 == d2) {
-							long cha = now - old;
-							if (cha < 1000 * 60 * 2L) {
-								desc = "鍒氬垰";
-							} else if (cha < 1000 * 60 * 60L) {
-								desc = (cha / (1000 * 60)) + "鍒嗛挓鍓�";
-							} else {
-								desc = (cha / (1000 * 60 * 60)) + "灏忔椂鍓�";
-							}
-						} else if (d2 - d1 == 1) {
-							desc = "鏄ㄥぉ";
-						} else {
-							desc = (d2 - d1) + "澶╁墠";
-						}
+			GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
+			gsonBuilder.registerTypeAdapter(ImgEnum.class, new JsonSerializer<ImgEnum>() {
+				@Override
+				public JsonElement serialize(ImgEnum value, Type theType, JsonSerializationContext context) {
+					if (value == null) {
+						return new JsonPrimitive("");
 					} else {
-						int timeDistance = 0;
-						for (int i = y1; i < y2; i++) {
-							if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
-								timeDistance += 366; // 闂板勾
+						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>() {
+				@Override
+				public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
+					String desc = "";
+					if (value != null) {
+						// 鍒ゆ柇鏄惁鏄悓涓�澶�
+
+						Calendar calendar = Calendar.getInstance();
+						calendar.setTime(value);
+						int y1 = calendar.get(Calendar.YEAR);// 鑾峰彇骞翠唤
+						int d1 = calendar.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶�
+
+						Date nowDate = new Date();
+						Calendar calendar2 = Calendar.getInstance();
+						calendar2.setTime(nowDate);
+						int y2 = calendar2.get(Calendar.YEAR);// 鑾峰彇骞翠唤
+						int d2 = calendar2.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶�
+
+						long old = value.getTime();
+						long now = nowDate.getTime();
+						if (y1 == y2) {
+							if (d1 == d2) {
+								long cha = now - old;
+								if (cha < 1000 * 60 * 2L) {
+									desc = "鍒氬垰";
+								} else if (cha < 1000 * 60 * 60L) {
+									desc = (cha / (1000 * 60)) + "鍒嗛挓鍓�";
+								} else {
+									desc = (cha / (1000 * 60 * 60)) + "灏忔椂鍓�";
+								}
+							} else if (d2 - d1 == 1) {
+								desc = "鏄ㄥぉ";
 							} else {
-								timeDistance += 365; // 涓嶆槸闂板勾
+								desc = (d2 - d1) + "澶╁墠";
 							}
+						} else {
+							int timeDistance = 0;
+							for (int i = y1; i < y2; i++) {
+								if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
+									timeDistance += 366; // 闂板勾
+								} else {
+									timeDistance += 365; // 涓嶆槸闂板勾
+								}
+							}
+							desc = timeDistance + (d2 - d1) + "澶╁墠";
 						}
-						desc = timeDistance + (d2 - d1) + "澶╁墠";
+
+						return new JsonPrimitive(desc);
 					}
 
-					return new JsonPrimitive(desc);
+					return new JsonPrimitive("");
 				}
+			});
+			Gson gson = gsonBuilder.create();
+			long count = goodsEvaluateService.countValidMaterials(type);
 
-				return new JsonPrimitive("");
+			JSONArray jsonArray = new JSONArray();
+
+			String listStr = gson.toJson(list);
+			JSONArray array = JSONArray.fromObject(listStr);
+			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 >= 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);
 			}
-		});
-		Gson gson = gsonBuilder.create();
-		long count = goodsEvaluateService.countValidMaterials(type);
 
-		JSONObject data = new JSONObject();
-		data.put("count", count);
-		data.put("list", gson.toJson(list));
-		out.print(JsonUtil.loadTrueResult(data));
+			JSONObject data = new JSONObject();
+			data.put("count", count);
+			data.put("list", jsonArray);
+			out.print(JsonUtil.loadTrueResult(data));
+		} catch (Exception e) {
+			e.printStackTrace();
+			out.print(JsonUtil.loadFalseResult(1, "鏌ヨ淇℃伅澶辫触"));
+			LogHelper.errorDetailInfo(e);
+		}
+
 	}
 
 	/**
@@ -702,152 +740,183 @@
 	@RequestMapping(value = "evaluateShare", method = RequestMethod.POST)
 	public void evaluateShare(AcceptData acceptData, Long uid, String id, Integer type, Long goodsId, Integer goodsType,
 			PrintWriter out) {
-		// 鑰佺増鍔ㄦ��
-		if (1 > 0) {
-			oldDynamicShare(acceptData, uid, id, type, goodsId, goodsType, out);
-			return;
-		}
-		
-		if (uid == null) {
-			out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
-			return;
-		}
-
-		if (StringUtil.isNullOrEmpty(id) || type == null) {
-			out.print(JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉鑳戒负绌�"));
-			return;
-		}
-
-		if (type == 1 && (goodsId == null || goodsType == null)) {
-			out.print(JsonUtil.loadFalseResult("鍟嗗搧鍙傛暟涓嶈兘涓虹┖"));
-			return;
-		}
-
-		GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id);
-		if (goodsEvaluate == null) {
-			out.print(JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
-			return;
-		}
-
-		UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
-		if (user == null) {
-			out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
-			return;
-		}
-
-		if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
-			out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
-			return;
-		}
-
-		UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
-		String relationId = null;
-		if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null
-				&& taoBaoInfo.getRelationValid() == true)
-			relationId = taoBaoInfo.getRelationId();
-
-		if (StringUtil.isNullOrEmpty(relationId)) {
-			out.print(JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
-			return;
-		}
-
-		String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
-		if (StringUtil.isNullOrEmpty(inviteCode)) {
-			out.print(JsonUtil.loadFalseResult(1, "閭�璇风爜鏈縺娲�"));
-			return;
-		}
-
-		List<ImgInfo> imgs = goodsEvaluate.getImgList();
-		if (imgs == null) {
-			out.print(JsonUtil.loadFalseResult("璇ュ浘鐗囧唴瀹瑰凡涓嶅瓨鍦�"));
-			return;
-		}
-
-		List<String> list = new ArrayList<>();
-		// 鍗曞搧
-		if (goodsEvaluate.getType() == EvaluateEnum.single) {
-			for (ImgInfo imgInfo : imgs) {
-				GoodsDetailVO goodsVO = imgInfo.getGoodsVO();
-				if (goodsVO == null) {
-					list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl() : imgInfo.getUrlHD());
-					continue;
-				}
-
-				String jumpLink = getJumpLink(goodsVO, user, inviteCode);
-				if (!StringUtil.isNullOrEmpty(jumpLink)) {
-					list.add(jumpLink);
-				}
+		try {
+			if (uid == null) {
+				out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+				return;
 			}
 
-		} else if (goodsEvaluate.getType() == EvaluateEnum.multiple) {
-			if (type == 1) {
+			if (StringUtil.isNullOrEmpty(id) || type == null) {
+				out.print(JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉鑳戒负绌�"));
+				return;
+			}
+
+			if (type == 1 && (goodsId == null || goodsType == null)) {
+				out.print(JsonUtil.loadFalseResult("鍟嗗搧鍙傛暟涓嶈兘涓虹┖"));
+				return;
+			}
+
+			GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id);
+			if (goodsEvaluate == null) {
+				out.print(JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
+				return;
+			}
+
+			UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+			if (user == null) {
+				out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+				return;
+			}
+
+			if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
+				out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
+				return;
+			}
+
+			UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
+			String relationId = null;
+			if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null
+					&& taoBaoInfo.getRelationValid() == true)
+				relationId = taoBaoInfo.getRelationId();
+
+			if (StringUtil.isNullOrEmpty(relationId)) {
+				out.print(JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
+				return;
+			}
+
+			String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
+			if (StringUtil.isNullOrEmpty(inviteCode)) {
+				out.print(JsonUtil.loadFalseResult(1, "閭�璇风爜鏈縺娲�"));
+				return;
+			}
+
+			List<ImgInfo> imgs = goodsEvaluate.getImgList();
+			if (imgs == null) {
+				out.print(JsonUtil.loadFalseResult("璇ュ浘鐗囧唴瀹瑰凡涓嶅瓨鍦�"));
+				return;
+			}
+
+			List<String> list = new ArrayList<>();
+			Integer dynamicType = goodsEvaluate.getDynamicType();
+			if (dynamicType == null || dynamicType.intValue() == 2) {
 				for (ImgInfo imgInfo : imgs) {
-					if (imgInfo.getGoodsVO() != null)
-						if (imgInfo.getGoodsVO().getGoodsId().longValue() == goodsId.longValue()
-								&& imgInfo.getGoodsVO().getGoodsType() == goodsType.intValue()) {
-							String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, inviteCode);
-							if (!StringUtil.isNullOrEmpty(jumpLink)) {
-								list.add(jumpLink);
-							}
-							break;
+					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());
+					else if (imgInfo.getType() == ImgEnum.activity)
+						if (!StringUtil.isNullOrEmpty(imgInfo.getActivityPic())) {
+							list.add(imgInfo.getActivityPic());
 						}
 				}
-			} else if (type == 2 || type == 3) {
-				for (ImgInfo imgInfo : imgs) {
-					if (imgInfo.getGoodsVO() != null) {
-						String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, inviteCode);
+			} else {
+				// 鍗曞搧
+				if (goodsEvaluate.getType() == EvaluateEnum.single) {
+					for (ImgInfo imgInfo : imgs) {
+						if (imgInfo.getType() == ImgEnum.video)
+							continue;
+
+						GoodsDetailVO goodsVO = imgInfo.getGoodsVO();
+						if (goodsVO == null) {
+							list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl()
+									: imgInfo.getUrlHD());
+							continue;
+						}
+
+						String jumpLink = getJumpLink(goodsVO, user, relationId, inviteCode, imgInfo.getUrl());
 						if (!StringUtil.isNullOrEmpty(jumpLink)) {
 							list.add(jumpLink);
 						}
 					}
+
+				} else if (goodsEvaluate.getType() == EvaluateEnum.multiple) {
+					if (type == 1) {
+						for (ImgInfo imgInfo : imgs) {
+							if (imgInfo.getGoodsVO() != null)
+								if (imgInfo.getGoodsVO().getGoodsId().longValue() == goodsId.longValue()
+										&& imgInfo.getGoodsVO().getGoodsType() == goodsType.intValue()) {
+									String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, relationId, inviteCode,
+											imgInfo.getUrl());
+									if (!StringUtil.isNullOrEmpty(jumpLink)) {
+										list.add(jumpLink);
+									}
+									break;
+								}
+						}
+					} else if (type == 2 || type == 3) {
+						for (ImgInfo imgInfo : imgs) {
+							if (imgInfo.getGoodsVO() != null) {
+								String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, relationId, inviteCode,
+										imgInfo.getUrl());
+								if (!StringUtil.isNullOrEmpty(jumpLink)) {
+									list.add(jumpLink);
+								}
+							}
+						}
+					}
+
+				} else if (goodsEvaluate.getType() == EvaluateEnum.activity) {
+					for (ImgInfo imgInfo : imgs) {
+						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());
+						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());
+							}
+					}
 				}
 			}
 
-		} else if (goodsEvaluate.getType() == EvaluateEnum.activity) {
-			for (ImgInfo imgInfo : imgs) {
-				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());
-				else if (imgInfo.getType() == ImgEnum.activity)
-					if (!StringUtil.isNullOrEmpty(imgInfo.getActivityPic())) {
-						list.add(imgInfo.getActivityPic());
-					}
+			Integer shareCount = goodsEvaluate.getShareNum();
+			if (shareCount == null) {
+				shareCount = 0;
 			}
-		}
 
-		Integer shareCount = goodsEvaluate.getShareNum();
-		if (shareCount == null) {
-			shareCount = 0;
-		}
+			if (type == 3) {
+				shareCount++;
+				goodsEvaluateService.addShareNum(id);
 
-		if (type == 3) {
-			shareCount++;
-			goodsEvaluateService.addShareNum(id);
-		}
+				executor.execute(new Runnable() {
+					@Override
+					public void run() { // 娣诲姞姣忔棩缁熻
+						dailyCountMomentsService.addShareClick();
+					}
+				});
+			}
 
-		if (list.size() == 0) {
-			out.print(JsonUtil.loadFalseResult("璇ヤ俊鎭凡涓嬫灦"));
+			if (list.size() == 0) {
+				out.print(JsonUtil.loadFalseResult("璇ヤ俊鎭凡涓嬫灦"));
+				return;
+			}
+
+			JSONObject data = new JSONObject();
+			data.put("count", shareCount);
+			data.put("list", list);
+			out.print(JsonUtil.loadTrueResult(data));
+		} catch (Exception e) {
+			out.print(JsonUtil.loadFalseResult("鍒嗕韩鍥剧敓鎴愬け璐�"));
 			return;
 		}
-
-		JSONObject data = new JSONObject();
-		data.put("count", shareCount);
-		data.put("list", list);
-		out.print(JsonUtil.loadTrueResult(data));
 	}
 
-	private String getJumpLink(GoodsDetailVO goodsVO, UserInfo user, 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) {
-			String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(),
-					Constant.systemCommonConfig.getShareGoodsPagePath(),
-					AESUtil.encrypt(user.getId() + "", Constant.UIDAESKEY), goodsVO.getGoodsId() + "");
-			String shortLink = HttpUtil.getShortLink(url);
-			if (!StringUtil.isNullOrEmpty(shortLink)) {
-				url = shortLink;
+			TaoBaoLink taoBaoLink = null;
+			try {
+				taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(user.getId(), goodsVO.getGoodsId(), relationId);
+			} catch (ShareGoodsException e) {
+				e.printStackTrace();
 			}
-			jumpLink = url;
+			jumpLink = ShareControllerV2.getERCodeContentNew(
+					configService.get(ConfigKeyEnum.taobaoShareQrcodeText.getKey()), taoBaoLink.getGoods(),
+					TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
 		} else if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_JD) {
 			JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsVO.getGoodsId());
 			if (jdGoods == null) {
@@ -868,7 +937,7 @@
 		}
 
 		FileUploadResult uploadResult = qrCodeService.drawDynamicGoodsPoster(jumpLink, user.getPortrait(), inviteCode,
-				goodsVO);
+				mainPic, goodsVO);
 		if (uploadResult != null) {
 			return uploadResult.getUrl();
 		}
@@ -920,273 +989,57 @@
 		}
 
 		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.getNeedSpin() == null || comment.getNeedSpin())) {
+			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));
-	}
-	
-	
-	public void oldDynamicInfo(AcceptData acceptData, Integer page, String subId, PrintWriter out) {
-		long cid = 1;
-		Long sid = null;
-		if (!StringUtil.isNullOrEmpty(subId)){
-			sid = Long.parseLong(subId);
-		}
-		List<DynamicInfo> listd = dynamicInfoService.queryV2(2, 74, (page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE,
-				cid, sid);
-		if (listd == null) {
-			listd = new ArrayList<DynamicInfo>();
-		}
 
-		List<GoodsEvaluate> list = new ArrayList<>();
-		for (DynamicInfo info : listd) {
-			GoodsEvaluate goodsEvaluate = new GoodsEvaluate();
-			goodsEvaluate.setId(info.getId());
-			ActivityUser user = info.getUser();
-			goodsEvaluate.setUser(user);
-			List<ClientTextStyleVO> titles = info.getTitle();
-			if (titles != null) {
-				goodsEvaluate.setTitle(info.getTitle().get(0).getContent());
-			} else {
-				goodsEvaluate.setTitle("");
-			}
-			goodsEvaluate.setShareNum(info.getShareCount());
-			goodsEvaluate.setPublishTime(info.getCreateTime());
-			goodsEvaluate.setLineNum(2);
-			List<GoodsPicture> imgs = info.getImgs();
-
-			int i = 0; 
-			GoodsDetailVO goods= null;
-			List<ImgInfo> imgList = new ArrayList<>();
-			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());
-					
-					CouponInfoVO couponInfo = goodsVO.getCouponInfo();
-					if (couponInfo == null) {
-						simpleGoods.setState(0);
-						simpleGoods.setPrice(goodsVO.getZkPrice());
-					} else {
-						simpleGoods.setState(goodsVO.getState());
-						simpleGoods.setPrice(goodsVO.getCouponPrice());
-						simpleGoods.setAmount(couponInfo.getAmount());
-					}
-					imgInfo.setGoods(simpleGoods);
-					goods = goodsVO;
-					i++;
-				}
-				imgList.add(imgInfo);
-			}
-			
-			goodsEvaluate.setImgList(imgList);
-			if (i == 1) {
-				goodsEvaluate.setGoods(goods);
-			}
-			list.add(goodsEvaluate);
-		}
-
-		GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
-		gsonBuilder.registerTypeAdapter(CommentInfoEnum.class, new JsonSerializer<CommentInfoEnum>() {
+		executor.execute(new Runnable() {
 			@Override
-			public JsonElement serialize(CommentInfoEnum value, Type theType, JsonSerializationContext context) {
-				if (value == null) {
-					return new JsonPrimitive(1);
-				} else {
-					return new JsonPrimitive(value.getDesc());
-				}
-			}
-		}).registerTypeAdapter(ImgEnum.class, new JsonSerializer<ImgEnum>() {
-			@Override
-			public JsonElement serialize(ImgEnum value, Type theType, JsonSerializationContext context) {
-				if (value == null) {
-					return new JsonPrimitive("");
-				} else {
-					return new JsonPrimitive(value.getVlaue());
-				}
-			}
-		}).registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
-			@Override
-			public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
-				String desc = "";
-				if (value != null) {
-					// 鍒ゆ柇鏄惁鏄悓涓�澶�
-
-					Calendar calendar = Calendar.getInstance();
-					calendar.setTime(value);
-					int y1 = calendar.get(Calendar.YEAR);// 鑾峰彇骞翠唤
-					int d1 = calendar.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶�
-
-					Date nowDate = new Date();
-					Calendar calendar2 = Calendar.getInstance();
-					calendar2.setTime(nowDate);
-					int y2 = calendar2.get(Calendar.YEAR);// 鑾峰彇骞翠唤
-					int d2 = calendar2.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶�
-
-					long old = value.getTime();
-					long now = nowDate.getTime();
-					if (y1 == y2) {
-						if (d1 == d2) {
-							long cha = now - old;
-							if (cha < 1000 * 60 * 2L) {
-								desc = "鍒氬垰";
-							} else if (cha < 1000 * 60 * 60L) {
-								desc = (cha / (1000 * 60)) + "鍒嗛挓鍓�";
-							} else {
-								desc = (cha / (1000 * 60 * 60)) + "灏忔椂鍓�";
-							}
-						} else if (d2 - d1 == 1) {
-							desc = "鏄ㄥぉ";
-						} else {
-							desc = (d2 - d1) + "澶╁墠";
-						}
-					} else {
-						int timeDistance = 0;
-						for (int i = y1; i < y2; i++) {
-							if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
-								timeDistance += 366; // 闂板勾
-							} else {
-								timeDistance += 365; // 涓嶆槸闂板勾
-							}
-						}
-						desc = timeDistance + (d2 - d1) + "澶╁墠";
-					}
-
-					return new JsonPrimitive(desc);
-				}
-
-				return new JsonPrimitive("");
+			public void run() { // 娣诲姞姣忔棩缁熻
+				dailyCountMomentsService.addCopyComment();
 			}
 		});
-		Gson gson = gsonBuilder.create();
-		
-		JSONObject data = new JSONObject();
-		data.put("list", gson.toJson(list));
-		data.put("count",  dynamicInfoService.count(cid, sid));
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-	
-	public void oldDynamicShare(AcceptData acceptData, Long uid, String id, Integer type, Long goodsId, Integer goodsType,
-			PrintWriter out) {
-		if (uid == null) {
-			out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
-			return;
-		}
-
-		if (StringUtil.isNullOrEmpty(id) || type == null) {
-			out.print(JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉鑳戒负绌�"));
-			return;
-		}
-
-		if (type == 1 && (goodsId == null || goodsType == null)) {
-			out.print(JsonUtil.loadFalseResult("鍟嗗搧鍙傛暟涓嶈兘涓虹┖"));
-			return;
-		}
-
-		DynamicInfo dynamicInfo = dynamicInfoService.getById(id);
-		if (dynamicInfo == null) {
-			out.print(JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
-			return;
-		}
-		
-		UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
-		if (user == null) {
-			out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
-			return;
-		}
-
-		if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
-			out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
-			return;
-		}
-
-		UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
-		String relationId = null;
-		if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null
-				&& taoBaoInfo.getRelationValid() == true)
-			relationId = taoBaoInfo.getRelationId();
-
-		if (StringUtil.isNullOrEmpty(relationId)) {
-			out.print(JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
-			return;
-		}
-
-		String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
-		if (StringUtil.isNullOrEmpty(inviteCode)) {
-			out.print(JsonUtil.loadFalseResult(1, "閭�璇风爜鏈縺娲�"));
-			return;
-		}
-
-		List<GoodsPicture> imgs = dynamicInfo.getImgs();
-		if (imgs == null) {
-			out.print(JsonUtil.loadFalseResult("璇ュ浘鐗囧唴瀹瑰凡涓嶅瓨鍦�"));
-			return;
-		}
-
-		List<String> list = new ArrayList<>();
-		// 鐑攢涓哄崟鍝�
-		for (GoodsPicture imgInfo : imgs) {
-			GoodsDetailVO goodsVO = imgInfo.getGoodsVO();
-			if (goodsVO == null) {
-				list.add(imgInfo.getUrl());
-				continue;
-			}
-
-			String jumpLink = getJumpLink(goodsVO, user, inviteCode);
-			if (!StringUtil.isNullOrEmpty(jumpLink)) {
-				list.add(jumpLink);
-			}
-		}
-
-		Integer shareCount = dynamicInfo.getShareCount();
-		if (shareCount == null) {
-			shareCount = 0;
-		}
-
-		if (type == 3) {
-			shareCount++;
-			dynamicInfoService.updateShareCount(dynamicInfo);
-		}
-		
-		if (list.size() == 0) {
-			out.print(JsonUtil.loadFalseResult("璇ヤ俊鎭凡涓嬫灦"));
-			return;
-		}
-
-		JSONObject data = new JSONObject();
-		data.put("count", shareCount);
-		data.put("list", list);
-		out.print(JsonUtil.loadTrueResult(data));
 	}
 
 }
-

--
Gitblit v1.8.0