From 1dc1b5e88283c2ea8cf53c9f014300b3ad0f53de Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期四, 02 四月 2020 11:20:43 +0800 Subject: [PATCH] vip消息 --- fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java | 356 ++++++++++++++++++++++++++++------------------------------- 1 files changed, 168 insertions(+), 188 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 3ecc09d..6d928e1 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 @@ -1855,107 +1855,140 @@ } @Override - public void addGoodsEvaluateByDynamicInfo(DynamicInfo info) { - if (1 > 0) { - return; // 鏆備笉鍚敤鑷姩鐢熸垚 + public void addGoodsEvaluate(Long goodsId, Integer cid, String title, String comment) throws GoodsEvaluateException{ + if (goodsId == null || cid == null || StringUtil.isNullOrEmpty(title)) { + throw new GoodsEvaluateException(1, "鐩稿叧鍙傛暟涓嶈兘涓虹┖"); } - - if (info == null) { - return; - } - + + TaoBaoGoodsBrief goodsBrief = null; try { - GoodsEvaluate goodsEvaluate = new GoodsEvaluate(); - goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", "")); - ActivityUser user = info.getUser(); - goodsEvaluate.setUser(user); - goodsEvaluate.setState(1); - goodsEvaluate.setDynamicType(1); - goodsEvaluate.setType(EvaluateEnum.single); - goodsEvaluate.setLineNum(2); - goodsEvaluate.setShareNum(info.getShareCount()); - goodsEvaluate.setShareNumReal(0); - goodsEvaluate.setPublishTime(info.getCreateTime()); - goodsEvaluate.setCreateTime(new Date()); - goodsEvaluate.setUpdateTime(new Date()); - goodsEvaluate.setWeight(0.0); - goodsEvaluate.setStartTime(new Date()); - goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date())); - - List<ClientTextStyleVO> titles = info.getTitle(); - if (titles != null) { - goodsEvaluate.setTitle(info.getTitle().get(0).getContent()); - } else { - goodsEvaluate.setTitle(""); - } - - List<ImgInfo> imgList = new ArrayList<>(); - - List<GoodsPicture> imgs = info.getImgs(); - for (GoodsPicture goodsPicture : imgs) { - ImgInfo imgInfo = new ImgInfo(); - imgInfo.setH(1); - imgInfo.setW(1); - imgInfo.setLarge(false); - imgInfo.setUrl(goodsPicture.getUrl()); - imgInfo.setUrlHD(goodsPicture.getUrl()); - - GoodsDetailVO goodsVO = goodsPicture.getGoodsVO(); - if (goodsVO == null) { - imgInfo.setType(ImgEnum.img); - } else { - imgInfo.setType(ImgEnum.goods); - SimpleGoods simpleGoods = new SimpleGoods(); - simpleGoods.setGoodsId(goodsVO.getGoodsId()); - simpleGoods.setGoodsType(goodsVO.getGoodsType()); - simpleGoods.setState(goodsVO.getState()); - CouponInfoVO couponInfo = goodsVO.getCouponInfo(); - if (couponInfo == null) { - simpleGoods.setPrice(goodsVO.getZkPrice()); - } else { - simpleGoods.setPrice(goodsVO.getCouponPrice()); - simpleGoods.setAmount(couponInfo.getAmount()); - } - 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())); - - commentText = commentText.replace("[鍘熶环]", goodsVO.getZkPrice().toString()); - if (!goodsVO.isHasCoupon()) { - commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘"); - commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", ""); - } else { - commentText = commentText.replace("[鍒稿悗浠穄", goodsVO.getCouponPrice().toString()); - } - commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n") - .replace("\r\n\r\n", "\r\n"); - - CommentInfo commentInfo = new CommentInfo(); - commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); - commentInfo.setContent(commentText); - commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon); - commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc()); - - List<CommentInfo> commentsNew = new ArrayList<>(); - commentsNew.add(commentInfo); - goodsEvaluate.setComments(commentsNew); - - goodsEvaluate.setGoods(goodsVO); - - } - imgList.add(imgInfo); - } - goodsEvaluate.setImgList(imgList); - goodsEvaluateDao.save(goodsEvaluate); - } catch (Exception e) { - LogHelper.errorDetailInfo(e); + goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId); + } catch (TaobaoGoodsDownException e) { + throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�"); } + + if (goodsBrief == null) { + throw new GoodsEvaluateException(1, "鏈壘鍒板晢鍝佷俊鎭�"); + } + + BigDecimal couponAmount = goodsBrief.getCouponAmount(); + if (couponAmount == null || couponAmount.compareTo(new BigDecimal(0)) < 1) { + throw new GoodsEvaluateException(1, "璇ュ晢鍝佹棤鍒�"); + } + + // 鍙戝竷鐢ㄦ埛 + ActivityUser user = activityUserService.getRandomByDaTaoKeCid(cid); + if (user == null) { + throw new GoodsEvaluateException(1, "鏈壘鍒板彂甯冪敤鎴�"); + } + + + // 鐧藉簳鍥� + List<String> imgs = new ArrayList<>(); + if (!StringUtil.isNullOrEmpty(goodsBrief.getPictUrlWhite())) { + imgs.add(goodsBrief.getPictUrlWhite()); + } + imgs.addAll(goodsBrief.getImgList()); + + // 鍟嗗搧VO + ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55"); + paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); + GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO); + + // 鍟嗗搧鍥剧墖淇℃伅 + int i = 0; + List<ImgInfo> imgList = new ArrayList<>(); + for (String img : imgs) { + ImgInfo imgInfo = new ImgInfo(); + imgInfo.setH(1); + imgInfo.setW(1); + imgInfo.setLarge(false); + imgInfo.setUrl(img); + imgInfo.setUrlHD(img); + if (i != 0) { + imgInfo.setType(ImgEnum.img); + } else { + imgInfo.setType(ImgEnum.goods); + SimpleGoods simpleGoods = new SimpleGoods(); + simpleGoods.setGoodsId(goodsVO.getGoodsId()); + simpleGoods.setGoodsType(goodsVO.getGoodsType()); + simpleGoods.setState(goodsVO.getState()); + CouponInfoVO couponInfo = goodsVO.getCouponInfo(); + if (couponInfo == null) { + simpleGoods.setPrice(goodsVO.getZkPrice()); + } else { + simpleGoods.setPrice(goodsVO.getCouponPrice()); + simpleGoods.setAmount(couponInfo.getAmount()); + } + imgInfo.setGoods(simpleGoods); + imgInfo.setGoodsVO(goodsVO); + } + imgList.add(imgInfo); + i++; + } + + // 璇勮鍐呭 + CommentInfo commentInfo = new CommentInfo(); + commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); + commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon); + if (!StringUtil.isNullOrEmpty(comment)) { + commentInfo.setContent(comment); + commentInfo.setType(""); + } else { + 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("[鍘熶环]", MoneyBigDecimalUtil.getWithNoZera(goodsVO.getZkPrice()) + ""); + if (!goodsVO.isHasCoupon()) { + commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘"); + commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", ""); + } else { + 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.setContent(commentText); + commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc()); + } + + List<CommentInfo> commentsNew = new ArrayList<>(); + commentsNew.add(commentInfo); + + // 涓�琛屾樉绀哄灏戜釜鍥剧墖 + int lineNum = 0; + if (imgs.size() > 0) { + if (imgs.size() == 1) { + lineNum = 1; + } else if (imgs.size() == 3) { + lineNum = 3; + } else if (imgs.size() <= 4) { + lineNum = 2; + } else { + lineNum = 3; + } + } + + + GoodsEvaluate goodsEvaluate = new GoodsEvaluate(); + goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", "")); + goodsEvaluate.setUser(user); + goodsEvaluate.setTitle(getDescNew(title)); + 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.setStartTime(new Date()); + goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date())); + goodsEvaluate.setPublishTime(new Date()); + goodsEvaluate.setCreateTime(new Date()); + goodsEvaluate.setUpdateTime(new Date()); + goodsEvaluate.setGoods(goodsVO); + goodsEvaluate.setLineNum(lineNum); + goodsEvaluate.setImgList(imgList); + goodsEvaluate.setComments(commentsNew); + goodsEvaluateDao.save(goodsEvaluate); } @Override @@ -2162,12 +2195,12 @@ commentsNew.add(commentInfo); commentsNew.add(commentInfo2); goodsEvaluate.setComments(commentsNew); - - goodsEvaluate.setGoods(goodsVO); } imgList.add(imgInfo); i++; } + + goodsEvaluate.setGoods(goodsVO); goodsEvaluate.setImgList(imgList); goodsEvaluateDao.save(goodsEvaluate); } catch (Exception e) { @@ -2178,100 +2211,46 @@ return true; } - private String getDesc(String desc) { - System.out.println(desc); - String newDesc = ""; - int emoji = 0; - String content = desc.replace("锛�", ","); - while (content.length() > 0) { - int length = 0; - boolean end = true; - for (int i = 0; i < content.length(); i++) { - if (content.substring(0, i).length() >= 18) { - length = i; - end = false; - 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"); // 闇�瑕佹崲琛� + /** + * 鍙戝湀鏍囬 鍔犲叆琛ㄦ儏 + * @param desc + * @return + */ + private String getDescNew(String desc) { + String[] split = desc.split("锛�"); + 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++) { + 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] + emojis; } else { - emoji++; - introduce = introduce.replace(",", DaTaoKeUtil.getRandomCommonEmoji() + "\n"); // 闇�瑕佹崲琛� + descNew += split[i] + "锛�"; } } - - // 闅忔満鏇挎崲emoji - if (emoji <= 4 && Math.random() > 0.5) { - introduce = introduce.replace(",", DaTaoKeUtil.getRandomCommonEmoji()); - emoji++; - } - newDesc += introduce; - content = content.substring(length); + } else { + descNew = desc; } - return newDesc; + + if (descNew.endsWith("锛�")) { + descNew = descNew.substring(0, descNew.length() - 1); + } + return descNew; } - 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++; - } - } - if (count > 1) { - return false; - } - - // 涔﹀悕鍙凤紝澶ф嫭鍙凤紝灏忔嫭鍙烽噷闈㈢殑鍐呭涓嶆崲琛� - if (content.contains("[") && content.contains("]")) { - return false; - } else if (content.contains("銆�") && content.contains("銆�")) { - return false; - } else 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; - } @Override public void updateTaoBaoGoods(TaoBaoGoodsBrief goods) { @@ -2391,4 +2370,5 @@ } } } + } -- Gitblit v1.8.0