From 8ce7c720e4e7a604b0ff770349b5556f39d37759 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 13 九月 2021 11:44:38 +0800 Subject: [PATCH] 好省呗应用兼容 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java | 85 ++++++++++++++++++++++++++++-------------- 1 files changed, 57 insertions(+), 28 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 ae201d0..c60a070 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 @@ -1,7 +1,9 @@ package com.yeshi.fanli.controller.client.v2; import java.io.PrintWriter; +import java.io.UnsupportedEncodingException; import java.math.BigDecimal; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; @@ -11,8 +13,10 @@ import javax.servlet.http.HttpServletRequest; import com.yeshi.fanli.entity.SystemEnum; +import com.yeshi.fanli.entity.SystemPIDInfo; import com.yeshi.fanli.exception.taobao.TaoBaoConvertLinkException; import com.yeshi.fanli.service.inter.pdd.PDDAuthService; +import com.yeshi.fanli.service.manger.PIDManager; import com.yeshi.fanli.service.manger.goods.TaoBaoLinkManager; import com.yeshi.fanli.util.*; import com.yeshi.fanli.util.StringUtil; @@ -24,7 +28,7 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.yeshi.fanli.dto.ConfigParamsDTO; +import com.yeshi.fanli.dto.GoodsMoneyConfigParamsDTO; import com.yeshi.fanli.dto.jd.JDCouponInfo; import com.yeshi.fanli.dto.jd.JDPingouInfo; import com.yeshi.fanli.dto.pdd.PDDGoodsDetail; @@ -149,6 +153,9 @@ @Resource private PDDAuthService pddAuthService; + @Resource + private PIDManager pidManager; + private List<ShareGoodsCommentChoiceInfo> getCommentChoiceList(String token, String link, String inviteCode, BigDecimal fanliMoney) { List<ShareGoodsCommentChoiceInfo> list = new ArrayList<>(); @@ -245,8 +252,25 @@ } public static String getERCodeContentNew(String template, TaoBaoGoodsBrief goods, String token) { + String tempToken = ""; + String[] sts = token.split(" "); + if (sts.length > 1) { + for (int i = 0; i < sts.length - 1; i++) { + tempToken += sts[i] + " "; + } + } else { + tempToken = token; + } + tempToken = tempToken.trim(); + + try { + tempToken= URLEncoder.encode(tempToken,"UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + String commentText = template.replace("[鍘熶环]", goods.getZkPrice().toString()); - commentText = commentText.replace("[娣樺彛浠", token); + commentText = commentText.replace("[娣樺彛浠", tempToken); if (StringUtil.isNullOrEmpty(goods.getCouponInfo())) { commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘"); commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", ""); @@ -501,10 +525,10 @@ try { ShareInfoVO shareInfo = new ShareInfoVO(); - TaoBaoLink taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(uid, goodsId, relationId, null); + TaoBaoLink taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(acceptData.getSystem(), uid, goodsId, relationId, null); if (taoBaoLink != null && taoBaoLink.getGoods() != null && needGoods) { - ConfigParamsDTO dto = orderHongBaoMoneyComputeService.getShowComputeRate(platform, version, acceptData.getSystem()); + GoodsMoneyConfigParamsDTO dto = orderHongBaoMoneyComputeService.getShowComputeRate(platform, version, acceptData.getSystem()); GoodsDetailVO goodsInfo = GoodsDetailVOFactory.convertTaoBao(taoBaoLink.getGoods(), dto); shareInfo.setGoodsInfo(goodsInfo); } @@ -738,9 +762,10 @@ couponUrl = couponInfo.getLink(); } String materialId = "https://item.jd.com/" + goodsId + ".html"; - String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, JDApiUtil.POSITION_SHARE + "", uid + ""); + String pid = pidManager.getPidCache(acceptData.getSystem(), Constant.SOURCE_TYPE_JD, SystemPIDInfo.PidType.share); + String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, pid, uid + ""); if (StringUtil.isNullOrEmpty(jumpLink)) { - jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, null, null, JDApiUtil.POSITION_SHARE + "", uid + ""); + jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, null, null, pid, uid + ""); } ShareInfoVO shareInfo = new ShareInfoVO(); @@ -895,13 +920,15 @@ //鏌ヨ褰撳墠鐢ㄦ埛鏄惁鎺堟潈 + String pid = pidManager.getPidCache(acceptData.getSystem(), Constant.SOURCE_TYPE_PDD, SystemPIDInfo.PidType.share); + if (VersionUtil.greaterThan_2_1_5(acceptData.getPlatform(), acceptData.getVersion())) { - if (!PinDuoDuoApiUtil.isAuth(PinDuoDuoApiUtil.PID_SHARE, pddAuthService.getFanliCustomParams(uid))) { + if (!PinDuoDuoApiUtil.isAuth(pid, pddAuthService.getFanliCustomParams(uid))) { out.print(JsonUtil.loadFalseResult(20001, "灏氭湭澶囨,璇峰厛澶囨")); return; } } else { - if (System.currentTimeMillis() > TimeUtil.convertToTimeTemp("2021-05-01", "yyyy-MM-dd") && !PinDuoDuoApiUtil.isAuth(PinDuoDuoApiUtil.PID_SHARE, pddAuthService.getFanliCustomParams(uid))) { + if (System.currentTimeMillis() > TimeUtil.convertToTimeTemp("2021-05-01", "yyyy-MM-dd") && !PinDuoDuoApiUtil.isAuth(pid, pddAuthService.getFanliCustomParams(uid))) { out.print(JsonUtil.loadFalseResult(20001, "璇峰崌绾у埌鏈�鏂扮増")); return; } @@ -920,7 +947,7 @@ // AESUtil.encrypt(uid + "", Constant.UIDAESKEY), // goodsId + ""); - String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goods.getGoodsSign(), PinDuoDuoApiUtil.PID_SHARE + "", uid + ""); + String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goods.getGoodsSign(), pid, pddAuthService.getFanliCustomParams(uid) + ""); SystemEnum system = SystemInfoUtil.getSystem(acceptData); @@ -933,7 +960,7 @@ if (needGoods) { shareInfo .setGoodsInfo(GoodsDetailVOFactory.convertPDDGoods(goods, - new ConfigParamsDTO(hongBaoManageService.getFanLiRate(acceptData.getSystem()), + new GoodsMoneyConfigParamsDTO(hongBaoManageService.getFanLiRate(acceptData.getSystem()), hongBaoManageService.getShareRate(acceptData.getSystem()), Constant.MAX_REWARD_RATE, hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP, acceptData.getSystem())))); } @@ -1101,7 +1128,7 @@ if (needGoods) { shareInfo .setGoodsInfo(GoodsDetailVOFactory.convertVIPGoods(goods, - new ConfigParamsDTO(hongBaoManageService.getFanLiRate(acceptData.getSystem()), + new GoodsMoneyConfigParamsDTO(hongBaoManageService.getFanLiRate(acceptData.getSystem()), hongBaoManageService.getShareRate(acceptData.getSystem()), Constant.MAX_REWARD_RATE, hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP, acceptData.getSystem())))); } @@ -1224,7 +1251,7 @@ String couponLink = goods.getCouponInfo().getCouponUrl(); String jumpLink = SuningApiUtil.convertLink(SuningUtil.getProductUrl(sts[0], sts[1]), - StringUtil.isNullOrEmpty(couponLink) ? null : couponLink, SuningApiUtil.PID_SHARE, uid + ""); + StringUtil.isNullOrEmpty(couponLink) ? null : couponLink, pidManager.getPidCache(acceptData.getSystem(), Constant.SOURCE_TYPE_SUNING, SystemPIDInfo.PidType.share), uid + ""); ShareInfoVO shareInfo = new ShareInfoVO(); shareInfo.setClickUrl(jumpLink); @@ -1236,7 +1263,7 @@ if (needGoods) { shareInfo .setGoodsInfo(GoodsDetailVOFactory.convertSuningGoods(goods, - new ConfigParamsDTO(hongBaoManageService.getFanLiRate(acceptData.getSystem()), + new GoodsMoneyConfigParamsDTO(hongBaoManageService.getFanLiRate(acceptData.getSystem()), hongBaoManageService.getShareRate(acceptData.getSystem()), Constant.MAX_REWARD_RATE, hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP, acceptData.getSystem())))); } @@ -1401,17 +1428,17 @@ } if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { - createTaoBaoViewText(goodsType, uid, template, Long.parseLong(goodsId), tljId, hasCoupon, out); + createTaoBaoViewText(acceptData.getSystem(), goodsType, uid, template, Long.parseLong(goodsId), tljId, hasCoupon, out); return; } if (goodsType == Constant.SOURCE_TYPE_JD) { - createJDViewText(goodsType, uid, template, Long.parseLong(goodsId), hasCoupon, out); + createJDViewText(acceptData.getSystem(), goodsType, uid, template, Long.parseLong(goodsId), hasCoupon, out); return; } if (goodsType == Constant.SOURCE_TYPE_PDD) { - createPDDViewText(goodsType, uid, template, Long.parseLong(goodsId), hasCoupon, out); + createPDDViewText(acceptData.getSystem(), goodsType, uid, template, Long.parseLong(goodsId), hasCoupon, out); return; } @@ -1421,7 +1448,7 @@ } if (goodsType == Constant.SOURCE_TYPE_SUNING) { - createSuNingViewText(goodsType, uid, template, goodsId, hasCoupon, out); + createSuNingViewText(acceptData.getSystem(), goodsType, uid, template, goodsId, hasCoupon, out); return; } } @@ -1437,7 +1464,7 @@ * @param hasCoupon * @param out */ - private void createTaoBaoViewText(Integer goodsType, Long uid, String template, Long goodsId, Long tljId, + private void createTaoBaoViewText(SystemEnum system, Integer goodsType, Long uid, String template, Long goodsId, Long tljId, Boolean hasCoupon, PrintWriter out) { TaoBaoGoodsBrief goods = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(goodsId); if (goods == null) @@ -1472,11 +1499,12 @@ } if (StringUtil.isNullOrEmpty(token)) { + String pid = pidManager.getPidCache(system, Constant.SOURCE_TYPE_TAOBAO, SystemPIDInfo.PidType.share); TaoKeAppInfo app = new TaoKeAppInfo(); - app.setAdzoneId(TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT.split("_")[3]); + app.setAdzoneId(pid.split("_")[3]); app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY); app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET); - app.setPid(TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT); + app.setPid(pid); TaoBaoGoodsBrief goodsLink = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app, null, null); if (goodsLink != null) token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), @@ -1499,7 +1527,7 @@ * @param hasCoupon * @param out */ - private void createJDViewText(Integer goodsType, Long uid, String template, Long goodsId, Boolean hasCoupon, + private void createJDViewText(SystemEnum system, Integer goodsType, Long uid, String template, Long goodsId, Boolean hasCoupon, PrintWriter out) { JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(goodsId); if (goods == null) { @@ -1525,7 +1553,7 @@ couponUrl = couponInfo.getLink(); } String materialId = "https://item.jd.com/" + goodsId + ".html"; - String shortLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, JDApiUtil.POSITION_SHARE + "", + String shortLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, pidManager.getPidCache(system, Constant.SOURCE_TYPE_JD, SystemPIDInfo.PidType.share), uid + ""); String content = shareGoodsTextTemplateService.createContentJD(template, goods, shortLink, hasCoupon); @@ -1544,7 +1572,7 @@ * @param hasCoupon * @param out */ - private void createPDDViewText(Integer goodsType, Long uid, String template, Long goodsId, Boolean hasCoupon, + private void createPDDViewText(SystemEnum system, Integer goodsType, Long uid, String template, Long goodsId, Boolean hasCoupon, PrintWriter out) { PDDGoodsDetail goods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId); if (goods == null) { @@ -1572,7 +1600,7 @@ // goodsId + ""); // String shortLink = HttpUtil.getShortLink(url); - String shortLink = PinDuoDuoApiUtil.getPromotionUrl(goods.getGoodsSign(), PinDuoDuoApiUtil.PID_SHARE + "", uid + ""); + String shortLink = PinDuoDuoApiUtil.getPromotionUrl(goods.getGoodsSign(), pidManager.getPidCache(system, Constant.SOURCE_TYPE_PDD, SystemPIDInfo.PidType.share), uid + ""); // // 鍒涘缓鍙d护 // String token = PinDuoDuoApiUtil.createGenerate(goodsId); @@ -1626,7 +1654,7 @@ } - private void createSuNingViewText(Integer goodsType, Long uid, String template, String goodsId, Boolean hasCoupon, + private void createSuNingViewText(SystemEnum system, Integer goodsType, Long uid, String template, String goodsId, Boolean hasCoupon, PrintWriter out) { String[] ids = SuningUtil.getGoodsIdDetail(goodsId); SuningGoodsInfo goods = SuningApiUtil.getGoodsDetail(ids[1], ids[0]); @@ -1649,7 +1677,7 @@ String couponLink = goods.getCouponInfo().getCouponUrl(); String jumpLink = SuningApiUtil.convertLink(SuningUtil.getProductUrl(ids[0], ids[1]), - StringUtil.isNullOrEmpty(couponLink) ? null : couponLink, SuningApiUtil.PID_SHARE, uid + ""); + StringUtil.isNullOrEmpty(couponLink) ? null : couponLink, pidManager.getPidCache(system, Constant.SOURCE_TYPE_SUNING, SystemPIDInfo.PidType.share), uid + ""); // 鐢熸垚鏅�氬垎浜唴瀹� String content = shareGoodsTextTemplateService.createCommonShareTextSuNing(template, goods, jumpLink); @@ -1862,7 +1890,7 @@ } } - ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), + GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), acceptData.getVersion(), acceptData.getSystem()); Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) @@ -1904,6 +1932,7 @@ dataObject.put("totalMoney", "楼" + goodsGroup.getTotalMoney()); GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, paramsDTO); + detailVO.setCreatetime(null); detailVO.setId(commonGoods.getId()); dataObject.put("goods", gson.toJson(detailVO)); array.add(dataObject); @@ -1934,7 +1963,7 @@ } GoodsDetailVO goodsDetail = null; - ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), + GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), acceptData.getVersion(), acceptData.getSystem()); paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(acceptData.getSystem())); -- Gitblit v1.8.0