| | |
| | | import com.yeshi.fanli.util.Constant; |
| | | import com.yeshi.fanli.util.FilePathEnum; |
| | | import com.yeshi.fanli.util.FileUtil; |
| | | import com.yeshi.fanli.util.MoneyBigDecimalUtil; |
| | | import com.yeshi.fanli.util.RedisManager; |
| | | import com.yeshi.fanli.util.StringUtil; |
| | | import com.yeshi.fanli.util.cache.JDGoodsCacheUtil; |
| | |
| | | |
| | | @Resource |
| | | private ConvertLinkManager convertLinkManager; |
| | | |
| | | |
| | | @Resource |
| | | private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service; |
| | | |
| | | |
| | | |
| | | @Override |
| | | public String saveHead(MultipartFile file, GoodsEvaluate record) throws GoodsEvaluateException { |
| | |
| | | } |
| | | |
| | | /* |
| | | * // 无券不能自动 生成评论 CouponInfoVO couponInfo1 = |
| | | * goodsDetailVO.getCouponInfo(); if (couponInfo1 == null) { addComment |
| | | * = false; } |
| | | * // 无券不能自动 生成评论 CouponInfoVO couponInfo1 = goodsDetailVO.getCouponInfo(); if |
| | | * (couponInfo1 == null) { addComment = false; } |
| | | */ |
| | | |
| | | String commentText = ""; |
| | |
| | | commentText = template.replace("[链接]", jumpLink); |
| | | } |
| | | |
| | | commentText = commentText.replace("[原价]", goodsDetailVO.getZkPrice().toString()); |
| | | commentText = commentText.replace("[原价]", MoneyBigDecimalUtil.getWithNoZera(goodsDetailVO.getZkPrice())+""); |
| | | if (!goodsDetailVO.isHasCoupon()) { |
| | | commentText = commentText.replace("领券抢购", "抢购"); |
| | | commentText = commentText.replace("【券后价】[券后价]元", ""); |
| | | } else { |
| | | commentText = commentText.replace("[券后价]", goodsDetailVO.getCouponPrice().toString()); |
| | | commentText = commentText.replace("[券后价]", MoneyBigDecimalUtil.getWithNoZera(goodsDetailVO.getCouponPrice())+""); |
| | | } |
| | | |
| | | commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | return commentText; |
| | | } |
| | | |
| | |
| | | if (info == null) |
| | | throw new GoodsEvaluateException(2, "视频图片上传失败"); |
| | | videoPic = info.getUrl(); |
| | | width=info.getW(); |
| | | height=info.getH(); |
| | | width = info.getW(); |
| | | height = info.getH(); |
| | | } |
| | | |
| | | MultipartFile activityfile = fileRequest.getFile("activityfile"); |
| | |
| | | imgactivity.setH(imgactivity.getH()); |
| | | } |
| | | listImg.add(imgactivity); |
| | | totalImg ++; |
| | | totalImg++; |
| | | } |
| | | |
| | | |
| | | int lineNum = 0; |
| | | if (totalImg > 0) { |
| | | if (totalImg == 1) { |
| | |
| | | imgInfo0.setW(1); |
| | | imgInfo0.setH(1); |
| | | listImg.add(imgInfo0); |
| | | totalImg ++; |
| | | totalImg++; |
| | | continue; |
| | | } |
| | | } |
| | |
| | | String url = imgInfo.getUrl(); |
| | | if (picLink.equals(url)) { |
| | | listImg.add(imgInfo); |
| | | totalImg ++; |
| | | totalImg++; |
| | | break; |
| | | } |
| | | } |
| | |
| | | listDel.add(listOld.get(j)); |
| | | } |
| | | } |
| | | |
| | | |
| | | int lineNum = 0; |
| | | if (totalImg > 0) { |
| | | if (totalImg == 1) { |
| | |
| | | List<CommentInfo> commentNew = new ArrayList<>(); |
| | | |
| | | for (CommentInfo commentInfo : comments) { |
| | | if (StringUtil.isNullOrEmpty(commentInfo.getContent()) && |
| | | StringUtil.isNullOrEmpty(commentInfo.getCoupon())) { |
| | | if (StringUtil.isNullOrEmpty(commentInfo.getContent()) |
| | | && StringUtil.isNullOrEmpty(commentInfo.getCoupon())) { |
| | | continue; |
| | | } |
| | | |
| | | |
| | | CommentInfo commentInfoNew = new CommentInfo(); |
| | | try { |
| | | PropertyUtils.copyProperties(commentInfoNew, commentInfo); |
| | |
| | | e.printStackTrace(); |
| | | continue; |
| | | } |
| | | |
| | | |
| | | comment++; |
| | | CommentInfoEnum typeComment = commentInfoNew.getTypeEnum(); |
| | | if (typeComment != null && typeComment == CommentInfoEnum.goodsCoupon) { |
| | |
| | | if (tagList != null) { |
| | | tagListNew.addAll(tagList); |
| | | } |
| | | |
| | | |
| | | ClientTextStyleVO styleVO = new ClientTextStyleVO(); |
| | | styleVO.setColor("#E5005C"); |
| | | styleVO.setContent(daysBetween + "后过期"); |
| | |
| | | imgInfo.setGoods(simpleGoods); |
| | | |
| | | TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsVO.getGoodsId(), "0"); |
| | | |
| | | |
| | | // TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(Constant.LINK_TOKEN_VERIFY_UID, goodsVO.getGoodsId(), null); |
| | | String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey()); |
| | | String commentText = template.replace("[淘口令]", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void addGoodsEvaluateByDaTaoKe() { |
| | | try { |
| | | boolean addSuccess = false; |
| | | List<Long> listId = null; |
| | | |
| | | List<GoodsEvaluate> listExist = goodsEvaluateDao.querySingleExist(); |
| | | if (listExist != null && listExist.size() > 0) { |
| | | listId = new ArrayList<Long>(); |
| | | for (GoodsEvaluate goodsEvaluate : listExist) { |
| | | GoodsDetailVO goods = goodsEvaluate.getGoods(); |
| | | if (goods != null && goods.getGoodsType() == 1) { |
| | | listId.add(goods.getGoodsId()); |
| | | } |
| | | List<Long> listId = null; |
| | | List<GoodsEvaluate> listExist = goodsEvaluateDao.querySingleExist(); |
| | | if (listExist != null && listExist.size() > 0) { |
| | | listId = new ArrayList<Long>(); |
| | | for (GoodsEvaluate goodsEvaluate : listExist) { |
| | | GoodsDetailVO goods = goodsEvaluate.getGoods(); |
| | | if (goods != null && goods.getGoodsType() == 1) { |
| | | listId.add(goods.getGoodsId()); |
| | | } |
| | | } |
| | | |
| | | |
| | | // 热销单品的分类 |
| | | List<GoodsClass> listClass = DaTaoKeUtil.goodsClasses; |
| | | int ci = (int) (Math.random() * listClass.size()); |
| | | Long subId = listClass.get(ci).getId(); |
| | | |
| | | List<DaTaoKeDetailV2> list = daTaoKeGoodsDetailV2Service.getGoodsNotInList(subId, listId, 1); |
| | | if (list == null || list.size() == 0) { |
| | | return; |
| | | } |
| | | // 热销单品的分类 |
| | | List<GoodsClass> listClass = DaTaoKeUtil.goodsClasses; |
| | | int ci = (int) (Math.random() * listClass.size()); |
| | | Long subId = listClass.get(ci).getId(); |
| | | |
| | | List<DaTaoKeDetailV2> list = daTaoKeGoodsDetailV2Service.getGoodsNotInList(subId, listId, 1); |
| | | if (list == null || list.size() == 0) { |
| | | return; |
| | | } |
| | | |
| | | for (int i = 0; i < list.size(); i++) { |
| | | boolean cerateGoods = cerateGoods(list.get(i)); |
| | | if (cerateGoods) { |
| | | break; |
| | | } |
| | | |
| | | DaTaoKeDetailV2 daTaoKe = list.get(0); |
| | | } |
| | | } |
| | | |
| | | private boolean cerateGoods(DaTaoKeDetailV2 daTaoKe) { |
| | | try { |
| | | TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(daTaoKe.getGoodsId()); |
| | | if (goodsBrief == null) { |
| | | return; |
| | | return false; |
| | | } |
| | | |
| | | |
| | | BigDecimal couponAmount = goodsBrief.getCouponAmount(); |
| | | if (couponAmount == null || couponAmount.compareTo(new BigDecimal(0)) < 1) { |
| | | return false; |
| | | } |
| | | |
| | | BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); |
| | | BigDecimal shareRate = hongBaoManageService.getShareRate(); |
| | | BigDecimal vipFanLiRate = hongBaoManageService.getVIPFanLiRate(); |
| | |
| | | GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, params); |
| | | // 发布用户 |
| | | ActivityUser user = activityUserService.getRandomByDaTaoKeCid(daTaoKe.getCid()); |
| | | |
| | | // String desc = getDesc(daTaoKe.getDesc()); |
| | | |
| | | String desc = daTaoKe.getDesc().replace(",", ","); |
| | | System.out.println(desc); |
| | | String[] split = desc.split(","); |
| | | System.out.println(split.length); |
| | | |
| | | int max = 1; |
| | | if (Math.random() > 0.5) { |
| | | max = 2; |
| | | } |
| | | int e = 0; |
| | | String emojis = ""; |
| | | String descNew = ""; |
| | | if (split.length > 0) { |
| | | for (int i = 0; i < split.length; i ++ ) { |
| | | for (int i = 0; i < split.length; i++) { |
| | | if (Math.random() > 0.5 && e < max) { |
| | | for (int j = 0; j < 10; j++) { |
| | | String emojisTemp = DaTaoKeUtil.getEvaluateEmojis(); |
| | | if (!emojis.equals(emojisTemp)) { |
| | | emojis = emojisTemp; |
| | | break; |
| | | } |
| | | } |
| | | e++; |
| | | descNew += split[i] + DaTaoKeUtil.getRandomCommonEmoji(); |
| | | descNew += split[i] + emojis; |
| | | } else { |
| | | descNew += split[i] + ","; |
| | | } |
| | |
| | | } else { |
| | | descNew = desc; |
| | | } |
| | | |
| | | if(descNew.endsWith(",")) { |
| | | descNew = descNew.substring(0, descNew.length()-1); |
| | | |
| | | if (descNew.endsWith(",")) { |
| | | descNew = descNew.substring(0, descNew.length() - 1); |
| | | } |
| | | |
| | | |
| | | |
| | | GoodsEvaluate goodsEvaluate = new GoodsEvaluate(); |
| | | goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", "")); |
| | | goodsEvaluate.setUser(user); |
| | |
| | | goodsEvaluate.setState(1); |
| | | goodsEvaluate.setDynamicType(1); |
| | | goodsEvaluate.setType(EvaluateEnum.single); |
| | | |
| | | |
| | | goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000); |
| | | goodsEvaluate.setShareNumReal(0); |
| | | goodsEvaluate.setWeight(0.0); |
| | |
| | | goodsEvaluate.setPublishTime(new Date()); |
| | | goodsEvaluate.setCreateTime(new Date()); |
| | | goodsEvaluate.setUpdateTime(new Date()); |
| | | |
| | | |
| | | List<String> goodsimgs = goodsBrief.getImgList(); |
| | | |
| | | List<String> imgs = new ArrayList<>(); |
| | | if (!StringUtil.isNullOrEmpty(goodsBrief.getPictUrlWhite())) { |
| | | imgs.add(goodsBrief.getPictUrlWhite()); |
| | | } |
| | | imgs.addAll(goodsimgs); |
| | | |
| | | int lineNum = 0; |
| | | List<String> imgs = goodsBrief.getImgList(); |
| | | if (imgs.size() > 0) { |
| | | if (imgs.size() == 1) { |
| | | lineNum = 1; |
| | |
| | | } |
| | | } |
| | | goodsEvaluate.setLineNum(lineNum); |
| | | |
| | | |
| | | int i = 0; |
| | | List<ImgInfo> imgList = new ArrayList<>(); |
| | | for (String img : imgs) { |
| | |
| | | simpleGoods.setAmount(couponInfo.getAmount()); |
| | | } |
| | | imgInfo.setGoods(simpleGoods); |
| | | imgInfo.setGoodsVO(goodsVO); |
| | | |
| | | //TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(Constant.LINK_TOKEN_VERIFY_UID, goodsVO.getGoodsId(), null); |
| | | // TaoBaoLink taoBaoLink = |
| | | // shareGoodsService.getTaoBaoLinkForShare(Constant.LINK_TOKEN_VERIFY_UID, |
| | | // goodsVO.getGoodsId(), null); |
| | | |
| | | String token = shareGoodsService.createTaoBaoToken(Constant.LINK_TOKEN_VERIFY_UID, goodsBrief); |
| | | |
| | | |
| | | String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey()); |
| | | String commentText = template.replace("[淘口令]", TaoBaoUtil.filterTaoToken(token)); |
| | | |
| | | commentText = commentText.replace("[原价]", goodsVO.getZkPrice().toString()); |
| | | commentText = commentText.replace("[原价]", MoneyBigDecimalUtil.getWithNoZera(goodsVO.getZkPrice())+""); |
| | | if (!goodsVO.isHasCoupon()) { |
| | | commentText = commentText.replace("领券抢购", "抢购"); |
| | | commentText = commentText.replace("【券后价】[券后价]元", ""); |
| | | } else { |
| | | commentText = commentText.replace("[券后价]", goodsVO.getCouponPrice().toString()); |
| | | commentText = commentText.replace("[券后价]", MoneyBigDecimalUtil.getWithNoZera(goodsVO.getCouponPrice())+""); |
| | | } |
| | | commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n") |
| | | .replace("\r\n\r\n", "\r\n"); |
| | |
| | | commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon); |
| | | commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc()); |
| | | |
| | | String text2 = ""; |
| | | String evaluateEmojis = configService.get(ConfigKeyEnum.evaluateEmojis.getKey()); |
| | | if (!StringUtil.isNullOrEmpty(evaluateEmojis)) { |
| | | text2 = evaluateEmojis + "\n"; |
| | | } |
| | | |
| | | String evaluateText = configService.get(ConfigKeyEnum.evaluateText.getKey()); |
| | | if (!StringUtil.isNullOrEmpty(evaluateText)) { |
| | | text2 += evaluateText; |
| | | } |
| | | |
| | | String dtitle = daTaoKe.getDtitle(); |
| | | if (!StringUtil.isNullOrEmpty(dtitle)) { |
| | | text2 = text2 + dtitle +"\n"; |
| | | } else if (!StringUtil.isNullOrEmpty(evaluateText)) { |
| | | text2 += "\n"; |
| | | } |
| | | text2 += "先领【"+ couponAmount +"元优惠券】下单"; |
| | | |
| | | CommentInfo commentInfo2 = new CommentInfo(); |
| | | commentInfo2.setId(UUID.randomUUID().toString().replace("-", "")); |
| | | commentInfo2.setContent(text2); |
| | | commentInfo2.setTypeEnum(CommentInfoEnum.goodsCoupon); |
| | | commentInfo2.setType(""); |
| | | |
| | | |
| | | List<CommentInfo> commentsNew = new ArrayList<>(); |
| | | commentsNew.add(commentInfo); |
| | | commentsNew.add(commentInfo2); |
| | | goodsEvaluate.setComments(commentsNew); |
| | | |
| | | |
| | | goodsEvaluate.setGoods(goodsVO); |
| | | } |
| | | |
| | | imgList.add(imgInfo); |
| | | i ++; |
| | | i++; |
| | | } |
| | | goodsEvaluate.setImgList(imgList); |
| | | goodsEvaluateDao.save(goodsEvaluate); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | LogHelper.errorDetailInfo(e); |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | |
| | | |
| | | private String getDesc(String desc) { |
| | | System.out.println(desc); |
| | | String newDesc = ""; |
| | |
| | | break; |
| | | } |
| | | } |
| | | |
| | | |
| | | if (end) { |
| | | length = content.length(); |
| | | } |
| | | |
| | | |
| | | String introduce = content.substring(0, length); |
| | | System.out.println(introduce); |
| | | if (verify(introduce)) { |
| | | if (emoji >= 4) { |
| | | introduce = introduce.replace(",", "\n"); // 需要换行 |
| | | } else { |
| | | emoji ++; |
| | | emoji++; |
| | | introduce = introduce.replace(",", DaTaoKeUtil.getRandomCommonEmoji() + "\n"); // 需要换行 |
| | | } |
| | | } |
| | | |
| | | |
| | | // 随机替换emoji |
| | | if(emoji <= 4 && Math.random() > 0.5) { |
| | | if (emoji <= 4 && Math.random() > 0.5) { |
| | | introduce = introduce.replace(",", DaTaoKeUtil.getRandomCommonEmoji()); |
| | | emoji ++; |
| | | emoji++; |
| | | } |
| | | newDesc += introduce; |
| | | content = content.substring(length); |
| | | } |
| | | return newDesc; |
| | | } |
| | | |
| | | private boolean verify (String content) { |
| | | |
| | | private boolean verify(String content) { |
| | | // 18个字符内(包含标点也算一个字符)有多个逗号,则不换行 |
| | | char d = ','; |
| | | int count = 0; |
| | | char chs[]= content.toCharArray();//转换成char数组 |
| | | for(int i=0;i<chs.length;i++) { |
| | | if(d == chs[i]) { |
| | | count ++; |
| | | char chs[] = content.toCharArray();// 转换成char数组 |
| | | for (int i = 0; i < chs.length; i++) { |
| | | if (d == chs[i]) { |
| | | count++; |
| | | } |
| | | } |
| | | if (count > 1) { |
| | | return false; |
| | | } |
| | | |
| | | |
| | | // 书名号,大括号,小括号里面的内容不换行 |
| | | if (content.contains("[") && content.contains("]")) { |
| | | return false; |
| | |
| | | } else if (content.contains("(") && content.contains(")")) { |
| | | return false; |
| | | } |
| | | |
| | | |
| | | int index = content.lastIndexOf(","); |
| | | // (除开逗号以外的符号)感叹号/句号/问号前面有逗号,不换行 |
| | | if (content.contains("!") && index < content.lastIndexOf("!")) { |
| | | return false; |
| | | } |
| | | |
| | | } |
| | | |
| | | if (content.contains("!") && index < content.lastIndexOf("!")) { |
| | | return false; |
| | | } |
| | | |
| | | } |
| | | |
| | | if (content.contains("。") && index < content.lastIndexOf("。")) { |
| | | return false; |
| | | } |
| | | |
| | | } |
| | | |
| | | if (content.contains("?") && index < content.lastIndexOf("?")) { |
| | | return false; |
| | | } |
| | | |
| | | } |
| | | |
| | | if (content.contains("?") && index < content.lastIndexOf("?")) { |
| | | return false; |
| | | } |
| | | |
| | | } |
| | | |
| | | if (content.contains(":")) { |
| | | return false; |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | } |