FamilyMemberViewController.m 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394
  1. //
  2. // FamilyMemberViewController.m
  3. // BuguLive
  4. //
  5. // Created by 王珂 on 16/9/24.
  6. // Copyright © 2016年 xfg. All rights reserved.
  7. //
  8. #import "FamilyMemberViewController.h"
  9. #import "FamilyListCell.h"
  10. #import "SenderModel.h"
  11. #import "SHomePageVC.h"
  12. #import "MemberApplyCell.h"
  13. #import "FamilyMemberModel.h"
  14. @interface FamilyMemberViewController ()<UITableViewDelegate,UITableViewDataSource,FamilyListCellDelegate,MemberApplyCellDelegate>
  15. @property (nonatomic, strong) UIButton * familyMemberBtn;//公会成员
  16. @property (nonatomic, strong) UIButton * memberApplyBtn;//成员申请
  17. @property (nonatomic, strong) UIView * displayView;
  18. @property (nonatomic, strong) UIView * slideLineView;
  19. @property (nonatomic, strong) NSMutableArray *userDataArray;
  20. @property (nonatomic, strong) UITableView *displayTabel;
  21. @property (nonatomic, assign) int has_next;
  22. @property (nonatomic, assign) int currentPage;;
  23. @property (nonatomic, assign) int state;;
  24. @property (nonatomic, copy) NSString *searchType;
  25. @property (nonatomic, assign) int familyNumber;
  26. @property (nonatomic, assign) int applyNumber;
  27. @end
  28. @implementation FamilyMemberViewController
  29. - (void)viewDidLoad
  30. {
  31. [super viewDidLoad];
  32. self.navigationItem.title= ASLocalizedString(@"成员列表");
  33. self.navigationItem.leftBarButtonItem = [UIBarButtonItem itemWithTarget:self action:@selector(comeBack) image:@"com_arrow_vc_back" highImage:@"com_arrow_vc_back"];
  34. self.searchType = @"1";
  35. self.view.backgroundColor = kBackGroundColor;
  36. _userDataArray = [NSMutableArray array];
  37. _currentPage = 1;
  38. [self creatTabelView];
  39. }
  40. #pragma mark 公会成员button和成员申请button
  41. - (void)selectButton
  42. {
  43. _displayView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, kScreenW, 40)];
  44. [self.view addSubview:_displayView];
  45. UIView * lineView = [[UIView alloc]initWithFrame:CGRectMake(0, 39, kScreenW, 1)];
  46. lineView.backgroundColor = myTextColorLine5;
  47. [_displayView addSubview:lineView];
  48. //公会成员
  49. _familyMemberBtn= [[UIButton alloc]initWithFrame:CGRectMake(0,0, kScreenW/2, 38)];
  50. [_familyMemberBtn setTitleColor:kAppMainColor forState:UIControlStateNormal];
  51. [_familyMemberBtn addTarget:self action:@selector(familyMemberBtnAction:) forControlEvents:UIControlEventTouchUpInside];
  52. // NSString * familyMemberStr = [NSString stringWithFormat:ASLocalizedString(@"公会成员(%d)"),125];
  53. // [_familyMemberBtn setTitle:familyMemberStr forState:UIControlStateNormal];
  54. _familyMemberBtn.titleLabel.font = [UIFont systemFontOfSize:16];
  55. [_displayView addSubview:_familyMemberBtn];
  56. //滑动的滚动条
  57. _slideLineView = [[UIView alloc]init];
  58. _slideLineView.backgroundColor = kAppMainColor;
  59. _slideLineView.frame =CGRectMake(0, 38, kScreenW/2, 2);
  60. [_displayView addSubview:_slideLineView];
  61. //成员申请
  62. _memberApplyBtn = [[UIButton alloc]initWithFrame:CGRectMake(kScreenW/2,0, kScreenW/2, 39)];
  63. [_memberApplyBtn addTarget:self action:@selector(memberApplyBtnAction:) forControlEvents:UIControlEventTouchUpInside];
  64. [_memberApplyBtn setTitleColor:kAppGrayColor2 forState:UIControlStateNormal];
  65. _memberApplyBtn.titleLabel.font = [UIFont systemFontOfSize:16];
  66. // NSString * memberApplyStr = [NSString stringWithFormat:ASLocalizedString(@"成员申请(%d)"),21];
  67. // [_memberApplyBtn setTitle:ASLocalizedString(@"成员申请(?人)")forState:UIControlStateNormal];
  68. [_displayView addSubview:_memberApplyBtn];
  69. }
  70. #pragma mark 点击公会成员或成员申请的执行
  71. - (void)familyMemberBtnAction:(UIButton *)sender
  72. {
  73. self.searchType = @"1";
  74. [sender setTitleColor:kAppMainColor forState:UIControlStateNormal];
  75. [_memberApplyBtn setTitleColor:kAppGrayColor2 forState:UIControlStateNormal];
  76. [UIView beginAnimations:nil context:nil];
  77. [UIView setAnimationDuration:0.1];
  78. _slideLineView.frame =CGRectMake(0, 38, kScreenW/2, 2);
  79. [UIView commitAnimations];
  80. [self headerReresh];
  81. }
  82. - (void)memberApplyBtnAction:(UIButton *)sender
  83. {
  84. self.searchType = @"2";
  85. [sender setTitleColor:kAppMainColor forState:UIControlStateNormal];
  86. [_familyMemberBtn setTitleColor:kAppGrayColor2 forState:UIControlStateNormal];
  87. [UIView beginAnimations:nil context:nil];
  88. [UIView setAnimationDuration:0.1];
  89. _slideLineView.frame =CGRectMake(kScreenW/2, 38, kScreenW/2, 2);
  90. [UIView commitAnimations];
  91. [self headerReresh];
  92. }
  93. - (void)comeBack
  94. {
  95. [self.navigationController popViewControllerAnimated:YES];
  96. }
  97. - (void)viewWillDisappear:(BOOL)animated
  98. {
  99. [super viewWillDisappear:animated];
  100. }
  101. #pragma mark展示数据的表格创建
  102. - (void)creatTabelView
  103. {
  104. _displayTabel = [[UITableView alloc]init];
  105. if (self.isFamilyHeder == 1) {
  106. [self selectButton];
  107. _displayTabel.frame = CGRectMake(0,40,kScreenW, kScreenH-104);
  108. }
  109. else if (self.isFamilyHeder == 0)
  110. {
  111. _displayTabel.frame = CGRectMake(0, 0,kScreenW, kScreenH-64);
  112. }
  113. _displayTabel.delegate =self;
  114. _displayTabel.dataSource =self;
  115. _displayTabel.separatorStyle = UITableViewCellSeparatorStyleNone;
  116. [self.view addSubview:_displayTabel];
  117. [BGMJRefreshManager refresh:_displayTabel target:self headerRereshAction:@selector(headerReresh) footerRereshAction:@selector(footerReresh)];
  118. }
  119. - (void)headerReresh
  120. {
  121. [self loadNetDataWithPage:1];
  122. }
  123. - (void)footerReresh
  124. {
  125. if (_has_next == 1)
  126. {
  127. _currentPage ++;
  128. [self loadNetDataWithPage:_currentPage];
  129. }
  130. else
  131. {
  132. [BGMJRefreshManager endRefresh:_displayTabel];
  133. }
  134. }
  135. #pragma mark 请求数据
  136. - (void)loadNetDataWithPage:(int)page
  137. {
  138. NSMutableDictionary *parmDict = [NSMutableDictionary dictionary];
  139. [parmDict setObject:self.jid forKey:@"family_id"];
  140. if ([_searchType isEqualToString:@"1"])//1代表公会成员
  141. {
  142. [parmDict setObject:@"family_user" forKey:@"ctl"];
  143. [parmDict setObject:@"user_list" forKey:@"act"];
  144. }else if ([_searchType isEqualToString:@"2"])//代表成员申请
  145. {
  146. [parmDict setObject:@"family_user" forKey:@"ctl"];
  147. [parmDict setObject:@"r_user_list" forKey:@"act"];
  148. }
  149. [parmDict setObject:[NSString stringWithFormat:@"%d",page] forKey:@"page"];
  150. [self.httpsManager POSTWithParameters:parmDict SuccessBlock:^(NSDictionary *responseJson) {
  151. _state = [responseJson toInt:@"status"];
  152. [responseJson objectForKey:@"rs_count"];
  153. if (_state == 1)
  154. {
  155. //如果是公会族长并且选中的是公会成员
  156. if (_isFamilyHeder == 1&& [_searchType isEqualToString:@"1"]) {
  157. NSString * familyMemberStr = [NSString stringWithFormat:ASLocalizedString(@"公会成员(%@)"),[responseJson objectForKey:@"rs_count"]];
  158. _familyNumber = [responseJson toInt:@"rs_count"];
  159. [_familyMemberBtn setTitle:familyMemberStr forState:UIControlStateNormal];
  160. NSString * memberApplyStr = [NSString stringWithFormat:ASLocalizedString(@"成员申请(%@)"),[responseJson objectForKey:@"apply_count"]];
  161. _applyNumber = [responseJson toInt:@"apply_count"];
  162. [_memberApplyBtn setTitle:memberApplyStr forState:UIControlStateNormal];
  163. }
  164. //如果是公会族长并且选中的是成员申请
  165. else if (_isFamilyHeder == 1&& [_searchType isEqualToString:@"2"])
  166. {
  167. NSString * familyMemberStr = [NSString stringWithFormat:ASLocalizedString(@"公会成员(%@)"),[responseJson objectForKey:@"rs_count"]];
  168. _familyNumber = [responseJson toInt:@"rs_count"];
  169. [_familyMemberBtn setTitle:familyMemberStr forState:UIControlStateNormal];
  170. NSString * memberApplyStr = [NSString stringWithFormat:ASLocalizedString(@"成员申请(%@)"),[responseJson objectForKey:@"apply_count"]];
  171. _applyNumber = [responseJson toInt:@"apply_count"];
  172. [_memberApplyBtn setTitle:memberApplyStr forState:UIControlStateNormal];
  173. }
  174. NSDictionary * dic = [responseJson objectForKey:@"page"];
  175. if (dic && [dic isKindOfClass:[NSDictionary class]]) {
  176. _currentPage = [dic toInt:@"page"];
  177. if (_currentPage == 1 || _currentPage == 0)
  178. {
  179. [_userDataArray removeAllObjects];
  180. }
  181. _has_next = [dic toInt:@"has_next"];
  182. }
  183. NSArray *listArray = [responseJson objectForKey:@"list"];
  184. if (listArray && [listArray isKindOfClass:[NSArray class]]&& listArray.count>0) {
  185. for (NSDictionary *dict in listArray)
  186. {
  187. SenderModel *sModel = [SenderModel mj_objectWithKeyValues:dict];
  188. [_userDataArray addObject:sModel];
  189. }
  190. }
  191. }
  192. [_displayTabel reloadData];
  193. [BGMJRefreshManager endRefresh:_displayTabel];
  194. } FailureBlock:^(NSError *error)
  195. {
  196. [BGMJRefreshManager endRefresh:_displayTabel];
  197. }];
  198. }
  199. #pragma mark ----tabelView代理方法
  200. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
  201. {
  202. return 1;
  203. }
  204. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  205. {
  206. if (_userDataArray.count > 0)
  207. {
  208. return _userDataArray.count;
  209. }
  210. else
  211. return 0;
  212. }
  213. #pragma mark ----设置cell的高度
  214. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
  215. {
  216. return 60;
  217. }
  218. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  219. {
  220. if ([self.searchType isEqualToString:@"1"])
  221. {
  222. FamilyListCell * cell = [FamilyListCell cellWithTableView:tableView];
  223. SenderModel *model = _userDataArray[indexPath.row];
  224. cell.isFamilyHeader = _isFamilyHeder;
  225. [cell creatCellWithModel:model WithRow:(int)indexPath.row];
  226. CGRect rect = cell.lineView.frame;
  227. rect.origin.x = 10;
  228. cell.selectionStyle = UITableViewCellSelectionStyleNone;
  229. cell.lineView.frame = rect;
  230. // cell.isFamilyHeader = _isFamilyHeder;
  231. cell.delegate = self;
  232. return cell;
  233. }else
  234. {
  235. MemberApplyCell *cell = [MemberApplyCell cellWithTableView:tableView];
  236. SenderModel *model = _userDataArray[indexPath.row];
  237. [cell creatCellWithModel:model WithRow:(int)indexPath.row];
  238. CGRect rect = cell.lineView.frame;
  239. rect.origin.x = 10;
  240. cell.selectionStyle = UITableViewCellSelectionStyleNone;
  241. cell.lineView.frame = rect;
  242. cell.delegate = self;
  243. return cell;
  244. }
  245. }
  246. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  247. {
  248. if (_userDataArray.count > 0 && indexPath.row < _userDataArray.count)
  249. {
  250. SenderModel *sModel = _userDataArray[indexPath.row];
  251. SHomePageVC *homeVC = [[SHomePageVC alloc]init];
  252. homeVC.user_id = sModel.user_id;
  253. // homeVC.user_nickname =sModel.nick_name;
  254. homeVC.type = 0;
  255. [self.navigationController pushViewController:homeVC animated:YES];
  256. }
  257. }
  258. //踢出公会
  259. - (void)kickOutWithFamilyListCell:(FamilyListCell *)cell
  260. {
  261. FWWeakify(self)
  262. [FanweMessage alert:nil message:ASLocalizedString(@"是否踢出该成员")destructiveAction:^{
  263. FWStrongify(self)
  264. NSIndexPath * indexPath = [_displayTabel indexPathForCell:cell];
  265. SenderModel * model = _userDataArray[indexPath.row];
  266. NSMutableDictionary *parmDict = [NSMutableDictionary dictionary];
  267. [parmDict setObject:@"family_user" forKey:@"ctl"];
  268. [parmDict setObject:@"user_del" forKey:@"act"];
  269. [parmDict setObject:model.user_id forKey:@"r_user_id"];
  270. [self.httpsManager POSTWithParameters:parmDict SuccessBlock:^(NSDictionary *responseJson) {
  271. if ([responseJson toInt:@"status"]==1)
  272. {
  273. [self.userDataArray removeObjectAtIndex:indexPath.row];
  274. [self.displayTabel deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  275. self.familyNumber--;
  276. NSString * familyMemberStr = [NSString stringWithFormat:ASLocalizedString(@"公会成员(%d)"),self.familyNumber];
  277. [self.familyMemberBtn setTitle:familyMemberStr forState:UIControlStateNormal];
  278. }
  279. } FailureBlock:^(NSError *error) {
  280. }];
  281. } cancelAction:^{
  282. }];
  283. }
  284. //同意申请
  285. - (void)agreeWithMemberApplyCell:(MemberApplyCell *)cell
  286. {
  287. FWWeakify(self)
  288. [FanweMessage alert:nil message:ASLocalizedString(@"是否同意该成员加入公会")destructiveAction:^{
  289. FWStrongify(self)
  290. NSIndexPath * indexPath = [_displayTabel indexPathForCell:cell];
  291. SenderModel * model = _userDataArray[indexPath.row];
  292. NSMutableDictionary *parmDict = [NSMutableDictionary dictionary];
  293. [parmDict setObject:@"family_user" forKey:@"ctl"];
  294. [parmDict setObject:@"confirm" forKey:@"act"];
  295. [parmDict setObject:model.user_id forKey:@"r_user_id"];
  296. [parmDict setObject:@"1" forKey:@"is_agree"];
  297. [self.httpsManager POSTWithParameters:parmDict SuccessBlock:^(NSDictionary *responseJson) {
  298. if ([responseJson toInt:@"status"]==1)
  299. {
  300. [self.userDataArray removeObjectAtIndex:indexPath.row];
  301. [self.displayTabel deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  302. self.applyNumber--;
  303. NSString * memberApplyStr = [NSString stringWithFormat:ASLocalizedString(@"成员申请(%d)"),self.applyNumber];
  304. [self.memberApplyBtn setTitle:memberApplyStr forState:UIControlStateNormal];
  305. self.familyNumber++;
  306. NSString * familyMemberStr = [NSString stringWithFormat:ASLocalizedString(@"公会成员(%d)"),self.familyNumber];
  307. [self.familyMemberBtn setTitle:familyMemberStr forState:UIControlStateNormal];
  308. }
  309. } FailureBlock:^(NSError *error) {
  310. }];
  311. } cancelAction:^{
  312. }];
  313. }
  314. //拒绝申请
  315. - (void)refuseWithMemberApplyCell:(MemberApplyCell *)cell
  316. {
  317. FWWeakify(self)
  318. [FanweMessage alert:nil message:ASLocalizedString(@"是否拒绝该成员加入公会")destructiveAction:^{
  319. FWStrongify(self)
  320. NSIndexPath * indexPath = [_displayTabel indexPathForCell:cell];
  321. SenderModel * model = _userDataArray[indexPath.row];
  322. NSMutableDictionary *parmDict = [NSMutableDictionary dictionary];
  323. [parmDict setObject:@"family_user" forKey:@"ctl"];
  324. [parmDict setObject:@"confirm" forKey:@"act"];
  325. [parmDict setObject:model.user_id forKey:@"r_user_id"];
  326. [parmDict setObject:@"2" forKey:@"is_agree"];
  327. [self.httpsManager POSTWithParameters:parmDict SuccessBlock:^(NSDictionary *responseJson) {
  328. if ([responseJson toInt:@"status"]==1)
  329. {
  330. [self.userDataArray removeObjectAtIndex:indexPath.row];
  331. [self.displayTabel deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  332. self.applyNumber--;
  333. NSString * memberApplyStr = [NSString stringWithFormat:ASLocalizedString(@"成员申请(%d)"),self.applyNumber];
  334. [self.memberApplyBtn setTitle:memberApplyStr forState:UIControlStateNormal];
  335. }
  336. } FailureBlock:^(NSError *error) {
  337. }];
  338. } cancelAction:^{
  339. }];
  340. }
  341. @end