ShoppingCartPayOrderController.swift 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. //
  2. // ShoppingCartPayOrderController.swift
  3. // RainbowPlanet
  4. //
  5. // Created by Christopher on 2019/5/9.
  6. // Copyright © 2019 RainbowPlanet. All rights reserved.
  7. // 购物车--订单支付
  8. import UIKit
  9. import RxSwift
  10. // 跳转类型
  11. enum WillJumpType {
  12. case expressAddInfo // 添加快递地址
  13. case expressManageInfo // 管理快递地址
  14. case selfAddInfo // 添加自提收货信息
  15. case selfPersonalInfo // 自提个人信息
  16. case selfAddressInfo // 自提地址信息
  17. }
  18. class ShoppingCartPayOrderController: BaseViewController {
  19. // 已选商品ModelArr
  20. var selListModelArr : Array<CartProductListModel>?
  21. // 全部已选总价
  22. var totalProductPrice: Int?
  23. override func viewDidLoad() {
  24. super.viewDidLoad()
  25. setupViews()
  26. setupLayouts()
  27. }
  28. override func viewWillAppear(_ animated: Bool) {
  29. setupData()
  30. }
  31. override func setupViews() {
  32. navigationBar.title = "订单支付"
  33. self.setOrderPayView()
  34. }
  35. override func setupLayouts() {
  36. }
  37. override func setupData() {
  38. let deliverType = DeliveryMethodTypeModel.shared().getModel()?.deliveryMethodType
  39. orderPayView.deliverType = deliverType
  40. switch deliverType {
  41. case "1":
  42. self.userDefaultContactApi()
  43. case "2":
  44. // 获取默认快递信息
  45. self.userDefaultExpressApi()
  46. default:
  47. break
  48. }
  49. }
  50. /// 添加view
  51. func setOrderPayView() {
  52. view.addSubview(orderPayView)
  53. orderPayView.snp.makeConstraints { (make) in
  54. make.bottom.left.right.equalToSuperview()
  55. make.top.equalTo(kNavBarTotalHeight)
  56. }
  57. }
  58. private lazy var orderPayView: ShoppingCartOrderPayView = {
  59. let orderPayView = ShoppingCartOrderPayView()
  60. orderPayView.proListModelArr = self.selListModelArr
  61. orderPayView.totalProductPrice = self.totalProductPrice!
  62. orderPayView.commitOrderTransBlock = {
  63. [weak self] (paraMdl) in
  64. // self?.orderCreateApi(paraMdl: paraMdl)
  65. // just test
  66. let vc = ShoppingCartFinishPayController()
  67. self?.navigationController?.pushViewController(vc, animated: true)
  68. }
  69. orderPayView.jumpNavBlock = {
  70. [weak self] (jumpType) in
  71. switch jumpType {
  72. case WillJumpType.expressAddInfo:
  73. let vc = EditExpressAddressViewController()
  74. self?.navigationController?.pushViewController(vc, animated: true)
  75. case WillJumpType.expressManageInfo:
  76. let vc = ExpressAddressListViewController()
  77. self?.navigationController?.pushViewController(vc, animated: true)
  78. case WillJumpType.selfAddInfo:
  79. let vc = EditSelfMentionContactsViewController()
  80. self?.navigationController?.pushViewController(vc, animated: true)
  81. case WillJumpType.selfPersonalInfo:
  82. let vc = SelfMentionContactsListViewController()
  83. self?.navigationController?.pushViewController(vc, animated: true)
  84. case WillJumpType.selfAddressInfo:
  85. let vc = SelfRecommendationViewController()
  86. self?.navigationController?.pushViewController(vc, animated: true)
  87. }
  88. }
  89. return orderPayView
  90. }()
  91. /// 获取默认快递信息
  92. func userDefaultExpressApi() {
  93. SwiftMoyaNetWorkServiceUser.shared().userDefaultExpressApi { [weak self] (expressAddrModel) -> (Void) in
  94. self?.orderPayView.expressAddressMdl = expressAddrModel as? ExpressAddresModel
  95. }
  96. }
  97. // 获取默认用户自提信息
  98. func userDefaultContactApi() {
  99. SwiftMoyaNetWorkServiceUser.shared().userDefaultContactApi { [weak self] (contactModel) -> (Void) in
  100. self?.orderPayView.selfAddressInfoMdl = contactModel as? DefaultContactInfoModel
  101. }
  102. }
  103. // 创建订单
  104. func orderCreateApi(paraMdl: OrderCreateParameterModel) {
  105. SwiftMoyaNetWorkServiceOrder.shared().orderCreateApi(paraMdl: paraMdl) { (orderBackModel) -> (Void) in
  106. // 弹出支付方式View
  107. AlertSheetView.payAlertSheetView(cancelClosure: {
  108. [weak self] in
  109. let vc = ShoppingCartFinishPayController()
  110. vc.payStatus = false
  111. self?.navigationController?.pushViewController(vc, animated: true)
  112. }, sureClosure: { [weak self] (payType) in
  113. switch payType {
  114. case .wechatPay:
  115. self?.payWeixinpayApi(orderPayModel: orderBackModel as! OrderCreateBackModel)
  116. case .aliPay:
  117. self?.payAlipayApi(orderPayModel: orderBackModel as! OrderCreateBackModel)
  118. }
  119. })
  120. self.payWeixinpayApi(orderPayModel: orderBackModel as! OrderCreateBackModel)
  121. }
  122. }
  123. // 微信支付
  124. func payWeixinpayApi(orderPayModel: OrderCreateBackModel) {
  125. SwiftMoyaNetWorkServicePay.shared().payWeixinpayApi(paraMdl: orderPayModel) { [weak self] (data) -> (Void) in
  126. print(data)
  127. let vc = ShoppingCartFinishPayController()
  128. vc.payStatus = true
  129. self?.navigationController?.pushViewController(vc, animated: true)
  130. }
  131. }
  132. // 支付宝支付
  133. func payAlipayApi(orderPayModel: OrderCreateBackModel) {
  134. SwiftMoyaNetWorkServicePay.shared().payAlipayApi(paraMdl: orderPayModel) { [weak self] (data) -> (Void) in
  135. print(data)
  136. let vc = ShoppingCartFinishPayController()
  137. vc.payStatus = true
  138. self?.navigationController?.pushViewController(vc, animated: true)
  139. }
  140. }
  141. }