From 3698c13aba988cd3e41b91b255e1c682c057e565 Mon Sep 17 00:00:00 2001
From: chenqiyang <1406175257@qq.com>
Date: 星期四, 23 三月 2023 11:49:58 +0800
Subject: [PATCH] 1.新增历史记录相关页面及功能 2.修改配网为热点配网 3.设备列表增加过滤门锁功能 4.增加添加设备通知功能

---
 EZSDK/EZSDK/EZ/Global/EZHttpUtil.m |  317 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 307 insertions(+), 10 deletions(-)

diff --git a/EZSDK/EZSDK/EZ/Global/EZHttpUtil.m b/EZSDK/EZSDK/EZ/Global/EZHttpUtil.m
index 29b7426..3fc0474 100644
--- a/EZSDK/EZSDK/EZ/Global/EZHttpUtil.m
+++ b/EZSDK/EZSDK/EZ/Global/EZHttpUtil.m
@@ -10,14 +10,25 @@
 #import <Foundation/Foundation.h>
 #import <CommonCrypto/CommonDigest.h>
 #import "AFNetworking.h"
+#import "YYModel.h"
 
 #define TestRequestHttpsHost @"https://test-gz.hdlcontrol.com"
 #pragma mark API
-#define API_POST_EZ_AddDevice @"/home-wisdom/platform/childAddDevice"
-#define API_POST_EZ_GetChildToken @"/home-wisdom/platform/childToken"
-#define API_POST_EZ_ChildDelDevice @"/home-wisdom/platform/childDelDevice"
+#define API_POST_EZ_VerifyLocalLock @"/home-wisdom/platform/yingshi/lock/verifyLocalLock"//钀ょ煶闂ㄩ攣鏈湴楠岃瘉
+#define API_POST_EZ_AddDevice @"/home-wisdom/platform/yingshi/child/addDevice"
+#define API_POST_EZ_GetChildToken @"/home-wisdom/platform/yingshi/child/token"
+#define API_POST_EZ_ChildDelDevice @"/home-wisdom/platform/yingshi/child/deleteDevice"
 #define API_POST_EZ_RefreshToken @"/smart-footstone/member/oauth/login"
+#define API_POST_EZ_LockAuth @"/home-wisdom/platform/yingshi/lock/auth"//钀ょ煶闂ㄩ攣缁堢鎺堟潈
+#define API_POST_EZ_RemoteOpen @"/home-wisdom/platform/yingshi/lock/remote/open/door"//钀ょ煶闂ㄩ攣杩滅▼寮�閿�
+#define API_POST_EZ_TempList @"/home-wisdom/platform/yingshi/lock/temp/list"//钀ょ煶闂ㄤ复鏃跺瘑鐮佸垪琛�
+#define API_POST_EZ_AddTemp @"/home-wisdom/platform/yingshi/lock/temp/add"//钀ょ煶闂ㄦ坊鍔犱复鏃跺瘑鐮�
+#define API_POST_EZ_DeleteTemp @"/home-wisdom/platform/yingshi/lock/temp/delete"//钀ょ煶闂ㄥ垹闄や复鏃跺瘑鐮�
+#define API_POST_EZ_DeviceMessage @"/home-wisdom/app/device/message"//钀ょ煶璁惧娑堟伅鍒楄〃
 
+#define API_POST_EZ_GetAlarmList @"/home-wisdom/platform/yingshi/alarm/records"//鑾峰彇鎶ヨ娑堟伅
+#define API_POST_EZ_DeleteAlarmMes @"/home-wisdom/platform/yingshi/alarm/delete"//鍒犻櫎鎶ヨ娑堟伅
+#define API_POST_EZ_ReadAlarmMes @"/home-wisdom/platform/yingshi/alarm/updateChecked"//鏍囪鎶ヨ娑堟伅宸茶
 
 #pragma mark APP_KEY
 #define APP_KEY @"HDL-HOME-APP-TEST"
@@ -51,13 +62,15 @@
     //2.璁剧疆璇锋眰鍙傛暟
     NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
     [parameters setValue: [NSString stringWithFormat:@"%d", [GlobalKit shareKit].hdlPlatform] forKey:@"platform"];
