From e1a62ec62e7331d97af9302e90e1ce44af8235eb Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 27 一月 2021 15:26:55 +0800 Subject: [PATCH] 拼多多授权绑定 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java | 298 +++++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 198 insertions(+), 100 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java index 4415aa6..fa5ef77 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java @@ -10,6 +10,10 @@ import javax.annotation.Resource; import com.yeshi.fanli.entity.SystemEnum; +import com.yeshi.fanli.entity.SystemFunction; +import com.yeshi.fanli.service.inter.pdd.PDDAuthService; +import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService; +import com.yeshi.fanli.util.*; import org.json.simple.JSONArray; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -27,7 +31,7 @@ import com.yeshi.fanli.dto.pdd.PDDSearchFilter; import com.yeshi.fanli.dto.suning.SuningGoodsInfo; import com.yeshi.fanli.dto.suning.SuningGoodsInfoRecommend; -import com.yeshi.fanli.dto.taobao.DaTaoKeFilterResult; +import com.yeshi.goods.facade.dto.taobao.dataoke.DaTaoKeFilterResult; import com.yeshi.fanli.dto.vip.VIPConvertResultDTO; import com.yeshi.fanli.dto.vip.goods.VIPGoodsInfo; import com.yeshi.fanli.entity.accept.AcceptData; @@ -48,10 +52,10 @@ import com.yeshi.fanli.entity.taobao.ClientTBPid; import com.yeshi.fanli.entity.taobao.TLJBuyGoods; import com.yeshi.fanli.entity.taobao.TLJFreeBuyGoods; -import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; -import com.yeshi.fanli.entity.taobao.TaoBaoShop; +import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief; +import com.yeshi.common.entity.taobao.TaoBaoShop; import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig; -import com.yeshi.fanli.entity.taobao.TaoKeAppInfo; +import com.yeshi.common.entity.taobao.TaoKeAppInfo; import com.yeshi.fanli.exception.taobao.TaoKeApiException; import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; import com.yeshi.fanli.exception.taobao.TaobaoGoodsUpdateException; @@ -74,7 +78,7 @@ import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService; import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService; import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService; -import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service; +import com.yeshi.goods.facade.service.DaTaoKeGoodsDetailV2Service; import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService; import com.yeshi.fanli.service.inter.user.ShamUserService; import com.yeshi.fanli.service.inter.user.TBPidService; @@ -85,18 +89,12 @@ import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService; import com.yeshi.fanli.service.inter.user.vip.UserVipConfigService; import com.yeshi.fanli.service.manger.user.UserLevelManager; -import com.yeshi.fanli.util.Constant; -import com.yeshi.fanli.util.MoneyBigDecimalUtil; -import com.yeshi.fanli.util.RedisManager; -import com.yeshi.fanli.util.StringUtil; -import com.yeshi.fanli.util.TaoBaoConstant; -import com.yeshi.fanli.util.ThreadUtil; -import com.yeshi.fanli.util.TimeUtil; -import com.yeshi.fanli.util.VersionUtil; +import org.yeshi.utils.MoneyBigDecimalUtil; +import org.yeshi.utils.TimeUtil; import com.yeshi.fanli.util.cache.JDGoodsCacheUtil; import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil; import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil; -import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil; +import com.yeshi.goods.facade.utils.taobao.DaTaoKeApiUtil; import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory; import com.yeshi.fanli.util.factory.goods.ShopInfoVOFactory; import com.yeshi.fanli.util.jd.JDApiUtil; @@ -118,7 +116,7 @@ import com.yeshi.fanli.vo.goods.RewardCouponVO; import com.yeshi.fanli.vo.goods.ShareVO; import com.yeshi.fanli.vo.goods.ShopInfoVO; -import com.yeshi.fanli.vo.msg.ClientTextStyleVO; +import com.yeshi.common.vo.ClientTextStyleVO; import com.yeshi.fanli.vo.tlj.NewUserHongBao; import com.yeshi.fanli.vo.tlj.ReduceHongBao; @@ -141,9 +139,6 @@ private TaoBaoGoodsCacheUtil taoBaoGoodsCacheUtil; @Resource - private RedisManager redisManager; - - @Resource private TaoBaoShopService taoBaoShopService; @Resource @@ -151,9 +146,6 @@ @Resource private CollectionGoodsV2Service collectionGoodsV2Service; - - @Resource - private TaoBaoGoodsBriefService taoBaoGoodsBriefService; @Resource private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService; @@ -172,15 +164,6 @@ @Resource private UserGoodsStorageService userGoodsStorageService; - - @Resource - private ConfigTaoLiJinService configTaoLiJinService; - - @Resource - private UserInfoExtraService userInfoExtraService; - - @Resource - private UserMoneyExtraService userMoneyExtraService; @Resource private ScanHistoryV2Service scanHistoryV2Service; @@ -209,8 +192,6 @@ @Resource private TLJFreeBuyGoodsService tljFreeBuyGoodsService; - @Resource - private UserTaoLiJinNewbiesService userTaoLiJinNewbiesService; @Resource private UserVIPInfoService userVIPInfoService; @@ -227,6 +208,13 @@ @Resource private HongBaoManageService hongBaoManageService; + @Resource + private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; + + + @Resource + private PDDAuthService pddAuthService; + private ConfigParamsDTO getParamsDTO(String platform, String version, Long uid, SystemEnum system) { UserLevelEnum level = UserLevelEnum.daRen; if (uid != null && uid > 0) { @@ -239,7 +227,7 @@ if (level == null) level = UserLevelEnum.daRen; - return orderHongBaoMoneyComputeService.getShowComputeRate(platform, version, level,system); + return orderHongBaoMoneyComputeService.getShowComputeRate(platform, version, level, system); } private TaoBaoGoodsBrief filterDaTaoKeGoodsInfo(TaoBaoGoodsBrief goods) { @@ -291,7 +279,7 @@ } BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), - acceptData.getPackages(),acceptData.getSystem()); + acceptData.getPackages(), acceptData.getSystem()); if (system == null) { out.print(JsonUtil.loadFalseResult(1, "绯荤粺涓嶅瓨鍦�")); return; @@ -370,7 +358,7 @@ try { goods = TaoKeApiUtil.searchGoodsDetail(id, app); if (goods.getTkRate() == null || new BigDecimal(0).compareTo(goods.getTkRate()) == 0) { - TaoBaoGoodsBrief linkInfo = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app); + TaoBaoGoodsBrief linkInfo = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app, null, null); if (linkInfo != null) { goods.setAuctionUrl(linkInfo.getAuctionUrl()); goods.setCouponLink(linkInfo.getCouponLink()); @@ -407,6 +395,7 @@ TaoBaoGoodsBrief tb = goods; + if (tb == null) { out.print(JsonUtil.loadFalseResult(2, "鍟嗗搧涓嶅瓨鍦�")); return; @@ -416,7 +405,14 @@ tb.setImgList(new ArrayList<>()); } - // tb.getImgList().add(0, tb.getPictUrl()); + + if (uid != null && uid > 0) { + String specialId = userExtraTaoBaoInfoService.getSpecialIdByUid(uid); + //鑾峰彇鏈�鏂扮殑姣斾緥 + TaoBaoGoodsBrief rateGoods = TaoKeApiUtil.specialConvertCoupon(tb.getAuctionId(), TaoBaoConstant.getSpecialAuthAppInfo(), specialId, null); + if (rateGoods != null) + tb.setMinTkRate(rateGoods.getTkRate()); + } List<String> finalImgList = new ArrayList<>(); for (String img : tb.getImgList()) { @@ -449,14 +445,14 @@ LogHelper.errorDetailInfo(e); } - ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), uid,acceptData.getSystem()); + ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), uid, acceptData.getSystem()); paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(acceptData.getSystem())); GoodsDetailVO goodsDetail = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO); if (goodsDetail != null && goodsDetail.getMoneyInfo() != null && userVIPInfoService.isVIP(uid)) { goodsDetail.getMoneyInfo().setFanliMoney(goodsDetail.getMoneyInfo().getMaxMoney()); goodsDetail.getMoneyInfo().setShareMoney("楼" + TaoBaoUtil.getGoodsHongBaoMoney(goods, - hongBaoManageService.getShareRate(UserLevelEnum.superVIP,acceptData.getSystem()), true)); + hongBaoManageService.getShareRate(UserLevelEnum.superVIP, acceptData.getSystem()), true)); goodsDetail.getMoneyInfo().setRateInfo(goodsDetail.getMoneyInfo().getMaxRateInfo()); goodsDetail.getMoneyInfo().setCompositionInfo(goodsDetail.getMoneyInfo().getMaxCompositionInfo()); } @@ -698,7 +694,7 @@ // uid=2255993L; // 绯荤粺楠岃瘉 BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), - acceptData.getPackages(),acceptData.getSystem()); + acceptData.getPackages(), acceptData.getSystem()); if (system == null) { out.print(JsonUtil.loadFalseResult(1, "绯荤粺涓嶅瓨鍦�")); return; @@ -724,13 +720,13 @@ // 淇濆瓨缂撳瓨 jdGoodsCacheUtil.saveGoodsInfo(jdGoods); - ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), uid,acceptData.getSystem()); + ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), uid, acceptData.getSystem()); paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(acceptData.getSystem())); GoodsDetailVO goodsDetail = GoodsDetailVOFactory.convertJDGoods(jdGoods, paramsDTO); if (goodsDetail != null && goodsDetail.getMoneyInfo() != null && userVIPInfoService.isVIP(uid)) { goodsDetail.getMoneyInfo().setFanliMoney(goodsDetail.getMoneyInfo().getMaxMoney()); goodsDetail.getMoneyInfo().setShareMoney("楼" - + JDUtil.getGoodsFanLiMoney(jdGoods, hongBaoManageService.getShareRate(UserLevelEnum.superVIP,acceptData.getSystem()))); + + JDUtil.getGoodsFanLiMoney(jdGoods, hongBaoManageService.getShareRate(UserLevelEnum.superVIP, acceptData.getSystem()))); goodsDetail.getMoneyInfo().setRateInfo(goodsDetail.getMoneyInfo().getMaxRateInfo()); goodsDetail.getMoneyInfo().setCompositionInfo(goodsDetail.getMoneyInfo().getMaxCompositionInfo()); } @@ -759,7 +755,7 @@ // 浣跨敤濂栧姳鍒告渶楂樿繑 if (VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion())) { maxMoneyPlus = "锛堜含涓減lus杩斅�" + JDUtil.getGoodsFanLiMoneyPlus(jdGoods, - hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP,acceptData.getSystem())) + "锛�"; + hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP, acceptData.getSystem())) + "锛�"; } else maxMoneyPlus = "锛堜含涓減lus鏈�楂樿繑楼" + fanliMoneyPlus.add(MoneyBigDecimalUtil.mul(fanliMoneyPlus, Constant.MAX_REWARD_RATE)) @@ -799,7 +795,7 @@ if (couponInfo != null) { // 鍒搁摼鎺ュ鐞� String materialId = "https://item.jd.com/" + id + ".html"; - String url = JDApiUtil.convertLinkWithSubUnionId(materialId, couponInfo.getLink(), + String url = JDApiUtil.convertLinkWithSubUnionId(materialId, couponInfo.getLink(), null, JDApiUtil.POSITION_COUPON + "", null); couponInfo.setLink(url); } @@ -926,26 +922,26 @@ public void getDetialPDD(AcceptData acceptData, Long id, Long uid, String from, PrintWriter out) { // 绯荤粺楠岃瘉 BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), - acceptData.getPackages(),acceptData.getSystem()); + acceptData.getPackages(), acceptData.getSystem()); if (system == null) { out.print(JsonUtil.loadFalseResult(1, "绯荤粺涓嶅瓨鍦�")); return; } - PDDGoodsDetail pddGoods = PinDuoDuoApiUtil.getGoodsDetail(id); + PDDGoodsDetail pddGoods = PinDuoDuoApiUtil.getGoodsDetail(id, PinDuoDuoApiUtil.PID_FANLI, pddAuthService.getFanliCustomParams(uid)); if (pddGoods == null) { out.print(JsonUtil.loadFalseResult(2, "鍟嗗搧涓嶅瓨鍦�")); return; } - ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), uid,acceptData.getSystem()); + ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), uid, acceptData.getSystem()); paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(acceptData.getSystem())); GoodsDetailVO goodsDetail = GoodsDetailVOFactory.convertPDDGoods(pddGoods, paramsDTO); if (goodsDetail != null && goodsDetail.getMoneyInfo() != null && userVIPInfoService.isVIP(uid)) { goodsDetail.getMoneyInfo().setFanliMoney(goodsDetail.getMoneyInfo().getMaxMoney()); - goodsDetail.getMoneyInfo().setShareMoney("楼" + PinDuoDuoUtil.getGoodsFanLiMoney(pddGoods, - hongBaoManageService.getShareRate(UserLevelEnum.superVIP,acceptData.getSystem()))); + goodsDetail.getMoneyInfo().setShareMoney("楼" + PinDuoDuoUtil.getGoodsShareMoney(pddGoods, + hongBaoManageService.getShareRate(UserLevelEnum.superVIP, acceptData.getSystem()))); goodsDetail.getMoneyInfo().setRateInfo(goodsDetail.getMoneyInfo().getMaxRateInfo()); goodsDetail.getMoneyInfo().setCompositionInfo(goodsDetail.getMoneyInfo().getMaxCompositionInfo()); } @@ -979,7 +975,7 @@ CouponInfoVO couponInfo = goodsDetail.getCouponInfo(); PDDPromotionUrl convertUrl = null; if (couponInfo != null) { - convertUrl = PinDuoDuoApiUtil.convert(id, PinDuoDuoApiUtil.PID_COUPON + "", null); + convertUrl = PinDuoDuoApiUtil.convert(id, PinDuoDuoApiUtil.PID_COUPON + "", null, false); if (convertUrl != null) couponInfo.setLink(convertUrl.getUrl()); } @@ -1077,6 +1073,14 @@ getCloudInfo(acceptData, uid, goodsDetail, extraVO); // 浜戝彂鍗曟枃妗堜俊鎭� } + if (extraVO.getListCouponUser() == null) { + extraVO.setListCouponUser(new ArrayList<>()); + } + + if (extraVO.getListShareUser() == null) { + extraVO.setListShareUser(new ArrayList<>()); + } + // 鍏嶅崟鍟嗗搧 if (!StringUtil.isNullOrEmpty(from) && "miandan".equals(from)) { MoneyInfoVO moneyInfo = goodsDetail.getMoneyInfo(); @@ -1124,7 +1128,7 @@ public void getDetialVIP(AcceptData acceptData, Long id, Long uid, String from, PrintWriter out) { // 绯荤粺楠岃瘉 BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), - acceptData.getPackages(),acceptData.getSystem()); + acceptData.getPackages(), acceptData.getSystem()); if (system == null) { out.print(JsonUtil.loadFalseResult(1, "绯荤粺涓嶅瓨鍦�")); return; @@ -1136,14 +1140,14 @@ return; } - ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), uid,acceptData.getSystem()); + ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), uid, acceptData.getSystem()); paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(acceptData.getSystem())); GoodsDetailVO goodsDetail = GoodsDetailVOFactory.convertVIPGoods(vipGoodsInfo, paramsDTO); if (goodsDetail != null && goodsDetail.getMoneyInfo() != null && userVIPInfoService.isVIP(uid)) { goodsDetail.getMoneyInfo().setFanliMoney(goodsDetail.getMoneyInfo().getMaxMoney()); goodsDetail.getMoneyInfo().setShareMoney("楼" + VipShopUtil.getGoodsFanLiMoney(vipGoodsInfo, - hongBaoManageService.getShareRate(UserLevelEnum.superVIP,acceptData.getSystem()))); + hongBaoManageService.getShareRate(UserLevelEnum.superVIP, acceptData.getSystem()))); goodsDetail.getMoneyInfo().setRateInfo(goodsDetail.getMoneyInfo().getMaxRateInfo()); goodsDetail.getMoneyInfo().setCompositionInfo(goodsDetail.getMoneyInfo().getMaxCompositionInfo()); } @@ -1223,6 +1227,14 @@ shareInfoVO.setHelpLink(helpLink); extraVO.setShare(shareInfoVO); + if (extraVO.getListShareUser() == null) { + extraVO.setListShareUser(new ArrayList<>()); + } + + if (extraVO.getListCouponUser() == null) { + extraVO.setListCouponUser(new ArrayList<>()); + } + // 浜戝彂鍗曟枃妗堜俊鎭� getCloudInfo(acceptData, uid, goodsDetail, extraVO); @@ -1253,7 +1265,7 @@ public void getDetialSuning(AcceptData acceptData, String id, Long uid, String from, PrintWriter out) { // 绯荤粺楠岃瘉 BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), - acceptData.getPackages(),acceptData.getSystem()); + acceptData.getPackages(), acceptData.getSystem()); if (system == null) { out.print(JsonUtil.loadFalseResult(1, "绯荤粺涓嶅瓨鍦�")); return; @@ -1268,14 +1280,14 @@ return; } - ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), uid,acceptData.getSystem()); + ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), uid, acceptData.getSystem()); paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(acceptData.getSystem())); GoodsDetailVO goodsDetail = GoodsDetailVOFactory.convertSuningGoods(suningGoodsInfo, paramsDTO); if (goodsDetail != null && goodsDetail.getMoneyInfo() != null && userVIPInfoService.isVIP(uid)) { goodsDetail.getMoneyInfo().setFanliMoney(goodsDetail.getMoneyInfo().getMaxMoney()); goodsDetail.getMoneyInfo().setShareMoney("楼" + SuningUtil.getGoodsFanLiMoney(suningGoodsInfo, - hongBaoManageService.getShareRate(UserLevelEnum.superVIP,acceptData.getSystem()))); + hongBaoManageService.getShareRate(UserLevelEnum.superVIP, acceptData.getSystem()))); goodsDetail.getMoneyInfo().setRateInfo(goodsDetail.getMoneyInfo().getMaxRateInfo()); goodsDetail.getMoneyInfo().setCompositionInfo(goodsDetail.getMoneyInfo().getMaxCompositionInfo()); } @@ -1356,6 +1368,14 @@ ShareVO shareInfoVO = new ShareVO(); shareInfoVO.setHelpLink(helpLink); extraVO.setShare(shareInfoVO); + + if (extraVO.getListShareUser() == null) { + extraVO.setListShareUser(new ArrayList<>()); + } + + if (extraVO.getListCouponUser() == null) { + extraVO.setListCouponUser(new ArrayList<>()); + } // 浜戝彂鍗曟枃妗堜俊鎭� getCloudInfo(acceptData, uid, goodsDetail, extraVO); @@ -1466,7 +1486,7 @@ list = list.subList(0, 10); } - ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), null,acceptData.getSystem()); + ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), null, acceptData.getSystem()); List<GoodsDetailVO> listDetailVO = new ArrayList<GoodsDetailVO>(); for (JDGoods goods : list) { @@ -1498,7 +1518,7 @@ Long[] strings = new Long[goodsIdList.size()]; pddfilter.setGoodsIdList(goodsIdList.toArray(strings)); - PDDGoodsResult result = PinDuoDuoApiUtil.searchGoods(pddfilter); + PDDGoodsResult result = PinDuoDuoApiUtil.searchGoods(pddfilter, Constant.PDD_SEARCH_CUSTOMER_PARAMS); if (result != null) { List<PDDGoodsDetail> goodsList = result.getGoodsList(); if (goodsList != null && goodsList.size() > 0) { @@ -1508,7 +1528,7 @@ } ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), - null,acceptData.getSystem()); + null, acceptData.getSystem()); for (PDDGoodsDetail goods : goodsList) { listDetailVO.add(GoodsDetailVOFactory.convertPDDGoods(goods, paramsDTO)); } @@ -1554,7 +1574,7 @@ if (resultList != null) { if (resultList != null && resultList.size() > 0) { ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), - acceptData.getVersion(),acceptData.getSystem()); + acceptData.getVersion(), acceptData.getSystem()); for (SuningGoodsInfo goods : resultList) { GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertSuningGoods(goods, paramsDTO); @@ -1577,7 +1597,7 @@ } List<GoodsDetailVO> listExtra = new ArrayList<GoodsDetailVO>(); - ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), null,acceptData.getSystem()); + ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), null, acceptData.getSystem()); goodsList.parallelStream().forEach(goods -> { if (goods != null) { listExtra.add(GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO)); @@ -1607,6 +1627,49 @@ } } + + /** + * 鑾峰彇浜笢棰嗗埜閾炬帴锛堜笉杩斿埄锛� + * + * @param acceptData + * @param id + * @param couponUrl + * @param source + * @param out + */ + private void getJDLinkWithoutFanLi(AcceptData acceptData, Long id, String couponUrl, String source, PrintWriter out) { + JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(id); + if (goods == null) { + out.print(JsonUtil.loadFalseResult(2, "鍟嗗搧宸蹭笅鏋�")); + return; + } + String jumpLink = null; + String materialId = "https://item.jd.com/" + id + ".html"; + if (StringUtil.isNullOrEmpty(couponUrl)) { + JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(goods.getCouponInfoList(), goods.getPrice()); + if (couponInfo != null) { + couponUrl = couponInfo.getLink(); + } + jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, JDApiUtil.POSITION_COUPON + "", + ""); + if (jumpLink == null) { + jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, null, null, JDApiUtil.POSITION_COUPON + "", + ""); + } + } else { + jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, JDApiUtil.POSITION_COUPON + "", + ""); + if (StringUtil.isNullOrEmpty(jumpLink)) { + jumpLink = couponUrl; + } + } + + JSONObject data = new JSONObject(); + data.put("native", true); + data.put("jumpLink", jumpLink); + out.print(JsonUtil.loadTrueResult(data)); + } + /** * 浜笢璐拱閾炬帴 * @@ -1619,15 +1682,23 @@ */ @RequestMapping(value = "getJDLink") public void getJDLink(AcceptData acceptData, Long uid, Long id, String couponUrl, String source, PrintWriter out) { - if (uid == null || uid <= 0) { - out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛ID涓嶈兘涓虹┖")); - return; - } + if (id == null || id <= 0) { out.print(JsonUtil.loadFalseResult(1, "鍟嗗搧ID涓嶈兘涓虹┖")); return; } + + if (!SystemInfoUtil.hasFunctions(acceptData.getSystem(), SystemFunction.fanli)) { + getJDLinkWithoutFanLi(acceptData, id, couponUrl, source, out); + return; + } + + if (uid == null || uid <= 0) { + out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛ID涓嶈兘涓虹┖")); + return; + } + UserInfo user = userInfoService.getUserByIdWithMybatis(uid); if (user != null && user.getState() != UserInfo.STATE_NORMAL) { @@ -1648,14 +1719,14 @@ if (couponInfo != null) { couponUrl = couponInfo.getLink(); } - jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_FANLI + "", + jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, JDApiUtil.POSITION_FANLI + "", uid + ""); if (jumpLink == null) { - jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, null, JDApiUtil.POSITION_FANLI + "", + jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, null, null, JDApiUtil.POSITION_FANLI + "", uid + ""); } } else { - jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_FANLI + "", + jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, JDApiUtil.POSITION_FANLI + "", uid + ""); if (StringUtil.isNullOrEmpty(jumpLink)) { jumpLink = couponUrl; @@ -1685,7 +1756,7 @@ String jumpLink = null; String materialId = "https://item.jd.com/" + id + ".html"; - jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_FANLI + "", null); + jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, JDApiUtil.POSITION_FANLI + "", null); if (StringUtil.isNullOrEmpty(jumpLink)) { jumpLink = couponUrl; } @@ -1707,21 +1778,31 @@ */ @RequestMapping(value = "getPDDLink") public void getPDDLink(AcceptData acceptData, Long uid, Long id, String source, PrintWriter out) { - if (uid == null || uid <= 0) { - out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛ID涓嶈兘涓虹┖")); - return; - } if (id == null || id <= 0) { out.print(JsonUtil.loadFalseResult(1, "鍟嗗搧ID涓嶈兘涓虹┖")); return; } - UserInfo user = userInfoService.getUserByIdWithMybatis(uid); - if (user != null && user.getState() != UserInfo.STATE_NORMAL) { - out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); - return; + String pid = PinDuoDuoApiUtil.PID_FANLI; + //鍙槸棰嗗埜 + if (!SystemInfoUtil.hasFunctions(acceptData.getSystem(), SystemFunction.fanli)) { + pid = PinDuoDuoApiUtil.PID_COUPON; + uid = null; + } else { + if (uid == null || uid <= 0) { + out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛ID涓嶈兘涓虹┖")); + return; + } + + UserInfo user = userInfoService.getUserByIdWithMybatis(uid); + if (user != null && user.getState() != UserInfo.STATE_NORMAL) { + out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); + return; + } + } + PDDGoodsDetail goods = pinDuoDuoCacheUtil.getGoodsInfo(id); if (goods == null) { @@ -1729,12 +1810,15 @@ return; } - PDDPromotionUrl convertUrl = PinDuoDuoApiUtil.convert(id, PinDuoDuoApiUtil.PID_FANLI + "", uid + ""); + //TODO 鏄惁闇�瑕佽繑鍥炵粦瀹氶摼鎺� + String customParams = pddAuthService.getFanliCustomParams(uid); + boolean auth = PinDuoDuoApiUtil.isAuth(pid, customParams); + PDDPromotionUrl convertUrl = PinDuoDuoApiUtil.convert(id, pid + "", customParams, !auth); JSONObject data = new JSONObject(); data.put("native", true); - data.put("jumpLink", convertUrl.getUrl()); data.put("nativeJumpLink", PinDuoDuoUtil.getAndroidNativeURI(convertUrl.getUrl())); + LogHelper.test(String.format("鎷煎澶氳浆閾�:uid:%s data:%s", uid + "", data.toString())); out.print(JsonUtil.loadTrueResult(data)); // 鑾峰緱閲戝竵 @@ -1752,20 +1836,28 @@ */ @RequestMapping(value = "getVIPLink") public void getVIPLink(AcceptData acceptData, Long uid, Long id, String source, PrintWriter out) { - if (uid == null || uid <= 0) { - out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛ID涓嶈兘涓虹┖")); - return; - } - if (id == null || id <= 0) { out.print(JsonUtil.loadFalseResult(1, "鍟嗗搧ID涓嶈兘涓虹┖")); return; } - UserInfo user = userInfoService.getUserByIdWithMybatis(uid); - if (user != null && user.getState() != UserInfo.STATE_NORMAL) { - out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); - return; + String tag = null; + //鍙槸棰嗗埜 + if (!SystemInfoUtil.hasFunctions(acceptData.getSystem(), SystemFunction.fanli)) { + tag = VipShopUtil.getCouponChanTag(); + } else { + if (uid == null || uid <= 0) { + out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛ID涓嶈兘涓虹┖")); + return; + } + + UserInfo user = userInfoService.getUserByIdWithMybatis(uid); + if (user != null && user.getState() != UserInfo.STATE_NORMAL) { + out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); + return; + } + + tag = VipShopUtil.getBuyChanTag(uid); } VIPGoodsInfo goods = VipShopApiUtil.getGoodsDetail(id + ""); @@ -1774,7 +1866,7 @@ return; } - VIPConvertResultDTO convertUrl = VipShopApiUtil.convertLink(id + "", VipShopUtil.getBuyChanTag(uid)); + VIPConvertResultDTO convertUrl = VipShopApiUtil.convertLink(id + "", tag); JSONObject data = new JSONObject(); data.put("native", true); data.put("jumpLink", convertUrl.getUrl()); @@ -1787,21 +1879,27 @@ @RequestMapping(value = "getSuningLink") public void getSuningLink(AcceptData acceptData, Long uid, String id, String source, PrintWriter out) { - if (uid == null || uid <= 0) { - out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛ID涓嶈兘涓虹┖")); - return; - } - if (StringUtil.isNullOrEmpty(id)) { out.print(JsonUtil.loadFalseResult(1, "鍟嗗搧ID涓嶈兘涓虹┖")); return; } - UserInfo user = userInfoService.getUserByIdWithMybatis(uid); - if (user != null && user.getState() != UserInfo.STATE_NORMAL) { - out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); - return; + String pid = SuningApiUtil.PID_BUY; + if (!SystemInfoUtil.hasFunctions(acceptData.getSystem(), SystemFunction.fanli)) { + pid = SuningApiUtil.PID_COUPON; + uid = null; + } else { + if (uid == null || uid <= 0) { + out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛ID涓嶈兘涓虹┖")); + return; + } + UserInfo user = userInfoService.getUserByIdWithMybatis(uid); + if (user != null && user.getState() != UserInfo.STATE_NORMAL) { + out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); + return; + } } + String[] sts = SuningUtil.getGoodsIdDetail(id); String supplierCode = sts[0]; @@ -1817,7 +1915,7 @@ if (!StringUtil.isNullOrEmpty(goods.getCouponInfo().getCouponUrl())) quanUrl = goods.getCouponInfo().getCouponUrl(); String link = SuningApiUtil.convertLink(SuningUtil.getProductUrl(supplierCode, goodsCode), quanUrl, - SuningApiUtil.PID_BUY, uid + ""); + pid, uid + ""); JSONObject data = new JSONObject(); data.put("native", false); data.put("jumpLink", link); @@ -1944,7 +2042,7 @@ ConfigParamsDTO params = new ConfigParamsDTO(hongBaoManageService.getFanLiRate(acceptData.getSystem()), hongBaoManageService.getShareRate(acceptData.getSystem()), new BigDecimal(80), - hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP,acceptData.getSystem())); + hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP, acceptData.getSystem())); if (tbGoodsList.size() > 0) { List<TaoBaoGoodsBrief> goodsList = null; @@ -2005,7 +2103,7 @@ return; } - link = JDApiUtil.convertLinkWithSubUnionId(link, null, JDApiUtil.POSITION_FANLI + "", uid + ""); + link = JDApiUtil.convertLinkWithSubUnionId(link, null, null, JDApiUtil.POSITION_FANLI + "", uid + ""); JSONObject data = new JSONObject(); data.put("link", link); -- Gitblit v1.8.0