From 6e365a48a83e628759df3a5f25b3db97009c9f26 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 16 四月 2021 19:49:49 +0800
Subject: [PATCH] 影视豆系统完善

---
 src/main/java/com/yeshi/buwan/controller/api/VIPController.java |   84 +++++++++++++++++++-----------------------
 1 files changed, 38 insertions(+), 46 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 c860709..378611d 100644
--- a/src/main/java/com/yeshi/buwan/controller/api/VIPController.java
+++ b/src/main/java/com/yeshi/buwan/controller/api/VIPController.java
@@ -1,13 +1,16 @@
 package com.yeshi.buwan.controller.api;
 
 import com.google.gson.*;
-import com.yeshi.buwan.domain.system.SystemConfig;
 import com.yeshi.buwan.domain.user.LoginUser;
 import com.yeshi.buwan.domain.vip.*;
+import com.yeshi.buwan.dto.order.PPTVVideoPrice;
+import com.yeshi.buwan.dto.order.PayWayInfoDTO;
+import com.yeshi.buwan.exception.PPTVException;
 import com.yeshi.buwan.exception.goldcorn.GoldCornException;
 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.service.inter.LoginUserService;
 import com.yeshi.buwan.service.inter.juhe.PPTVService;
@@ -31,6 +34,8 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.lang.reflect.Type;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Date;
 import java.util.List;
 import java.util.UUID;
@@ -127,12 +132,12 @@
         }).create();
         JSONObject root = new JSONObject();
 
