From 0912f56a392bdf48315747c64ec0c18bf0aa29a6 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 30 六月 2021 19:07:11 +0800 Subject: [PATCH] 礼金红包兼容 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java | 84 ++++++++++++++++++++++++++---------------- 1 files changed, 52 insertions(+), 32 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 4811164..d453354 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 @@ -11,7 +11,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; @@ -23,7 +26,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; @@ -145,6 +148,12 @@ @Resource private UserTaoLiJinRecordService userTaoLiJinRecordService; + @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<>(); @@ -247,7 +256,7 @@ commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘"); commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", ""); } else { - commentText = commentText.replace("[鍒稿悗浠穄", TaoBaoUtil.getAfterUseCouplePrice(goods) + ""); + commentText = commentText.replace("[鍒稿悗浠穄", TaoBaoUtil.getCouponPrice(goods) + ""); } commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n"); @@ -414,7 +423,7 @@ .replace("{鍟嗗搧鍘熶环}", MoneyBigDecimalUtil.getWithNoZera(goods.getZkPrice()) + "") .replace("{浼樻儬鍒搁潰棰潁", MoneyBigDecimalUtil.getWithNoZera(goods.getCouponAmount()).toString()) .replace("{娣樼ぜ閲戦潰棰潁", MoneyBigDecimalUtil.getWithNoZera(spreadMoney).toString()) - .replace("{浼樻儬鍒镐环}", TaoBaoUtil.getAfterUseCouplePrice(goods) + ""); + .replace("{浼樻儬鍒镐环}", TaoBaoUtil.getCouponPrice(goods) + ""); } shareText = shareText.replace("{搴楅摵绫诲瀷}", shopType) @@ -497,10 +506,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); } @@ -645,7 +654,7 @@ commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", ""); } else { commentText = commentText.replace("[鍒稿悗浠穄", - TaoBaoUtil.getAfterUseCouplePrice(taoBaoLink.getGoods()) + ""); + TaoBaoUtil.getCouponPrice(taoBaoLink.getGoods()) + ""); } if (StringUtil.isNullOrEmpty(taoBaoLink.getGoods().getCouponInfo())) { @@ -734,9 +743,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(); @@ -825,7 +835,7 @@ recommendText = recommendText.replace("[鍒搁潰棰漖", BigDecimalUtil.getWithNoZera(couponInfo.getDiscount()).toString()); commentText = commentText.replace("[鍒稿悗浠穄", - BigDecimalUtil.getWithNoZera(JDUtil.getQuanPrice(jdGoods)).toString()); + BigDecimalUtil.getWithNoZera(JDUtil.getCouponPrice(jdGoods)).toString()); } commentText = commentText.replace("[閾炬帴]", jumpLink); } else { @@ -891,9 +901,17 @@ //鏌ヨ褰撳墠鐢ㄦ埛鏄惁鎺堟潈 + 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, PinDuoDuoUtil.getCustomParams(uid))) { - JsonUtil.loadFalseResult(20001, "灏氭湭澶囨,璇峰厛澶囨"); + 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(pid, pddAuthService.getFanliCustomParams(uid))) { + out.print(JsonUtil.loadFalseResult(20001, "璇峰崌绾у埌鏈�鏂扮増")); + return; } } @@ -910,7 +928,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); @@ -923,7 +941,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())))); } @@ -1007,7 +1025,7 @@ recommendText = recommendText.replace("浼樻儬鍒�:[鍒搁潰棰漖鍏�", ""); } else { commentText = commentText.replace("[鍒稿悗浠穄", - BigDecimalUtil.getWithNoZera(PinDuoDuoUtil.getQuanPrice(goods)).toString()); + BigDecimalUtil.getWithNoZera(PinDuoDuoUtil.getCouponPrice(goods)).toString()); BigDecimal hundred = new BigDecimal(100); BigDecimal amount = MoneyBigDecimalUtil.div(new BigDecimal(goods.getCouponDiscount()), hundred); @@ -1091,7 +1109,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())))); } @@ -1214,7 +1232,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); @@ -1226,7 +1244,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())))); } @@ -1391,17 +1409,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; } @@ -1411,7 +1429,7 @@ } if (goodsType == Constant.SOURCE_TYPE_SUNING) { - createSuNingViewText(goodsType, uid, template, goodsId, hasCoupon, out); + createSuNingViewText(acceptData.getSystem(), goodsType, uid, template, goodsId, hasCoupon, out); return; } } @@ -1427,7 +1445,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) @@ -1462,11 +1480,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(), @@ -1489,7 +1508,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) { @@ -1515,7 +1534,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); @@ -1534,7 +1553,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) { @@ -1562,7 +1581,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); @@ -1616,7 +1635,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]); @@ -1639,7 +1658,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); @@ -1852,7 +1871,7 @@ } } - ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), + GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), acceptData.getVersion(), acceptData.getSystem()); Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) @@ -1894,6 +1913,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); @@ -1924,7 +1944,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