Prechádzať zdrojové kódy

- 장치 리스트 출력

KaRam Kim 8 rokov pred
rodič
commit
501c4eb568

OneCable/Assets.xcassets/images/40108.imageset/40108@2x.png → OneCable/Assets.xcassets/images/40302.imageset/40108@2x.png


OneCable/Assets.xcassets/images/40108.imageset/40108@3x.png → OneCable/Assets.xcassets/images/40302.imageset/40108@3x.png


OneCable/Assets.xcassets/images/40108.imageset/Contents.json → OneCable/Assets.xcassets/images/40302.imageset/Contents.json


+ 1 - 0
OneCable/Base.lproj/Localizable.strings

@@ -138,6 +138,7 @@
 
 "%@멤버에게\n마스터 권한을\n양도하시겠습니까?" = "%@멤버에게\n마스터 권한을\n양도하시겠습니까?";
 "%@멤버에게 신청된\n마스터 권한 양도를\n취소하시겠습니까?" = "%@멤버에게 신청된\n마스터 권한 양도를\n취소하시겠습니까?";
+"%@멤버를\n삭제하시겠습니까?" = "%@멤버를\n삭제하시겠습니까?";
 
 //SignUp
 

+ 2 - 2
OneCable/Classes/Definitions.h

@@ -100,8 +100,8 @@ static NSString *kWebLinkServer = @"http://61.40.220.23:7794";      //운영
 #define API_POST_HOMEGROUP_INVITE_QUIZ      @"/quiz"                                //홈멤버 초대시 퀴즈 목록
 //#define API_POST_HOMEGROUP_MEMBER_UPDATE    @"/homegrp_members/%@"      //홈멤버 업데이트 - 폐기
 //#define API_POST_HOMEGROUP_MEMBER_VALIDATE  @"/homegrp_members/email_validation"    //홈그룹 멤버 유효성체크 - 폐기
-#define API_DELETE_HOMEGROUP_MEMBERS        @"/homegrp_members"         //홈멤버 삭제 - 추가
-#define API_DELETE_HOMEGROUP_MEMBER         @"/homegrp_members/%@"         //홈멤버 삭제 - 자진 탈퇴
+#define API_DELETE_HOMEGROUP_MEMBER         @"/customer/%@/group/%@/member"         //홈멤버 삭제 - 삭제 / 초대취소
+#define API_DELETE_HOMEGROUP_MEMBER_SELF    @"/customer/%@/group/%@/member/%@"      //홈멤버 삭제 - 자진 탈퇴
 
 #define API_PUT_HOMEGROUP_MASTER_TRANSFER  @"/customer/%@/group/%@/member/%@/master/grade" //마스터 권한 양도 변경 신청
 

+ 3 - 0
OneCable/Classes/Model/DeviceModel.h

@@ -42,6 +42,8 @@
 @property (copy, nonatomic) NSString *deviceConnLastDatetime;
 @property (copy, nonatomic) NSString *deviceConn;
 
+@property (copy, nonatomic) NSString *deviceclassTypeId;
+
 
 
 @property (assign, nonatomic, readonly) BOOL isDeviceOnlined;
@@ -93,6 +95,7 @@
 
 @interface NodeListModel : JDJSONModel
 @property (copy, nonatomic) NSString *ctrtCnt;
+@property (copy, nonatomic) NSMutableArray<DeviceModel> *devices;
 @property (copy, nonatomic) NSMutableArray<DeviceModel> *nodes;
 
 -(BOOL)isCanReOrder;

+ 8 - 0
OneCable/Classes/Model/SocketMsgModel.h

@@ -13,6 +13,14 @@
 #define  MSG_TYPE_DEVICE_ALIVE      @"device.alive"
 #define  MSG_TYPE_AUTO_LOGIN        @"auth.auto"
 
+#define  MSG_TYPE_DEVICE_COMMAND        @"device.command"
+#define  MSG_TYPE_DEVICE_COMMAND_RES    @"device.command.result"
+
+
+
+#define  CMD_TYPE_PAIRING_START         @"pairing_start"
+#define  CMD_TYPE_PAIRING_STOP          @"pairing_stop"
+#define  CMD_TYPE_UNPAIRING_START       @"unpairing_start"
 
 @interface SocketRequestModel : SocketModel
 

