SwiftMoyaNetWorkServiceOrder.swift 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. //
  2. // SwiftMoyaNetWorkServiceOrder.swift
  3. // RainbowPlanet
  4. //
  5. // Created by Christopher on 2019/5/15.
  6. // Copyright © 2019 RainbowPlanet. All rights reserved.
  7. //
  8. import Foundation
  9. import Moya
  10. import SwiftyJSON
  11. import ObjectMapper
  12. class SwiftMoyaNetWorkServiceOrder: NSObject {
  13. private static let _sharedInstance = SwiftMoyaNetWorkServiceOrder()
  14. private override init() {} // 私有化init方法
  15. class func shared() -> SwiftMoyaNetWorkServiceOrder {
  16. return _sharedInstance
  17. }
  18. /// 数据回调
  19. typealias apiCallBack = (Any) -> (Void)
  20. // MARK: - 创建订单
  21. /// 创建订单
  22. ///
  23. /// - Parameters:
  24. /// - completion: 回调
  25. func orderCreateApi(paraMdl:OrderCreateParameterModel, completion: @escaping apiCallBack) {
  26. var parameters = Dictionary<String,Any>()
  27. // 本地获取city_id/city_name
  28. let loacationModel = LocationModel.shared().getLocationModel()
  29. let baiduToCityModel = BaiduToCityFactory.shared.query(bjcityId: loacationModel!.cityCode)
  30. parameters.updateValue(baiduToCityModel.areaCode, forKey: "city_id")
  31. parameters.updateValue(baiduToCityModel.areaName, forKey: "city_name")
  32. // 本地获取deliver_type
  33. let deliver_type = DeliveryMethodTypeModel.shared().getModel()?.deliveryMethodType
  34. parameters.updateValue(deliver_type ?? 0, forKey: "deliver_type")
  35. parameters.updateValue(paraMdl.name ?? "", forKey: "name")
  36. parameters.updateValue(paraMdl.mobile ?? 0, forKey: "mobile")
  37. parameters.updateValue(paraMdl.address ?? "", forKey: "address")
  38. parameters.updateValue(paraMdl.pickNodeId ?? 0, forKey: "pick_node_id")
  39. parameters.updateValue(paraMdl.pickNodeContact ?? "", forKey: "pick_node_contact")
  40. parameters.updateValue(paraMdl.money ?? 0, forKey: "money")
  41. // 处理Json字符串
  42. var detailDicArr = Array<Any>()
  43. for productListShopMdl: CartProductListModel in paraMdl.selShopListArr! {
  44. var shopDic = Dictionary<String,Any>()
  45. var productsArr = Array<Any>()
  46. for productMdl: ProductModel in productListShopMdl.productList! {
  47. var productDic = Dictionary<String,Any>()
  48. productDic.updateValue(productMdl.skuId ?? 0, forKey: "sku_id")
  49. productDic.updateValue(productMdl.amount ?? 0, forKey: "number")
  50. productsArr.append(productDic)
  51. }
  52. shopDic.updateValue(productListShopMdl.shopId ?? 0, forKey: "shop_id")
  53. shopDic.updateValue(productListShopMdl.buyerNotes ?? "", forKey: "remark")
  54. shopDic.updateValue(productsArr, forKey: "products")
  55. detailDicArr.append(shopDic)
  56. }
  57. let jsonStr = JSON(detailDicArr).description
  58. parameters.updateValue(jsonStr, forKey: "detail")
  59. SwiftProgressHUD.shared().showWait()
  60. SwiftMoyaNetWorkManager.shared().request(OrderCreateBackModel.self,target: MultiTarget(SwiftMoyaServiceOrderApi.orderCreate(parameters: parameters))) { (orderCreateBackModel) in
  61. SwiftProgressHUD.shared().hide()
  62. completion(orderCreateBackModel)
  63. }
  64. }
  65. // MARK: - 前台订单列表
  66. /// 前台订单列表
  67. ///
  68. /// - Parameters:
  69. /// - status: 订单状态
  70. /// - completion: 回调
  71. func orderPurchaseOrderListApi(page:Int = 1,status:Int = -1,completion: @escaping apiCallBack) {
  72. var parameters = Dictionary<String,Any>()
  73. if status == -1 {
  74. parameters.updateValue("", forKey: "search_status")
  75. }else {
  76. parameters.updateValue(status, forKey: "search_status")
  77. }
  78. parameters.updateValue(page, forKey: "page")
  79. SwiftProgressHUD.shared().showWait()
  80. SwiftMoyaNetWorkManager.shared().request(OrderListModel.self,target: MultiTarget(SwiftMoyaServiceOrderApi.orderPurchaseOrderList(parameters: parameters))) { (orderListModel) in
  81. SwiftProgressHUD.shared().hide()
  82. completion(orderListModel)
  83. }
  84. }
  85. // MARK: - 前台订单详情
  86. /// 前台订单详情
  87. ///
  88. /// - Parameters:
  89. /// - status: 订单状态
  90. /// - completion: 回调
  91. func orderPurchaseDetailApi(purchaseNo:String = "",completion: @escaping apiCallBack) {
  92. var parameters = Dictionary<String,Any>()
  93. parameters.updateValue(purchaseNo, forKey: "search_status")
  94. SwiftProgressHUD.shared().showWait()
  95. SwiftMoyaNetWorkManager.shared().request(OrderModel.self,target: MultiTarget(SwiftMoyaServiceOrderApi.orderPurchaseDetail(parameters: parameters))) { (orderModel) in
  96. SwiftProgressHUD.shared().hide()
  97. completion(orderModel)
  98. }
  99. }
  100. }