From 8a66d7d040d10d03c32062ae7bb7e1fad836871f Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 09 四月 2021 19:00:51 +0800 Subject: [PATCH] dubbo集成,订单优化 --- src/main/java/com/yeshi/buwan/pptv/PPTVVipManager.java | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 57 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/pptv/PPTVVipManager.java b/src/main/java/com/yeshi/buwan/pptv/PPTVVipManager.java index 205fde1..99adc4f 100644 --- a/src/main/java/com/yeshi/buwan/pptv/PPTVVipManager.java +++ b/src/main/java/com/yeshi/buwan/pptv/PPTVVipManager.java @@ -1,11 +1,14 @@ package com.yeshi.buwan.pptv; import com.yeshi.buwan.domain.user.LoginUserExtra; +import com.yeshi.buwan.domain.vip.OrderType; import com.yeshi.buwan.domain.vip.VIPOrderRecord; import com.yeshi.buwan.domain.vip.VIPPrice; import com.yeshi.buwan.exception.PPTVException; import com.yeshi.buwan.exception.vip.VIPException; +import com.yeshi.buwan.pptv.entity.PPTVSeries; import com.yeshi.buwan.service.inter.LoginUserService; +import com.yeshi.buwan.service.inter.juhe.PPTVService; import com.yeshi.buwan.service.inter.vip.VIPPriceService; import com.yeshi.buwan.util.StringUtil; import org.springframework.stereotype.Component; @@ -25,6 +28,9 @@ @Resource private LoginUserService loginUserService; + @Resource + private PPTVService pptvService; + /** * 璐拱VIP * @@ -36,6 +42,10 @@ public void buyVIP(VIPOrderRecord record) throws PPTVException, VIPException { if (record.getState() != VIPOrderRecord.STATE_PAY) { throw new VIPException(11, "灏氭湭鏀粯鎴愬姛"); + } + + if (record.getOrderType() != OrderType.vip) { + throw new VIPException(41, "涓嶆槸VIP璁㈠崟"); } VIPPrice price = vipPriceService.selectByType(record.getType()); if (price == null) { @@ -62,4 +72,51 @@ } + /** + * 璐拱鍗曠墖 + * + * @param record + * @throws PPTVException + * @throws VIPException + */ + @Transactional(rollbackFor = Exception.class) + public void buyVideo(VIPOrderRecord record) throws PPTVException, VIPException { + if (record.getState() != VIPOrderRecord.STATE_PAY) { + throw new VIPException(11, "灏氭湭鏀粯鎴愬姛"); + } + + if (record.getOrderType() != OrderType.video) { + throw new VIPException(41, "涓嶆槸鍗曠墖璁㈠崟"); + } + + PPTVSeries pptvSeries = pptvService.getSeriesDetail(record.getVideoInfoId()); + if (pptvSeries == null) { + throw new VIPException(41, "褰辩墖淇℃伅鑾峰彇澶辫触"); + } + + if (pptvSeries.getGoodsInfo() == null || StringUtil.isNullOrEmpty(pptvSeries.getGoodsInfo().getGoodsNo())) { + throw new VIPException(41, "褰辩墖鍟嗗搧淇℃伅涓虹┖"); + } + + + LoginUserExtra extra = loginUserService.getExtra(record.getUid()); + if (extra == null) { + throw new VIPException(13, "鐢ㄦ埛淇℃伅鑾峰彇澶辫触"); + } + + if (StringUtil.isNullOrEmpty(extra.getPptvUid())) { + throw new VIPException(14, "pptvuid鑾峰彇澶辫触"); + } + + if (StringUtil.isNullOrEmpty(extra.getPptvOpenId())) { + loginUserService.updatePPTVOpenId(record.getUid()); + } + + boolean success = PPTVApiUtil.buyGoods(extra.getPptvOpenId(), "buwan_" + record.getId(), pptvSeries.getGoodsInfo().getGoodsNo(), record.getPayTime()); + if (!success) { + throw new VIPException(21, "PPTV浼氬憳璐拱澶辫触"); + } + } + + } -- Gitblit v1.8.0