From f788607ff771a47bc60d6a86e00b3433c40f3d2c Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 24 九月 2021 15:22:03 +0800
Subject: [PATCH] 接入视频直播

---
 src/main/java/com/yeshi/buwan/controller/api/VIPController.java |   92 +++++++++++++++++++++++++++++----------------
 1 files changed, 59 insertions(+), 33 deletions(-)

diff --git a/src/main/java/com/yeshi/buwan/controller/api/VIPController.java b/src/main/java/com/yeshi/buwan/controller/api/VIPController.java
index 378611d..ed0912e 100644
--- a/src/main/java/com/yeshi/buwan/controller/api/VIPController.java
+++ b/src/main/java/com/yeshi/buwan/controller/api/VIPController.java
@@ -10,8 +10,9 @@
 import com.yeshi.buwan.exception.order.OrderException;
 import com.yeshi.buwan.exception.order.PayException;
 import com.yeshi.buwan.exception.vip.VIPException;
-import com.yeshi.buwan.pptv.entity.PPTVSeries;
-import com.yeshi.buwan.pptv.entity.VideoPPTVMap;
+import com.yeshi.buwan.exception.vip.VideoBuyRecordException;
+import com.yeshi.buwan.videos.pptv.entity.PPTVSeries;
+import com.yeshi.buwan.videos.pptv.entity.VideoPPTVMap;
 import com.yeshi.buwan.service.inter.LoginUserService;
 import com.yeshi.buwan.service.inter.juhe.PPTVService;
 import com.yeshi.buwan.service.inter.order.OrderService;
@@ -19,10 +20,9 @@
 import com.yeshi.buwan.service.inter.vip.VIPPriceService;
 import com.yeshi.buwan.service.inter.vip.VIPService;
 import com.yeshi.buwan.util.*;
-import com.yeshi.buwan.util.user.VipUtil;
-import com.yeshi.buwan.util.vip.VIPOrderUtil;
 import com.yeshi.buwan.vo.AcceptData;
 import com.yeshi.buwan.vo.client.user.UserInfoVO;
+import com.yeshi.buwan.vo.order.OrderInfoVO;
 import net.sf.json.JSONObject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -36,9 +36,9 @@
 import java.lang.reflect.Type;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
-import java.util.UUID;
 
 @Controller
 @RequestMapping("api/v2/vip")
@@ -108,9 +108,9 @@
     }
 
 
-    @RequestMapping("getVIPOrderList")
+    @RequestMapping("getOrderList")
     @ResponseBody
