// // Xuanduo2SettingController.m // Ifish // // Created by Alex on 2019/4/28. // Copyright © 2019 lianlian. All rights reserved. // #import "XuanduoElectricityController.h" #import "UINavigationBar+Background.h" #import "TemperatureSetCell.h" #import "ChangeWaterCell.h" #import "Xuanduo2Model.h" #import "TemperatureSetModel.h" #import "setWaringTpModel.h" #import "remindCyclePic.h" #import "MyPickerView.h" #import "PlusTableViewCell.h" #import "SetTimerCell.h" #import "XuanduoSectionHeaderView.h" #import "XuanduoSelectHeader.h" #import "MydatePickerView.h" #import "SetTimerModel.h" #import "ReadTimerModel.h" #import "Xuanduo2DataUtility.h" #import "Xuanduo2TimerModel.h" #import "IfishDeviceInfo.h" #import "NSString+Add.h" #import "XuToControlName.h" #import "UserExtendataArchaver.h" #import "TimerTypeTableViewCell.h" #import "ElectricityCell.h" #import "ElectricityView.h" #define kBtnTag 500 #define kSwitchBtnTag 600 static NSString *ElectricityCellid = @"ElectricityCell"; static NSString *changeWaterCellid = @"ChangeWaterCell"; static NSString *addCellid = @"PlusTableViewCell"; static NSString *plusflag = @"plusCell"; static NSString *setTimerflag = @"SetTimerCell"; static NSString *timerTypeFlag = @"TimerTypeTableViewCell"; @interface XuanduoElectricityController () @property(nonatomic,strong) setRemindWaterModel *waterInfmodel; @property(nonatomic,strong) Xuanduo2TimerModel *timerModel; @property(nonatomic,strong) XuanduoCycleModel *cycleModel; @property (nonatomic,strong) NSMutableDictionary *timeDic; @property(nonatomic,copy) NSString *nextChangeDateLabel; @property(nonatomic,strong) MyHud *XuTohud; @property(nonatomic,strong)UITableView*tableView; @property(nonatomic,strong)ElectricityView*headerView; @property(nonatomic,strong)NSDictionary*dataDict; @property(nonatomic,strong)NSArray*sortedArray; @end @implementation XuanduoElectricityController { NSString *_wenduString; NSIndexPath *_indexPath; MyPickerView *_mypicView; NSArray *_titieArr; NSArray *_imgArr; remindCyclePic*_remindPic; BOOL _huanShuiSwitchIsOn; NSInteger _selectSection; MydatePickerView*_mydatepicView; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [Socketsingleton sharedInstance].communiteDelegate = self; //关闭打开的section _selectSection = -1; [self.tableView reloadData]; } - (void)viewDidLoad { [super viewDidLoad]; [self setup]; [self connect]; } - (void)viewWillDisappear:(BOOL)animated{ [_indicatorView stopAnimating]; } - (void)setup { [self.navigationController.navigationBar resetBackgroundImage]; NSString*title=@"电量统计"; [self addTitleViewWithTitle:title]; [self refreshWithData:self.dataModel]; [self setupTable]; [self requestData]; [self creatIndicatorView]; [Socketsingleton sharedInstance].communiteDelegate = self; } -(void)requestData { [AFHttpTool requestWihtMethod:RequestMethodTypePost url:kdevicePowers params:@{} success:^(id response) { NSDictionary*resultDic=[NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers error:nil]; // resultDic=@{@"result":@"100",@"data":@{@"history":@{@"2022":@{@"1":@"100",@"4":@"344",@"2":@"23"},@"2021":@{@"3":@"100",@"4":@"344",@"2":@"23"}}}}; NSString*result=resultDic[@"result"]; if ([resultDic[@"result"] isEqualToString:@"100"]) { NSDictionary*data=resultDic[@"data"]; NSDictionary*his=data[@"history"]; self.dataDict=his; self.sortedArray= [his.allKeys sortedArrayUsingComparator:^NSComparisonResult(NSString* number1, NSString* number2){ if ([number1 integerValue] > [number2 integerValue]){ return NSOrderedAscending; }else if([number1 integerValue] < [number2 integerValue]){ return NSOrderedDescending; } else{ return NSOrderedSame; } }]; [self.tableView reloadData]; } else { [self.view makeToast:result]; } } failure:^(NSError *err) { }]; } - (void)refreshWithData:(Xuanduo3fModel*)model { NSString*low = model.miniTemp; NSString*heigh = model.maxTemp; UInt64 lowten = [dataContorl hexToTen:low]; UInt64 heighten = [dataContorl hexToTen:heigh]; float formatlow = lowten/10; float formatheigh = heighten/10; _wenduString = [NSString stringWithFormat:@"%.0f~%.0f°C",formatlow,formatheigh]; } - (void)setupTable { self.tableView=[[UITableView alloc]initWithFrame:self.view.bounds style:UITableViewCellStyleDefault]; self.tableView.delegate=self; self.tableView.dataSource=self; self.tableView.backgroundColor=COLOR_MIAN; self.tableView.layer.cornerRadius=8; ElectricityView*header=[ElectricityView viewFromXib]; self.tableView.tableHeaderView=header; self.headerView=header; self.view.backgroundColor=COLOR_MIAN; if (@available(iOS 15.0, *)) { self.tableView.sectionHeaderTopPadding=0; } else { // Fallback on earlier versions } self.tableView.separatorStyle=UITableViewCellSeparatorStyleSingleLine; self.tableView.separatorInset=UIEdgeInsetsMake(0, 15, 0, 15); [self.tableView registerNib:[UINib nibWithNibName:ElectricityCellid bundle:nil] forCellReuseIdentifier:ElectricityCellid]; [self.view addSubview:self.tableView]; } -(NSString*)getMonthByNumberString:(NSString*)number { NSDictionary*months=@{@"1":@"一",@"2":@"二",@"3":@"三",@"4":@"四",@"5":@"五",@"6":@"六",@"7":@"七",@"8":@"八",@"9":@"九",@"10":@"十",@"11":@"十一",@"12":@"十二"}; return months[number]?:@""; } #pragma mark - Table view data source - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return self.sortedArray.count; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { NSString*key=self.sortedArray[section]; NSDictionary*dic=self.dataDict[key]; return dic.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { ElectricityCell *cell = [tableView dequeueReusableCellWithIdentifier:ElectricityCellid]; cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator; NSString*key=self.sortedArray[indexPath.section]; NSDictionary*dic=self.dataDict[key]; NSArray*array=[dic.allKeys sortedArrayUsingComparator:^NSComparisonResult(NSString* number1, NSString* number2){ if ([number1 integerValue] > [number2 integerValue]){ return NSOrderedDescending; }else if([number1 integerValue] < [number2 integerValue]){ return NSOrderedAscending; } else{ return NSOrderedSame; } }]; NSString*month=array[indexPath.row]; NSString*power=dic[month]; cell.monthLabel.text=[NSString stringWithFormat:@"%@月",[self getMonthByNumberString:month]]; cell.powerLabel.text=power; return cell; } -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ return 44;; } #pragma mark tableView 头视图和脚视图 -(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { return 44; } - (UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { NSString*year=self.sortedArray[section]; UIView *oneHeader = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 44)]; oneHeader.backgroundColor = [UIColor whiteColor]; UILabel*label=[[UILabel alloc]initWithFrame:CGRectMake(10, 0, 60, 44)]; label.text=[NSString stringWithFormat:@"%@年",year]; label.textColor=[UIColor lightGrayColor]; [oneHeader addSubview:label]; return oneHeader; } #pragma mark tableView 点击事件 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ [tableView deselectRowAtIndexPath:indexPath animated:YES]; } -(void)temperatureMainQueue{ NSArray*lowArr=[_mypicView.picArr objectAtIndex:0]; NSArray*heighArr=[_mypicView.picArr objectAtIndex:2]; for (NSInteger i=0; i