Parcourir la source

订单-API文件

Chris il y a 6 ans
Parent
commit
7ea74c8df7

+ 28 - 0
RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj

@@ -302,6 +302,9 @@
 		A7FF1590228C914600A85748 /* OrderRefunddetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF158F228C914600A85748 /* OrderRefunddetailsView.swift */; };
 		A7FF1592228C918100A85748 /* OrderRefunddetailsStatusTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF1591228C918100A85748 /* OrderRefunddetailsStatusTableViewCell.swift */; };
 		A7FF1594228C919A00A85748 /* OrderRefunddetailsTipsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF1593228C919A00A85748 /* OrderRefunddetailsTipsTableViewCell.swift */; };
+		BD1DC6C5228CFD0B00B89C57 /* SwiftMoyaNetWorkServiceOrder.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD1DC6C3228CFD0B00B89C57 /* SwiftMoyaNetWorkServiceOrder.swift */; };
+		BD1DC6C6228CFD0B00B89C57 /* SwiftMoyaServiceOrderApi.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD1DC6C4228CFD0B00B89C57 /* SwiftMoyaServiceOrderApi.swift */; };
+		BD1DC6C9228D005000B89C57 /* OrderCreateParameterModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD1DC6C8228D005000B89C57 /* OrderCreateParameterModel.swift */; };
 		BD20F1CB2283C12000677D8E /* ShoppingCartListNoneItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD20F1CA2283C12000677D8E /* ShoppingCartListNoneItemCell.swift */; };
 		BD20F1CD2283C51300677D8E /* ShoppingCartFinishPayController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD20F1CC2283C51300677D8E /* ShoppingCartFinishPayController.swift */; };
 		BD20F1CF2283CE2300677D8E /* ShoppingCartFinishPayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD20F1CE2283CE2300677D8E /* ShoppingCartFinishPayView.swift */; };
@@ -661,6 +664,9 @@
 		A7FF158F228C914600A85748 /* OrderRefunddetailsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderRefunddetailsView.swift; sourceTree = "<group>"; };
 		A7FF1591228C918100A85748 /* OrderRefunddetailsStatusTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderRefunddetailsStatusTableViewCell.swift; sourceTree = "<group>"; };
 		A7FF1593228C919A00A85748 /* OrderRefunddetailsTipsTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderRefunddetailsTipsTableViewCell.swift; sourceTree = "<group>"; };
+		BD1DC6C3228CFD0B00B89C57 /* SwiftMoyaNetWorkServiceOrder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwiftMoyaNetWorkServiceOrder.swift; sourceTree = "<group>"; };
+		BD1DC6C4228CFD0B00B89C57 /* SwiftMoyaServiceOrderApi.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwiftMoyaServiceOrderApi.swift; sourceTree = "<group>"; };
+		BD1DC6C8228D005000B89C57 /* OrderCreateParameterModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderCreateParameterModel.swift; sourceTree = "<group>"; };
 		BD20F1CA2283C12000677D8E /* ShoppingCartListNoneItemCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartListNoneItemCell.swift; sourceTree = "<group>"; };
 		BD20F1CC2283C51300677D8E /* ShoppingCartFinishPayController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartFinishPayController.swift; sourceTree = "<group>"; };
 		BD20F1CE2283CE2300677D8E /* ShoppingCartFinishPayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartFinishPayView.swift; sourceTree = "<group>"; };
@@ -1213,6 +1219,7 @@
 				A71AA5242273202E008FF1A5 /* SwiftMoyaServiceConfig */,
 				A72843FD224DB79400F82F30 /* SwiftMoyaServiceUser */,
 				A7C3DD182264229900FA262E /* SwiftMoyaServiceSMS */,
+				BD1DC6C2228CFD0B00B89C57 /* SwiftMoyaServiceOrder */,
 				A7284A7122546441000BAEC4 /* SwiftMoyaServicePay */,
 			);
 			path = SwiftMoyaServiceApi;
@@ -1570,6 +1577,7 @@
 				A7B4E736228190810012914A /* CommonModel */,
 				A72A73722233966800B21995 /* RootModel */,
 				A7A98E00227E88E8005306E9 /* ProductModel */,
+				BD1DC6C7228D002200B89C57 /* OrderModel */,
 				A79057032276D5FE0037F823 /* ConfigModel */,
 				A7284402224DBE3500F82F30 /* UserModel */,
 				A7B4E733228190630012914A /* CMSModel */,
@@ -2678,6 +2686,23 @@
 			path = ViewController;
 			sourceTree = "<group>";
 		};