+    [parameters setValue:[GlobalKit shareKit].hdlHomeId forKey:@"homeId"];
     parameters = [self GetSignRequestDictionary:parameters];
     
     [self requestHttpsPost:API_POST_EZ_GetChildToken parameters:parameters completion:^(ResponseData *responseData) {
         if (block) {
             NSString * token = @"";
             if(responseData.success){
-                token = responseData.data[@"accessToken"];
+//                token = responseData.data[@"accessToken"];
+                token = [NSString stringWithFormat:@"%@",responseData.data];
             }
             block(token);
         }
@@ -66,6 +79,31 @@
     
 //    return task;
 }
+
+/**
+ *  @since 娌充笢娣诲姞璁惧涔嬪墠鏈湴楠岃瘉鐨勬帴鍙o紙鏅鸿兘闂ㄩ攣浣跨敤锛岃皟鐢ㄦ帴鍙e悗杈撳叆闂ㄩ攣瀵嗙爜锛屽啀杩涜缁戝畾锛�
+ *  @param deviceSerial 璁惧搴忓垪鍙�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀鸿皟鐢ㄩ獙璇佹帴鍙f垚鍔�
+ *
+ */
+- (void)verifyLocalLockByHDL:(NSString *)deviceSerial
+                  completion:(void (^)(ResponseData *responseData))completion{
+    //2.璁剧疆璇锋眰鍙傛暟
+    NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
+    [parameters setValue:deviceSerial forKey:@"deviceSerial"];
+    [parameters setValue:[NSString stringWithFormat:@"%@",[GlobalKit shareKit].hdlAppKey] forKey:@"appKey"];
+    [parameters setValue: [NSString stringWithFormat:@"%d",[GlobalKit shareKit].hdlPlatform] forKey:@"platform"];
+    [parameters setValue:[GlobalKit shareKit].hdlHomeId forKey:@"homeId"];
+    
+    parameters = [self GetSignRequestDictionary:parameters];
+    
+    [self requestHttpsPost:API_POST_EZ_VerifyLocalLock parameters:parameters completion:^(ResponseData *responseData) {
+        if (completion) {
+            completion (responseData);
+        }
+    }];
+}
+
 /**
  *  @since 娌充笢娣诲姞璁惧鐨勬帴鍙�
  *  鏍规嵁璁惧搴忓垪鍙峰拰璁惧楠岃瘉鐮佹坊鍔犺澶囨帴鍙�
@@ -79,14 +117,25 @@
                               verifyCode:(NSString *)verifyCode
                               completion:(void (^)(ResponseData *responseData))completion{
 
-    //2.璁剧疆璇锋眰鍙傛暟
+    //璁剧疆璇锋眰鍙傛暟
     NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
     [parameters setValue:deviceSerial forKey:@"deviceSerial"];
     [parameters setValue:verifyCode forKey:@"validateCode"];
     [parameters setValue: [NSString stringWithFormat:@"%d",[GlobalKit shareKit].hdlPlatform] forKey:@"platform"];
+    [parameters setValue:[GlobalKit shareKit].hdlHomeId forKey:@"homeId"];
+    
     parameters = [self GetSignRequestDictionary:parameters];
     
-   [self requestHttpsPost:API_POST_EZ_AddDevice parameters:parameters completion:^(ResponseData *responseData) {
+    HDLEZLog(@"娣诲姞璁惧鍙傛暟锛�%@",parameters);
+
+    
+    [self requestHttpsPost:API_POST_EZ_AddDevice parameters:parameters completion:^(ResponseData *responseData) {
+        if (responseData.success){//娣诲姞鎴愬姛锛岃Е鍙戜唬鐞�
+            if ([EZSDK sharedInstance].delegate&&[[EZSDK sharedInstance].delegate respondsToSelector:@selector(addDeviceSuccessed)]) {
+                [[EZSDK sharedInstance].delegate addDeviceSuccessed];
+            }
+        }
+        
         if (completion) {
             completion (responseData);
         }
@@ -108,6 +157,8 @@
     NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
     [parameters setValue:deviceSerial forKey:@"deviceSerial"];
     [parameters setValue: [NSString stringWithFormat:@"%d",[GlobalKit shareKit].hdlPlatform] forKey:@"platform"];
+    [parameters setValue:[GlobalKit shareKit].hdlHomeId forKey:@"homeId"];
+    
     parameters = [self GetSignRequestDictionary:parameters];
     
     [self requestHttpsPost:API_POST_EZ_ChildDelDevice parameters:parameters completion:^(ResponseData *responseData) {
@@ -120,6 +171,239 @@
 }
 
 
+/**
+ * 鏍规嵁璁惧搴忓垪鍙疯幏鍙栧憡璀︿俊鎭垪琛�
+ */
+- (void)getAlarmList:(NSString *)deviceSerial
+              pageNo:(NSInteger)pageNo
+            pageSize:(NSInteger)pageSize
+          completion:(void (^)(ResponseData *responseData))completion{
+    
+    //1.璁剧疆璇锋眰鍙傛暟
+    NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
+    [parameters setValue:deviceSerial forKey:@"deviceSerial"];
+    [parameters setValue:[GlobalKit shareKit].hdlHomeId forKey:@"homeId"];
+    [parameters setValue:[NSString stringWithFormat:@"%ld",(long)pageSize] forKey:@"pageSize"];
+    [parameters setValue:[NSString stringWithFormat:@"%ld",(long)pageNo] forKey:@"pageNo"];
+    
+    parameters = [self GetSignRequestDictionary:parameters];
+    NSLog(@"HDLpageNo:%ld",(long)pageNo);
+    [self requestHttpsPost:API_POST_EZ_GetAlarmList parameters:parameters completion:^(ResponseData *responseData) {
+        if (completion) {
+            completion (responseData);
+        }
+    }];
+}
+
+/**
+ * 鎵归噺鍒犻櫎鎶ヨ璁板綍
+ */
+- (void)deleteAlarmMessage:(NSArray *)alarmIds
+          completion:(void (^)(ResponseData *responseData))completion{
+    
+    //1.璁剧疆璇锋眰鍙傛暟
+    NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
+    [parameters setValue:[alarmIds yy_modelToJSONObject] forKey:@"alarmIds"];
+    
+    parameters = [self GetSignRequestDictionary:parameters];
+    
+    [self requestHttpsPost:API_POST_EZ_DeleteAlarmMes parameters:parameters completion:^(ResponseData *responseData) {
+        if (completion) {
+            completion (responseData);
+        }
+    }];
+}
+
+
+/**
+ * 鎵归噺鏍囪鎶ヨ璁板綍宸茶
+ */
+- (void)readAlarmMessage:(NSArray *)alarmIds
+          completion:(void (^)(ResponseData *responseData))completion{
+    
+    //1.璁剧疆璇锋眰鍙傛暟
+    NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
+    [parameters setValue:@"1" forKey:@"isChecked"];
+    [parameters setValue:[alarmIds yy_modelToJSONObject] forKey:@"alarmIds"];
+   
+    parameters = [self GetSignRequestDictionary:parameters];
+    
+    [self requestHttpsPost:API_POST_EZ_ReadAlarmMes parameters:parameters completion:^(ResponseData *responseData) {
+        if (completion) {
+            completion (responseData);
+        }
+    }];
+}
+
+/**
+ *  @since 娌充笢闂ㄩ攣缁堢鎺堟潈鎺ュ彛
+ *  @param password   闂ㄩ攣瀵嗙爜
+ *  @param deviceId   璁惧id
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘坊鍔犳垚鍔�
+ *
+ */
+- (void)authLockByHDL:(NSString *)password
+               deviceId:(NSString *)deviceId
+           completion:(void (^)(ResponseData *responseData))completion{
+    //2.璁剧疆璇锋眰鍙傛暟
+    NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
+    [parameters setValue:deviceId forKey:@"deviceId"];
+    [parameters setValue:[NSString stringWithFormat:@"%@",[GlobalKit shareKit].hdlAppKey] forKey:@"appKey"];
+    [parameters setValue:password forKey:@"password"];
+    [parameters setValue:[GlobalKit shareKit].hdlHomeId forKey:@"homeId"];
+    
+    parameters = [self GetSignRequestDictionary:parameters];
+    
+    NSLog(@"缁堢鎺堟潈鍙傛暟锛�%@",parameters);
+    
+    [self requestHttpsPost:API_POST_EZ_LockAuth parameters:parameters completion:^(ResponseData *responseData) {
+        if (completion) {
+            completion (responseData);
+        }
+    }];
+    
+}
+
+/**
+ *  @since 娌充笢杩滅▼寮�閿佹帴鍙�
+ *  @param streamToken 璁惧搴忓垪鍙�
+ *  @param deviceId   璁惧id
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘坊鍔犳垚鍔�
+ *
+ */
+- (void)remoteOpenByHDL:(NSString *)streamToken
+               deviceId:(NSString *)deviceId
+             completion:(void (^)(ResponseData *responseData))completion{
+    //2.璁剧疆璇锋眰鍙傛暟
+    NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
+    [parameters setValue:deviceId forKey:@"deviceId"];
+    [parameters setValue:[NSString stringWithFormat:@"%@",[GlobalKit shareKit].hdlAppKey] forKey:@"appKey"];
+    [parameters setValue:streamToken forKey:@"streamToken"];
+    [parameters setValue:[GlobalKit shareKit].hdlHomeId forKey:@"homeId"];
+    
+    parameters = [self GetSignRequestDictionary:parameters];
+    
+    NSLog(@"寮�闂ㄥ弬鏁帮細%@",parameters);
+    
+    [self requestHttpsPost:API_POST_EZ_RemoteOpen parameters:parameters completion:^(ResponseData *responseData) {
+        if (completion) {
+            completion (responseData);
+        }
+    }];
+    
+}
+
+/**
+ *  @since 娌充笢鑾峰彇涓存椂瀵嗙爜鍒楄〃鎺ュ彛
+ *  @param deviceId   璁惧id
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘垚鍔�
+ *
+ */
+- (void)getTempListByHDL:(NSString *)deviceId
+              completion:(void (^)(ResponseData *responseData))completion{
+    //璁剧疆璇锋眰鍙傛暟
+    NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
+    [parameters setValue:deviceId forKey:@"deviceId"];
+    [parameters setValue:[NSString stringWithFormat:@"%@",[GlobalKit shareKit].hdlAppKey] forKey:@"appKey"];
+    [parameters setValue:[GlobalKit shareKit].hdlHomeId forKey:@"homeId"];
+    
+    parameters = [self GetSignRequestDictionary:parameters];
+    
+    NSLog(@"鑾峰彇涓存椂瀵嗙爜鍒楄〃鍙傛暟锛�%@",parameters);
+    
+    [self requestHttpsPost:API_POST_EZ_TempList parameters:parameters completion:^(ResponseData *responseData) {
+        if (completion) {
+            completion (responseData);
+        }
+    }];
+}
+
+/**
+ *  @since 娌充笢娣诲姞涓存椂瀵嗙爜鎺ュ彛
+ *  @param tempInfo   涓存椂瀵嗙爜淇℃伅
+ *  @param deviceId   璁惧id
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘垚鍔�
+ *
+ */
+- (void)addTempByHDL:(HDLEZTemInfoModel *)tempInfo
+            deviceId:(NSString *)deviceId
+          completion:(void (^)(ResponseData *responseData))completion{
+    //璁剧疆璇锋眰鍙傛暟
+    NSMutableDictionary *parameters = [NSMutableDictionary dictionaryWithDictionary:[tempInfo yy_modelToJSONObject]];
+    [parameters setValue:deviceId forKey:@"deviceId"];
+    [parameters setValue:[NSString stringWithFormat:@"%@",[GlobalKit shareKit].hdlAppKey] forKey:@"appKey"];
+    [parameters setValue:[GlobalKit shareKit].hdlHomeId forKey:@"homeId"];
+    
+    parameters = [self GetSignRequestDictionary:parameters];
+    
+    NSLog(@"娣诲姞涓存椂瀵嗙爜鍙傛暟1锛�%@",parameters);
+    
+    [self requestHttpsPost:API_POST_EZ_AddTemp parameters:parameters completion:^(ResponseData *responseData) {
+        if (completion) {
+            completion (responseData);
+        }
+    }];
+}
+
+/**
+ *  @since 娌充笢鍒犻櫎涓存椂瀵嗙爜鎺ュ彛
+ *  @param extVisitorId   涓存椂瀵嗙爜绱㈠紩
+ *  @param deviceId   璁惧id
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘垚鍔�
+ *
+ */
+- (void)deleteTempByHDL:(NSString *)extVisitorId
+            deviceId:(NSString *)deviceId
+             completion:(void (^)(ResponseData *responseData))completion{
+    //璁剧疆璇锋眰鍙傛暟
+    NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
+    [parameters setValue:extVisitorId forKey:@"extVisitorId"];
+    [parameters setValue:deviceId forKey:@"deviceId"];
+    [parameters setValue:[NSString stringWithFormat:@"%@",[GlobalKit shareKit].hdlAppKey] forKey:@"appKey"];
+    [parameters setValue:[GlobalKit shareKit].hdlHomeId forKey:@"homeId"];
+    
+    parameters = [self GetSignRequestDictionary:parameters];
+    
+    NSLog(@"鍒犻櫎涓存椂瀵嗙爜鍙傛暟锛�%@",parameters);
+    
+    [self requestHttpsPost:API_POST_EZ_DeleteTemp parameters:parameters completion:^(ResponseData *responseData) {
+        if (completion) {
+            completion (responseData);
+        }
+    }];
+
+}
+
+/**
+ *  @since 娌充笢鑾峰彇璁惧娑堟伅
+ *  @param deviceId   璁惧id
+ *  @param pageSize   椤甸潰澶у皬
+ *  @param pageNo   褰撳墠椤�
+ *  @param completion   鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘垚鍔�
+ *
+ */
+- (void)getDeviceMessageByHDL:(NSString *)deviceId
+                     pageSize:(NSInteger)pageSize
+                       pageNo:(NSInteger)pageNo
+                   completion:(void (^)(ResponseData *responseData))completion{
+    //璁剧疆璇锋眰鍙傛暟
+    NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
+    [parameters setValue:deviceId forKey:@"deviceId"];
+    [parameters setValue:[NSString stringWithFormat:@"%ld",(long)pageSize] forKey:@"pageSize"];
+    [parameters setValue:[NSString stringWithFormat:@"%ld",(long)pageNo] forKey:@"pageNo"];
+    [parameters setValue:[NSString stringWithFormat:@"%@",[GlobalKit shareKit].hdlAppKey] forKey:@"appKey"];
+    [parameters setValue:[GlobalKit shareKit].hdlHomeId forKey:@"homeId"];
+    
+    parameters = [self GetSignRequestDictionary:parameters];
+    
+    NSLog(@"鑾峰彇璁惧娑堟伅鍙傛暟锛�%@",parameters);
+    
+    [self requestHttpsPost:API_POST_EZ_DeviceMessage parameters:parameters completion:^(ResponseData *responseData) {
+        if (completion) {
+            completion (responseData);
+        }
+    }];
+}
 
 /// 鍒锋柊token
 /// @param block 缁撴灉
@@ -137,7 +421,7 @@
         if (block) {
             if (responseData) {
                 if(responseData.success){
-                    [EZSDK setHDlAccessToken:
+                    [[EZSDK sharedInstance] setHDlAccessToken:
                      [NSString stringWithFormat:@"%@%@",responseData.data[@"headerPrefix"], responseData.data[@"accessToken"]]
                                 refreshToken:responseData.data[@"refreshToken"]];
 
@@ -175,11 +459,14 @@
                             completion(responseData);
                             return;
                         }];
+                    }else{
+                        completion(responseData);
                     }
                 }];
