SkillOrderController.m 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. //
  2. // SkillOrderController.m
  3. // model
  4. //
  5. // Created by JuYi on 2018/7/17.
  6. // Copyright © 2018年 Mine. All rights reserved.
  7. // 技能订单
  8. #import "SkillOrderController.h"
  9. #import "SkillsOrderCell.h"
  10. #import "ModelTitleView.h" // 选择按钮
  11. #import "OrderDetailViewController.h"
  12. #import "MessageViewController.h"
  13. @interface SkillOrderController () <UITableViewDelegate, UITableViewDataSource> {
  14. NSInteger index;
  15. NSString *selectState;
  16. }
  17. @property(nonatomic, strong) UITableView *tableView;
  18. @property(nonatomic, strong) NSMutableArray *dataArr;
  19. @property(nonatomic, assign) NSInteger selectIndex; //0 1 2 3 4
  20. @end
  21. @implementation SkillOrderController
  22. - (NSMutableArray *)dataArr {
  23. if (!_dataArr) {
  24. _dataArr = [NSMutableArray arrayWithCapacity:0];
  25. }
  26. return _dataArr;
  27. }
  28. - (void)viewDidLoad {
  29. [super viewDidLoad];
  30. index = 1;
  31. selectState = @"all";
  32. self.selectIndex = 0;
  33. //设置导航条
  34. [self creatNavBar];
  35. //设置子试图
  36. [self creatSubViews];
  37. [self getDataFromNetworking:selectState];
  38. }
  39. - (void)viewWillAppear:(BOOL)animated {
  40. self.tabBarController.tabBar.hidden = YES;
  41. }
  42. - (void)didReceiveMemoryWarning {
  43. [super didReceiveMemoryWarning];
  44. // Dispose of any resources that can be recreated.
  45. }
  46. - (void)creatNavBar {
  47. self.title = @"技能订单";
  48. //
  49. UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
  50. btn.frame = CGRectMake(0, 0, 40, 40);
  51. [btn setImage:[UIImage imageNamed:@"fanhui2"] forState:UIControlStateNormal];
  52. btn.imageEdgeInsets = UIEdgeInsetsMake(0, -20, 0, 0); // backBtn2
  53. [btn addTarget:self action:@selector(backClick) forControlEvents:UIControlEventTouchUpInside];
  54. UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithCustomView:btn];
  55. UIBarButtonItem *nagetiveSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
  56. // nagetiveSpacer.width = -12;//这个值可以根据自己需要自己调整
  57. self.navigationItem.leftBarButtonItems = @[nagetiveSpacer, leftItem];
  58. }
  59. - (void)backClick {
  60. [self.navigationController popViewControllerAnimated:YES];
  61. }
  62. #pragma mark -- 网络请求
  63. - (void)getDataFromNetworking:(NSString *)state {
  64. [MBProgressHUD showHUDAddedTo:self.view animated:YES];
  65. NSString *indexStr = [NSString stringWithFormat:@"%zd", index];
  66. NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:[ModelUser user].modelpk, @"modelpk", state, @"state", indexStr, @"index", @"10", @"size", nil];
  67. [YanCNetWorkManager requestPostWithURLStr:Url_dogetorderlist(PublicUrl) parameters:dic finish:^(id dataDic) {
  68. [MBProgressHUD hideHUDForView:self.view animated:YES];
  69. NSString *issuccess = dataDic[@"msg"];
  70. if ([issuccess isEqualToString:@"success"]) {
  71. if (index == 1) {
  72. [self.dataArr removeAllObjects];
  73. }
  74. [self.dataArr addObjectsFromArray:dataDic[@"data"]];
  75. [self.tableView reloadData];
  76. NSString *number = dataDic[@"count"];
  77. NSInteger num = [number integerValue];
  78. [self.tableView.mj_header endRefreshing];
  79. if (num == self.dataArr.count || num == 0) {
  80. [self.tableView.mj_footer endRefreshingWithNoMoreData];
  81. } else {
  82. [self.tableView.mj_footer endRefreshing];
  83. }
  84. } else {
  85. [MBProgressHUD showInfo:@"请求失败!"];
  86. }
  87. } enError:^(NSError *error) {
  88. [MBProgressHUD hideHUDForView:self.view animated:YES];
  89. }];
  90. }
  91. //
  92. - (void)creatSubViews {
  93. NSArray *stateArr = @[@"all", @"1", @"2", @"3"];
  94. ModelTitleView *titlesView = [[ModelTitleView alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth, 40)];
  95. titlesView.titleArr = @[@"全部", @"待接单", @"进行中", @"已完成"];
  96. __weak typeof(self) weakself = self;
  97. titlesView.ModelTitleViewBlock = ^(NSInteger tag) {
  98. NSLog(@"tag %ld", tag);
  99. weakself.selectIndex = tag;
  100. if (self.dataArr.count > 0) {
  101. NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
  102. [self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:NO];
  103. }
  104. selectState = stateArr[tag];
  105. index = 1;
  106. [self getDataFromNetworking:selectState];
  107. };
  108. [self.view addSubview:titlesView];
  109. //
  110. float height = Height_NaviBar;
  111. self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(titlesView.frame), ScreenWidth, ScreenHeight - 40 - height) style:UITableViewStyleGrouped];
  112. self.tableView.backgroundColor = [UIColor whiteColor];
  113. self.tableView.delegate = self;
  114. self.tableView.dataSource = self;
  115. self.tableView.backgroundColor = RGBValueColor(0xf7f7f7, 1.0);
  116. self.tableView.showsVerticalScrollIndicator = NO;
  117. self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
  118. self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(refreshList)];
  119. self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
  120. [self.view addSubview:self.tableView];
  121. }
  122. - (void)refreshList {
  123. index = 1;
  124. [self getDataFromNetworking:selectState];
  125. }
  126. - (void)loadMoreData {
  127. index++;
  128. [self getDataFromNetworking:selectState];
  129. }
  130. #pragma mark -- UITableViewDelegate, UITableViewDataSource
  131. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  132. return self.dataArr.count;
  133. }
  134. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  135. return 1;
  136. }
  137. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  138. static NSString *cellid = @"cellid";
  139. SkillsOrderCell *cell = [tableView dequeueReusableCellWithIdentifier:cellid];
  140. if (!cell) {
  141. cell = [[SkillsOrderCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellid];
  142. }
  143. cell.arrowView.hidden = YES;
  144. [cell setSkillsOrderCellValueWithDic:self.dataArr[indexPath.section]];
  145. cell.cancelBtn.tag = indexPath.section;
  146. cell.receiveBtn.tag = indexPath.section;
  147. cell.completeBtn.tag = indexPath.section;
  148. cell.iconImageView.tag = indexPath.section;
  149. UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(toMessageView:)];
  150. [cell.iconImageView addGestureRecognizer:tap];
  151. cell.iconImageView.userInteractionEnabled = YES;
  152. [cell.cancelBtn addTarget:self action:@selector(cancel:) forControlEvents:UIControlEventTouchUpInside];
  153. [cell.receiveBtn addTarget:self action:@selector(receive:) forControlEvents:UIControlEventTouchUpInside];
  154. [cell.completeBtn addTarget:self action:@selector(complete:) forControlEvents:UIControlEventTouchUpInside];
  155. return cell;
  156. }
  157. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  158. NSDictionary *dic = self.dataArr[indexPath.section];
  159. OrderDetailViewController *vc = [[OrderDetailViewController alloc] initWithOrderpk:dic[@"pk"]];
  160. [self.navigationController pushViewController:vc animated:YES];
  161. }
  162. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
  163. return 156;
  164. }
  165. - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
  166. UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth, 0.01)];
  167. footerView.backgroundColor = RGBValueColor(0xf7f7f7, 1.0);
  168. return footerView;
  169. }
  170. - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
  171. UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth, 10)];
  172. headerView.backgroundColor = RGBValueColor(0xf7f7f7, 1.0);
  173. return headerView;
  174. }
  175. - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
  176. return 0.01;
  177. }
  178. - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
  179. if (section == 0) {
  180. return 0.01;
  181. } else {
  182. return 10;
  183. }
  184. }
  185. - (void)cancel:(UIButton *)button {
  186. [MBProgressHUD showHUDAddedTo:self.view animated:YES];
  187. NSDictionary *orderDic = self.dataArr[button.tag];
  188. NSDictionary *dic = @{@"modelpk": [ModelUser user].modelpk, @"orderpk": orderDic[@"pk"]};
  189. [YanCNetWorkManager requestPostWithURLStr:Url_cancelordermodel(PublicUrl) parameters:dic finish:^(id dataDic) {
  190. [MBProgressHUD hideHUDForView:self.view animated:YES];
  191. NSString *issuccess = dataDic[@"msg"];
  192. if ([issuccess isEqualToString:@"success"]) {
  193. [MBProgressHUD showInfo:@"已取消"];
  194. [self refreshList];
  195. [self postNotification:orderDic[@"memberpk"] andMsg:@"提示,模特取消了您的订单" orderPK:orderDic[@"pk"]];
  196. } else {
  197. [MBProgressHUD showInfo:dataDic[@"desc"]];
  198. }
  199. } enError:^(NSError *error) {
  200. [MBProgressHUD hideHUDForView:self.view animated:YES];
  201. }];
  202. }
  203. - (void)receive:(UIButton *)button {
  204. [MBProgressHUD showHUDAddedTo:self.view animated:YES];
  205. NSDictionary *orderDic = self.dataArr[button.tag];
  206. NSDictionary *dic = @{@"modelpk": [ModelUser user].modelpk, @"orderpk": orderDic[@"pk"]};
  207. [YanCNetWorkManager requestPostWithURLStr:Url_confirmordermodel(PublicUrl) parameters:dic finish:^(id dataDic) {
  208. [MBProgressHUD hideHUDForView:self.view animated:YES];
  209. NSString *issuccess = dataDic[@"msg"];
  210. if ([issuccess isEqualToString:@"success"]) {
  211. [MBProgressHUD showInfo:@"接单成功"];
  212. [self refreshList];
  213. [self postNotification:orderDic[@"memberpk"] andMsg:@"恭喜,模特已经接单啦!" orderPK:orderDic[@"pk"]];
  214. } else {
  215. [MBProgressHUD showInfo:dataDic[@"desc"]];
  216. }
  217. } enError:^(NSError *error) {
  218. [MBProgressHUD hideHUDForView:self.view animated:YES];
  219. }];
  220. }
  221. - (void)complete:(UIButton *)button {
  222. [MBProgressHUD showHUDAddedTo:self.view animated:YES];
  223. NSDictionary *orderDic = self.dataArr[button.tag];
  224. NSDictionary *dic = @{@"orderpk": orderDic[@"pk"]};
  225. [YanCNetWorkManager requestPostWithURLStr:Url_dosettlementorder(PublicUrl) parameters:dic finish:^(id dataDic) {
  226. [MBProgressHUD hideHUDForView:self.view animated:YES];
  227. NSString *issuccess = dataDic[@"msg"];
  228. if ([issuccess isEqualToString:@"success"]) {
  229. [MBProgressHUD showInfo:@"已确认完成"];
  230. [self refreshList];
  231. [self postNotification:orderDic[@"memberpk"] andMsg:@"模特已经确认完成订单了" orderPK:orderDic[@"pk"]];
  232. } else {
  233. [MBProgressHUD showInfo:dataDic[@"desc"]];
  234. }
  235. } enError:^(NSError *error) {
  236. [MBProgressHUD hideHUDForView:self.view animated:YES];
  237. }];
  238. }
  239. - (void)postNotification:(NSString *)memberpk andMsg:(NSString *)msg orderPK:(NSString *)orderPK {
  240. NSDictionary *dict = @{
  241. @"content": msg,
  242. @"orderPK": orderPK
  243. };
  244. NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:nil];
  245. NSString *content = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
  246. NSString *str = [NSString stringWithFormat:@"%@/netease?action=sendAttachMsg&from=%@&to=%@&pushcontent=%@&attach=%@", PublicUrl, [ModelUser modelUser].pk, memberpk, msg, content];
  247. [[AHHttpManager sharedManager]
  248. POST:[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
  249. parameters:nil
  250. success:^(id responseObject) {
  251. NSLog(@"%@", responseObject);
  252. if ([[responseObject objectForKey:@"msg"] isEqualToString:@"200"]) {
  253. } else {
  254. }
  255. }
  256. failure:^(NSError *error) {
  257. NSLog(@"error = %@", error);
  258. }];
  259. }
  260. - (void)toMessageView:(UIGestureRecognizer *)recognizer {
  261. UIImageView *img = (UIImageView *) recognizer.view;
  262. NSDictionary *orderDic = self.dataArr[img.tag];
  263. NIMSession *session = [NIMSession session:[orderDic objectForKey:@"memberpk"] type:NIMSessionTypeP2P];
  264. MessageViewController *mVc = [[MessageViewController alloc] initWithSession:session];
  265. [self.navigationController pushViewController:mVc animated:YES];
  266. }
  267. @end