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