-    public String getVIPOrderList(AcceptData acceptData, String loginUid, int page) {
+    public String getOrderList(AcceptData acceptData, String loginUid, String type, int page) {
         Gson gson = new GsonBuilder().registerTypeAdapter(VIPPriceType.class, new JsonSerializer<VIPPriceType>() {
             @Override
             public JsonElement serialize(VIPPriceType value, Type theType, JsonSerializationContext context) {
@@ -132,13 +132,14 @@
         }).create();
         JSONObject root = new JSONObject();
 
-        List<OrderRecord> list = orderService.listOrderRecord(loginUid, OrderType.vip, null, page, Constant.pageCount);
+        List<OrderRecord> list = orderService.listOrderRecord(loginUid, type == null ? null : OrderType.valueOf(type), null, page, Constant.pageCount);
+
+        List<OrderInfoVO> voList = new ArrayList<>();
         for (OrderRecord record : list) {
-            record.setIpInfo(null);
-            record.setUpdateTime(null);
+            voList.add(OrderInfoVO.create(record));
         }
-        long count = orderService.countOrderRecord(loginUid, OrderType.vip, null);
-        root.put("list", gson.toJson(list));
+        long count = orderService.countOrderRecord(loginUid, type == null ? null : OrderType.valueOf(type), null);
+        root.put("list", gson.toJson(voList));
         root.put("count", count);
         return JsonUtilV2.loadTrueJson(root.toString());
     }
@@ -152,7 +153,7 @@
      */
     @RequestMapping("createOrder")
     @ResponseBody
-    public String createOrder(AcceptData acceptData, HttpServletRequest request, String loginUid, String priceId, String infoId, Integer goldCorn, int payWay) {
+    public String createOrder(AcceptData acceptData, HttpServletRequest request, String loginUid, String priceId, String cid, String vid, Integer goldCorn, int payWay) {
 
         if (StringUtil.isNullOrEmpty(loginUid)) {
             return JsonUtilV2.loadFalseJson("鐢ㄦ埛鏈櫥褰�");
@@ -163,17 +164,20 @@
             return JsonUtilV2.loadFalseJson("鐢ㄦ埛涓嶅瓨鍦�");
         }
 
-        if (StringUtil.isNullOrEmpty(user.getPhone())) {
+        if (StringUtil.isNullOrEmpty(user.getPhone()) && payWay != OrderRecord.PAY_WAY_IAPP) {
             return JsonUtilV2.loadFalseJson(10001, "璇风粦瀹氱數璇濆彿鐮�");
         }
 
-        if (StringUtil.isNullOrEmpty(priceId) && StringUtil.isNullOrEmpty(infoId)) {
+        if (StringUtil.isNullOrEmpty(priceId) && StringUtil.isNullOrEmpty(cid)) {
             return JsonUtilV2.loadFalseJson("璇烽�夋嫨璐拱绫诲瀷");
         }
 
+        if (goldCorn == null)
+            goldCorn = 0;
+
         OrderType orderType = OrderType.vip;
 
-        if (!StringUtil.isNullOrEmpty(infoId)) {
+        if (!StringUtil.isNullOrEmpty(cid)) {
             orderType = OrderType.video;
         }
 
@@ -185,13 +189,13 @@
         VIPPrice vipPrice = null;
 
         if (orderType == OrderType.video) {
-            //瑙嗛
-            VideoPPTVMap map = pptvService.selectVideoPPTVMapByInfoId(infoId);
-            if (map == null) {
+            PPTVSeries pptvSeries = pptvService.selectSeriesBySeriesCode(cid);
+            if (pptvSeries == null) {
                 return JsonUtilV2.loadFalseJson("褰辩墖涓嶅瓨鍦�");
             }
-            PPTVSeries pptvSeries = pptvService.selectSeriesByInfoId(infoId);
-            if (pptvSeries == null) {
+            //瑙嗛
+            VideoPPTVMap map = pptvService.selectVideoPPTVMapByPPInfo(pptvSeries.getInfoID(), vid);
+            if (map == null) {
                 return JsonUtilV2.loadFalseJson("褰辩墖涓嶅瓨鍦�");
             }
             record.setRemarks(pptvSeries.getName());
@@ -213,7 +217,8 @@
         }
 
         record.setOrderType(orderType);
-        record.setVideoInfoId(infoId);
+        record.setVideoCid(cid);
+        record.setVideoVid(vid);
         record.setGoldCorn(goldCorn);
         record.setPayWay(payWay);
         record.setState(OrderRecord.STATE_NOT_PAY);
@@ -242,9 +247,20 @@
             return JsonUtilV2.loadFalseJson(e.getMessage());
         } catch (PPTVException e) {
             return JsonUtilV2.loadFalseJson(e.getMessage());
+        } catch (VideoBuyRecordException e) {
+            return JsonUtilV2.loadFalseJson("鍗曠墖璐拱澶辫触");
         }
-        return JsonUtilV2.loadTrueJson(new Gson().toJson(payResult));
+        if (payResult.getPayWay() == OrderRecord.PAY_WAY_IAPP) {
+            //鑻规灉鍐呰喘
+            JSONObject root = new JSONObject();
+            root.put("orderNo", record.getId());
+            root.put("productId", vipPrice.getIosProductId());
+            return JsonUtilV2.loadTrueJson(root.toString());
+        } else {
+            return JsonUtilV2.loadTrueJson(new Gson().toJson(payResult));
+        }
     }
+
 
     /**
      * 妫�鏌ユ槸鍚︽敮浠�
@@ -252,27 +268,37 @@
      * @param acceptData
      * @param loginUid
      * @param id
+     * @param receipt    -ios鏀粯缁撴灉receipt
      * @return
      */
     @RequestMapping("checkPay")
     @ResponseBody
     @RequestSerializableByKey(key = "'vip-checkPay-'+#id")
-    public String checkPay(AcceptData acceptData, String loginUid, String id) {
+    public String checkPay(AcceptData acceptData, String loginUid, String id, String receipt) {
         OrderRecord record = orderService.getOrderRecord(id);
         if (record == null || !record.getUid().equalsIgnoreCase(loginUid)) {
             return JsonUtilV2.loadFalseJson("璁板綍涓嶅瓨鍦�/涓嶆槸鎮ㄧ殑璁㈠崟");
         }
 
-        record = orderService.checkOrderPayState(id);
-        //鏈敮浠�
-        if (record != null && record.getState() != OrderRecord.STATE_PAY) {
-            return JsonUtilV2.loadFalseJson(1, "鏀粯鏈畬鎴�");
+        if (record.getPayWay() == OrderRecord.PAY_WAY_IAPP) {
+            try {
+                orderService.checkApplePay(record.getId(), receipt);
+                JSONObject data = new JSONObject();
+                return JsonUtilV2.loadTrueJson(data.toString());
+            } catch (Exception e) {
+                return JsonUtilV2.loadFalseJson(e.getMessage());
+            }
+        } else {
+            record = orderService.checkOrderPayState(id);
+            //鏈敮浠�
+            if (record != null && record.getState() != OrderRecord.STATE_PAY) {
+                return JsonUtilV2.loadFalseJson(1, "鏀粯鏈畬鎴�");
+            }
+
+            JSONObject data = new JSONObject();
+            data.put("money", record.getPayMoney() == null ? record.getMoney() : record.getPayMoney());
+            return JsonUtilV2.loadTrueJson(data.toString());
         }
-
-        JSONObject data = new JSONObject();
-        data.put("money", record.getPayMoney() == null ? record.getMoney() : record.getPayMoney());
-
-        return JsonUtilV2.loadTrueJson(data.toString());
     }
 
 

--
Gitblit v1.8.0