From de4110d3d3944ffcd797fd8c43f0d455cc731f84 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期日, 17 五月 2020 11:43:52 +0800
Subject: [PATCH] 活动详情

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java |  301 ++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 267 insertions(+), 34 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 d3c7228..5be2ddb 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,7 +12,6 @@
 
 import javax.annotation.Resource;
 
-import org.apache.commons.beanutils.PropertyUtils;
 import org.springframework.core.task.TaskExecutor;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -29,8 +28,9 @@
 import com.yeshi.fanli.dto.jd.JDCouponInfo;
 import com.yeshi.fanli.entity.accept.AcceptData;
 import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
+import com.yeshi.fanli.entity.bus.homemodule.CommonShareInfo;
+import com.yeshi.fanli.entity.bus.homemodule.CommonShareInfo.CommonShareInfoEnum;
 import com.yeshi.fanli.entity.bus.homemodule.Special;
-import com.yeshi.fanli.entity.bus.homemodule.SpecialExtra;
 import com.yeshi.fanli.entity.bus.homemodule.SpecialLabel;
 import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture;
 import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
@@ -56,7 +56,7 @@
 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.SpecialExtraService;
+import com.yeshi.fanli.service.inter.homemodule.CommonShareInfoService;
 import com.yeshi.fanli.service.inter.homemodule.SpecialService;
 import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
 import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
@@ -77,6 +77,7 @@
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.vo.dynamic.ArticleVO;
 import com.yeshi.fanli.vo.goods.GoodsDetailVO;
+import com.yeshi.fanli.vo.homemodule.BannerVO;
 import com.yeshi.fanli.vo.homemodule.SpecialVO;
 import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
 
@@ -144,7 +145,7 @@
 	private DailyCountMomentsService dailyCountMomentsService;
 	
 	@Resource
-	private SpecialExtraService specialExtraService;
+	private CommonShareInfoService commonShareInfoService;
 	
 	
 
@@ -369,13 +370,12 @@
 			listKey.add("special_channel_pdd");
 		}
 
