From eb7f3343af839a7c71f16e8ada2b25d5e2201c08 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 19 四月 2021 19:27:52 +0800 Subject: [PATCH] bug修复 --- src/main/java/com/yeshi/buwan/pptv/PPTVVipManager.java | 66 +++++++++++++++++++++++++++++++- 1 files changed, 63 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/pptv/PPTVVipManager.java b/src/main/java/com/yeshi/buwan/pptv/PPTVVipManager.java index cd91b68..b29dc83 100644 --- a/src/main/java/com/yeshi/buwan/pptv/PPTVVipManager.java +++ b/src/main/java/com/yeshi/buwan/pptv/PPTVVipManager.java @@ -1,14 +1,18 @@ package com.yeshi.buwan.pptv; import com.yeshi.buwan.domain.user.LoginUserExtra; -import com.yeshi.buwan.domain.vip.VIPOrderRecord; +import com.yeshi.buwan.domain.vip.OrderType; +import com.yeshi.buwan.domain.vip.OrderRecord; 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; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; @@ -24,15 +28,24 @@ @Resource private LoginUserService loginUserService; + @Resource + private PPTVService pptvService; + /** * 璐拱VIP + * * @param record * @throws PPTVException * @throws VIPException */ - public void buyVIP(VIPOrderRecord record) throws PPTVException, VIPException { - if (record.getState() != VIPOrderRecord.STATE_PAY) { + @Transactional(rollbackFor = Exception.class) + public void buyVIP(OrderRecord record) throws PPTVException, VIPException { + if (record.getState() != OrderRecord.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) { @@ -59,4 +72,51 @@ } + /** + * 璐拱鍗曠墖 + * + * @param record + * @throws PPTVException + * @throws VIPException + */ + @Transactional(rollbackFor = Exception.class) + public void buyVideo(OrderRecord record) throws PPTVException, VIPException { + if (record.getState() != OrderRecord.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