+ 37 - 16
OneCable/Classes/ViewControllers/HomeMemberScreens/HomeMemberViewController.m

@@ -485,14 +485,9 @@
 }
 
 - (void)requestMasterTransfer:(NSString *)memberId isRequest:(BOOL)isRequst{
-    NSMutableDictionary *parameter = [NSMutableDictionary dictionary];
-    if (isRequst) {
-        parameter[@"after_member_id"] = memberId;
-        parameter[@"status"] = MASTER_TRANSFER_REQUEST;
-    }
-    else {
-        parameter[@"status"] = MASTER_TRANSFER_CANCEL;
-    }
+    NSDictionary *parameter = @{@"after_member_id" : ![memberId isEmptyString] ? memberId : ksEmptyString,
+                                @"status": isRequst ? MASTER_TRANSFER_REQUEST : MASTER_TRANSFER_CANCEL};
+
     
     NSString *path = [[JDFacade facade] getUrlWithCustGroupIDAndMemberID:API_PUT_HOMEGROUP_MASTER_TRANSFER];
     
@@ -512,9 +507,10 @@
     
     //parameters
     NSDictionary *parameter = @{@"member_ids" : ![memberIds isEmptyString] ? memberIds : ksEmptyString,
-                                @"invitation_hist_ids": ![invitations isEmptyString] ? invitations : ksEmptyString};
+                                @"receive_phones": ![invitations isEmptyString] ? invitations : ksEmptyString};
     
-    NSString *path = [NSString stringWithFormat:API_DELETE_HOMEGROUP_MEMBERS];
+//    NSString *path = [NSString stringWithFormat:API_DELETE_HOMEGROUP_MEMBERS];
+    NSString *path = [[JDFacade facade] getUrlWithCustAndGroupID:API_DELETE_HOMEGROUP_MEMBER arguments:nil];
     
     
     [[RequestHandler handler] sendAsyncRequestAPIPath:path method:ksHTTPRequestDELETE parameters:parameter modelClass:[JDJSONModel class] showLoadingView:YES completion:^(id responseObject) {
@@ -552,7 +548,10 @@
 - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
     
     NSInteger auth = [JDFacade facade].loginUser.level == 90 && !_isDeleteMode && _responseInfo.isRemainInvite; //마스터 권한이면서, 멤버초대 최대수를 넘지 않으며, 삭제모드가 아닐경우,
-    NSInteger count = _memberList.count % _deviceFlag == 0 ? _memberList.count : _memberList.count + auth; //홀수일 경우, 멤버 초대 버튼을 추가해줌.
+//    NSInteger count = _memberList.count % _deviceFlag == 0 ? _memberList.count : _memberList.count + auth; //홀수일 경우, 멤버 초대 버튼을 추가해줌.
+    NSInteger count = _memberList.count + auth; //항상 추가되도록 수정
+    
+    
     return count;
 }
 
@@ -606,16 +605,17 @@
         
         cell.btnCheck.hidden = !(_isMasterTransferMode && [member.gradeCode isEqualToString:KNEET_MEMBER_SIMPLE] && _memberList.count > 1);
         cell.btnCheck.value = member;
-//        cell.chkSelect.checked = [cell.chkSelect getCheckStatusFromValue];
+//        cell.btnCheck.checked = [cell.btnCheck getCheckStatusFromValue];
         
         cell.btnDelete.hidden = !(_isDeleteMode && ![member.gradeCode isEqualToString:KNEET_MEMBER_MASTER] && _memberList.count > 1);
         cell.btnDelete.value = member;
         
         [cell.btnCheck addTarget:self action:@selector(btnTransferMaster:) forControlEvents:UIControlEventTouchUpInside];
-        [cell.btnDelete addTarget:self action:@selector(btnTransferMaster:) forControlEvents:UIControlEventTouchUpInside];
+        [cell.btnDelete addTarget:self action:@selector(btnDeleteMember:) forControlEvents:UIControlEventTouchUpInside];
         
         rcell = cell;
     } else {
+        NSLog(@"이쪽으로 들어올텐데?");
         HomeMemberAddCollectionCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"AddCollectionCellIdentifier" forIndexPath:indexPath];
         
         if (![cell.btnAdd actionsForTarget:self forControlEvent:UIControlEventTouchUpInside]) {
@@ -658,6 +658,7 @@
         HomeMemberModel *member = _memberList[indexPath.row];
         
         cell.btnCheck.value = member;
+//        [cell.btnCheck checkBoxClicked];
     }
     
 }
