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