RDSHomeModel.m 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. //
  2. // RDSHomeModel.m
  3. // Temperature
  4. //
  5. // Created by RD on 2022/12/15.
  6. //
  7. #import "RDSHomeModel.h"
  8. #import "RDSRootControl.h"
  9. @implementation RDSHomeModel
  10. + (NSDictionary *)objectClassInArray
  11. {
  12. return @{
  13. @"member": @"YXMemberModel",
  14. @"room": @"YXHomeRoomModel",
  15. @"devices": @"YXHomeDeviceModel",
  16. };
  17. }
  18. + (void)rds_getHomeListIsAdmin:(BOOL)is_admin finished:(void (^)(NSError * ))finished{
  19. [RDSDemoApiHelper rds_getHomeListIsAdmin:is_admin success:^(id responseObject) {
  20. if ([responseObject[@"code"] intValue] == 9999) {
  21. [RDSRootControl shareControl].isLoginSuccess = NO;
  22. TheDataManager.token = @"";
  23. }
  24. if ([responseObject[@"code"] intValue] == 0) {
  25. NSArray *data = responseObject[@"data"];
  26. NSMutableArray *dataArray = [RDSHomeModel mj_objectArrayWithKeyValuesArray:data];
  27. NSMutableArray *homes = [[NSMutableArray alloc]initWithCapacity:5];
  28. for (RDSHomeModel *homeModel in dataArray) {
  29. homeModel.member = [YXMemberModel mj_objectArrayWithKeyValuesArray:homeModel.member];
  30. homeModel.room = [YXHomeRoomModel mj_objectArrayWithKeyValuesArray:homeModel.room];
  31. for (YXHomeRoomModel *roomModel in homeModel.room) {
  32. roomModel.devices = [YXHomeDeviceModel mj_objectArrayWithKeyValuesArray:roomModel.devices];
  33. }
  34. homeModel.devices = [YXHomeDeviceModel mj_objectArrayWithKeyValuesArray:homeModel.devices];
  35. [homes addObject:homeModel];
  36. }
  37. TheDataManager.homes = homes.mutableCopy;
  38. BOOL hasSelectHome = NO;
  39. for (int i = 0; i<homes.count; i++) {
  40. RDSHomeModel *home = homes[i];
  41. if([home.record_id isEqualToString:TheDataManager.current_home_id]){
  42. TheDataManager.current_home_name = home.name;
  43. TheDataManager.current_home_index = i;
  44. hasSelectHome = YES;
  45. break;
  46. }
  47. }
  48. if(hasSelectHome == NO){
  49. RDSHomeModel *home = homes.firstObject;
  50. TheDataManager.current_home_name = home.name;
  51. TheDataManager.current_home_index = 0;
  52. }
  53. BLOCK_SAFE_RUN(finished, nil)
  54. } else{
  55. NSError *error = [NSError errorWithDomain:responseObject[@"message"] code:[responseObject[@"code"] intValue] userInfo:nil];
  56. BLOCK_SAFE_RUN(finished, error)
  57. }
  58. } failure:^(NSError *error) {
  59. BLOCK_SAFE_RUN(finished, error)
  60. }];
  61. }
  62. //- (void)setMember:(NSMutableArray<RDSMemberModel *> *)member{
  63. // if(member.count == 0) return;
  64. //
  65. // if([member.firstObject isKindOfClass:[RDSMemberModel class]]){
  66. // _member = member;
  67. // }else{
  68. // NSMutableArray *memberArr = [RDSMemberModel mj_objectArrayWithKeyValuesArray:member];
  69. // _member = memberArr.mutableCopy;
  70. // }
  71. //}
  72. + (void)rds_getHomeDetailWithFinished:(void (^)(RDSHomeModel *, NSError *))finished{
  73. [RDSDemoApiHelper rds_getHomeDetailWithSuccess:^(id responseObject) {
  74. if ([responseObject[@"code"] intValue] == 9999) {
  75. [RDSRootControl shareControl].isLoginSuccess = NO;
  76. TheDataManager.token = @"";
  77. }
  78. if ([responseObject[@"code"] intValue] == 0) {
  79. NSDictionary *data = responseObject[@"data"];
  80. if (![data isKindOfClass:[NSDictionary class]]) {
  81. return;
  82. }
  83. RDSHomeModel *home = [RDSHomeModel mj_objectWithKeyValues:data];
  84. home.member = [YXMemberModel mj_objectArrayWithKeyValuesArray:data[@"member"]];
  85. NSMutableArray *roomModelArray = [[NSMutableArray alloc]initWithCapacity:5];
  86. NSArray *roomArray = data[@"room"];
  87. for (NSDictionary *deviceDic in roomArray) {
  88. YXHomeRoomModel *roomModel = [YXHomeRoomModel mj_objectWithKeyValues:deviceDic];
  89. NSArray *devicesArray = deviceDic[@"devices"];
  90. roomModel.devices = [YXHomeDeviceModel mj_objectArrayWithKeyValuesArray:devicesArray];
  91. [roomModelArray addObject:roomModel];
  92. }
  93. home.room = roomModelArray;
  94. home.devices = [YXHomeDeviceModel mj_objectArrayWithKeyValuesArray:data[@"devices"]];
  95. if ([home.record_id isEqualToString:TheDataManager.current_home_id]){
  96. TheDataManager.detailHome = home;
  97. TheDataManager.rooms = home.room.mutableCopy;
  98. // TheDataManager.gateway = home.gateway;
  99. TheDataManager.current_home_name = home.name;
  100. }
  101. BLOCK_SAFE_RUN(finished,home, nil)
  102. } else {
  103. NSError *error = [NSError errorWithDomain:responseObject[@"message"] code:[responseObject[@"code"] intValue] userInfo:nil];
  104. BLOCK_SAFE_RUN(finished,nil, error)
  105. }
  106. } failure:^(NSError *error) {
  107. }];
  108. }
  109. @end