+		BD1DC6C2228CFD0B00B89C57 /* SwiftMoyaServiceOrder */ = {
+			isa = PBXGroup;
+			children = (
+				BD1DC6C4228CFD0B00B89C57 /* SwiftMoyaServiceOrderApi.swift */,
+				BD1DC6C3228CFD0B00B89C57 /* SwiftMoyaNetWorkServiceOrder.swift */,
+			);
+			path = SwiftMoyaServiceOrder;
+			sourceTree = "<group>";
+		};
+		BD1DC6C7228D002200B89C57 /* OrderModel */ = {
+			isa = PBXGroup;
+			children = (
+				BD1DC6C8228D005000B89C57 /* OrderCreateParameterModel.swift */,
+			);
+			path = OrderModel;
+			sourceTree = "<group>";
+		};
 		BD3474F722859788000908C5 /* ShoppingCartPayOrder */ = {
 			isa = PBXGroup;
 			children = (
@@ -3105,6 +3130,7 @@
 				A7CC74EA22706ACD003C4F38 /* MessageViewController.swift in Sources */,
 				BDF47D7E22827C3F00941AB9 /* ProductSlidingTopBottomCollectionViewCell.swift in Sources */,
 				A7FF1589228C854900A85748 /* OrderDetailBottomView.swift in Sources */,
+				BD1DC6C5228CFD0B00B89C57 /* SwiftMoyaNetWorkServiceOrder.swift in Sources */,
 				BD7AB83D228438020030646A /* OrderPayExpressInfoShowCell.swift in Sources */,
 				A72A72C422321DE000B21995 /* Extension+CAGradientLayer.swift in Sources */,
 				A7778CA72243A05400C7C47A /* IQKeyboardManagerSwiftManager.swift in Sources */,
@@ -3235,6 +3261,7 @@
 				A7A98E2D22801642005306E9 /* SwiftMoyaServiceCMSApi.swift in Sources */,
 				A70B2C402288312900B2449F /* ProductDetailSectionHeader.swift in Sources */,
 				A7A98E3122801B10005306E9 /* ShoppingMallListView.swift in Sources */,
+				BD1DC6C6228CFD0B00B89C57 /* SwiftMoyaServiceOrderApi.swift in Sources */,
 				A7CC751A22716254003C4F38 /* SetTableViewCell.swift in Sources */,
 				BD20F1D32283D0ED00677D8E /* ShoppingCartPaySuccessCell.swift in Sources */,
 				A71AA52822732173008FF1A5 /* SwiftMoyaNetWorkServiceConfig.swift in Sources */,
@@ -3311,6 +3338,7 @@
 				A7B4E72F2281773F0012914A /* ProductFloorCenterTitleView.swift in Sources */,
 				A7284A542252FB5C000BAEC4 /* PaginationModel.swift in Sources */,
 				A72A72D022321E2700B21995 /* FontMacro.swift in Sources */,
+				BD1DC6C9228D005000B89C57 /* OrderCreateParameterModel.swift in Sources */,
 				A71AA52622732068008FF1A5 /* SwiftMoyaServiceConfigApi.swift in Sources */,
 				A77F2C982231FD25001BD3F6 /* BaseNavigationViewController.swift in Sources */,
 				A7A98E1B227EEE49005306E9 /* SpecialView.swift in Sources */,

+ 31 - 10
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCartPayOrder/View/ShoppingCartOrderPayView.swift

@@ -10,13 +10,13 @@ import UIKit
 
 class ShoppingCartOrderPayView: BaseView {
     
-    typealias CommitOrderTransBlock = () -> Void
+    typealias CommitOrderTransBlock = (_ paraModel: OrderCreateParameterModel) -> Void
     var commitOrderTransBlock : CommitOrderTransBlock?
     
     typealias JumpNavBlock = (_ jumpType: WillJumpType) -> Void
     var jumpNavBlock : JumpNavBlock?       
     
-    // 全部已选总价
+    // 全部已选总价(元)
     var totalProductPrice: Int = 0 {
         didSet {
             self.accountView.tPrice = totalProductPrice
@@ -30,12 +30,8 @@ class ShoppingCartOrderPayView: BaseView {
         }
     }
     
-    // 全部已选总价
-    var deliverType: String? {
-        didSet {
-            
-        }
-    }
+    // 配送方式
+    var deliverType: String?
     
     // 快递地址信息Mdl
     var expressAddressMdl: ExpressAddresModel? {
@@ -77,9 +73,34 @@ class ShoppingCartOrderPayView: BaseView {
         let accountView = OrderPayAcountView()
         accountView.commitOrderBlock = {
             [weak self] in
-            if let commitOrderTransBlock = self?.commitOrderTransBlock {
-                commitOrderTransBlock()
+//            if let commitOrderTransBlock = self?.commitOrderTransBlock {
+//                commitOrderTransBlock()
+//            }
+            
+            print("------点击提交订单--payView")
+            print(self?.expressAddressMdl as! ExpressAddresModel)
+            print(self?.selfAddressInfoMdl as Any)
+            
+            let paraMdl = OrderCreateParameterModel()
+            paraMdl.money = self!.totalProductPrice * 100
+            switch self?.deliverType {
+            case "1":
+                // 自提
+                paraMdl.name = self?.selfAddressInfoMdl?.name
+                paraMdl.mobile = Int(self?.selfAddressInfoMdl?.mobile ?? "")
+                paraMdl.address = ""
+                paraMdl.pickNodeId = 0
+//                paraMdl.
+                
+            case "2":
+                // 快递
+                return
+            default:
+                return
             }
+            
+
+            
         }
         return accountView
     }()

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCartPayOrder/ViewController/ShoppingCartPayOrderController.swift

@@ -73,7 +73,7 @@ class ShoppingCartPayOrderController: BaseViewController {
         orderPayView.proListModelArr = self.selListModelArr
         orderPayView.totalProductPrice = self.totalProductPrice!
         orderPayView.commitOrderTransBlock = {
-            [weak self] in
+            [weak self] (paraMdl) in
             // 支付弹窗调用
             AlertSheetView.payAlertSheetView {
                 

+ 22 - 0
RainbowPlanet/RainbowPlanet/Service/Model/OrderModel/OrderCreateParameterModel.swift

@@ -0,0 +1,22 @@
+//
+//  OrderCreateParameterModel.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/16.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  创建订单参数Model
+
+import UIKit
+import ObjectMapper
+
+class OrderCreateParameterModel : NSObject{
+    
+    var name : String?
+    var mobile : Int?
+    var address : String?
+    var pickNodeId : Int?
+    var pickNodeContact : String?
+    var money : Int?
+    var selProductListMdlArr : Array<CartProductListModel>?
+}
+

+ 126 - 0
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServiceOrder/SwiftMoyaNetWorkServiceOrder.swift

@@ -0,0 +1,126 @@
+//
+//  SwiftMoyaNetWorkServiceOrder.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/15.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import Foundation
+import Moya
+import SwiftyJSON
+import ObjectMapper
+
+class SwiftMoyaNetWorkServiceOrder: NSObject {
+    private static let _sharedInstance = SwiftMoyaNetWorkServiceOrder()
+    
+    private override init() {} // 私有化init方法
+    
+    class func shared() -> SwiftMoyaNetWorkServiceOrder {
+        return _sharedInstance
+    }
+    /// 数据回调
+    typealias apiCallBack = (Any) -> (Void)
+    
+    // MARK: - 创建订单
+    /// 创建订单
+    ///
+    /// - Parameters:
+    ///   - completion: 回调
+    func orderCreateApi(name:String  = "", mobile:Int = 0, address:String = "", pickId:Int = 0, pickContact:String = "", money:Int = 0, proListMdlArr: Array<CartProductListModel>, completion: @escaping apiCallBack) {
+        
+        
+        
+        
+        
+//        name    是    string    收货人
+//        mobile    是    int    电话
+//        address    是    string    收货地址
+//        pick_node_id    否    int    自提点id
+//        pick_node_contact    否    string    自提点店长
+//        money    是    int    支付总金额(分)
+        
+        var parameters = Dictionary<String,Any>()
+        
+        
+        
+        // 本地获取city_id/city_name
+        let loacationModel = LocationModel.shared().getLocationModel()
+        let baiduToCityModel = BaiduToCityFactory.shared.query(bjcityId: loacationModel!.cityCode)
+        parameters.updateValue(baiduToCityModel.areaCode, forKey: "city_id")
+        parameters.updateValue(baiduToCityModel.areaName, forKey: "city_name")
+        
+        // 本地获取deliver_type
+        let deliver_type = DeliveryMethodTypeModel.shared().getModel()?.deliveryMethodType
+        parameters.updateValue(deliver_type ?? 0, forKey: "deliver_type")
+        
+        SwiftProgressHUD.shared().showWait()
+        SwiftMoyaNetWorkManager.shared().request(CartAmountModel.self,target: MultiTarget(SwiftMoyaServiceProductApi.productCartAdd(parameters: parameters))) { (cartAmountModel) in
+            SwiftProgressHUD.shared().hide()
+            completion(cartAmountModel)
+        }
+    }
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    // MARK: - 搜索、列表
+    /// 搜索、列表
+    ///
+    /// - Parameters:
+    ///   - keyword: 关键字:商品名称、子标题、规格
+    ///   - category_id: 一级分类id
+    ///   - field_order: 1销量 2价格
+    ///   - desc: 排序方式:1 desc倒序、2 asc正序
+    ///   - completion: 回调
+    func productListApi(page:Int = 1,shopId:Int  = 0, keyword:String = "",categoryId:Int = 0,desc:Int = 0,fieldOrder:Int = 0,completion: @escaping apiCallBack) {
+        var parameters = Dictionary<String,Any>()
+        // 本地获取city_id
+        let loacationModel = LocationModel.shared().getLocationModel()
+        let baiduToCityModel = BaiduToCityFactory.shared.query(bjcityId: loacationModel!.cityCode)
+        parameters.updateValue(baiduToCityModel.areaCode, forKey: "city_id")
+        
+        // 本地获取deliver_type
+        let deliver_type = DeliveryMethodTypeModel.shared().getModel()?.deliveryMethodType
+        parameters.updateValue(deliver_type ?? "2", forKey: "deliver_type")
+        parameters.updateValue(page, forKey: "page")
+        parameters.updateValue(keyword, forKey: "keyword")
+        
+        if shopId == 0 {
+            parameters.updateValue("", forKey: "shop_id")
+        }else {
+            parameters.updateValue(shopId, forKey: "shop_id")
+        }
+        
+        if desc == 0 {
+            parameters.updateValue("", forKey: "desc")
+        }else {
+            parameters.updateValue(desc, forKey: "desc")
+        }
+        
+        if fieldOrder == 0 {
+            parameters.updateValue("", forKey: "field_order")
+        }else {
+            parameters.updateValue(fieldOrder, forKey: "field_order")
+        }
+        
+        if categoryId == 0 {
+            parameters.updateValue("", forKey: "category_id1")
+        }else {
+            parameters.updateValue(categoryId, forKey: "category_id1")
+        }
+        
+        SwiftProgressHUD.shared().showWait()
+        SwiftMoyaNetWorkManager.shared()
+            .request(ProductSearchListModel.self,target: MultiTarget(SwiftMoyaServiceProductApi.productSearch(parameters: parameters))) {(productSearchListModel) in
+                SwiftProgressHUD.shared().hide()
+                completion(productSearchListModel)
+        }
+    }
+        
+}

+ 91 - 0
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServiceOrder/SwiftMoyaServiceOrderApi.swift

@@ -0,0 +1,91 @@
+//
+//  SwiftMoyaServiceOrderApi.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/15.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import Foundation
+import Moya
+
+// MARK: - 搜索、列表、热销
+/// 搜索、列表、热销
+public let kOrderCreateApi = "/order/purchase/create"
+
+/// 商品
+///
+/// - productSearch: 搜索、列表、热销
+public enum SwiftMoyaServiceOrderApi {
+    case orderCreate(parameters:Dictionary<String, Any>)
+}
+
+extension SwiftMoyaServiceOrderApi: TargetType {
+    
+    public var baseURL: URL {
+        switch self {
+        case .orderCreate
+            :
+            return URL(string: kApiDataPrefix())!
+        }
+    }
+    
+    public var path: String {
+        switch self {
+        case .orderCreate:
+            return kOrderCreateApi
+        }
+    }
+    
+    public var method: Moya.Method {
+        switch self {
+        case .orderCreate
+            :
+            return .post
+//        case .productCartAmount,
+//             .productCartIsSel,
+//             .productCartAllSel
+//            :
+//            return .put
+//        case .productSearch,
+//            :
+//            return .get
+//        case .productCartDelete
+//            :
+//            return .delete
+        }
+    }
+    
+    // MARK: - 请求任务事件(这里附带上参数)
+    public var task: Task {
+        switch self {
+        case .orderCreate(var parameters)
+            :
+            let sign = SwiftSign.shared().sign(signType:.AccessToken, parameters: parameters)
+            parameters.updateValue(sign, forKey: "sign")
+            return .requestParameters(parameters: parameters, encoding: URLEncoding.default)
+        }
+    }
+    
+    
+    // MARK: - 是否执行Alamofire验证
+    public var validate: Bool {
+        return false
+    }
+    
+    // MARK: - 这个就是做单元测试模拟的数据,只会在单元测试文件中有作用
+    public var sampleData: Data {
+        return "{}".data(using: String.Encoding.utf8)!
+    }
+    
+    // MARK: - 请求头
+    public var headers: [String : String]? {
+        //同task,具体选择看后台 有application/x-www-form-urlencoded 、application/json
+        switch self {
+        case .orderCreate
+            :
+            return (headerParameters(headerType: .tokenHeader) as! [String : String])
+        }
+    }
+    
+}