SelfRecommendationViewController.swift 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. //
  2. // SelfRecommendationViewController.swift
  3. // RainbowPlanet
  4. //
  5. // Created by 南鑫林 on 2019/4/19.
  6. // Copyright © 2019 南鑫林. All rights reserved.
  7. //
  8. import UIKit
  9. class SelfRecommendationViewController: BaseViewController {
  10. /// 纬度
  11. var latitude : String = LocationModel.shared().getLocationModel()?.latitude ?? "34.20840377740726"
  12. /// 经度
  13. var longitude : String = LocationModel.shared().getLocationModel()?.longitude ?? "108.96265686107972"
  14. var selfMentionAddressArray = Array<SelfMentionAddressModel>()
  15. typealias DidSelectClosure = () -> Void
  16. var didSelectClosure : DidSelectClosure?
  17. override func viewDidLoad() {
  18. super.viewDidLoad()
  19. navigationBar.title = "自提点推荐"
  20. setupViews()
  21. setupLayouts()
  22. setupData()
  23. }
  24. override func setupViews() {
  25. view.addSubview(selfRecommendationView)
  26. }
  27. override func setupLayouts() {
  28. selfRecommendationView.snp.makeConstraints { (make) in
  29. make.top.equalTo(navigationBar.snp.bottom)
  30. make.left.right.bottom.equalToSuperview()
  31. }
  32. }
  33. override func setupData() {
  34. self.selfRecommendationView.collectionView.addHeaderWithHeader(withBeginRefresh: true, animation: false) {
  35. [weak self] (page) in
  36. self?.configPickupNodeIndexApi( page: page)
  37. }
  38. self.selfRecommendationView.collectionView.addFooterWithWithHeader(withAutomaticallyRefresh: true) {
  39. [weak self] (page) in
  40. self?.configPickupNodeIndexApi(page:page)
  41. }
  42. }
  43. private lazy var selfRecommendationView: SelfRecommendationView = {
  44. let selfRecommendationView = SelfRecommendationView()
  45. selfRecommendationView.goShoppingBlock = { //去首页快递
  46. [weak self] in
  47. let deliveryMethodTypeModel = DeliveryMethodTypeModel.shared().getModel()
  48. if deliveryMethodTypeModel?.deliveryMethodType?.isEmpty ?? true {
  49. self?.tabbarController(deliveryMethodType: "0")
  50. }else {
  51. self?.tabbarController(deliveryMethodType: deliveryMethodTypeModel?.deliveryMethodType ?? "0")
  52. }
  53. }
  54. selfRecommendationView.didSelectGoShoppingBlock = { //去首页自提
  55. [weak self] indexPath in
  56. let selfMentionAddressModel = self?.selfMentionAddressArray[indexPath.row]
  57. self?.userAddSelfAddressApi(cityId:selfMentionAddressModel?.cityId ?? 0,cityName: selfMentionAddressModel?.cityName ?? "",pickupNodeId:selfMentionAddressModel?.id ?? 0, address: selfMentionAddressModel?.address ?? "")
  58. }
  59. selfRecommendationView.changeLocationBlock = {
  60. [weak self] in
  61. let vc = AddressPOIViewController()
  62. vc.didSelectBlock = {
  63. [weak self] (latitude:String,longitude:String,address:String) in
  64. selfRecommendationView.locationAddress = address
  65. self?.latitude = latitude
  66. self?.longitude = longitude
  67. self?.selfRecommendationView.collectionView.scrollsToTop = true
  68. self?.configPickupNodeIndexApi(page:1)
  69. }
  70. self?.navigationController?.pushViewController(vc, animated: true)
  71. }
  72. return selfRecommendationView
  73. }()
  74. private func tabbarController(deliveryMethodType:String) {
  75. let model = DeliveryMethodTypeModel.shared().getModel()
  76. model?.deliveryMethodType = deliveryMethodType
  77. DeliveryMethodTypeModel.shared().setModel(model: model!)
  78. if self.presentingViewController != nil {
  79. self.dismiss(animated: false, completion: {
  80. kAppDelegate.setTabbarController()
  81. })
  82. } else {
  83. kAppDelegate.setTabbarController()
  84. }
  85. }
  86. /// 加载数据
  87. ///
  88. /// - Parameter page: 分页
  89. func configPickupNodeIndexApi(page:Int) {
  90. SwiftMoyaNetWorkServiceConfig.shared().configPickupNodeIndexApi(longitude: longitude, latitude: latitude,page: page) {
  91. [weak self] (selfMentionAddressListModel) -> (Void) in
  92. let selfMentionAddressListModel = selfMentionAddressListModel as? SelfMentionAddressListModel
  93. if selfMentionAddressListModel?.pagination?.currentPage ?? 1 <= selfMentionAddressListModel?.pagination?.totalPages ?? 1 {
  94. if selfMentionAddressListModel?.pagination?.currentPage == 1{
  95. self?.selfMentionAddressArray.removeAll()
  96. }
  97. self?.selfMentionAddressArray = (self?.selfMentionAddressArray)! + (selfMentionAddressListModel?.data!)!
  98. self?.selfRecommendationView.selfMentionAddressArray = self?.selfMentionAddressArray
  99. }else {
  100. self?.selfRecommendationView.collectionView.endFooterNoMoreData()
  101. }
  102. }
  103. }
  104. /// 新增自提地址
  105. ///
  106. /// - Parameters:
  107. /// - pickupNodeId: 自提点id
  108. /// - address: 详细地址
  109. func userAddSelfAddressApi(cityId:Int = 0,cityName:String = "",pickupNodeId:Int = 0,address:String) {
  110. SwiftMoyaNetWorkServiceUser.shared().userAddSelfAddressApi(cityId: cityId, cityName: cityName, pickupNodeId: pickupNodeId, address: address) {
  111. [weak self] (data) -> (Void) in
  112. let deliveryMethodTypeModel = DeliveryMethodTypeModel.shared().getModel()
  113. if deliveryMethodTypeModel?.deliveryMethodType?.isEmpty ?? true {
  114. self?.tabbarController(deliveryMethodType: "1")
  115. }else {
  116. if let didSelectClosure = self?.didSelectClosure {
  117. didSelectClosure()
  118. }
  119. self?.navigationController?.popViewController(animated: true)
  120. }
  121. }
  122. }
  123. }