WalletDetailsController.m 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432
  1. //
  2. // WalletDetailsController.m
  3. // model
  4. //
  5. // Created by zuxiukuan on 2018/7/17.
  6. // Copyright © 2018年 Mine. All rights reserved.
  7. // 钱包明细
  8. #import "WalletDetailsController.h"
  9. #import "RemindingView.h"
  10. #import "MyWalletDetailListCell.h"
  11. #import "PGDatePicker.h"
  12. #import "PGDatePickManager.h"
  13. #import "IncomeListModel.h"
  14. #import "WithdrawListModel.h"
  15. #import "WithdrawalDetailController.h"
  16. @interface WalletDetailsController ()<UITableViewDelegate,UITableViewDataSource,PGDatePickerDelegate>
  17. {
  18. NSInteger index;
  19. NSString *totalIncome;
  20. NSString *monthIncom;
  21. NSString *yearString;
  22. NSString *monthString;
  23. }
  24. @property (nonatomic, strong) UITableView *tableView;
  25. @property (nonatomic, strong) NSMutableArray *dataArray;
  26. @property (nonatomic, strong) UILabel *allIncomeLabel;
  27. @end
  28. @implementation WalletDetailsController
  29. - (void)viewDidLoad {
  30. [super viewDidLoad];
  31. index = 1;
  32. totalIncome = @"";
  33. monthIncom = @"";
  34. NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
  35. dateFormatter.dateFormat = @"yyyy-MM";
  36. NSDate *datenow = [NSDate date];
  37. NSString *time = [dateFormatter stringFromDate:datenow];
  38. yearString = [time substringToIndex:4];
  39. monthString = [time substringFromIndex:5];
  40. self.dataArray = [[NSMutableArray alloc]init];
  41. self.view.backgroundColor = [UIColor whiteColor];
  42. [self creatNavBar];
  43. [self creatTableView];
  44. if ([self.detailsIndex isEqualToString:@"1"]) {
  45. self.title = @"收入明细";
  46. [self getIncomeDataFromNetworking];
  47. }else{
  48. self.title = @"提现明细";
  49. [self getWithdrawDataFromNetworking];
  50. }
  51. }
  52. - (void)creatNavBar {
  53. //返回按钮
  54. UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom];
  55. btn.frame = CGRectMake(0, 0, 40, 40);
  56. [btn setImage:[UIImage imageNamed:@"fanhui2"] forState:UIControlStateNormal];
  57. btn.imageEdgeInsets = UIEdgeInsetsMake(0, -20, 0, 0);
  58. [btn addTarget:self action:@selector(backClick) forControlEvents:UIControlEventTouchUpInside];
  59. UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithCustomView:btn];
  60. UIBarButtonItem *nagetiveSpacer = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
  61. //nagetiveSpacer.width = -12;//这个值可以根据自己需要自己调整
  62. self.navigationItem.leftBarButtonItems = @[nagetiveSpacer, leftItem];
  63. }
  64. - (void)backClick {
  65. [self.navigationController popViewControllerAnimated:YES];
  66. }
  67. #pragma mark -- 网络请求
  68. - (void)getIncomeDataFromNetworking {
  69. [MBProgressHUD showHUDAddedTo:self.view animated:YES];
  70. NSString *indexStr = [NSString stringWithFormat:@"%zd",index];
  71. ModelUser *modelUser = [ModelUser user];
  72. NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:modelUser.pk,@"memberpk",yearString,@"year",monthString,@"month",indexStr,@"index",@"10",@"size", nil];
  73. [YanCNetWorkManager requestPostWithURLStr:Url_getIncomeDetails(PublicUrl) parameters:dic finish:^(id dataDic) {
  74. [MBProgressHUD hideHUDForView:self.view animated:YES];
  75. NSString *issuccess = dataDic[@"msg"];
  76. if ([issuccess isEqualToString:@"success"]) {
  77. NSDictionary *dic = dataDic[@"data"];
  78. NSArray *data = dic[@"data"];
  79. NSArray * array = [IncomeListModel arrayOfModelsFromDictionaries:data];
  80. [self.dataArray addObjectsFromArray:array];
  81. totalIncome = dataDic[@"allcoin"];
  82. monthIncom = dataDic[@"incomecoin"];
  83. self.allIncomeLabel.text = [NSString stringWithFormat:@"累计收入 %@元",totalIncome];
  84. NSString *number = dic[@"count"];
  85. NSInteger num = [number integerValue];
  86. [self.tableView.mj_header endRefreshing];
  87. [self.tableView reloadData];
  88. if (num == self.dataArray.count || num == 0) {
  89. [self.tableView.mj_footer endRefreshingWithNoMoreData];
  90. }else{
  91. [self.tableView.mj_footer endRefreshing];
  92. }
  93. } else {
  94. [MBProgressHUD showInfo:@"请求失败!"];
  95. }
  96. } enError:^(NSError *error) {
  97. [MBProgressHUD hideHUDForView:self.view animated:YES];
  98. }];
  99. }
  100. - (void)getWithdrawDataFromNetworking {
  101. [MBProgressHUD showHUDAddedTo:self.view animated:YES];
  102. NSString *indexStr = [NSString stringWithFormat:@"%zd",index];
  103. ModelUser *modelUser = [ModelUser user];
  104. NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:modelUser.pk,@"memberpk",yearString,@"year",monthString,@"month",indexStr,@"index",@"10",@"size", nil];
  105. [YanCNetWorkManager requestPostWithURLStr:Url_getWithdrawList(PublicUrl) parameters:dic finish:^(id dataDic) {
  106. [MBProgressHUD hideHUDForView:self.view animated:YES];
  107. NSString *issuccess = dataDic[@"msg"];
  108. if ([issuccess isEqualToString:@"success"]) {
  109. NSDictionary *dic = dataDic[@"data"];
  110. NSArray *data = dic[@"data"];
  111. NSArray * array = [WithdrawListModel arrayOfModelsFromDictionaries:data];
  112. [self.dataArray addObjectsFromArray:array];
  113. totalIncome = dataDic[@"allcoin"];
  114. monthIncom = dataDic[@"outcashcoin"];
  115. self.allIncomeLabel.text = [NSString stringWithFormat:@"累计收入 %@元",totalIncome];
  116. NSString *number = dic[@"count"];
  117. NSInteger num = [number integerValue];
  118. [self.tableView.mj_header endRefreshing];
  119. [self.tableView reloadData];
  120. if (num == self.dataArray.count || num == 0) {
  121. [self.tableView.mj_footer endRefreshingWithNoMoreData];
  122. }else{
  123. [self.tableView.mj_footer endRefreshing];
  124. }
  125. } else {
  126. [MBProgressHUD showInfo:@"请求失败!"];
  127. }
  128. } enError:^(NSError *error) {
  129. [MBProgressHUD hideHUDForView:self.view animated:YES];
  130. }];
  131. }
  132. -(void)creatRemindingView{
  133. RemindingView *remindingView = [[RemindingView alloc] initWithFrame:self.view.bounds];
  134. [self.view addSubview:remindingView];
  135. if ([self.detailsIndex isEqualToString:@"1"]) {
  136. self.title = @"收入明细";
  137. remindingView.remindView.image = [UIImage imageNamed:@"shourumingxi-1"];
  138. remindingView.remindLabel.text = @"还没有任何收入明细记录";
  139. }else if ([self.detailsIndex isEqualToString:@"2"]) {
  140. self.title = @"提现明细";
  141. remindingView.remindView.image = [UIImage imageNamed:@"shourumingxi-1"];
  142. remindingView.remindLabel.text = @"还没有任何提现明细记录";
  143. }
  144. }
  145. - (void)creatTableView {
  146. //tableView头部视图
  147. UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth, 50)];
  148. headerView.backgroundColor = [UIColor whiteColor];
  149. self.allIncomeLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 10, ScreenWidth-40, 30)];
  150. self.allIncomeLabel.text = [NSString stringWithFormat:@"累计收入 %@元",totalIncome];
  151. self.allIncomeLabel.textAlignment = NSTextAlignmentLeft;
  152. self.allIncomeLabel.font = [UIFont systemFontOfSize:16];
  153. self.allIncomeLabel.textColor = RGBValueColor(0x333333, 1.0);
  154. [headerView addSubview:self.allIncomeLabel];
  155. //加载tableView
  156. self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth, ScreenHeight-(Height_NaviBar)) style:UITableViewStylePlain];
  157. self.tableView.backgroundColor = RGBValueColor(0xf7f7f7, 1.0);
  158. self.tableView.delegate = self;
  159. self.tableView.dataSource = self;
  160. self.tableView.showsVerticalScrollIndicator = NO;
  161. self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
  162. self.tableView.tableHeaderView = headerView;
  163. self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(refreshList)];
  164. self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
  165. [self.view addSubview:self.tableView];
  166. [self.tableView registerClass:[MyWalletDetailListCell class] forCellReuseIdentifier:@"MyWalletDetailListCell"];
  167. }
  168. -(void)refreshList{
  169. index = 1;
  170. [self.dataArray removeAllObjects];
  171. if ([self.detailsIndex isEqualToString:@"1"]) {
  172. [self getIncomeDataFromNetworking];
  173. }else{
  174. [self getWithdrawDataFromNetworking];
  175. }
  176. }
  177. - (void)loadMoreData{
  178. index++;
  179. if ([self.detailsIndex isEqualToString:@"1"]) {
  180. [self getIncomeDataFromNetworking];
  181. }else{
  182. [self getWithdrawDataFromNetworking];
  183. }
  184. }
  185. #pragma mark -- UITableViewDelegate, UITableViewDataSource
  186. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  187. return 1;
  188. }
  189. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  190. return self.dataArray.count;
  191. }
  192. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
  193. return 80;
  194. }
  195. - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
  196. return 50;
  197. }
  198. - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
  199. return 0;
  200. }
  201. - (nullable UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
  202. UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth, 50)];
  203. headerView.backgroundColor = RGBValueColor(0xf5f5f5, 1.0);
  204. UILabel *dateLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 10, 80, 30)];
  205. dateLabel.text = [NSString stringWithFormat:@"%@年%@月",yearString,monthString];
  206. dateLabel.textAlignment = NSTextAlignmentLeft;
  207. dateLabel.font = [UIFont systemFontOfSize:14];
  208. dateLabel.textColor = RGBValueColor(0x333333, 1.0);
  209. [headerView addSubview:dateLabel];
  210. UILabel *monthIncomLabel = [[UILabel alloc] initWithFrame:CGRectMake(120, 10, ScreenWidth-180, 30)];
  211. monthIncomLabel.text = [NSString stringWithFormat:@"收入 %@元",monthIncom];
  212. monthIncomLabel.textAlignment = NSTextAlignmentLeft;
  213. monthIncomLabel.font = [UIFont systemFontOfSize:14];
  214. monthIncomLabel.textColor = RGBValueColor(0x999999, 1.0);
  215. [headerView addSubview:monthIncomLabel];
  216. UIButton *dateButton = [[UIButton alloc]initWithFrame:CGRectMake(ScreenWidth-50, 5, 40, 40)];
  217. [dateButton setImage:[UIImage imageNamed:@"rili"] forState:UIControlStateNormal];
  218. [dateButton addTarget:self action:@selector(clickSelectDate) forControlEvents:UIControlEventTouchUpInside];
  219. [headerView addSubview:dateButton];
  220. return headerView;
  221. }
  222. - (nullable UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
  223. UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth, 0.01)];
  224. footerView.backgroundColor = RGBValueColor(0xf7f7f7, 1.0);
  225. return footerView;
  226. }
  227. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  228. static NSString *CellIdentifier = @"MyWalletDetailListCell";
  229. MyWalletDetailListCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  230. if (cell == nil) {
  231. cell = [[MyWalletDetailListCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
  232. }
  233. NSString *imageName = @"shipin";
  234. NSString *title = @"";
  235. NSString *time = @"";
  236. NSString *amount = @"";
  237. if ([self.detailsIndex isEqualToString:@"1"]) {
  238. IncomeListModel *model = self.dataArray[indexPath.row];
  239. if ([model.stype isEqualToString:@"聊天"]) {
  240. imageName = @"shipin";
  241. }else if ([model.stype isEqualToString:@"订单"]){
  242. imageName = @"jineng-1";
  243. }else if ([model.stype isEqualToString:@"红包"]){
  244. imageName = @"hongbaoshouru";
  245. }
  246. title = [NSString stringWithFormat:@"%@",model.atype];
  247. time = model.adate;
  248. amount = [NSString stringWithFormat:@"+%@",model.coin];
  249. }else{
  250. WithdrawListModel *model = self.dataArray[indexPath.row];
  251. if ([model.ptype isEqualToString:@"支付宝"]) {
  252. imageName = @"zhifubao-1";
  253. }else{
  254. imageName = @"weixin";
  255. }
  256. title = [NSString stringWithFormat:@"%@",model.ptype];
  257. time = model.feedate;
  258. amount = [NSString stringWithFormat:@"%@",model.fee];
  259. }
  260. cell.iconImageView.image = [UIImage imageNamed:imageName];
  261. cell.titleLabel.text = title;
  262. cell.timeLabel.text = time;
  263. cell.amountLabel.text = amount;
  264. if ([[ModelUser user].modelpk isEqualToString:@"51"]) {
  265. cell.iconImageView.image = [UIImage imageNamed:@"jineng-1"];
  266. cell.titleLabel.text = @"服务收入";
  267. }
  268. return cell;
  269. }
  270. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  271. if ([self.detailsIndex isEqualToString:@"2"]) {
  272. WithdrawListModel *model = self.dataArray[indexPath.row];
  273. WithdrawalDetailController *vc = [[WithdrawalDetailController alloc]init];
  274. vc.withdrawPk = model.pk;
  275. [self.navigationController pushViewController:vc animated:YES];
  276. }
  277. }
  278. -(void)clickSelectDate{
  279. PGDatePickManager *datePickManager = [[PGDatePickManager alloc]init];
  280. PGDatePicker *datePicker = datePickManager.datePicker;
  281. datePicker.delegate = self;
  282. datePicker.datePickerMode = PGDatePickerModeYearAndMonth;
  283. [self presentViewController:datePickManager animated:false completion:nil];
  284. NSDate *datenow = [NSDate date];
  285. NSDate *datemin = [NSDate dateWithTimeInterval:-24*60*60*30*12 sinceDate:datenow];
  286. datePicker.minimumDate = datemin;
  287. datePicker.maximumDate = datenow;
  288. datePickManager.titleLabel.text = @"选择开始时间";
  289. //设置半透明的背景颜色
  290. datePickManager.isShadeBackgroud = true;
  291. //设置头部的背景颜色
  292. datePickManager.headerViewBackgroundColor = [UIColor whiteColor];
  293. //设置线条的颜色
  294. datePicker.lineBackgroundColor = [UIColor colorWithHexString:@"#FE4086"];
  295. //设置选中行的字体颜色
  296. datePicker.textColorOfSelectedRow = [UIColor colorWithHexString:@"#FE4086"];
  297. //设置未选中行的字体颜色
  298. datePicker.textColorOfOtherRow = [UIColor blackColor];
  299. //设置取消按钮的字体颜色
  300. datePickManager.cancelButtonTextColor = [UIColor blackColor];
  301. //设置取消按钮的字
  302. datePickManager.cancelButtonText = @"取消";
  303. //设置取消按钮的字体大小
  304. datePickManager.cancelButtonFont = [UIFont boldSystemFontOfSize:17];
  305. //设置确定按钮的字体颜色
  306. datePickManager.confirmButtonTextColor = [UIColor colorWithHexString:@"#FE4086"];
  307. //设置确定按钮的字
  308. datePickManager.confirmButtonText = @"确定";
  309. //设置确定按钮的字体大小
  310. datePickManager.confirmButtonFont = [UIFont boldSystemFontOfSize:17];
  311. }
  312. #pragma PGDatePickerDelegate
  313. - (void)datePicker:(PGDatePicker *)datePicker didSelectDate:(NSDateComponents *)dateComponents {
  314. NSLog(@"dateComponents = %@", dateComponents);
  315. yearString = [NSString stringWithFormat:@"%d",(int)[dateComponents year]];
  316. monthString = [NSString stringWithFormat:@"%d",(int)[dateComponents month]];
  317. index = 1;
  318. [self.dataArray removeAllObjects];
  319. if ([self.detailsIndex isEqualToString:@"1"]) {
  320. [self getIncomeDataFromNetworking];
  321. }else{
  322. [self getWithdrawDataFromNetworking];
  323. }
  324. }
  325. - (void)didReceiveMemoryWarning {
  326. [super didReceiveMemoryWarning];
  327. // Dispose of any resources that can be recreated.
  328. }
  329. /*
  330. #pragma mark - Navigation
  331. // In a storyboard-based application, you will often want to do a little preparation before navigation
  332. - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  333. // Get the new view controller using [segue destinationViewController].
  334. // Pass the selected object to the new view controller.
  335. }
  336. */
  337. @end