From 6fdcc0c26dd33e87a024a69ed635d9aedb59cad6 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 07 一月 2020 12:02:50 +0800 Subject: [PATCH] 订单搜索引擎增量更新 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java | 148 ++++++++++++++++++++++++++++++++++-------------- 1 files changed, 104 insertions(+), 44 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java index dd8b50c..d782e60 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java @@ -32,6 +32,7 @@ import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinRecord; import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo; import com.yeshi.fanli.entity.bus.user.UserInfo; +import com.yeshi.fanli.entity.bus.user.UserInfoExtra; import com.yeshi.fanli.entity.goods.CommonGoods; import com.yeshi.fanli.entity.goods.ShareGoodsTextTemplate; import com.yeshi.fanli.entity.jd.JDGoods; @@ -67,6 +68,7 @@ import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TaoBaoConstant; +import com.yeshi.fanli.util.VersionUtil; import com.yeshi.fanli.util.cache.JDGoodsCacheUtil; import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil; import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil; @@ -156,21 +158,29 @@ private UserTaoLiJinRecordService userTaoLiJinRecordService; /** - * 鑾峰彇娣樺疂鐨勫垎浜摼鎺� * * @param acceptData * @param uid * -鐢ㄦ埛ID - * @param auctionId-鍟嗗搧ID + * @param goodsId-鍟嗗搧ID + * @param source + * @param totalNum + * @param goodsType + * @param needGoods + * -鏄惁闇�瑕佸晢鍝佷俊鎭� + * @param request * @param out */ @RequestMapping(value = "createShareInfo") public void createShareInfo(AcceptData acceptData, Long uid, Long goodsId, String source, Integer totalNum, - Integer goodsType, HttpServletRequest request, PrintWriter out) { + Integer goodsType, Boolean needGoods, HttpServletRequest request, PrintWriter out) { if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛ID涓嶈兘涓虹┖")); return; } + + if (needGoods == null) + needGoods = false; try { // 鏃ュ織璁板綍 String info = String.format("type=share&uid=%s&goodsId=%s&source=%s&goodsType=%s", uid, goodsId, source, @@ -192,36 +202,25 @@ // 娣樺疂 if (goodsType == null || goodsType == Constant.SOURCE_TYPE_TAOBAO) { - createTaoBaoShare(acceptData, uid, goodsId, totalNum, source, request, out); + createTaoBaoShare(acceptData, uid, goodsId, totalNum, source, needGoods, request, out); return; } // 浜笢 if (goodsType == Constant.SOURCE_TYPE_JD) { - createJDShare(acceptData, uid, goodsId, source, out); + createJDShare(acceptData, uid, goodsId, source, needGoods, out); return; } // 鎷煎澶� if (goodsType == Constant.SOURCE_TYPE_PDD) { - createPDDShare(acceptData, uid, goodsId, source, out); + createPDDShare(acceptData, uid, goodsId, source, needGoods, out); return; } } - public static String getERCodeContent(TaoBaoGoodsBrief goods, String token) { - String content = String.format("銆�%s銆�%s鍏�", goods.getUserType() == 1 ? "T鐚环" : "T瀹濅环", - MoneyBigDecimalUtil.getWithNoZera(goods.getZkPrice()) + ""); - content += "\n\r"; - - if (!StringUtil.isNullOrEmpty(goods.getCouponInfo())) { - content += String.format("銆愬埜鍚庝环銆�%s鍏�", TaoBaoUtil.getAfterUseCouplePrice(goods) + ""); - content += "\n\r"; - } - content += "------------"; - content += "\n\r"; - content += "寰╁埗杩欐潯" + token + "锛岄�插叆Tao瀹濆嵆鍙喘涔�"; - return content; + public static String getERCodeContent(String template, TaoBaoGoodsBrief goods, String token) { + return template.replace("[娣樺彛浠", token); } /** @@ -236,9 +235,20 @@ * @param out */ public void createTaoBaoShare(AcceptData acceptData, Long uid, Long goodsId, Integer totalNum, String source, - HttpServletRequest request, PrintWriter out) { + Boolean needGoods, HttpServletRequest request, PrintWriter out) { + if (needGoods == null) + needGoods = false; UserExtraTaoBaoInfo extraInfo = userExtraTaoBaoInfoService.getByUid(uid); + UserInfoExtra userExtraInfo = userInfoExtraService.getUserInfoExtra(uid); + String inviteCode = null; + if (userExtraInfo != null) { + if (!StringUtil.isNullOrEmpty(userExtraInfo.getInviteCodeVip())) { + inviteCode = userExtraInfo.getInviteCodeVip(); + } else { + inviteCode = userExtraInfo.getInviteCode(); + } + } String relationId = null; if (extraInfo != null && extraInfo.getRelationId() != null && extraInfo.getRelationValid() != null && extraInfo.getRelationValid() == true) @@ -257,16 +267,18 @@ try { ShareInfoVO shareInfo = new ShareInfoVO(); + // 娴嬭瘯 - List<String> commentTexts = new ArrayList<>(); - commentTexts.add("鍙d护1"); - commentTexts.add("鍙d护2鍙d护鍙d护娣樺彛浠ゅ彛浠ゅ彛浠ゆ窐鍙d护"); - commentTexts.add("鍙d护3"); - commentTexts.add("鍙d护鍙d护娣樺彛浠ゅ彛浠ゅ彛浠ゆ窐鍙d护鍙d护鍙d护娣樺彛浠ゅ彛浠ゅ彛浠ゆ窐鍙d护鍙d护鍙d护娣樺彛浠ゅ彛浠ゅ彛浠ゆ窐鍙d护"); - shareInfo.setCommentTexts(commentTexts); - shareInfo.setWxErCode("杩欐槸寰俊鍒嗕韩浜岀淮鐮佸唴瀹�"); TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(uid, goodsId, relationId); + + if (taoBaoLink != null && taoBaoLink.getGoods() != null && needGoods) { + ConfigParamsDTO dto = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(), + acceptData.getVersion()); + + GoodsDetailVO goodsInfo = GoodsDetailVOFactory.convertTaoBao(taoBaoLink.getGoods(), dto); + shareInfo.setGoodsInfo(goodsInfo); + } String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(), Constant.systemCommonConfig.getShareGoodsPagePath(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY), @@ -281,6 +293,26 @@ shareInfo.setToken(TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); shareInfo.setRule(configService.get("share_single_goods_rule")); shareInfo.setPictUrl(TbImgUtil.getTBSizeImg(taoBaoLink.getGoods().getPictUrl(), 500)); + + String commentTextStr = configService.get("share_single_goods_comment_text"); + List<String> commentTexts = new ArrayList<>(); + if (!StringUtil.isNullOrEmpty(commentTextStr)) { + JSONArray array = JSONArray.fromObject(commentTextStr); + for (int i = 0; i < array.size(); i++) { + if (StringUtil.isNullOrEmpty(inviteCode)) { + if (array.optString(i).contains("[閭�璇风爜]")) { + continue; + } + } + if (StringUtil.isNullOrEmpty(inviteCode)) + commentTexts.add(array.optString(i).replace("[涓嬭浇閾炬帴]", Constant.YINGYONGBAO_LINK) + .replace("[娣樺彛浠", shareInfo.getToken())); + else + commentTexts.add(array.optString(i).replace("[涓嬭浇閾炬帴]", Constant.YINGYONGBAO_LINK) + .replace("[閭�璇风爜]", inviteCode).replace("[娣樺彛浠", shareInfo.getToken())); + } + } + shareInfo.setCommentTexts(commentTexts); String shareText = ""; // 鏃犲埜 @@ -318,7 +350,13 @@ } shareInfo.setDescText(descText); // 娴嬭瘯 - shareInfo.setClickUrl(getERCodeContent(taoBaoLink.getGoods(), shareInfo.getToken())); + // 2.0.2涔嬪墠 + if (!VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(), acceptData.getVersion())) + shareInfo.setClickUrl(getERCodeContent(configService.get("taobao_share_qrcode_text"), + taoBaoLink.getGoods(), shareInfo.getToken())); + + shareInfo.setWxErCode(getERCodeContent(configService.get("taobao_share_qrcode_text"), taoBaoLink.getGoods(), + shareInfo.getToken())); // 鎻愮ず鍥炬枃鍐呭 String imgs = configService.get("goods_share_notify_imgs"); @@ -347,7 +385,8 @@ } } - out.print(JsonUtil.loadTrueResult(JsonUtil.getSimpleGson().toJson(shareInfo))); + out.print(JsonUtil.loadTrueResult( + JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create().toJson(shareInfo))); final TaoBaoLink taobaoLink = taoBaoLink; // 寮傛鎿嶄綔 @@ -365,7 +404,7 @@ history.setQuanLink(taobaoLink.getCouponLink()); history.setGoodsId(taobaoLink.getGoods().getAuctionId()); history.setPostPicture(taobaoLink.getGoods().getPictUrl()); - + history.setShareImg(taobaoLink.getClickUrl()); List<String> imgList = taobaoLink.getGoods().getImgList(); if (imgList == null) { imgList = new ArrayList<>(); @@ -546,7 +585,7 @@ history.setQuanLink(taobaoLink.getCouponLink()); history.setGoodsId(finalGoods.getAuctionId()); history.setPostPicture(finalGoods.getPictUrl()); - + history.setShareImg(taobaoLink.getClickUrl()); List<String> imgList = finalGoods.getImgList(); if (imgList == null) { imgList = new ArrayList<>(); @@ -574,7 +613,8 @@ * @param request * @param out */ - public void createJDShare(AcceptData acceptData, Long uid, Long goodsId, String source, PrintWriter out) { + public void createJDShare(AcceptData acceptData, Long uid, Long goodsId, String source, boolean needGoods, + PrintWriter out) { JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsId); if (jdGoods == null) { out.print(JsonUtil.loadFalseResult(1, "璇ュ晢鍝佸凡涓嬫灦")); @@ -588,17 +628,24 @@ // goodsId + ""); String couponUrl = null; - JDCouponInfo couponInfo = jdGoods.getCouponInfo(); + JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods); if (couponInfo != null) { couponUrl = couponInfo.getLink(); } String materialId = "https://item.jd.com/" + goodsId + ".html"; - String jumpLink = JDApiUtil.convertShortLink(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "", uid + ""); + String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "", + uid + ""); ShareInfoVO shareInfo = new ShareInfoVO(); shareInfo.setClickUrl(jumpLink); + shareInfo.setWxErCode(jumpLink); shareInfo.setRule(configService.get("share_rule_link_jd")); shareInfo.setPictUrl(jdGoods.getPicUrl()); + shareInfo.setCommentTexts(new ArrayList<>()); + + if (needGoods) + shareInfo.setGoodsInfo(GoodsDetailVOFactory.convertJDGoods(jdGoods, + hongBaoManageService.getShowComputeRate(acceptData.getPlatform(), acceptData.getVersion()))); String shareText = ""; boolean hasCoupon = false; @@ -652,7 +699,8 @@ e1.printStackTrace(); } } - out.print(JsonUtil.loadTrueResult(JsonUtil.getSimpleGson().toJson(shareInfo))); + out.print(JsonUtil.loadTrueResult( + JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create().toJson(shareInfo))); // 寮傛鎿嶄綔 final JDGoods goods = jdGoods; @@ -670,7 +718,8 @@ history.setQuanLink(null); history.setGoodsId(goodsId); history.setPostPicture(goods.getPicUrl()); - + history.setShareImg(jumpLink); + List<String> imgList = goods.getImageList(); if (imgList == null) { imgList = new ArrayList<>(); @@ -690,7 +739,8 @@ * @param source * @param out */ - public void createPDDShare(AcceptData acceptData, Long uid, Long goodsId, String source, PrintWriter out) { + public void createPDDShare(AcceptData acceptData, Long uid, Long goodsId, String source, boolean needGoods, + PrintWriter out) { PDDGoodsDetail goods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId); if (goods == null) { out.print(JsonUtil.loadFalseResult(1, "璇ュ晢鍝佸凡涓嬫灦")); @@ -707,8 +757,17 @@ ShareInfoVO shareInfo = new ShareInfoVO(); shareInfo.setClickUrl(jumpLink); + shareInfo.setWxErCode(jumpLink); + shareInfo.setCommentTexts(new ArrayList<>()); shareInfo.setRule(configService.get("share_rule_link_pdd")); shareInfo.setPictUrl(goods.getGoodsImageUrl()); + if (needGoods) { + shareInfo + .setGoodsInfo(GoodsDetailVOFactory.convertPDDGoods(goods, + new ConfigParamsDTO(hongBaoManageService.getFanLiRate(), + hongBaoManageService.getShareRate(), Constant.MAX_REWARD_RATE, + hongBaoManageService.getVIPFanLiRate()))); + } String template = ""; boolean hasCoupon = false; @@ -767,7 +826,8 @@ e1.printStackTrace(); } } - out.print(JsonUtil.loadTrueResult(JsonUtil.getSimpleGson().toJson(shareInfo))); + out.print(JsonUtil.loadTrueResult( + JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create().toJson(shareInfo))); // 寮傛鎿嶄綔 com.yeshi.fanli.util.ThreadUtil.run(new Runnable() { @@ -784,7 +844,7 @@ history.setQuanLink(null); history.setGoodsId(goodsId); history.setPostPicture(goods.getGoodsImageUrl()); - + history.setShareImg(jumpLink); List<String> imgList = null; String[] goodsGalleryUrls = goods.getGoodsGalleryUrls(); if (goodsGalleryUrls != null) { @@ -987,12 +1047,13 @@ } String couponUrl = null; - JDCouponInfo couponInfo = goods.getCouponInfo(); + JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(goods); if (couponInfo != null) { couponUrl = couponInfo.getLink(); } String materialId = "https://item.jd.com/" + goodsId + ".html"; - String shortLink = JDApiUtil.convertShortLink(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "", uid + ""); + String shortLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "", + uid + ""); String content = shareGoodsTextTemplateService.createContentByTemplateJD(template, uid, goods, shortLink, hasCoupon); @@ -1355,9 +1416,8 @@ } } - BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); - BigDecimal shareRate = hongBaoManageService.getShareRate(); - ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE); + ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(), + acceptData.getVersion()); Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); -- Gitblit v1.8.0