From 1d28c69a351ae108f4116a10f19f615c89a660a2 Mon Sep 17 00:00:00 2001 From: admin <2780501319@qq.com> Date: 星期四, 01 四月 2021 01:58:43 +0800 Subject: [PATCH] 首页数据修改 --- src/main/java/com/yeshi/buwan/pptv/PPTVVipManager.java | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 46 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/pptv/PPTVVipManager.java b/src/main/java/com/yeshi/buwan/pptv/PPTVVipManager.java index 316e302..205fde1 100644 --- a/src/main/java/com/yeshi/buwan/pptv/PPTVVipManager.java +++ b/src/main/java/com/yeshi/buwan/pptv/PPTVVipManager.java @@ -1,6 +1,17 @@ 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.VIPPrice; +import com.yeshi.buwan.exception.PPTVException; +import com.yeshi.buwan.exception.vip.VIPException; +import com.yeshi.buwan.service.inter.LoginUserService; +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; /** * PPTV浼氬憳 @@ -8,12 +19,46 @@ @Component public class PPTVVipManager { + @Resource + private VIPPriceService vipPriceService; + + @Resource + private LoginUserService loginUserService; /** * 璐拱VIP + * + * @param record + * @throws PPTVException + * @throws VIPException */ - public void buyVIP() { + @Transactional(rollbackFor = Exception.class) + public void buyVIP(VIPOrderRecord record) throws PPTVException, VIPException { + if (record.getState() != VIPOrderRecord.STATE_PAY) { + throw new VIPException(11, "灏氭湭鏀粯鎴愬姛"); + } + VIPPrice price = vipPriceService.selectByType(record.getType()); + if (price == null) { + throw new VIPException(12, "鏃犳硶鑾峰彇浠锋牸濂楅"); + } + 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(), price.getPptvGoodsNo(), record.getPayTime()); + if (!success) { + throw new VIPException(21, "PPTV浼氬憳璐拱澶辫触"); + } } -- Gitblit v1.8.0