-        List<VIPOrderRecord> list = orderService.listOrderRecord(loginUid, null, page, Constant.pageCount);
-        for (VIPOrderRecord record : list) {
+        List<OrderRecord> list = orderService.listOrderRecord(loginUid, OrderType.vip, null, page, Constant.pageCount);
+        for (OrderRecord record : list) {
             record.setIpInfo(null);
             record.setUpdateTime(null);
         }
-        long count = orderService.countOrderRecord(loginUid, null);
+        long count = orderService.countOrderRecord(loginUid, OrderType.vip, null);
         root.put("list", gson.toJson(list));
         root.put("count", count);
         return JsonUtilV2.loadTrueJson(root.toString());
@@ -175,13 +180,21 @@
 
         String ip = IPUtil.getRemotIP(request);
 
+        OrderRecord record = new OrderRecord();
+
         VIPPrice vipPrice = null;
+
         if (orderType == OrderType.video) {
             //瑙嗛
             VideoPPTVMap map = pptvService.selectVideoPPTVMapByInfoId(infoId);
             if (map == null) {
                 return JsonUtilV2.loadFalseJson("褰辩墖涓嶅瓨鍦�");
             }
+            PPTVSeries pptvSeries = pptvService.selectSeriesByInfoId(infoId);
+            if (pptvSeries == null) {
+                return JsonUtilV2.loadFalseJson("褰辩墖涓嶅瓨鍦�");
+            }
+            record.setRemarks(pptvSeries.getName());
         } else {
             vipPrice = vipPriceService.selectByPrimaryKey(priceId);
             if (vipPrice == null) {
@@ -189,17 +202,21 @@
             }
         }
 
-        VIPOrderRecord record = new VIPOrderRecord();
+
         record.setUid(loginUid);
-        if (vipPrice != null)
+        if (vipPrice != null) {
             record.setType(vipPrice.getType());
+            record.setMoney(vipPrice.getActualPrice());
+        } else {
+            PPTVVideoPrice price = new Gson().fromJson(systemConfigService.getConfigValueByKeyCache("videoPrice"), PPTVVideoPrice.class);
+            record.setMoney(price.getActualPrice().subtract(new BigDecimal(goldCorn).divide(new BigDecimal(100), 2, RoundingMode.UP)));
+        }
 
         record.setOrderType(orderType);
         record.setVideoInfoId(infoId);
         record.setGoldCorn(goldCorn);
-        record.setMoney(vipPrice.getActualPrice());
         record.setPayWay(payWay);
-        record.setState(VIPOrderRecord.STATE_NOT_PAY);
+        record.setState(OrderRecord.STATE_NOT_PAY);
         record.setIpInfo(IPUtil.getRemotIP(request) + ":" + IPUtil.getRemotePort(request));
         try {
             orderService.createOrder(record);
@@ -209,49 +226,24 @@
         }
 
 
+        PayWayInfoDTO payResult = null;
+
         try {
-            orderService.payOrder(record);
+            payResult = orderService.payOrder(record);
         } catch (OrderException e) {
-            e.printStackTrace();
+            return JsonUtilV2.loadFalseJson(e.getMessage());
         } catch (GoldCornException e) {
             e.printStackTrace();
+            return JsonUtilV2.loadFalseJson(e.getMessage());
         } catch (PayException e) {
             e.printStackTrace();
+            return JsonUtilV2.loadFalseJson(e.getMessage());
+        } catch (VIPException e) {
+            return JsonUtilV2.loadFalseJson(e.getMessage());
+        } catch (PPTVException e) {
+            return JsonUtilV2.loadFalseJson(e.getMessage());
         }
-
-        String orderNo = VIPOrderUtil.getOutOrderNo(record.getOrderType(), record.getId());
-        switch (payWay) {
-            case VIPOrderRecord
-                    .PAY_WAY_ALIPAY: {
-                //鐢熸垚鏀粯瀹濇敮浠樿鍗�
-                String form = VipUtil.getVipChargeAlipayForm(record.getId(), orderNo, record.getMoney());
-                //鏆傚瓨2鍒嗛挓
-                String id = StringUtil.Md5(UUID.randomUUID().toString() + "#" + System.currentTimeMillis());
-                redisManager.cacheCommonString(id, form, 120);
-                org.json.JSONObject data = new org.json.JSONObject();
-                data.put("payUrl", Constant.HOST + "/BuWan/alipay/printPayForm?formId=" + id);
-                data.put("payWay", payWay);
-                return JsonUtilV2.loadTrueJson(data.toString());
-            }
-
-
-            case VIPOrderRecord
-                    .PAY_WAY_WX: {
-                //鐢熸垚寰俊鏀粯璁㈠崟
-                try {
-                    String payUrl = VipUtil.createWXOrder(record.getId(), ip, orderNo, vipPrice.getActualPrice(), "褰辫澶у叏VIP-" + vipPrice.getType().getName());
-                    org.json.JSONObject data = new org.json.JSONObject();
-                    data.put("payUrl", payUrl);
-                    data.put("payWay", payWay);
-                    return JsonUtilV2.loadTrueJson(data.toString());
-                } catch (Exception e) {
-                    logger.error("鐢熸垚寰俊鏀粯璁㈠崟鍑洪敊", e);
-                    return JsonUtilV2.loadFalseJson("鐢熸垚寰俊鏀粯璁㈠崟鍑洪敊");
-                }
-            }
-        }
-
-        return JsonUtilV2.loadFalseJson("璇烽�夋嫨鏀粯鏂瑰紡");
+        return JsonUtilV2.loadTrueJson(new Gson().toJson(payResult));
     }
 
     /**
@@ -266,14 +258,14 @@
     @ResponseBody
     @RequestSerializableByKey(key = "'vip-checkPay-'+#id")
     public String checkPay(AcceptData acceptData, String loginUid, String id) {
-        VIPOrderRecord record = orderService.getOrderRecord(id);
+        OrderRecord record = orderService.getOrderRecord(id);
         if (record == null || !record.getUid().equalsIgnoreCase(loginUid)) {
             return JsonUtilV2.loadFalseJson("璁板綍涓嶅瓨鍦�/涓嶆槸鎮ㄧ殑璁㈠崟");
         }
 
         record = orderService.checkOrderPayState(id);
         //鏈敮浠�
-        if (record != null && record.getState() != VIPOrderRecord.STATE_PAY) {
+        if (record != null && record.getState() != OrderRecord.STATE_PAY) {
             return JsonUtilV2.loadFalseJson(1, "鏀粯鏈畬鎴�");
         }
 

--
Gitblit v1.8.0