Browse Source

【会员系统】补充订单模块服务器接口串联

wanjun 4 months ago
parent
commit
89144027a5

+ 160 - 12
PDF Office/PDF Master/MemberCenter/Model/KMMemberCenterManager.swift

@@ -740,7 +740,7 @@ class KMMemberCenterManager: NSObject {
 #endif
         let params: [String: Any] = ["isEducation": isEducation,
                                      "platformId": platformId]
-        KMRequestServer.requestServer.request(urlString: urlString, method: .get, params: nil) { requestSerializer in
+        KMRequestServer.requestServer.request(urlString: urlString, method: .get, params: params) { requestSerializer in
             
         } completion: { [weak self] (task, responseObject, error) in
             var dic: NSDictionary = [:]
@@ -759,7 +759,7 @@ class KMMemberCenterManager: NSObject {
             let result_Array: [NSDictionary] = dic["result"] as? [NSDictionary] ?? [[:]]
             let message: String = dic["msg"] as? String ?? ""
             
-            var results: [KMListingProducts] = []
+            var results: [KMListingProductsModel] = []
             for dict1 in result_Array {
                 var id = ""
                 var productName = ""
@@ -783,7 +783,7 @@ class KMMemberCenterManager: NSObject {
                 if let token = dict1["cycle"] { cycle = token as! Int }
                 if let token = dict1["code"] { code = token as! String }
                 if let token = dict1["cnyPrice"] { cnyPrice = token as! String }
-                let products = KMListingProducts(id: id, productName: productName, price: price, maxDeviceNum: maxDeviceNum, levels: levels, platforms: platforms, productLineId: productLineId, paymentModel: paymentModel, cycle: cycle, code: code, cnyPrice: cnyPrice)
+                let products = KMListingProductsModel(id: id, productName: productName, price: price, maxDeviceNum: maxDeviceNum, levels: levels, platforms: platforms, productLineId: productLineId, paymentModel: paymentModel, cycle: cycle, code: code, cnyPrice: cnyPrice)
                 results.append(products)
             }
 
@@ -808,7 +808,7 @@ class KMMemberCenterManager: NSObject {
         let params: [String: Any] = ["productId": productId,
                                      "isEducation": isEducation,
                                      "userId": userId]
-        KMRequestServer.requestServer.request(urlString: urlString, method: .get, params: nil) { requestSerializer in
+        KMRequestServer.requestServer.request(urlString: urlString, method: .get, params: params) { requestSerializer in
             
         } completion: { [weak self] (task, responseObject, error) in
             var dic: NSDictionary = [:]
@@ -827,7 +827,7 @@ class KMMemberCenterManager: NSObject {
             let result_Array: [NSDictionary] = dic["result"] as? [NSDictionary] ?? [[:]]
             let message: String = dic["msg"] as? String ?? ""
             
-            var results: [KMListingProducts] = []
+            var results: [KMListingProductsModel] = []
             for dict1 in result_Array {
                 var id = ""
                 var productName = ""
@@ -851,7 +851,7 @@ class KMMemberCenterManager: NSObject {
                 if let token = dict1["cycle"] { cycle = token as! Int }
                 if let token = dict1["code"] { code = token as! String }
                 if let token = dict1["cnyPrice"] { cnyPrice = token as! String }
-                let products = KMListingProducts(id: id, productName: productName, price: price, maxDeviceNum: maxDeviceNum, levels: levels, platforms: platforms, productLineId: productLineId, paymentModel: paymentModel, cycle: cycle, code: code, cnyPrice: cnyPrice)
+                let products = KMListingProductsModel(id: id, productName: productName, price: price, maxDeviceNum: maxDeviceNum, levels: levels, platforms: platforms, productLineId: productLineId, paymentModel: paymentModel, cycle: cycle, code: code, cnyPrice: cnyPrice)
                 results.append(products)
             }
 
@@ -875,7 +875,7 @@ class KMMemberCenterManager: NSObject {
         let urlString = configuration.activityBaseURL() + "/pdf-office-website/web/getBatchProductPrice"
         let params: [String: Any] = ["productId": productId,
                                      "num": num]
-        KMRequestServer.requestServer.request(urlString: urlString, method: .get, params: nil) { requestSerializer in
+        KMRequestServer.requestServer.request(urlString: urlString, method: .get, params: params) { requestSerializer in
             
         } completion: { [weak self] (task, responseObject, error) in
             var dic: NSDictionary = [:]
@@ -908,7 +908,7 @@ class KMMemberCenterManager: NSObject {
             if let token = result["cnyPrice"] { cnyPrice = token as! String }
             if let token = result["cnyBatchPrice"] { cnyBatchPrice = token as! String }
             if let token = result["cnyTotalPrice"] { cnyTotalPrice = token as! String }
-            let products = KMBatchProductPrice(productId: productId, totalPrice: totalPrice, price: price, batchPrice: batchPrice, cnyPrice: cnyPrice, cnyBatchPrice: cnyBatchPrice, cnyTotalPrice: cnyTotalPrice)
+            let products = KMBatchProductPriceModel(productId: productId, totalPrice: totalPrice, price: price, batchPrice: batchPrice, cnyPrice: cnyPrice, cnyBatchPrice: cnyBatchPrice, cnyTotalPrice: cnyTotalPrice)
 
             let result1 = KMMemberProductResult(code: code, msg: message, batchProductPrice: products)
             if code == 200 {
@@ -934,7 +934,7 @@ class KMMemberCenterManager: NSObject {
         let params: [String: Any] = ["productId": productId,
                                      "userId": userId,
                                      "code": code]
-        KMRequestServer.requestServer.request(urlString: urlString, method: .get, params: nil) { requestSerializer in
+        KMRequestServer.requestServer.request(urlString: urlString, method: .get, params: params) { requestSerializer in
             requestSerializer.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
         } completion: { [weak self] (task, responseObject, error) in
             var dic: NSDictionary = [:]
@@ -978,7 +978,7 @@ class KMMemberCenterManager: NSObject {
             if let token = result["cnyPrice"] { cnyPrice = token as! String }
             if let token = result["displayCnyPrice"] { displayCnyPrice = token as! String }
 
-            let products = KMCheckCoupon(id: id, productName: productName, price: price, maxDeviceNum: maxDeviceNum, displayPrice: displayPrice, levels: levels, platforms: platforms, productLineId: productLineId, paymentModel: paymentModel, cycle: cycle, cnyPrice: cnyPrice, displayCnyPrice: displayCnyPrice)
+            let products = KMCheckCouponModel(id: id, productName: productName, price: price, maxDeviceNum: maxDeviceNum, displayPrice: displayPrice, levels: levels, platforms: platforms, productLineId: productLineId, paymentModel: paymentModel, cycle: cycle, cnyPrice: cnyPrice, displayCnyPrice: displayCnyPrice)
             let result1 = KMMemberProductResult(code: code, msg: message, checkCoupon: products)
             if code == 200 {
                 complete(true, result1)
@@ -998,7 +998,7 @@ class KMMemberCenterManager: NSObject {
         
         let urlString = configuration.activityBaseURL() + "/pdf-office-website/web/checkEducation"
         let params: [String: Any] = ["email": email]
-        KMRequestServer.requestServer.request(urlString: urlString, method: .get, params: nil) { requestSerializer in
+        KMRequestServer.requestServer.request(urlString: urlString, method: .get, params: params) { requestSerializer in
             
         } completion: { [weak self] (task, responseObject, error) in
             var dic: NSDictionary = [:]
@@ -1031,7 +1031,7 @@ class KMMemberCenterManager: NSObject {
             if let token = result["cnyPrice"] { cnyPrice = token as! String }
             if let token = result["cnyBatchPrice"] { cnyBatchPrice = token as! String }
             if let token = result["cnyTotalPrice"] { cnyTotalPrice = token as! String }
-            let products = KMBatchProductPrice(productId: productId, totalPrice: totalPrice, price: price, batchPrice: batchPrice, cnyPrice: cnyPrice, cnyBatchPrice: cnyBatchPrice, cnyTotalPrice: cnyTotalPrice)
+            let products = KMBatchProductPriceModel(productId: productId, totalPrice: totalPrice, price: price, batchPrice: batchPrice, cnyPrice: cnyPrice, cnyBatchPrice: cnyBatchPrice, cnyTotalPrice: cnyTotalPrice)
 
             let result1 = KMMemberProductResult(code: code, msg: message, batchProductPrice: products)
             if code == 200 {
@@ -1046,6 +1046,154 @@ class KMMemberCenterManager: NSObject {
     
     // MARK: 订单模块
     
+    /**
+     @abstract              支付后查询订单状态
+     @param orderId 订单id
+     @param complete 回调
+     */
+    func getStateByOrderId(orderId: String, _ complete: @escaping KMMemberProductComplete) {
+        let token: String = KMMemberInfo.shared.access_token
+        if token == "" {
+            return
+        }
+        let urlString = configuration.activityBaseURL() + "/pdf-office-website/order/getStateByOrderId"
+        KMRequestServer.requestServer.request(urlString: urlString, method: .get, params: nil) { requestSerializer in
+            requestSerializer.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
+        } completion: { [weak self] (task, responseObject, error) in
+            var dic: NSDictionary = [:]
+            if error == nil, let responseObject = responseObject as? NSDictionary {
+                dic = responseObject
+            } else {
+                var info = responseObject
+                if let error = error {
+                    if let data = error.userInfo["com.alamofire.serialization.response.error.data"] as? Data {
+                        info = try? JSONSerialization.jsonObject(with: data, options: .mutableLeaves) as? NSDictionary
+                    }
+                }
+                dic = (info as? NSDictionary) ?? [:]
+            }
+            let code: Int = dic["code"] as? Int ?? 0
+            let result: NSDictionary = dic["result"] as? NSDictionary ?? [:]
+            let message: String = dic["msg"] as? String ?? ""
+            
+            var status = ""
+            if let token = result["status"] { status = token as! String }
+
+            let result1 = KMMemberProductResult(code: code, msg: message, result: status)
+            if code == 200 {
+                complete(true, result1)
+            } else {
+                complete(false, result1)
+            }
+        }
+    }
+    
+    /**
+     @abstract              创建订单(买断、订阅)
+     @param productId               产品id
+     @param paymentMethod   支付方式 PAYPAL(0),ALIPAY(1),WXPAY(2),PADDLE(3)
+     @param price                      价格
+     @param discountFlag        0原价,1优惠券,2升级,3教育优惠,4批量购买,5黑五折扣
+     @param couponCode        优惠卷
+     @param num                      批量购买数量
+     @param complete 回调
+     */
+    func createOrder(productId: String, paymentMethod: Int, price: String, discountFlag: Int, couponCode: String, num: Int, _ complete: @escaping KMMemberProductComplete) {
+        let token: String = KMMemberInfo.shared.access_token
+        if token == "" {
+            return
+        }
+        let urlString = configuration.activityBaseURL() + "/pdf-office-website/order/createOrder"
+        let params: [String: Any] = ["productId": productId,
+                                     "paymentMethod": paymentMethod,
+                                     "price": price,
+                                     "discountFlag": discountFlag,
+                                     "couponCode": couponCode,
+                                     "num": num]
+        KMRequestServer.requestServer.request(urlString: urlString, method: .post, params: params) { requestSerializer in
+            requestSerializer.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
+        } completion: { [weak self] (task, responseObject, error) in
+            var dic: NSDictionary = [:]
+            if error == nil, let responseObject = responseObject as? NSDictionary {
+                dic = responseObject
+            } else {
+                var info = responseObject
+                if let error = error {
+                    if let data = error.userInfo["com.alamofire.serialization.response.error.data"] as? Data {
+                        info = try? JSONSerialization.jsonObject(with: data, options: .mutableLeaves) as? NSDictionary
+                    }
+                }
+                dic = (info as? NSDictionary) ?? [:]
+            }
+            let code: Int = dic["code"] as? Int ?? 0
+            let result: NSDictionary = dic["result"] as? NSDictionary ?? [:]
+            let message: String = dic["msg"] as? String ?? ""
+            
+            var thirdOrderNo = ""
+            var orderId = ""
+            var payHref = ""
+            if code == 200 {
+                if let token = result["thirdOrderNo"] { thirdOrderNo = token as! String }
+                if let token = result["orderId"] { orderId = token as! String }
+                if let token = result["payHref"] { payHref = token as! String }
+                let products = KMCreateOrderModel(thirdOrderNo: thirdOrderNo, orderId: orderId, payHref: payHref)
+                let result1 = KMMemberProductResult(code: code, msg: message, createOrder: products)
+                complete(true, result1)
+            } else {
+                let result1 = KMMemberProductResult(code: code, msg: message, createOrder: KMCreateOrderModel(thirdOrderNo: thirdOrderNo, orderId: orderId, payHref: payHref))
+                complete(false, result1)
+            }
+        }
+    }
+
+    /**
+     @abstract              获取订单列表
+     @param orderStatus               0全部1待支付
+     @param complete 回调
+     */
+    func getOrderListByStatus(orderStatus: Int, _ complete: @escaping KMMemberProductComplete) {
+        let token: String = KMMemberInfo.shared.access_token
+        if token == "" {
+            return
+        }
+        let urlString = configuration.activityBaseURL() + "/pdf-office-website/order/getOrderListByStatus"
+        let params: [String: Any] = ["orderStatus": orderStatus]
+        KMRequestServer.requestServer.request(urlString: urlString, method: .get, params: params) { requestSerializer in
+            requestSerializer.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
+        } completion: { [weak self] (task, responseObject, error) in
+            var dic: NSDictionary = [:]
+            if error == nil, let responseObject = responseObject as? NSDictionary {
+                dic = responseObject
+            } else {
+                var info = responseObject
+                if let error = error {
+                    if let data = error.userInfo["com.alamofire.serialization.response.error.data"] as? Data {
+                        info = try? JSONSerialization.jsonObject(with: data, options: .mutableLeaves) as? NSDictionary
+                    }
+                }
+                dic = (info as? NSDictionary) ?? [:]
+            }
+            let code: Int = dic["code"] as? Int ?? 0
+            let result: NSDictionary = dic["result"] as? NSDictionary ?? [:]
+            let message: String = dic["msg"] as? String ?? ""
+            
+//            var thirdOrderNo = ""
+//            var orderId = ""
+//            var payHref = ""
+//            if code == 200 {
+//                if let token = result["thirdOrderNo"] { thirdOrderNo = token as! String }
+//                if let token = result["orderId"] { orderId = token as! String }
+//                if let token = result["payHref"] { payHref = token as! String }
+//                let products = KMCreateOrderModel(thirdOrderNo: thirdOrderNo, orderId: orderId, payHref: payHref)
+//                let result1 = KMMemberProductResult(code: code, msg: message, createOrder: products)
+//                complete(true, result1)
+//            } else {
+//                let result1 = KMMemberProductResult(code: code, msg: message, createOrder: KMCreateOrderModel(thirdOrderNo: thirdOrderNo, orderId: orderId, payHref: payHref))
+//                complete(false, result1)
+//            }
+        }
+    }
+    
 
     // MARK: 评估模块
 

+ 82 - 10
PDF Office/PDF Master/MemberCenter/Model/KMMemberProductResult.swift

@@ -14,17 +14,30 @@ class KMMemberProductResult: NSObject {
     var result_Bool         : Bool?
     var result_Dict         : Bool?
     
-    var listingProducts     : [KMListingProducts]?  // 上架中的产品
-    var batchProductPrice     : KMBatchProductPrice?  // 批量阶段购买价格
-    var checkCoupon     : KMCheckCoupon?  // 商品优惠券
-
+    var listingProducts     : [KMListingProductsModel]?  // 上架中的产品
+    var batchProductPrice     : KMBatchProductPriceModel?  // 批量阶段购买价格
+    var checkCoupon     : KMCheckCouponModel?  // 商品优惠券
+    var createOrder     : KMCreateOrderModel? // 创建订单(买断、订阅)
+    
+    /**
+     @abstract 通用返回字符串
+     @param code
+     @param msg
+     @param result
+     */
+    init(code: Int, msg: String, result: String) {
+        self.code = code
+        self.msg = msg
+        self.result = result
+    }
+    
     /**
      @abstract 获取上架中的产品
      @param code
      @param msg
      @param listingProducts 
      */
-    init(code: Int, msg: String, listingProducts: [KMListingProducts]) {
+    init(code: Int, msg: String, listingProducts: [KMListingProductsModel]) {
         self.code = code
         self.msg = msg
         self.listingProducts = listingProducts
@@ -36,7 +49,7 @@ class KMMemberProductResult: NSObject {
      @param msg
      @param batchProductPrice
      */
-    init(code: Int, msg: String, batchProductPrice: KMBatchProductPrice) {
+    init(code: Int, msg: String, batchProductPrice: KMBatchProductPriceModel) {
         self.code = code
         self.msg = msg
         self.batchProductPrice = batchProductPrice
@@ -48,15 +61,27 @@ class KMMemberProductResult: NSObject {
      @param msg
      @param checkCoupon
      */
-    init(code: Int, msg: String, checkCoupon: KMCheckCoupon) {
+    init(code: Int, msg: String, checkCoupon: KMCheckCouponModel) {
         self.code = code
         self.msg = msg
         self.checkCoupon = checkCoupon
     }
+    
+    /**
+     @abstract 创建订单(买断、订阅)
+     @param code
+     @param msg
+     @param createOrder
+     */
+    init(code: Int, msg: String, createOrder: KMCreateOrderModel) {
+        self.code = code
+        self.msg = msg
+        self.createOrder = createOrder
+    }
 }
 
 
-class KMListingProducts: NSObject {
+class KMListingProductsModel: NSObject {
     var id              : String = "" // 【可选】id
     var productName     : String = "" // 【可选】名称
     var price           : String = "" // 【可选】价格
@@ -86,7 +111,7 @@ class KMListingProducts: NSObject {
     }
 }
 
-class KMBatchProductPrice: NSObject {
+class KMBatchProductPriceModel: NSObject {
     var productId       : String = "" // 【必需】产品id
     var totalPrice      : String = "" // 【必需】总价
     var price           : String = "" // 【必需】总价
@@ -106,7 +131,7 @@ class KMBatchProductPrice: NSObject {
     }
 }
 
-class KMCheckCoupon: NSObject {
+class KMCheckCouponModel: NSObject {
     var id              : String = ""   // 【必需】id
     var productName     : String = ""   // 【必需】名称
     var price           : String = ""   // 【必需】价格
@@ -134,3 +159,50 @@ class KMCheckCoupon: NSObject {
         self.displayCnyPrice = displayCnyPrice
     }
 }
+
+/**
+ 创建 买断/订阅 订单数据模型
+ */
+class KMCreateOrderModel: NSObject {
+    var thirdOrderNo    : String = ""   // 【必需】
+    var orderId         : String = ""   // 【必需】
+    var payHref         : String = ""   // 【必需】
+    init(thirdOrderNo: String, orderId: String, payHref: String) {
+        self.thirdOrderNo = thirdOrderNo
+        self.orderId = orderId
+        self.payHref = payHref
+    }
+}
+
+/**
+ 获取订单列表
+ */
+class KMOrderListModel: NSObject {
+    var id    : String = ""
+    var appId         : String = ""
+    var subscriptionId : String = ""
+    var tradeNo         : String = ""
+    var thirdOrderNo         : String = ""
+    var price         : Int = 0
+    var payment         : Int = 0
+    var status         : Int = 0
+    var createdAt         : String = ""
+    var updatedAt         : String = ""
+    var result         : String = ""
+    var pagePayUrl         : String = ""
+    var invoiceNo         : String = ""
+    var thirdTradeNo         : String = ""
+    var productId         : String = ""
+    var discount         : String = ""
+    var reducedPrice         : String = ""
+    var isVpp         : String = ""
+    var type         : Int = 0
+    var detailType         : String = ""
+    var userId         : String = ""
+    var email         : String = ""
+    var payNumber         : Int = 0
+    var isEducation         : Int = 0
+    var subscriptionType         : Int = 0
+    var paymentModel         : Int = 0
+    
+}