HJFullTimeViewController.m 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. //
  2. // HJFullTimeViewController.m
  3. // HappyJob
  4. //
  5. // Created by Bob on 2019/3/20.
  6. // Copyright © 2019 Bob. All rights reserved.
  7. //
  8. #import "HJFullTimeViewController.h"
  9. #import "HJPositionDataBox.h"
  10. #import "HJGetFullTimePositionAPIManager.h"
  11. #import "HJPageListView.h"
  12. #import "HJMenuFilter.h"
  13. #import <AMapLocationKit/AMapLocationKit.h>
  14. @interface HJFullTimeViewController ()
  15. <
  16. UITableViewDelegate,
  17. HJMenuFilterDelegate
  18. >
  19. @property (nonatomic, strong) HJMenuFilter *menuView;
  20. @property (nonatomic, strong) UIView *colorView;
  21. @property (nonatomic, strong) HJPageListView *pageListView;
  22. @property (nonatomic, strong) HJGetFullTimePositionAPIManager *getFullTimePositionAPIManager;
  23. @property (nonatomic, strong) HJPositionDataBox *positionDataBox;
  24. @property (nonatomic, strong) AMapLocationManager *locationManager;
  25. @end
  26. @implementation HJFullTimeViewController
  27. #pragma mark - life cycle
  28. - (void)viewWillAppear:(BOOL)animated {
  29. [super viewWillAppear:animated];
  30. }
  31. - (void)viewDidLoad {
  32. [super viewDidLoad];
  33. self.title = @"全职工作";
  34. [self hj_setupNavBar];
  35. [self makeConstraints];
  36. self.getFullTimePositionAPIManager.cityCode = self.menuView.locationCityCode;
  37. [self.getFullTimePositionAPIManager start];
  38. }
  39. - (void)makeConstraints {
  40. self.view.backgroundColor = COLOR_F5F5F5;
  41. [self.view addSubview:self.menuView];
  42. [self.view insertSubview:self.pageListView belowSubview:self.menuView];
  43. self.pageListView.tableView.tableHeaderView = self.colorView;
  44. [self.menuView mas_makeConstraints:^(MASConstraintMaker *make) {
  45. make.left.top.right.equalTo(self.view);
  46. }];
  47. [self.colorView mas_makeConstraints:^(MASConstraintMaker *make) {
  48. make.top.width.equalTo(self.pageListView.tableView);
  49. make.height.mas_equalTo(5);
  50. }];
  51. [self.pageListView mas_makeConstraints:^(MASConstraintMaker *make) {
  52. make.left.right.bottom.equalTo(self.view);
  53. make.top.equalTo(self.menuView).with.offset(self.menuView.defaultHeight);
  54. }];
  55. //menuView下方的t阴影
  56. _menuView.layer.shadowColor = [UIColor colorFromHexString:@"144C9D"].CGColor;
  57. _menuView.layer.shadowOffset = CGSizeMake(0, 0.2);
  58. _menuView.layer.shadowOpacity = 0.2;
  59. _menuView.clipsToBounds = NO;
  60. }
  61. #pragma mark - UITableViewDelegate
  62. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  63. // [tableView deselectRowAtIndexPath:indexPath animated:YES];
  64. UIViewController *vc = [self.positionDataBox positionDetailViewControllerAtIndexPath:indexPath];
  65. vc.hidesBottomBarWhenPushed = YES;
  66. [self.navigationController pushViewController:vc animated:YES];
  67. }
  68. #pragma mark - HJMenuFilterDelegate
  69. - (void)menuFilter:(HJMenuFilter *)menuFilter cityCode:(NSString *)cityCode cityName:(nonnull NSString *)cityName{
  70. self.getFullTimePositionAPIManager.cityCode = cityCode;
  71. self.getFullTimePositionAPIManager.areaCode = nil;
  72. self.getFullTimePositionAPIManager.salarySorted = HJSortTypeNone;
  73. self.getFullTimePositionAPIManager.distanceSorted = HJSortTypeNone;
  74. [self.getFullTimePositionAPIManager start];
  75. }
  76. - (void)menuFilter:(HJMenuFilter *)menuFilter areaCode:(NSString *)areaCode cityName:(nonnull NSString *)cityName{
  77. self.getFullTimePositionAPIManager.cityCode = nil;
  78. self.getFullTimePositionAPIManager.areaCode = areaCode;
  79. self.getFullTimePositionAPIManager.salarySorted = HJSortTypeNone;
  80. self.getFullTimePositionAPIManager.distanceSorted = HJSortTypeNone;
  81. [self.getFullTimePositionAPIManager start];
  82. }
  83. - (void)menuFilter:(HJMenuFilter *)menuFilter salarySorted:(HJMenuFilterSortType)sorted {
  84. if (sorted == HJMenuFilterSortTypeAscending)
  85. {
  86. self.getFullTimePositionAPIManager.salarySorted = HJSortTypeAscending;
  87. [self.view fb_showInfoWithStatus:@"已按“薪资升序”为您排列"];
  88. }
  89. else if (sorted == HJMenuFilterSortTypeDescending)
  90. {
  91. self.getFullTimePositionAPIManager.salarySorted = HJSortTypeDescending;
  92. [self.view fb_showInfoWithStatus:@"已按“薪资降序”为您排列"];
  93. }
  94. else
  95. {
  96. self.getFullTimePositionAPIManager.salarySorted = HJSortTypeNone;
  97. }
  98. self.getFullTimePositionAPIManager.distanceSorted = HJSortTypeNone;
  99. [self.getFullTimePositionAPIManager start];
  100. }
  101. - (void)menuFilter:(HJMenuFilter *)menuFilter distanceSorted:(HJMenuFilterSortType)sorted {
  102. [self.locationManager requestLocationWithReGeocode:YES completionBlock:^(CLLocation *location, AMapLocationReGeocode *regeocode, NSError *error) {
  103. self.getFullTimePositionAPIManager.coordinate = location.coordinate;
  104. if (sorted == HJMenuFilterSortTypeAscending)
  105. {
  106. self.getFullTimePositionAPIManager.distanceSorted = HJSortTypeAscending;
  107. [self.view fb_showInfoWithStatus:@"已按“距离升序”为您排列"];
  108. }
  109. else if (sorted == HJMenuFilterSortTypeDescending)
  110. {
  111. self.getFullTimePositionAPIManager.distanceSorted = HJSortTypeDescending;
  112. [self.view fb_showInfoWithStatus:@"已按“距离降序”为您排列"];
  113. }
  114. else
  115. {
  116. self.getFullTimePositionAPIManager.distanceSorted = HJSortTypeNone;
  117. }
  118. self.getFullTimePositionAPIManager.salarySorted = HJSortTypeNone;
  119. [self.getFullTimePositionAPIManager start];
  120. }];
  121. }
  122. #pragma mark - lazy
  123. - (AMapLocationManager *)locationManager {
  124. if (_locationManager == nil)
  125. {
  126. _locationManager = [[AMapLocationManager alloc] init];
  127. // 带逆地理信息的一次定位(返回坐标和地址信息)
  128. [_locationManager setDesiredAccuracy:kCLLocationAccuracyHundredMeters];
  129. // 定位超时时间,最低2s,此处设置为2s
  130. _locationManager.locationTimeout = 2;
  131. // 逆地理请求超时时间,最低2s,此处设置为2s
  132. _locationManager.reGeocodeTimeout = 2;
  133. }
  134. return _locationManager;
  135. }
  136. - (HJPositionDataBox *)positionDataBox {
  137. if (_positionDataBox == nil)
  138. {
  139. _positionDataBox = [[HJPositionDataBox alloc] init];
  140. }
  141. return _positionDataBox;
  142. }
  143. - (HJGetFullTimePositionAPIManager *)getFullTimePositionAPIManager {
  144. if (_getFullTimePositionAPIManager == nil)
  145. {
  146. _getFullTimePositionAPIManager = [[HJGetFullTimePositionAPIManager alloc] init];
  147. _getFullTimePositionAPIManager.APIManagerDelegate = self.pageListView;
  148. _getFullTimePositionAPIManager.APIManagerInterceptor = self.pageListView;
  149. }
  150. return _getFullTimePositionAPIManager;
  151. }
  152. - (HJMenuFilter *)menuView {
  153. if (_menuView == nil)
  154. {
  155. _menuView = [[HJMenuFilter alloc] initWithStyle:HJMenuFilterStyleFullTime];
  156. _menuView.delegate = self;
  157. }
  158. return _menuView;
  159. }
  160. - (UIView *)colorView {
  161. if (_colorView == nil)
  162. {
  163. _colorView = [[UIView alloc] init];
  164. _colorView.backgroundColor = COLOR_F5F5F5;
  165. }
  166. return _colorView;
  167. }
  168. - (HJPageListView *)pageListView {
  169. if (_pageListView == nil)
  170. {
  171. _pageListView = [[HJPageListView alloc] init];
  172. _pageListView.tableView.delegate = self;
  173. _pageListView.tableView.dataSource = self.positionDataBox;
  174. _pageListView.APIManager = self.getFullTimePositionAPIManager;
  175. _pageListView.dataBox = self.positionDataBox;
  176. _pageListView.tableView.backgroundColor = COLOR_F5F5F5;
  177. }
  178. return _pageListView;
  179. }
  180. @end