// // ASUserCenterViewController.m // Asteria // // Created by iOS on 2023/5/15. // #import "ASUserCenterViewController.h" #import "ASUserCenterTableHeadView.h" #import "KWMineHomeOrderHeadView.h" #import "KWMineHomeOrderListCell.h" #import "KWMineMoreProductsCell.h" #import "ASCouponsListViewController.h" #import "ASGiftCardListViewController.h" #import "ASPointsHomeViewController.h" #import "ASVipCenterViewController.h" #import "ASMessageListViewController.h" #import "ASSettingViewController.h" #import "ASUserCenterViewModel.h" #import "ASOrderListViewController.h" #import "ASOrderDetailsViewController.h" @interface ASUserCenterViewController () @property (nonatomic,strong) UITableView *tableV; @property (nonatomic,strong) ASUserCenterTableHeadView *tableHeadV; @property (nonatomic, strong) ASUserCenterViewModel *vm; @property (nonatomic, strong) NSArray *orderArr; @property (nonatomic, strong) NSArray *recommendGoodsArr; @end @implementation ASUserCenterViewController - (void)viewDidLoad { [super viewDidLoad]; self.vm = [ASUserCenterViewModel new]; //获取推荐商品 [self getRecommendGoodsData]; [self configSubVs]; [NSNotificationCenter.defaultCenter addObserver:self selector:@selector(setData) name:UserInfoUpdate object:nil]; //切换币种之后通知首页数据刷新 [NSNotificationCenter.defaultCenter addObserver:self selector:@selector(getRecommendGoodsData) name:HomeDataUpdateByCurrency object:nil]; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; if (ASUserInfoManager.shared.isLogin) { [self setData]; [self getSignInfoData]; [self getOrders]; } else { [Fuction_Tool pop_toLoginVC]; } } // MARK: - setData - (void)setData { [self.tableHeadV.topV setData]; // [self.tableHeadV.signV refreshData]; } - (void)getSignInfoData { [self.tableHeadV.signV refreshData]; } - (void)getOrders { K_WEAK_SELF; [self.vm getAllOrderNet:^(NSArray * _Nonnull arr) { K_STRONG_SELF; self.orderArr = arr; [self.tableV reloadData]; }]; } - (void)getRecommendGoodsData { K_WEAK_SELF; [self.vm getRecommmendGoodsData:^(NSArray * _Nonnull array) { K_STRONG_SELF; self.recommendGoodsArr = array; [self.tableV reloadData]; }]; } // MARK: - subVs - (void)configSubVs { // __block typeof(self) wSelf = self; [self ucHomeStyle:^{ }]; self.nav_logoBlock = ^{ [Fuction_Tool popToHomeVc]; }; [self.view addSubview:self.tableV]; [self.tableV mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.customNavBar.mas_bottom); make.leading.trailing.equalTo(self.view); make.bottom.equalTo(self.view); }]; __weak typeof(self) weakSelf = self; [self.tableHeadV.itemsV setItemTapCallBack:^(NSInteger tag) { /// 0 优惠券 1礼品卡 2积分 3vip 4联系 5消息 switch (tag) { case 0: { ASCouponsListViewController *vc = [[ASCouponsListViewController alloc] init]; [weakSelf.navigationController pushViewController:vc animated:true]; } break; case 1: { ASGiftCardListViewController *vc = [[ASGiftCardListViewController alloc] init]; [weakSelf.navigationController pushViewController:vc animated:true]; } break; case 2: { ASPointsHomeViewController *vc = [[ASPointsHomeViewController alloc] init]; [weakSelf.navigationController pushViewController:vc animated:true]; } break; case 3: { ASVipCenterViewController *vc = [ASVipCenterViewController new]; [weakSelf.navigationController pushViewController:vc animated:true]; } break; case 4: { NSURL *url = [NSURL URLWithString:mailServiceUrlStr]; if (url != nil && [UIApplication.sharedApplication canOpenURL:url]) { [UIApplication.sharedApplication openURL:url options:@{} completionHandler:nil]; } } break; case 5: { ASMessageListViewController *vc = [ASMessageListViewController new]; [weakSelf.navigationController pushViewController:vc animated:true]; } break; default: break; } }]; [self.tableHeadV.topV setSettingBlock:^{ ASSettingViewController *vc = [ASSettingViewController new]; [weakSelf.navigationController pushViewController:vc animated:true]; }]; } #pragma mark - UITableViewDelegate,UITableViewDataSource - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { } - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 2; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { if (section == 0) { return self.orderArr.count; //self.orderVm.orderList.count; } if (section == 1) { return 1; } return 0; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.section == 0) { KWMineHomeOrderListCell *cell = [tableView dequeueReusableCellWithIdentifier:@"KWMineHomeOrderListCell" forIndexPath:indexPath]; if (self.orderArr.count <= indexPath.row) { return cell; } KWMineHomeOrderModel *m = self.orderArr[indexPath.row]; [cell setData:m]; @weakify(self); cell.viewOrderCall = ^(NSInteger type, KWMineHomeOrderModel * _Nonnull model) { @strongify(self) if (![ASUserInfoManager.shared isLogin]) { [self popAndToLogin]; return; } // 查看订单 NSLog(@"查看订单 view order"); ASOrderDetailsViewController *orderDetailsVC = [[ASOrderDetailsViewController alloc] init]; orderDetailsVC.orderId = model.entity_id; [self.navigationController pushViewController:orderDetailsVC animated:YES]; // KWM_OrderViewC *vc = [[KWM_OrderViewC alloc]init]; // vc.order_id = m.orderId; // [[Current_normalTool topViewController].navigationController pushViewController:vc animated:YES]; }; return cell; } KWMineMoreProductsCell *cell = [tableView dequeueReusableCellWithIdentifier:@"KWMineMoreProductsCell" forIndexPath:indexPath]; cell.topSpace = 20; [cell setTypeArray:self.recommendGoodsArr]; K_WEAK_SELF; cell.productBlock = ^(ASProductBaseModel * _Nonnull model) { K_STRONG_SELF; // [self goto_WKM_GoodsDetailsC:model.Id]; UIViewController *viewController = [[CTMediator sharedInstance] Goods_GoodsDetailsC:@{@"entity_id":model.Id}]; [self.navigationController pushViewController:viewController animated:YES]; }; cell.addCartBlock = ^(ASProductBaseModel * _Nonnull model) { K_STRONG_SELF; [self action_GoodsSizeC:model.Id]; }; return cell; } -(void)goto_WKM_GoodsDetailsC:(NSString *)entity_id { } -(void)pushToProductList:(NSString *)name typeid:(NSString *)typeId { if (typeId == nil || [typeId isEqualToString:@""]) { return; } if (name == nil || [name isEqualToString:@""]) { name = @"Products"; } UIViewController *vc = [CTMediator.sharedInstance getProductListVc:@{}]; [self.navigationController pushViewController:vc animated:true]; } - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { if (section == 0) { return self.orderArr.count == 0 ? 0 : 80; } return 0; } - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { KWMineHomeOrderHeadView *v = [tableView dequeueReusableHeaderFooterViewWithIdentifier:@"KWMineHomeOrderHeadView"]; v.backgroundColor = UIColor.whiteColor; __weak typeof(self) weakSelf = self; [v setToAllBlock:^{ ASOrderListViewController *orderC = [[ASOrderListViewController alloc]init]; [weakSelf.navigationController pushViewController:orderC animated:true]; }]; return v; } // MARK: - subViews - (ASUserCenterTableHeadView *)tableHeadV { if (!_tableHeadV) { ASUserCenterTableHeadView *v = [[ASUserCenterTableHeadView alloc] initWithFrame:CGRectZero]; _tableHeadV = v; } return _tableHeadV; } - (UITableView *)tableV { if (!_tableV) { UITableView *v = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; v.tableHeaderView = self.tableHeadV; [v registerClass:[KWMineHomeOrderListCell class] forCellReuseIdentifier:@"KWMineHomeOrderListCell"]; [v registerClass:[KWMineHomeOrderHeadView class] forHeaderFooterViewReuseIdentifier:@"KWMineHomeOrderHeadView"]; [v registerClass:[KWMineMoreProductsCell class] forCellReuseIdentifier:@"KWMineMoreProductsCell"]; v.delegate = self; v.dataSource = self; [v baseSet]; _tableV = v; } return _tableV; } @end