From 2e9aa4267b4e6df56ab3166d72ab9edf87322ef7 Mon Sep 17 00:00:00 2001 From: yj <Administrator@192> Date: 星期四, 05 三月 2020 22:22:01 +0800 Subject: [PATCH] 发圈 --- fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java | 158 +++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 123 insertions(+), 35 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 48eba2c..0a2512b 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 @@ -43,6 +43,7 @@ import com.yeshi.fanli.entity.taobao.TaoBaoLink; import com.yeshi.fanli.exception.dynamic.ActivityUserException; import com.yeshi.fanli.exception.dynamic.GoodsEvaluateException; +import com.yeshi.fanli.exception.goods.ConvertLinkExceptionException; import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.activity.ActivityUserService; @@ -482,6 +483,42 @@ } } + + private String createTokenAndLink(GoodsDetailVO goodsDetailVO) throws Exception { + String commentText = ""; + if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) { + TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsDetailVO.getGoodsId(), "0"); + String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey()); + commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); + } else if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_JD) { + String couponUrl = null; + + JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsDetailVO.getGoodsId()); + JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods); + if (couponInfo != null) { + couponUrl = couponInfo.getLink(); + } + String materialId = "https://item.jd.com/" + goodsDetailVO.getGoodsId() + ".html"; + String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "","1"); + String template = configService.get(ConfigKeyEnum.quickShareJDCommentText.getKey()); + commentText = template.replace("[閾炬帴]", jumpLink); + } else if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_PDD) { + String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsDetailVO.getGoodsId(), PinDuoDuoApiUtil.PID_SHARE + "", "1"); + String template = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey()); + commentText = template.replace("[閾炬帴]", jumpLink); + } + + commentText = commentText.replace("[鍘熶环]", goodsDetailVO.getZkPrice().toString()); + if (!goodsDetailVO.isHasCoupon()) { + commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘"); + commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", ""); + } else { + commentText = commentText.replace("[鍒稿悗浠穄", goodsDetailVO.getCouponPrice().toString()); + } + + return commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n"); + } + public GoodsDetailVO getGoodsDetailVO(Long goodsId, Integer goodsType) throws GoodsEvaluateException { GoodsDetailVO goodsDetail = null; BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); @@ -706,6 +743,68 @@ } } + + @Override + public void saveGoodsComment(String id, int kind, List<CommentInfo> comments) throws GoodsEvaluateException, Exception { + if (comments == null || comments.size() == 0 ) { + throw new GoodsEvaluateException(1, "鍐呭涓嶈兘涓虹┖"); + } + + GoodsEvaluate resultObj = goodsEvaluateDao.getById(id); + if (resultObj == null) + throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け"); + + GoodsDetailVO goods = resultObj.getGoods(); + if(kind == 1 && goods == null) { + throw new GoodsEvaluateException(1, "璇峰厛褰曞叆鍟嗗搧淇℃伅"); + } + + CommentInfo currencyCoupon = null; + List<CommentInfo> oldComments = resultObj.getComments(); + if (oldComments != null) { + for (int i =0;i < oldComments.size(); i ++) { + CommentInfo info = oldComments.get(i); + if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) { + currencyCoupon = info; + continue; + } + } + } + + List<CommentInfo> newList = new ArrayList<>(); + for (int i =0;i < comments.size(); i ++) { + CommentInfo commentInfo = comments.get(i); + String content = commentInfo.getContent(); + if (StringUtil.isNullOrEmpty(content)) { + if (i == 0 && kind == 1) { + content = createTokenAndLink(goods); + } else { + continue; + } + } else if (i == 0 && kind == 1) { + try { + convertLinkManager.convertLinkFromText(content, Constant.LINK_TOKEN_VERIFY_UID, true); + } catch (Exception e) { + throw new GoodsEvaluateException(1, "涓嶅寘鍚彲杞摼鐨勫彛浠や笌閾炬帴"); + } + } + + if (StringUtil.isNullOrEmpty(commentInfo.getId())) { + commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); + } + + commentInfo.setType(commentInfo.getTags()); + commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon); + newList.add(commentInfo); + } + if (currencyCoupon != null) { + comments.add(currencyCoupon); + } + + resultObj.setComments(comments); + goodsEvaluateDao.save(resultObj); + } + @Override public void saveGoodsCoupon(String pid, String content) throws GoodsEvaluateException, Exception { if (StringUtil.isNullOrEmpty(pid)) { @@ -747,7 +846,7 @@ commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); } commentInfo.setContent(content); - commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc()); + commentInfo.setType(commentInfo.getTags()); commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon); comments.add(commentInfo); } @@ -761,7 +860,7 @@ } @Override - public void saveSingleGoodsCoupon(String pid, CommentInfo commentInfo) throws GoodsEvaluateException, Exception { + public void saveCurrencyCoupon(String pid, int kind, CommentInfo commentInfo) throws GoodsEvaluateException, Exception { if (StringUtil.isNullOrEmpty(pid)) { throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅"); } @@ -773,7 +872,6 @@ if (StringUtil.isNullOrEmpty(commentInfo.getTagDesc())) { throw new GoodsEvaluateException(1, "鎻忚堪璇笉鑳戒负绌�"); } - String tagUrl = commentInfo.getTagUrl(); String content = commentInfo.getContent(); @@ -793,11 +891,15 @@ throw new GoodsEvaluateException(1, "璇峰~鍐欏埜鎴鏃堕棿"); } - if(!StringUtil.isNullOrEmpty(content)) { + if(!StringUtil.isNullOrEmpty(content) && kind != 3) { // 娲诲姩涓嶉獙璇� try { - convertLinkManager.convertLinkFromText(content, 1L, true); + convertLinkManager.convertLinkFromText(content, Constant.LINK_TOKEN_VERIFY_UID, true); + } catch (ConvertLinkExceptionException e) { + if (ConvertLinkExceptionException.CODE_NONE != e.getCode()) { + throw new GoodsEvaluateException(1, "鍖呭惈涓嶅彲杞摼鐨勫彛浠や笌閾炬帴"); + } } catch (Exception e) { - throw new GoodsEvaluateException(1, "涓嶅寘鍚彲杞摼鐨勫彛浠や笌閾炬帴"); + throw new GoodsEvaluateException(1, "鍖呭惈涓嶅彲杞摼鐨勫彛浠や笌閾炬帴"); } } @@ -805,22 +907,17 @@ if (resultObj == null) throw new GoodsEvaluateException(1, "绗竴閮ㄥ垎淇℃伅缂哄け"); - CommentInfo goodsCoupon = null; + List<CommentInfo> comments = new ArrayList<>(); CommentInfo currencyCoupon = null; List<CommentInfo> oldComments = resultObj.getComments(); if (oldComments != null) { for (CommentInfo info : oldComments) { if (CommentInfoEnum.goodsCoupon == info.getTypeEnum()) { - goodsCoupon = info; + comments.add(info); } else if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) { currencyCoupon = info; } } - } - - List<CommentInfo> comments = new ArrayList<>(); - if (goodsCoupon != null) { - comments.add(goodsCoupon); } if (commentInfo != null) { @@ -831,12 +928,7 @@ } // 鍒哥被鍨� - String tags = commentInfo.getTags(); - if (StringUtil.isNullOrEmpty(tags)) { - commentInfo.setType(CommentInfoEnum.currencyCoupon.getDesc()); - } else { - commentInfo.setType(tags); - } + commentInfo.setType(commentInfo.getTags()); commentInfo.setTypeEnum(CommentInfoEnum.currencyCoupon); // 鏍囩淇℃伅 @@ -861,7 +953,6 @@ } resultObj.setComments(comments); - goodsEvaluateDao.save(resultObj); } @@ -1350,18 +1441,6 @@ for (CommentInfo commentInfo: comments) { comment ++; - String typeCoupon = commentInfo.getType(); - if (StringUtil.isNullOrEmpty(typeCoupon)) { - if (commentInfo.getTypeEnum() == null) { - commentInfo.setType(""); - } else { - commentInfo.setType(commentInfo.getTypeEnum().getDesc()); - } - } else if (typeCoupon.equals(CommentInfoEnum.goodsCoupon.name())) { - commentInfo.setType("鍟嗗搧浼樻儬鍒�"); - } else if (typeCoupon.equals(CommentInfoEnum.currencyCoupon.name())) { - commentInfo.setType("閫氱敤浼樻儬鍒�"); - } CommentInfoEnum typeComment = commentInfo.getTypeEnum(); if (typeComment != null && typeComment ==CommentInfoEnum.goodsCoupon) { @@ -1372,27 +1451,28 @@ } } - String coupon = commentInfo.getCoupon(); String endTime = commentInfo.getEndTime(); if (!StringUtil.isNullOrEmpty(coupon) && !StringUtil.isNullOrEmpty(endTime)) { Date endDay = sdf.parse(endTime); if (endDay.getTime() > now.getTime()) { - int daysBetween = DateUtil.daysBetween(endDay, now); + int daysBetween = DateUtil.daysBetween(now, endDay); if (daysBetween > 0) { ClientTextStyleVO styleVO = new ClientTextStyleVO(); styleVO.setColor("#E5005C"); styleVO.setContent(daysBetween + "澶╁悗杩囨湡"); - styleVO.setContent(coupon); List<ClientTextStyleVO> tagList = commentInfo.getTagList(); tagList.add(styleVO); commentInfo.setTagList(tagList); commentNew.add(commentInfo); + continue; } } } + + commentNew.add(commentInfo); } goodsEvaluate.setComments(commentNew); @@ -1566,6 +1646,14 @@ @Override public void addGoodsEvaluateByDynamicInfo(DynamicInfo info) { + if (1 > 0) { + return; // 鏆備笉鍚敤鑷姩鐢熸垚 + } + + if (info == null) { + return; + } + try { GoodsEvaluate goodsEvaluate = new GoodsEvaluate(); goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", "")); -- Gitblit v1.8.0