@@ -717,7 +718,7 @@
 - (void)btnTransferMaster:(id)sender {
     HomeMemberModel *memberInfo = (HomeMemberModel *) ((CustomButton *)sender).value;
     NSLog(@"Member Info : %@", memberInfo);
-    [sender setSelected:YES];
+    
     NSString *name = memberInfo.nickname;
     if ([memberInfo.nickname isEmptyString]) {
         name = memberInfo.memberId;
@@ -728,8 +729,6 @@
     [[JDFacade facade] confirmTitle:NSLocalizedString(@"마스터 권한 양도", @"마스터 권한 양도") message:msg completion:^(CustomAlertView *alertView, NSInteger buttonIndex) {
         if (buttonIndex == 0) {
             [self requestMasterTransfer:memberInfo.memberId isRequest:YES];
-        } else {
-            [sender setSelected:NO];
         }
     }];
 }
@@ -737,6 +736,28 @@
 - (void)btnDeleteMember:(id)sender {
     HomeMemberModel *memberInfo = (HomeMemberModel *) ((CustomButton *)sender).value;
     NSLog(@"Member Info : %@", memberInfo);
+    NSString *memberId = @"";
+    NSString *invitationId = @"";
+    
+    if ([memberInfo.memberTypeCode isEqualToString:KNEET_MEMBER_TYPE_INV]) {
+        invitationId = memberInfo.nickname;
+    } else {
+        memberId = memberInfo.memberId;
+    }
+    NSString *name = memberInfo.nickname;
+    if ([memberInfo.nickname isEmptyString]) {
+        name = memberInfo.memberId;
+    }
+    
+    NSString *msg = [NSString stringWithFormat:NSLocalizedString(@"%@멤버를\n삭제하시겠습니까?", @""), name];
+    
+    CustomAlertView *alert = [[CustomAlertView alloc] initWithTitle:@"알림" message:msg delegate:nil OKButtonTitle:@"확인" cancelButtonTitle:@"취소"];
+    [alert showWithCompletion:^(CustomAlertView *alertView, NSInteger buttonIndex) {
+        if (buttonIndex == 0) {//OK
+            [self requestDeleteMembers:memberId invitations:invitationId];
+        }
+    }];
+
 }
 
 #pragma mark - MoreButtonDelegate

+ 17 - 17
OneCable/Classes/ViewControllers/ThingsScreens/ThingsAddIncludeViewController.m

@@ -82,23 +82,23 @@
 
 #pragma mark - Main Logic
 - (void)requestIncludeDevice {
-
-    NSString *path = [NSString stringWithFormat:API_POST_DEVICE_INCLUSION, [JDFacade facade].loginUser.homehubDeviceId];
-    
-    [[RequestHandler handler] sendAsyncPostRequestAPIPath:path parameters:nil modelClass:[DeviceModel class] completion:^(id responseObject) {
-        if (!responseObject) {//응답결과가 잘못되었거나 없을 경우,
-            return;
-        }
-        
-        DeviceModel *device = (DeviceModel *)responseObject;
-        
-        if (device) {//API 성공 ,
-            [self requestCheckInclustion:device.commandId];
-        }
-    } failure:^(id errorObject) {
-        JDErrorModel *error = (JDErrorModel *)errorObject;
-        [[JDFacade facade] alert:error.errorMessage];
-    }];
+    NSLog(@"웹소켓 날리기");
+//    NSString *path = [NSString stringWithFormat:API_POST_DEVICE_INCLUSION, [JDFacade facade].loginUser.homehubDeviceId];
+//    
+//    [[RequestHandler handler] sendAsyncPostRequestAPIPath:path parameters:nil modelClass:[DeviceModel class] completion:^(id responseObject) {
+//        if (!responseObject) {//응답결과가 잘못되었거나 없을 경우,
+//            return;
+//        }
+//        
+//        DeviceModel *device = (DeviceModel *)responseObject;
+//        
+//        if (device) {//API 성공 ,
+//            [self requestCheckInclustion:device.commandId];
+//        }
+//    } failure:^(id errorObject) {
+//        JDErrorModel *error = (JDErrorModel *)errorObject;
+//        [[JDFacade facade] alert:error.errorMessage];
+//    }];
 }
 
 - (void)requestExcludeDevice {

+ 3 - 2
OneCable/Classes/ViewControllers/ThingsScreens/ThingsAddViewController.m

@@ -56,8 +56,8 @@
 
 - (void)prepareViewDidLoad {
 
-    _addableDeviceList = @[@{@"deviceName" : @"다원 스마트 플러그",
-                             @"manufacturer" : @"다원",
+    _addableDeviceList = @[@{@"deviceName" : @"스마트 가스밸브",
+                             @"manufacturer" : @"타임밸브",
                              @"nodeName" : @"스마트 플러그",
                              @"deviceKey": @"DAOWN"},
                            
@@ -98,6 +98,7 @@
 }
 
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+    NSLog(@"들어옴");
     [tableView deselectRowAtIndexPath:indexPath animated:YES];
     
     NSDictionary *addableDevice = _addableDeviceList[indexPath.row];

+ 10 - 8
OneCable/Classes/ViewControllers/ThingsScreens/ThingsViewController.m

@@ -418,7 +418,8 @@
 
 //    NSString *path = [NSString stringWithFormat:API_GET_DEVICE_LIST];
     // 멀티 홈허브 환경에서 선택된 홈허브 아이디가 있을경우 적용하기
-    NSString *path = [[JDFacade facade] getUrlWithCustAndGroupID:API_GET_DEVICE_LIST aditional:@""];
+    NSString *path = [[JDFacade facade] getUrlWithCustAndGroupID:API_GET_NODE_LIST aditional:@""];
+    
 
     [[RequestHandler handler] sendAsyncRequestAPIPath:path method:ksHTTPRequestGET parameters:nil
                                            modelClass:[NodeListModel class] showLoadingView:showLoadingView completion:^(id responseObject) {
@@ -600,10 +601,11 @@
         
         cell.lblDeviceName.text = device.prdName;
         
-        [cell.btnDevice sd_setImageWithURL:[NSURL URLWithString:device.imageFileName] forState:UIControlStateNormal
-                          placeholderImage:nil options:SDWebImageRefreshCached completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
-            [cell layoutIfNeeded];
-        }];
+//        [cell.btnDevice sd_setImageWithURL:[NSURL URLWithString:device.imageFileName] forState:UIControlStateNormal
+//                          placeholderImage:nil options:SDWebImageRefreshCached completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
+//            [cell layoutIfNeeded];
+//        }];
+        [cell.imgDevice setImage:[UIImage imageNamed:device.deviceclassTypeId]];
         [cell.btnDevice addTarget:self action:@selector(btnDeviceTouched:) forControlEvents:UIControlEventTouchUpInside];
         cell.btnDevice.value = indexPath;
 
@@ -682,9 +684,9 @@
         ThingsAddCollectionCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"ThingsAddCellIdentifier" forIndexPath:indexPath];
 
 //        
-//        if (![cell.btnAdd actionsForTarget:self forControlEvent:UIControlEventTouchUpInside]) {
-//            [cell.btnAdd addTarget:self action:@selector(addNewDevice) forControlEvents:UIControlEventTouchUpInside];
-//        }
+        if (![cell.btnAdd actionsForTarget:self forControlEvent:UIControlEventTouchUpInside]) {
+            [cell.btnAdd addTarget:self action:@selector(addNewDevice) forControlEvents:UIControlEventTouchUpInside];
+        }
         
         rcell = cell;
     }