// // 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(paraMdl:OrderCreateParameterModel, completion: @escaping apiCallBack) { var parameters = Dictionary() // 本地获取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") parameters.updateValue(paraMdl.name ?? "", forKey: "name") parameters.updateValue(paraMdl.mobile ?? 0, forKey: "mobile") parameters.updateValue(paraMdl.address ?? "", forKey: "address") parameters.updateValue(paraMdl.pickNodeId ?? 0, forKey: "pick_node_id") parameters.updateValue(paraMdl.pickNodeContact ?? "", forKey: "pick_node_contact") parameters.updateValue(paraMdl.money ?? 0, forKey: "money") // 处理Json字符串 var detailDicArr = Array() for productListShopMdl: CartProductListModel in paraMdl.selShopListArr! { var shopDic = Dictionary() var productsArr = Array() for productMdl: ProductModel in productListShopMdl.productList! { var productDic = Dictionary() productDic.updateValue(productMdl.skuId ?? 0, forKey: "sku_id") productDic.updateValue(productMdl.amount ?? 0, forKey: "number") productsArr.append(productDic) } shopDic.updateValue(productListShopMdl.shopId ?? 0, forKey: "shop_id") shopDic.updateValue(productListShopMdl.buyerNotes ?? "", forKey: "remark") shopDic.updateValue(productsArr, forKey: "products") detailDicArr.append(shopDic) } let jsonStr = JSON(detailDicArr).description parameters.updateValue(jsonStr, forKey: "detail") SwiftProgressHUD.shared().showWait() SwiftMoyaNetWorkManager.shared().request(OrderCreateBackModel.self,target: MultiTarget(SwiftMoyaServiceOrderApi.orderCreate(parameters: parameters))) { (orderCreateBackModel) in SwiftProgressHUD.shared().hide() completion(orderCreateBackModel) } } // MARK: - 前台订单列表 /// 前台订单列表 /// /// - Parameters: /// - status: 订单状态 /// - completion: 回调 func orderPurchaseOrderListApi(page:Int = 1,status:Int = -1,completion: @escaping apiCallBack) { var parameters = Dictionary() if status == -1 { parameters.updateValue("", forKey: "search_status") }else { parameters.updateValue(status, forKey: "search_status") } parameters.updateValue(page, forKey: "page") SwiftProgressHUD.shared().showWait() SwiftMoyaNetWorkManager.shared().request(OrderListModel.self,target: MultiTarget(SwiftMoyaServiceOrderApi.orderPurchaseOrderList(parameters: parameters))) { (orderListModel) in SwiftProgressHUD.shared().hide() completion(orderListModel) } } // MARK: - 前台订单详情 /// 前台订单详情 /// /// - Parameters: /// - status: 订单状态 /// - completion: 回调 func orderPurchaseDetailApi(purchaseNo:String = "",completion: @escaping apiCallBack) { var parameters = Dictionary() parameters.updateValue(purchaseNo, forKey: "search_status") SwiftProgressHUD.shared().showWait() SwiftMoyaNetWorkManager.shared().request(OrderModel.self,target: MultiTarget(SwiftMoyaServiceOrderApi.orderPurchaseDetail(parameters: parameters))) { (orderModel) in SwiftProgressHUD.shared().hide() completion(orderModel) } } }