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/controller/api/VIPController.java |   77 ++++++++++++++++++++++++++++++--------
 1 files changed, 61 insertions(+), 16 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 2ff98fc..c860709 100644
--- a/src/main/java/com/yeshi/buwan/controller/api/VIPController.java
+++ b/src/main/java/com/yeshi/buwan/controller/api/VIPController.java
@@ -3,12 +3,15 @@
 import com.google.gson.*;
 import com.yeshi.buwan.domain.system.SystemConfig;
 import com.yeshi.buwan.domain.user.LoginUser;
-import com.yeshi.buwan.domain.vip.UserVIPInfo;
-import com.yeshi.buwan.domain.vip.VIPOrderRecord;
-import com.yeshi.buwan.domain.vip.VIPPrice;
-import com.yeshi.buwan.domain.vip.VIPPriceType;
+import com.yeshi.buwan.domain.vip.*;
+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.VideoPPTVMap;
 import com.yeshi.buwan.service.inter.LoginUserService;
+import com.yeshi.buwan.service.inter.juhe.PPTVService;
+import com.yeshi.buwan.service.inter.order.OrderService;
 import com.yeshi.buwan.service.inter.system.SystemConfigService;
 import com.yeshi.buwan.service.inter.vip.VIPPriceService;
 import com.yeshi.buwan.service.inter.vip.VIPService;
@@ -45,6 +48,9 @@
     private VIPService vipService;
 
     @Resource
+    private OrderService orderService;
+
+    @Resource
     private LoginUserService loginUserService;
 
     @Resource
@@ -52,6 +58,9 @@
 
     @Resource
     private SystemConfigService systemConfigService;
+
+    @Resource
+    private PPTVService pptvService;
 
 
     @RequestMapping("getVIPPriceList")
@@ -118,12 +127,12 @@
         }).create();
         JSONObject root = new JSONObject();
 
-        List<VIPOrderRecord> list = vipService.listOrderRecord(loginUid, null, page, Constant.pageCount);
+        List<VIPOrderRecord> list = orderService.listOrderRecord(loginUid, null, page, Constant.pageCount);
         for (VIPOrderRecord record : list) {
             record.setIpInfo(null);
             record.setUpdateTime(null);
         }
-        long count = vipService.countOrderRecord(loginUid, null);
+        long count = orderService.countOrderRecord(loginUid, null);
         root.put("list", gson.toJson(list));
         root.put("count", count);
         return JsonUtilV2.loadTrueJson(root.toString());
@@ -138,7 +147,7 @@
      */
     @RequestMapping("createOrder")
     @ResponseBody
-    public String createOrder(AcceptData acceptData, HttpServletRequest request, String loginUid, String priceId, int payWay) {
+    public String createOrder(AcceptData acceptData, HttpServletRequest request, String loginUid, String priceId, String infoId, Integer goldCorn, int payWay) {
 
         if (StringUtil.isNullOrEmpty(loginUid)) {
             return JsonUtilV2.loadFalseJson("鐢ㄦ埛鏈櫥褰�");
@@ -153,28 +162,64 @@
             return JsonUtilV2.loadFalseJson(10001, "璇风粦瀹氱數璇濆彿鐮�");
         }
 
+        if (StringUtil.isNullOrEmpty(priceId) && StringUtil.isNullOrEmpty(infoId)) {
+            return JsonUtilV2.loadFalseJson("璇烽�夋嫨璐拱绫诲瀷");
+        }
+
+        OrderType orderType = OrderType.vip;
+
+        if (!StringUtil.isNullOrEmpty(infoId)) {
+            orderType = OrderType.video;
+        }
+
 
         String ip = IPUtil.getRemotIP(request);
-        VIPPrice vipPrice = vipPriceService.selectByPrimaryKey(priceId);
-        if (vipPrice == null) {
-            return JsonUtilV2.loadFalseJson("濂楅涓嶅瓨鍦�");
+
+        VIPPrice vipPrice = null;
+        if (orderType == OrderType.video) {
+            //瑙嗛
+            VideoPPTVMap map = pptvService.selectVideoPPTVMapByInfoId(infoId);
+            if (map == null) {
+                return JsonUtilV2.loadFalseJson("褰辩墖涓嶅瓨鍦�");
+            }
+        } else {
+            vipPrice = vipPriceService.selectByPrimaryKey(priceId);
+            if (vipPrice == null) {
+                return JsonUtilV2.loadFalseJson("濂楅涓嶅瓨鍦�");
+            }
         }
 
         VIPOrderRecord record = new VIPOrderRecord();
         record.setUid(loginUid);
-        record.setType(vipPrice.getType());
+        if (vipPrice != null)
+            record.setType(vipPrice.getType());
+
+        record.setOrderType(orderType);
+        record.setVideoInfoId(infoId);
+        record.setGoldCorn(goldCorn);
         record.setMoney(vipPrice.getActualPrice());
         record.setPayWay(payWay);
         record.setState(VIPOrderRecord.STATE_NOT_PAY);
         record.setIpInfo(IPUtil.getRemotIP(request) + ":" + IPUtil.getRemotePort(request));
         try {
-            vipService.addVIPRecord(record);
-        } catch (VIPException e) {
+            orderService.createOrder(record);
+        } catch (OrderException e) {
             logger.error("鐢熸垚璁㈠崟鍑洪敊", e);
             return JsonUtilV2.loadFalseJson("鐢熸垚璁㈠崟鍑洪敊");
         }
 
-        String orderNo = VIPOrderUtil.getOutOrderNo(record.getId());
+
+        try {
+            orderService.payOrder(record);
+        } catch (OrderException e) {
+            e.printStackTrace();
+        } catch (GoldCornException e) {
+            e.printStackTrace();
+        } catch (PayException e) {
+            e.printStackTrace();
+        }
+
+        String orderNo = VIPOrderUtil.getOutOrderNo(record.getOrderType(), record.getId());
         switch (payWay) {
             case VIPOrderRecord
                     .PAY_WAY_ALIPAY: {
@@ -221,12 +266,12 @@
     @ResponseBody
     @RequestSerializableByKey(key = "'vip-checkPay-'+#id")
     public String checkPay(AcceptData acceptData, String loginUid, String id) {
-        VIPOrderRecord record = vipService.getOrderRecord(id);
+        VIPOrderRecord record = orderService.getOrderRecord(id);
         if (record == null || !record.getUid().equalsIgnoreCase(loginUid)) {
             return JsonUtilV2.loadFalseJson("璁板綍涓嶅瓨鍦�/涓嶆槸鎮ㄧ殑璁㈠崟");
         }
 
-        record = vipService.checkOrderPayState(id);
+        record = orderService.checkOrderPayState(id);
         //鏈敮浠�
         if (record != null && record.getState() != VIPOrderRecord.STATE_PAY) {
             return JsonUtilV2.loadFalseJson(1, "鏀粯鏈畬鎴�");

--
Gitblit v1.8.0