From d8fc4263dad4bf8112a9146dd8afbaceb6d4ea10 Mon Sep 17 00:00:00 2001 From: yj <Administrator@192> Date: 星期一, 09 三月 2020 22:28:48 +0800 Subject: [PATCH] 自动发圈 --- fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java | 244 +++++++++++++++++++++++++++++------------------- 1 files changed, 145 insertions(+), 99 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 4dc4498..c252c6d 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 @@ -61,6 +61,7 @@ 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; @@ -108,11 +109,9 @@ @Resource private ConvertLinkManager convertLinkManager; - + @Resource private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service; - - @Override public String saveHead(MultipartFile file, GoodsEvaluate record) throws GoodsEvaluateException { @@ -470,9 +469,8 @@ } /* - * // 鏃犲埜涓嶈兘鑷姩 鐢熸垚璇勮 CouponInfoVO couponInfo1 = - * goodsDetailVO.getCouponInfo(); if (couponInfo1 == null) { addComment - * = false; } + * // 鏃犲埜涓嶈兘鑷姩 鐢熸垚璇勮 CouponInfoVO couponInfo1 = goodsDetailVO.getCouponInfo(); if + * (couponInfo1 == null) { addComment = false; } */ String commentText = ""; @@ -498,12 +496,12 @@ 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", @@ -526,7 +524,7 @@ } } } - + return commentText; } @@ -1047,8 +1045,8 @@ 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"); @@ -1112,9 +1110,9 @@ imgactivity.setH(imgactivity.getH()); } listImg.add(imgactivity); - totalImg ++; + totalImg++; } - + int lineNum = 0; if (totalImg > 0) { if (totalImg == 1) { @@ -1267,7 +1265,7 @@ imgInfo0.setW(1); imgInfo0.setH(1); listImg.add(imgInfo0); - totalImg ++; + totalImg++; continue; } } @@ -1278,7 +1276,7 @@ String url = imgInfo.getUrl(); if (picLink.equals(url)) { listImg.add(imgInfo); - totalImg ++; + totalImg++; break; } } @@ -1302,7 +1300,7 @@ listDel.add(listOld.get(j)); } } - + int lineNum = 0; if (totalImg > 0) { if (totalImg == 1) { @@ -1519,11 +1517,11 @@ 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); @@ -1531,7 +1529,7 @@ e.printStackTrace(); continue; } - + comment++; CommentInfoEnum typeComment = commentInfoNew.getTypeEnum(); if (typeComment != null && typeComment == CommentInfoEnum.goodsCoupon) { @@ -1554,7 +1552,7 @@ if (tagList != null) { tagListNew.addAll(tagList); } - + ClientTextStyleVO styleVO = new ClientTextStyleVO(); styleVO.setColor("#E5005C"); styleVO.setContent(daysBetween + "鍚庤繃鏈�"); @@ -1814,7 +1812,7 @@ 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())); @@ -1851,41 +1849,49 @@ } } - @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(); @@ -1893,24 +1899,28 @@ 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] + "锛�"; } @@ -1918,12 +1928,11 @@ } 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); @@ -1931,7 +1940,7 @@ goodsEvaluate.setState(1); goodsEvaluate.setDynamicType(1); goodsEvaluate.setType(EvaluateEnum.single); - + goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000); goodsEvaluate.setShareNumReal(0); goodsEvaluate.setWeight(0.0); @@ -1940,9 +1949,16 @@ 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; @@ -1955,7 +1971,7 @@ } } goodsEvaluate.setLineNum(lineNum); - + int i = 0; List<ImgInfo> imgList = new ArrayList<>(); for (String img : imgs) { @@ -1981,20 +1997,23 @@ 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"); @@ -2005,25 +2024,52 @@ 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 = ""; @@ -2039,47 +2085,47 @@ 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();//杞崲鎴恈har鏁扮粍 - for(int i=0;i<chs.length;i++) { - if(d == chs[i]) { - count ++; + char chs[] = content.toCharArray();// 杞崲鎴恈har鏁扮粍 + 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; @@ -2090,32 +2136,32 @@ } 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; } } -- Gitblit v1.8.0