-		List<Special> list = specialService.listByPlaceKeyHasLabel((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE,
+		List<SpecialVO> list = specialService.listByPlaceKeyHasLabel((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE,
 				listKey, platformCode, Integer.parseInt(acceptData.getVersion()));
 
 		long time = System.currentTimeMillis();
 
 		// 鍒犻櫎灏氭湭鍚敤鐨勮繃鏈熺殑
-		List<SpecialVO> listVo = new ArrayList<SpecialVO>();
 		for (int i = 0; i < list.size(); i++) {
 			Special special = list.get(i);
 			if (special.getState() == 1L) {
@@ -392,32 +392,18 @@
 				}
 			}
 			
-			SpecialVO specialVO = new SpecialVO();
-			try {
-				PropertyUtils.copyProperties(specialVO, special);
-			} catch (Exception e) {
-				e.printStackTrace();
-				continue;
-			}
+		 
 			
 			// 璁剧疆鏍囩
-			List<SpecialLabel> listLabels = specialVO.getListLabels();
+			List<SpecialLabel> listLabels = special.getListLabels();
 			if (listLabels != null && !listLabels.isEmpty()) {
 				List<ClientTextStyleVO> labels = new ArrayList<>();
 				for (SpecialLabel specialLabel : listLabels) {
 					labels.add(new ClientTextStyleVO(specialLabel.getName(), specialLabel.getBgColor()));
 				}
-				specialVO.setLabels(labels);
+				special.setLabels(labels);
 			}
-			
-			// 璇勮淇℃伅
-			if (VersionUtil.greaterThan_2_1_1(acceptData.getPlatform(), acceptData.getVersion())) {
-				SpecialExtra extra = specialExtraService.selectByPrimaryKey(specialVO.getId());
-				if (extra != null && !StringUtil.isNullOrEmpty(extra.getComment())) {
-					specialVO.setComment(extra.getComment());
-				}
-			}
-			listVo.add(specialVO);
+			 
 		}
 
 		long count = specialService.countByPlaceKeyList(listKey, platformCode,
@@ -427,7 +413,7 @@
 		Gson gson = gsonBuilder.create();
 		JSONObject data = new JSONObject();
 		data.put("count", count);
-		data.put("list", gson.toJson(listVo));
+		data.put("list", gson.toJson(list));
 		out.print(JsonUtil.loadTrueResult(data));
 	}
 
@@ -545,18 +531,18 @@
 
 		JSONObject data = new JSONObject();
 		if (page == 1 && !search) {
-			List<SwiperPicture> banners = swiperPictureService.getByBannerCardAndVersion("article_banners",
+			List<BannerVO> banners = swiperPictureService.getByBannerCardAndVersion("article_banners",
 					acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()));
 			if (banners == null)
 				banners = new ArrayList<>();
 			data.put("banners", gson.toJson(banners));
 
-			List<Special> listSpecial = specialService.listByVersion(0, Integer.MAX_VALUE, "article_specials",
+			List<SpecialVO> listSpecial = specialService.listByVersion(0, Integer.MAX_VALUE, "article_specials",
 					acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()));
 			if (listSpecial == null)
 				listSpecial = new ArrayList<>();
 
-			for (Special special : listSpecial) {
+			for (SpecialVO special : listSpecial) {
 				boolean needLogin = special.isJumpLogin();
 				JumpDetailV2 jumpDetail = special.getJumpDetail();
 				if (jumpDetail != null) {
@@ -628,7 +614,6 @@
 	 */
 	@RequestMapping(value = "getDynamicList", method = RequestMethod.POST)
 	public void getDynamicListNew(AcceptData acceptData, Integer page, Long cid, String subId, PrintWriter out) {
-
 		try {
 			int type = 1;
 			if (cid == TYPE_FAQUAN) {
@@ -973,8 +958,10 @@
 		return null;
 	}
 
+	
+
 	/**
-	 * 璇勮澶嶅埗
+	 * 璇勮澶嶅埗-H5
 	 * 
 	 * @param acceptData
 	 * @param id
@@ -1071,6 +1058,9 @@
 		});
 	}
 	
+	
+	
+	
 	/**
 	 * 璇勮澶嶅埗-涓撻
 	 * 
@@ -1085,8 +1075,8 @@
 			return;
 		}
 
-		SpecialExtra extra = specialExtraService.selectByPrimaryKey(id);
-		if (extra == null ||  StringUtil.isNullOrEmpty(extra.getComment())) {
+		CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(id, CommonShareInfoEnum.special.name());
+		if (shareInfo == null ||  StringUtil.isNullOrEmpty(shareInfo.getComment())) {
 			out.print(JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
 			return;
 		}
@@ -1113,9 +1103,9 @@
 			return;
 		}
 
-		String text = extra.getComment();
+		String text = shareInfo.getComment();
 		String newText = text; 
-		if (extra.getNeedSpin() != null && extra.getNeedSpin()) {
+		if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) {
 			try {
 				newText = convertLinkManager.convertLinkFromText(text, uid, true);
 			} catch (ConvertLinkExceptionException e) {
@@ -1135,5 +1125,248 @@
 		out.print(JsonUtil.loadTrueResult(data));
 	}
 	
+	
 
+	
+	
+	@RequestMapping(value = "getActivityDetail")
+	public void getActivityDetail(String callback, AcceptData acceptData, Long uid, String type, String id, PrintWriter out) {
+		if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
+			return;
+		}
+
+		String title = "";
+		String comment = "";
+		String params = "";
+		JumpDetailV2 jumpDetail = null;
+		List<String> imgs = new ArrayList<>();
+		if ("circle".equalsIgnoreCase(type)) { // 鍙戝湀娲诲姩
+			GoodsEvaluate evaluate = goodsEvaluateService.getById(id);
+			if (evaluate == null) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ユ椿鍔ㄥ凡涓嬫灦"));
+				return;
+			}
+
+			title = evaluate.getTitle();
+			List<CommentInfo> comments = evaluate.getComments();
+			if (comments != null && comments.size() > 0) {
+				comment = comments.get(0).getContent();
+			}
+			
+			String jumpLink = null;
+			if (!StringUtil.isNullOrEmpty(evaluate.getJumpLink())) {
+				jumpLink = evaluate.getJumpLink();
+			}
+
+			List<ImgInfo> imgList = evaluate.getImgList();
+			if (imgList != null && imgList.size() > 0) {
+				for (ImgInfo imgInfo : imgList) {
+					if (imgInfo.getType() == ImgEnum.img && !StringUtil.isNullOrEmpty(imgInfo.getUrl())) {
+						imgs.add(imgInfo.getUrl());
+					}
+					
+					if (imgInfo.getType() == ImgEnum.img || imgInfo.getType() == ImgEnum.video) {
+						if (StringUtil.isNullOrEmpty(jumpLink) && !StringUtil.isNullOrEmpty(imgInfo.getActivityUrl())) {
+							jumpLink  = imgInfo.getActivityUrl();
+						}
+					}
+				}
+			}
+			
+			int platformCode = Constant.getPlatformCode(acceptData.getPlatform());
+			jumpDetail = jumpDetailV2Service.getByTypeCache("web", platformCode, Integer.parseInt(acceptData.getVersion()));
+			JSONObject inner = new JSONObject();
+			inner.put("url", jumpLink);
+			params = inner.toString();
+		} else { 
+			long pid = Long.parseLong(id);
+			if (CommonShareInfoEnum.special.name().equalsIgnoreCase(type)) {
+				Special special = specialService.selectByPrimaryKey(pid);
+				if (special == null) {
+					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ユ椿鍔ㄥ凡涓嬫灦"));
+					return;
+				}
+				
+				params = special.getParams();
+				jumpDetail = special.getJumpDetail();
+				if (!StringUtil.isNullOrEmpty(special.getPicture())) {
+					imgs.add(special.getPicture());
+				}
+			} else if (CommonShareInfoEnum.banner.name().equalsIgnoreCase(type)) {
+				SwiperPicture swiper = swiperPictureService.selectByPrimaryKey(pid);
+				if (swiper == null) {
+					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ユ椿鍔ㄥ凡涓嬫灦"));
+					return;
+				}
+				params = swiper.getParams();
+				jumpDetail = swiper.getJumpDetail();
+				if (!StringUtil.isNullOrEmpty(swiper.getSrc())) {
+					imgs.add(swiper.getSrc());
+				}
+			}
+			CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type);
+			if (shareInfo != null && !StringUtil.isNullOrEmpty(shareInfo.getComment())) {
+				comment = shareInfo.getComment();
+			}
+		}
+
+		JSONObject data = new JSONObject();
+		data.put("title", title);
+		data.put("comment", comment);
+		data.put("params", params);
+		data.put("jumpDetail", jumpDetail);
+		data.put("imgs", imgs);
+		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+	}
+
+	
+	
+	/**
+	 * 璇勮澶嶅埗-涓撻
+	 * 
+	 * @param acceptData
+	 * @param id
+	 * @param out
+	 */
+	@RequestMapping(value = "copyShareComment")
+	public void copyShareComment(String callback, AcceptData acceptData, Long uid, String id,
+			String type, PrintWriter out) {
+		if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
+			return;
+		}
+		
+		if ("circle".equalsIgnoreCase(type)) { // 鍙戝湀娲诲姩
+			copyActivityComment(callback, acceptData, uid, id, out);
+			return;
+		}
+		
+		long pid = Long.parseLong(id);
+		CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type);
+		if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
+			return;
+		}
+
+		UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+		if (user == null) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+			return;
+		}
+
+		if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
+			JsonUtil.printMode(out, callback, 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)) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
+			return;
+		}
+
+		String text = shareInfo.getComment();
+		String newText = text; 
+		if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) {
+			try {
+				newText = convertLinkManager.convertLinkFromText(text, uid, true);
+			} catch (ConvertLinkExceptionException e) {
+				if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
+					JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+					return;
+				}
+			} catch (Exception e) {
+				LogHelper.errorDetailInfo(e);
+				JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+				return;
+			}
+		}
+
+		JSONObject data = new JSONObject();
+		data.put("text", newText);
+		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+	}
+	
+	/**
+	 * 璇勮澶嶅埗
+	 * 
+	 * @param acceptData
+	 * @param id
+	 * @param out
+	 */
+	private void copyActivityComment(String callback, AcceptData acceptData, Long uid, String id, PrintWriter out) {
+		if (StringUtil.isNullOrEmpty(id)) {
+			JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("id涓嶈兘涓虹┖"));
+			return;
+		}
+
+		GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id);
+		if (goodsEvaluate == null) {
+			JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
+			return;
+		}
+
+		UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+		if (user == null) {
+			JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+			return;
+		}
+
+		if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
+			JsonUtil.printMode(out, callback,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)) {
+			JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
+			return;
+		}
+
+		String text = "";
+		CommentInfo comment = null;
+		List<CommentInfo> comments = goodsEvaluate.getComments();
+		if (comments != null && comments.size() > 0) {
+			CommentInfo info = comments.get(0);
+			text = info.getContent();
+			comment = info;
+		}
+
+		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) {
+					JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+					return;
+				}
+			} catch (Exception e) {
+				LogHelper.errorDetailInfo(e);
+				JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+				return;
+			}
+		}
+		JSONObject data = new JSONObject();
+		data.put("text", newText);
+		JsonUtil.printMode(out, callback,JsonUtil.loadTrueResult(data));
+
+		executor.execute(new Runnable() {
+			@Override
+			public void run() { // 娣诲姞姣忔棩缁熻
+				dailyCountMomentsService.addCopyComment();
+			}
+		});
+	}
 }

--
Gitblit v1.8.0