From 744594ef1a2f530fc3e86ea9dc48b62247f79420 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 19 五月 2020 17:13:23 +0800 Subject: [PATCH] 饿了么绘图,添加口碑 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java | 122 ++++++++++++++++++++++++++++++---------- 1 files changed, 91 insertions(+), 31 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 49e012f..5c72db0 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 @@ -25,9 +25,11 @@ import com.yeshi.fanli.dto.pdd.PDDGoodsResult; import com.yeshi.fanli.dto.pdd.PDDPromotionUrl; import com.yeshi.fanli.dto.pdd.PDDSearchFilter; +import com.yeshi.fanli.dto.taobao.DaTaoKeFilterResult; import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.user.ShamUser; import com.yeshi.fanli.entity.bus.user.UserInfo; +import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum; import com.yeshi.fanli.entity.goods.CollectionGoodsV2; import com.yeshi.fanli.entity.goods.CommonGoods; import com.yeshi.fanli.entity.jd.JDGoods; @@ -42,7 +44,6 @@ import com.yeshi.fanli.entity.taobao.TaoBaoShop; import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig; import com.yeshi.fanli.entity.taobao.TaoKeAppInfo; -import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2; import com.yeshi.fanli.exception.taobao.TaoKeApiException; import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; import com.yeshi.fanli.exception.taobao.TaobaoGoodsUpdateException; @@ -57,6 +58,7 @@ import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService; import com.yeshi.fanli.service.inter.jd.JDGoodsClassService; import com.yeshi.fanli.service.inter.money.UserMoneyExtraService; +import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService; import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; import com.yeshi.fanli.service.inter.redpack.UserTaoLiJinNewbiesService; import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService; @@ -74,6 +76,7 @@ import com.yeshi.fanli.service.inter.user.integral.IntegralGetService; 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; @@ -85,6 +88,7 @@ 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.fanli.util.factory.goods.GoodsDetailVOFactory; import com.yeshi.fanli.util.factory.goods.ShopInfoVOFactory; import com.yeshi.fanli.util.jd.JDApiUtil; @@ -93,6 +97,7 @@ import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil; import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; +import com.yeshi.fanli.util.user.UserLevelUtil; import com.yeshi.fanli.vo.goods.CouponInfoVO; import com.yeshi.fanli.vo.goods.GoodsDetailExtraVO; import com.yeshi.fanli.vo.goods.GoodsDetailVO; @@ -148,7 +153,7 @@ private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service; @Resource - private HongBaoManageService hongBaoManageService; + private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService; @Resource private SystemClientParamsService systemClientParamsService; @@ -203,6 +208,58 @@ @Resource private GoodsEvaluateService goodsEvaluateService; + + @Resource + private UserLevelManager userLevelManager; + + @Resource + private HongBaoManageService hongBaoManageService; + + private ConfigParamsDTO getParamsDTO(String platform, String version, Long uid) { + UserLevelEnum level = UserLevelEnum.daRen; + if (uid != null && uid > 0) { + level = userLevelManager.getUserLevel(uid); + if (level != null) { + if (System.currentTimeMillis() < Constant.NEW_ORDER_FANLI_RULE_TIME) + level = UserLevelUtil.getOldLevel(level); + } + } + if (level == null) + level = UserLevelEnum.daRen; + return orderHongBaoMoneyComputeService.getShowComputeRate(platform, version, level); + } + + private TaoBaoGoodsBrief filterDaTaoKeGoodsInfo(TaoBaoGoodsBrief goods) { + try { + DaTaoKeFilterResult result = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods); + if (result.getFilterType() == DaTaoKeFilterResult.FILTER_TYPE_COUPON + || result.getFilterType() == DaTaoKeFilterResult.FILTER_TYPE_PRICE_AND_COUPON) { + // 缂撳瓨鍩虹閾炬帴 + String dpid = null; + if (TaoBaoUtil.isSpecialGoods(goods.getMaterialLibType())) { + dpid = TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT; + } else { + dpid = TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID; + } + String link = taoBaoGoodsCacheUtil.getBaseConvertLink(goods.getAuctionId(), dpid); + if (!StringUtil.isNullOrEmpty(link)) { +// result.getGoods().setCouponLink(link); + return result.getGoods(); + } else { + link = DaTaoKeApiUtil.convertLink(goods.getAuctionId(), dpid); + if (!StringUtil.isNullOrEmpty(link)) { +// result.getGoods().setCouponLink(link); + taoBaoGoodsCacheUtil.cacheBaseConvertLink(goods.getAuctionId(), dpid, link); + } + return result.getGoods(); + } + } + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + } + + return goods; + } /** * 娣樺疂鍟嗗搧璇︽儏 @@ -280,6 +337,7 @@ } catch (TaobaoGoodsDownException e) { // 鍟嗗搧涓嬫灦 ThreadUtil.run(new Runnable() { + public void run() { taoBaoGoodsUpdateService.offlineTaoBaoGoods(id); } @@ -373,21 +431,19 @@ // 澶ф窐瀹㈠晢鍝佽繃婊� try { - goods = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods, acceptData.getPlatform(), - acceptData.getVersion()); + goods = filterDaTaoKeGoodsInfo(goods); } catch (Exception e) { LogHelper.errorDetailInfo(e); } - ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(), - acceptData.getVersion()); + ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), uid); paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); 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.getVIPShareRate())); + goodsDetail.getMoneyInfo().setShareMoney("楼" + TaoBaoUtil.getGoodsHongBaoMoney(goods, + hongBaoManageService.getShareRate(UserLevelEnum.superVIP))); goodsDetail.getMoneyInfo().setRateInfo(goodsDetail.getMoneyInfo().getMaxRateInfo()); goodsDetail.getMoneyInfo().setCompositionInfo(goodsDetail.getMoneyInfo().getMaxCompositionInfo()); } @@ -467,11 +523,8 @@ String h5Url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(), Constant.systemCommonConfig.getShareGoodsPagePath(), "", id + ""); - try { - extraVO.setH5Url(HttpUtil.getShortLink(h5Url)); - } catch (Exception e) { - extraVO.setH5Url(h5Url); - } + + extraVO.setH5Url(h5Url); String helpLink = null; boolean fanliValid = true; @@ -587,6 +640,12 @@ shareInfoVO.setHelpLink(helpLink); extraVO.setShare(shareInfoVO); + if (goodsDetail.isHasCoupon()) { + // 璁剧疆couponList + List<CouponInfoVO> couponInfoList = new ArrayList<>(); + couponInfoList.add(goodsDetail.getCouponInfo()); + goodsDetail.setCouponInfoList(couponInfoList); + } JSONObject object = new JSONObject(); object.put("extra", JsonUtil.getApiCommonGson().toJson(extraVO)); object.put("goods", JsonUtil.getApiCommonGson().toJson(goodsDetail)); @@ -645,14 +704,13 @@ // 淇濆瓨缂撳瓨 jdGoodsCacheUtil.saveGoodsInfo(jdGoods); - ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(), - acceptData.getVersion()); + ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), uid); paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); 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.getVIPShareRate())); + goodsDetail.getMoneyInfo().setShareMoney("楼" + + JDUtil.getGoodsFanLiMoney(jdGoods, hongBaoManageService.getShareRate(UserLevelEnum.superVIP))); goodsDetail.getMoneyInfo().setRateInfo(goodsDetail.getMoneyInfo().getMaxRateInfo()); goodsDetail.getMoneyInfo().setCompositionInfo(goodsDetail.getMoneyInfo().getMaxCompositionInfo()); } @@ -680,8 +738,8 @@ otherInfo.setFanliMoneyPlus("浜笢plus杩斅�" + fanliMoneyPlus); // 浣跨敤濂栧姳鍒告渶楂樿繑 if (VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion())) { - maxMoneyPlus = "锛堜含涓減lus杩斅�" - + JDUtil.getGoodsFanLiMoneyPlus(jdGoods, hongBaoManageService.getVIPFanLiRate()) + "锛�"; + maxMoneyPlus = "锛堜含涓減lus杩斅�" + JDUtil.getGoodsFanLiMoneyPlus(jdGoods, + hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP)) + "锛�"; } else maxMoneyPlus = "锛堜含涓減lus鏈�楂樿繑楼" + fanliMoneyPlus.add(MoneyBigDecimalUtil.mul(fanliMoneyPlus, Constant.MAX_REWARD_RATE)) @@ -856,15 +914,14 @@ return; } - ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(), - acceptData.getVersion()); + ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), uid); paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); 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.getVIPShareRate())); + goodsDetail.getMoneyInfo().setShareMoney("楼" + PinDuoDuoUtil.getGoodsFanLiMoney(pddGoods, + hongBaoManageService.getShareRate(UserLevelEnum.superVIP))); goodsDetail.getMoneyInfo().setRateInfo(goodsDetail.getMoneyInfo().getMaxRateInfo()); goodsDetail.getMoneyInfo().setCompositionInfo(goodsDetail.getMoneyInfo().getMaxCompositionInfo()); } @@ -1042,8 +1099,7 @@ list = list.subList(0, 10); } - ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(), - acceptData.getVersion()); + ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), null); List<GoodsDetailVO> listDetailVO = new ArrayList<GoodsDetailVO>(); for (JDGoods goods : list) { @@ -1084,8 +1140,8 @@ goodsList = goodsList.subList(0, 10); } - ConfigParamsDTO paramsDTO = hongBaoManageService - .getShowComputeRate(acceptData.getPlatform(), acceptData.getVersion()); + ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), + null); for (PDDGoodsDetail goods : goodsList) { listDetailVO.add(GoodsDetailVOFactory.convertPDDGoods(goods, paramsDTO)); } @@ -1128,8 +1184,7 @@ if (goodsList != null && goodsList.size() > 0) { - ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(), - acceptData.getVersion()); + ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), null); goodsList.parallelStream().forEach(goods -> { if (goods != null) { @@ -1223,6 +1278,10 @@ } jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_FANLI + "", uid + ""); + if (jumpLink == null) { + jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, null, JDApiUtil.POSITION_FANLI + "", + uid + ""); + } } else { jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_FANLI + "", uid + ""); @@ -1296,6 +1355,7 @@ PDDPromotionUrl convertUrl = PinDuoDuoApiUtil.convert(id, PinDuoDuoApiUtil.PID_FANLI + "", uid + ""); JSONObject data = new JSONObject(); data.put("native", true); + data.put("jumpLink", convertUrl.getUrl()); data.put("nativeJumpLink", PinDuoDuoUtil.getAndroidNativeURI(convertUrl.getUrl())); out.print(JsonUtil.loadTrueResult(data)); @@ -1406,8 +1466,8 @@ Map<String, GoodsDetailVO> tempGoodsList = new HashMap<>(); ConfigParamsDTO params = new ConfigParamsDTO(hongBaoManageService.getFanLiRate(), - hongBaoManageService.getShareRate(), new BigDecimal(80), hongBaoManageService.getVIPFanLiRate()); - hongBaoManageService.getShowComputeRate(acceptData.getPlatform(), acceptData.getVersion()); + hongBaoManageService.getShareRate(), new BigDecimal(80), + hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP)); if (tbGoodsList.size() > 0) { List<TaoBaoGoodsBrief> goodsList = null; -- Gitblit v1.8.0