SwiftMoyaNetWorkServiceOrder.swift 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  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: "purchase_no")
  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. /// 订单退款详情
  101. ///
  102. /// - Parameters:
  103. /// - refundNo: <#refundNo description#>
  104. /// - completion: <#completion description#>
  105. func orderPurchaseRefundDetailApi(refundNo:String = "",completion: @escaping apiCallBack) {
  106. var parameters = Dictionary<String,Any>()
  107. parameters.updateValue(refundNo, forKey: "refund_no")
  108. SwiftProgressHUD.shared().showWait()
  109. SwiftMoyaNetWorkManager.shared.request(OrderRefundDetailModel.self,target: MultiTarget(SwiftMoyaServiceOrderApi.orderPurchaseRefundDetail(parameters: parameters))) { (orderModel) in
  110. SwiftProgressHUD.shared().hide()
  111. completion(orderModel)
  112. }
  113. }
  114. // MARK: - 申请退款
  115. /// 申请退款
  116. ///
  117. /// - Parameters:
  118. /// - purchaseId: 订单id
  119. /// - mobile: 电话
  120. /// - refundReason: 退款原因
  121. /// - refund_remark: 退款备注
  122. /// - detail: 子订单id(json字符串
  123. /// - imgs: 图库(json字符串)
  124. /// - completion: 回调
  125. func orderPurchaseRefundApi(purchaseId:Int = 0,mobile:String = "",refundReason:String = "",refund_remark:String = "",detail:String = "",imgs:String = "",completion: @escaping apiCallBack) {
  126. var parameters = Dictionary<String,Any>()
  127. parameters.updateValue(purchaseId, forKey: "purchase_id")
  128. parameters.updateValue(mobile, forKey: "mobile")
  129. parameters.updateValue(refundReason, forKey: "refund_reason")
  130. parameters.updateValue(refund_remark, forKey: "refund_remark")
  131. parameters.updateValue(detail, forKey: "detail")
  132. parameters.updateValue(imgs, forKey: "imgs")
  133. SwiftProgressHUD.shared().showWait()
  134. SwiftMoyaNetWorkManager.shared.request(OrderApplyRefundModel.self,target: MultiTarget(SwiftMoyaServiceOrderApi.orderPurchaseRefund(parameters: parameters))) { (orderApplyRefundModel) in
  135. SwiftProgressHUD.shared().hide()
  136. completion(orderApplyRefundModel)
  137. }
  138. }
  139. // MARK: - 确认收货
  140. /// 确认收货
  141. ///
  142. /// - Parameters:
  143. /// - purchaseId: 订单编号
  144. /// - completion: 回调
  145. func orderPurchaseConfirmApi(purchaseId:Int = 0,completion: @escaping apiCallBack) {
  146. var parameters = Dictionary<String,Any>()
  147. parameters.updateValue(purchaseId, forKey: "purchase_id")
  148. SwiftProgressHUD.shared().showWait()
  149. SwiftMoyaNetWorkManager.shared.request(target: MultiTarget(SwiftMoyaServiceOrderApi.orderPurchaseConfirm(parameters: parameters))) { (data) in
  150. SwiftProgressHUD.shared().hide()
  151. completion("")
  152. }
  153. }
  154. // MARK: - 关闭订单
  155. /// 关闭订单
  156. ///
  157. /// - Parameters:
  158. /// - patchNumN: 批次号
  159. /// - completion: 回调
  160. func orderPurchaseCloseApi(patchNum:String = "",completion: @escaping apiCallBack) {
  161. var parameters = Dictionary<String,Any>()
  162. parameters.updateValue(patchNum, forKey: "patch_num")
  163. SwiftProgressHUD.shared().showWait()
  164. SwiftMoyaNetWorkManager.shared.request(target: MultiTarget(SwiftMoyaServiceOrderApi.orderPurchaseClose(parameters: parameters))) { (data) in
  165. SwiftProgressHUD.shared().showText("取消成功")
  166. completion("")
  167. }
  168. }
  169. }