SelfRecommendationViewController.swift 6.2 KB

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