+            }else{
+                completion(responseData);
             }
             
-            completion(responseData);
         }
     }];
 }
@@ -218,7 +505,7 @@
             
             if(responseObject != NULL){
                 //4.瑙f瀽鎷垮埌鐨勫搷搴旀暟鎹�
-                NSLog(@"%@",[[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding]);
+                NSLog(@"鏁版嵁杩斿洖%@",[[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding]);
                 NSDictionary * outDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil];
                 responseData = [[ResponseData alloc] initWithDictionary:outDic];
             }
@@ -251,7 +538,8 @@
     NSString *newString = @"";
     for(NSString *key in sortKeyArray){
         if(params[key] != NULL){
-            NSString *valueStr = params[key];
+            //Key瀵瑰簲鐨剉alue寮鸿浆涓篘SString
+            NSString *valueStr = [NSString stringWithFormat:@"%@",[params objectForKey:key]];
             //妫�娴嬪綋鍓嶅弬鏁版槸鍚﹂渶瑕佸弬涓庢牎楠�
             if([self IfValueNeedSign:valueStr]){
                 newString = [newString stringByAppendingString:[NSString stringWithFormat:@"%@=%@&", key,valueStr]];
@@ -311,7 +599,10 @@
     if (( [self stringIsNullOrEmpty:valueStr])//鍒ょ┖瀛楃
         || ([[valueStr substringToIndex:1] isEqual:@"{"])//鍒ゆ柇鏄惁涓哄璞�
         || ([[valueStr substringToIndex:1] isEqual:@"["])//鍒ゆ柇鏄惁涓烘暟缁�
+        || ([[valueStr substringToIndex:1] isEqual:@"("])//鍒ゆ柇鏄惁涓烘暟缁�
         ) {
+        
+//        HDLSDKLog(@"涓嶆牎楠�: %@",valueStr);
         return false;
     }
     return true;
@@ -319,3 +610,9 @@
 
 
 @end
+
+
+#pragma mark - 淇敼璁板綍
+//2021-07-07
+//V1.1.3
+//1.鏇挎崲涓烘柊鎺ュ彛锛屾牴鎹甴omeId娉ㄥ唽钀ょ煶瀛愯处鍙锋柟妗堛��

--
Gitblit v1.8.0