ShoppingCartPayOrderController.swift 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  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. view.addSubview(orderPayView)
  34. }
  35. override func setupLayouts() {
  36. orderPayView.snp.makeConstraints { (make) in
  37. make.bottom.left.right.equalToSuperview()
  38. make.top.equalTo(kNavBarTotalHeight)
  39. }
  40. }
  41. override func setupData() {
  42. let deliverType = DeliveryMethodTypeModel.shared().getModel()?.deliveryMethodType
  43. orderPayView.deliverType = deliverType
  44. switch deliverType {
  45. case "1":
  46. self.userDefaultContactApi()
  47. case "2":
  48. // 获取默认快递信息
  49. self.userDefaultExpressApi()
  50. default:
  51. break
  52. }
  53. orderPayView.jumpNavBlock = {
  54. [weak self] (jumpType) in
  55. switch jumpType {
  56. case WillJumpType.expressAddInfo:
  57. let vc = EditExpressAddressViewController()
  58. self?.navigationController?.pushViewController(vc, animated: true)
  59. case WillJumpType.expressManageInfo:
  60. let vc = ExpressAddressListViewController()
  61. self?.navigationController?.pushViewController(vc, animated: true)
  62. case WillJumpType.selfAddInfo:
  63. let vc = EditSelfMentionContactsViewController()
  64. self?.navigationController?.pushViewController(vc, animated: true)
  65. case WillJumpType.selfPersonalInfo:
  66. let vc = SelfMentionContactsListViewController()
  67. self?.navigationController?.pushViewController(vc, animated: true)
  68. case WillJumpType.selfAddressInfo:
  69. let vc = SelfRecommendationViewController()
  70. self?.navigationController?.pushViewController(vc, animated: true)
  71. }
  72. }
  73. orderPayView.commitOrderTransBlock = {
  74. [weak self] (paraMdl) in
  75. if self?.selListModelArr != nil {
  76. self?.orderCreateApi(paraMdl: paraMdl)
  77. }
  78. }
  79. }
  80. private lazy var orderPayView: ShoppingCartOrderPayView = {
  81. let orderPayView = ShoppingCartOrderPayView()
  82. orderPayView.proListModelArr = self.selListModelArr
  83. orderPayView.totalProductPrice = self.totalProductPrice ?? 0
  84. return orderPayView
  85. }()
  86. /// 获取默认快递信息
  87. func userDefaultExpressApi() {
  88. SwiftMoyaNetWorkServiceUser.shared().userDefaultExpressApi { [weak self] (expressAddrModel) -> (Void) in
  89. self?.orderPayView.expressAddressMdl = expressAddrModel as? ExpressAddresModel
  90. }
  91. }
  92. // 获取默认用户自提信息
  93. func userDefaultContactApi() {
  94. SwiftMoyaNetWorkServiceUser.shared().userDefaultContactApi { [weak self] (contactModel) -> (Void) in
  95. self?.orderPayView.selfAddressInfoMdl = contactModel as? DefaultContactInfoModel
  96. }
  97. }
  98. // 创建订单
  99. func orderCreateApi(paraMdl: OrderCreateParameterModel) {
  100. SwiftMoyaNetWorkServiceOrder.shared().orderCreateApi(paraMdl: paraMdl) { (orderBackModel) -> (Void) in
  101. // 弹出支付方式View
  102. PayManagerPay.shared.payAlertView(orderPayModel: orderBackModel as! OrderCreateBackModel)
  103. }
  104. }
  105. }