| | |
| | | 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; |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | 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(); |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | @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)) { |
| | |
| | | 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); |
| | | } |
| | |
| | | } |
| | | |
| | | @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, "请保存第一部分信息"); |
| | | } |
| | |
| | | if (StringUtil.isNullOrEmpty(commentInfo.getTagDesc())) { |
| | | throw new GoodsEvaluateException(1, "描述语不能为空"); |
| | | } |
| | | |
| | | |
| | | String tagUrl = commentInfo.getTagUrl(); |
| | | String content = commentInfo.getContent(); |
| | |
| | | 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, "包含不可转链的口令与链接"); |
| | | } |
| | | } |
| | | |
| | |
| | | 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) { |
| | |
| | | } |
| | | // 券类型 |
| | | |
| | | 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); |
| | | |
| | | // 标签信息 |
| | |
| | | } |
| | | |
| | | resultObj.setComments(comments); |
| | | |
| | | goodsEvaluateDao.save(resultObj); |
| | | } |
| | | |
| | |
| | | |
| | | 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) { |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | 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); |
| | | |
| | |
| | | |
| | | @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("-", "")); |