1205 lines
55 KiB
Objective-C
1205 lines
55 KiB
Objective-C
//
|
|
// NetManager.m
|
|
// IfihYooeeDemo
|
|
//
|
|
// Created by imac on 16/5/27.
|
|
// Copyright © 2016年 xiang. All rights reserved.
|
|
//
|
|
|
|
#import "NetManager.h"
|
|
#import "Constants.h"
|
|
#import "Utils.h"
|
|
#import "LoginResult.h"
|
|
#import "AccountResult.h"
|
|
#import "ModifyLoginPasswordResult.h"
|
|
#import "RegisterResult.h"
|
|
#import "CheckNewMessageResult.h"
|
|
#import "GetContactMessageResult.h"
|
|
#import "CheckAlarmMessageResult.h"
|
|
#import "GetAlarmRecordResult.h"
|
|
#import "Alarm.h"
|
|
#import "AppDelegate.h"
|
|
|
|
#import "AFNetworking.h"
|
|
|
|
|
|
static NSString *server1 = @"http://api1.cloudlinks.cn/";
|
|
static NSString *server2 = @"http://api2.cloudlinks.cn/";
|
|
static NSString *server3 = @"http://api3.cloud-links.net/";
|
|
static NSString *server4 = @"http://api4.cloud-links.net/";
|
|
//static NSString *server = @"http://www.gwelltimes.com/";
|
|
static NSString *currentServer;
|
|
static NSMutableArray *servers;
|
|
static NSInteger reconnectCount;
|
|
|
|
#define ContentType @"text/plain"
|
|
|
|
@implementation NetManager
|
|
- (id)init
|
|
{
|
|
if (self = [super init]) {
|
|
|
|
}
|
|
return self;
|
|
}
|
|
|
|
+(NetManager*)sharedManager{
|
|
static NetManager *manager = nil;
|
|
static dispatch_once_t onceToken;
|
|
dispatch_once(&onceToken, ^{
|
|
manager = [[NetManager alloc] init];
|
|
reconnectCount = 0;
|
|
|
|
servers = [[NSMutableArray alloc] initWithCapacity:0];
|
|
[manager randomServer];
|
|
});
|
|
return manager;
|
|
}
|
|
|
|
-(void)randomServer{
|
|
[servers removeAllObjects];
|
|
NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0];
|
|
|
|
if([language hasPrefix:@"zh"]){
|
|
int random = arc4random()%2;
|
|
if(random==0){
|
|
[servers addObject:[NSString stringWithFormat:@"%@",server1]];
|
|
[servers addObject:[NSString stringWithFormat:@"%@",server2]];
|
|
}else{
|
|
[servers addObject:[NSString stringWithFormat:@"%@",server2]];
|
|
[servers addObject:[NSString stringWithFormat:@"%@",server1]];
|
|
}
|
|
|
|
random = arc4random()%2;
|
|
if(random==0){
|
|
[servers addObject:[NSString stringWithFormat:@"%@",server3]];
|
|
[servers addObject:[NSString stringWithFormat:@"%@",server4]];
|
|
}else{
|
|
[servers addObject:[NSString stringWithFormat:@"%@",server4]];
|
|
[servers addObject:[NSString stringWithFormat:@"%@",server3]];
|
|
}
|
|
}else{
|
|
int random = arc4random()%2;
|
|
if(random==0){
|
|
[servers addObject:[NSString stringWithFormat:@"%@",server3]];
|
|
[servers addObject:[NSString stringWithFormat:@"%@",server4]];
|
|
}else{
|
|
[servers addObject:[NSString stringWithFormat:@"%@",server4]];
|
|
[servers addObject:[NSString stringWithFormat:@"%@",server3]];
|
|
}
|
|
|
|
random = arc4random()%2;
|
|
if(random==0){
|
|
[servers addObject:[NSString stringWithFormat:@"%@",server1]];
|
|
[servers addObject:[NSString stringWithFormat:@"%@",server2]];
|
|
}else{
|
|
[servers addObject:[NSString stringWithFormat:@"%@",server2]];
|
|
[servers addObject:[NSString stringWithFormat:@"%@",server1]];
|
|
}
|
|
}
|
|
|
|
currentServer = [[NSString alloc] initWithFormat:@"%@",[servers objectAtIndex:0]];
|
|
//currentServer = server;
|
|
|
|
|
|
}
|
|
|
|
-(void)resetServer{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
}
|
|
|
|
//-(void)onSessionIdError{
|
|
//
|
|
// [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_ON_SESSION_ERROR object:nil];
|
|
//
|
|
//}
|
|
|
|
-(void)requestHttp:(NSString*)baseUrlStr actionPath:(NSString*)path parameter:(NSMutableDictionary*)parameter
|
|
success:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, id JSON))success
|
|
|
|
|
|
|
|
failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON))failure{
|
|
|
|
NSLog(@"老版本AF方法已弃用");
|
|
|
|
|
|
|
|
}
|
|
|
|
//最新AF方法
|
|
-(void)requestHttp:(NSString *)url params:(NSMutableDictionary*)params
|
|
success:(void (^)(id response))success
|
|
failure:(void (^)(NSError *err))failure
|
|
{
|
|
NSURL* baseURL = [NSURL URLWithString:currentServer];
|
|
//获得请求管理者
|
|
AFHTTPRequestOperationManager*manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:baseURL];
|
|
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:ContentType];
|
|
manager.requestSerializer.HTTPShouldHandleCookies = YES;
|
|
//[manager.requestSerializer requestWithMethod:@"POST" URLString:url parameters:params error:nil];
|
|
|
|
NSString *url1=[NSString stringWithFormat:@"%@%@",currentServer,url];
|
|
[params setObject:@"2" forKey:@"AppOS"];
|
|
[params setObject:@" " forKey:@"VersionFlag"];
|
|
|
|
NSArray *array = [[AppDelegate getAppVersion] componentsSeparatedByString:@"."];
|
|
int a = [[array objectAtIndex:0] intValue]<<24;
|
|
int b = [[array objectAtIndex:1] intValue]<<16;
|
|
int c = [[array objectAtIndex:2] intValue]<<8;
|
|
int d = [[array objectAtIndex:3] intValue];
|
|
|
|
[params setObject:[NSString stringWithFormat:@"%i",a|b|c|d] forKey:@"AppVersion"];
|
|
[manager POST:url1 parameters:params
|
|
success:^(AFHTTPRequestOperation* operation, NSDictionary* responseObj) {
|
|
if (success) {
|
|
NSLog(@"%@",responseObj[@"error"]);
|
|
NSLog(@"responseObj%@",responseObj);
|
|
success(responseObj);
|
|
}
|
|
} failure:^(AFHTTPRequestOperation* operation, NSError* error) {
|
|
if (failure){
|
|
failure(error);
|
|
}
|
|
}];
|
|
|
|
}
|
|
|
|
|
|
//登陆 新
|
|
#pragma mark -爱鱼奇用户登陆摄像头新接口、
|
|
|
|
- (void)loginWithUserName:(NSString*)username password:(NSString*)password token:(NSString*)token
|
|
callBack:(void (^)(id result))callBack
|
|
{
|
|
|
|
|
|
if([username isEqual:@"0517400"]){
|
|
return;
|
|
}
|
|
|
|
NSMutableDictionary *parameter = [[NSMutableDictionary alloc] init];
|
|
|
|
if([username isValidateNumber]){
|
|
NSInteger iUsername = username.integerValue | 0x80000000;
|
|
[parameter setObject:[NSString stringWithFormat:@"%d",(int)iUsername]
|
|
forKey:@"User"];
|
|
}else{
|
|
[parameter setObject:username
|
|
forKey:@"User"];
|
|
}
|
|
[parameter setObject:[password getMd5_32Bit_String] forKey:@"Pwd"];
|
|
if(token){
|
|
[parameter setObject:token forKey:@"Token"];
|
|
}
|
|
|
|
|
|
[self requestHttp:@"Users/LoginCheck.ashx" params:parameter success:^(id response) {
|
|
|
|
// NSDictionary *result =[NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers error:nil];
|
|
|
|
NSMutableDictionary *result = [[NSMutableDictionary alloc] initWithDictionary:response];
|
|
//NSDictionary *result =response;
|
|
NSLog(@"successresponse%@",response);
|
|
|
|
NSLog(@"error:%@",[result valueForKey:@"error"]);
|
|
|
|
int error_code = ((NSString*)[result valueForKey:@"error_code"]).intValue;
|
|
if(error_code==1||error_code==29||error_code==999){
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self loginWithUserName:username password:password token:token callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
|
|
LoginResult *loginResult = [[LoginResult alloc] init];
|
|
loginResult.error_code = NET_RET_UNKNOWN_ERROR;
|
|
|
|
|
|
|
|
callBack(loginResult);
|
|
[loginResult release];
|
|
|
|
|
|
}
|
|
}else{
|
|
LoginResult *loginResult = [[LoginResult alloc] init];
|
|
loginResult.error_code = error_code;
|
|
if(loginResult.error_code == NET_RET_LOGIN_SUCCESS){
|
|
int iContactId = ((NSString*)[result valueForKey:@"UserID"]).intValue & 0x7fffffff;
|
|
|
|
loginResult.contactId = [NSString stringWithFormat:@"0%i",iContactId];
|
|
loginResult.rCode1 = [result valueForKey:@"P2PVerifyCode1"];
|
|
loginResult.rCode2 = [result valueForKey:@"P2PVerifyCode2"];
|
|
loginResult.phone = [result valueForKey:@"PhoneNO"];
|
|
loginResult.email = [result valueForKey:@"Email"];
|
|
loginResult.sessionId = [result valueForKey:@"SessionID"];
|
|
loginResult.countryCode = [result valueForKey:@"CountryCode"];
|
|
}
|
|
|
|
|
|
callBack(loginResult);
|
|
[result release];
|
|
[loginResult release];
|
|
[self resetServer];
|
|
}
|
|
|
|
|
|
|
|
} failure:^(NSError *err) {
|
|
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
NSLog(@"change server:%@",currentServer);
|
|
[self loginWithUserName:username password:password token:token callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
|
|
LoginResult *loginResult = [[LoginResult alloc] init];
|
|
loginResult.error_code = NET_RET_UNKNOWN_ERROR;
|
|
|
|
|
|
|
|
callBack(loginResult);
|
|
[loginResult release];
|
|
|
|
|
|
}
|
|
|
|
|
|
}];
|
|
|
|
[parameter release];
|
|
|
|
}
|
|
|
|
|
|
//获取账户信息 新AF
|
|
- (void)getAccountInfo:(NSString *)username sessionId:(NSString *)sessionId callBack:(void (^)(id))callBack{
|
|
if([username isEqual:@"0517400"]){
|
|
return;
|
|
}
|
|
|
|
NSInteger iUsername = username.integerValue | 0x80000000;
|
|
|
|
NSMutableDictionary *parameter = [[NSMutableDictionary alloc] init];
|
|
|
|
|
|
|
|
[parameter setObject:[NSString stringWithFormat:@"%d",(int)iUsername] forKey:@"UserID"];
|
|
[parameter setObject:sessionId forKey:@"SessionID"];
|
|
[parameter setObject:@"GetParam" forKey:@"Opion"];
|
|
|
|
[self requestHttp:@"Users/UpdateSafeSet.ashx" params:parameter success:^(id response) {
|
|
|
|
NSMutableDictionary *result = [[NSMutableDictionary alloc] initWithDictionary:response];
|
|
DLog(@"error_code:%@",[result valueForKey:@"error_code"]);
|
|
DLog(@"error:%@",[result valueForKey:@"error"]);
|
|
int error_code = ((NSString*)[result valueForKey:@"error_code"]).intValue;
|
|
|
|
|
|
if(error_code==NET_RET_SESSION_ERROR){
|
|
[self onSessionIdError];
|
|
}else if(error_code==1||error_code==29||error_code==999){
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self getAccountInfo:username sessionId:sessionId callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
AccountResult *accountResult = [[AccountResult alloc] init];
|
|
accountResult.error_code = NET_RET_UNKNOWN_ERROR;
|
|
|
|
callBack(accountResult);
|
|
[accountResult release];
|
|
|
|
|
|
}
|
|
}else{
|
|
AccountResult *accountResult = [[AccountResult alloc] init];
|
|
accountResult.error_code = ((NSString*)[result valueForKey:@"error_code"]).intValue;
|
|
if(accountResult.error_code == NET_RET_GET_ACCOUNT_SUCCESS){
|
|
accountResult.phone = [result valueForKey:@"PhoneNO"];
|
|
accountResult.email = [result valueForKey:@"Email"];
|
|
accountResult.countryCode = [result valueForKey:@"CountryCode"];
|
|
}
|
|
|
|
|
|
callBack(accountResult);
|
|
|
|
[accountResult release];
|
|
[self resetServer];
|
|
}
|
|
[result release];
|
|
|
|
|
|
|
|
} failure:^(NSError *err) {
|
|
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self getAccountInfo:username sessionId:sessionId callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
AccountResult *accountResult = [[AccountResult alloc] init];
|
|
accountResult.error_code = NET_RET_UNKNOWN_ERROR;
|
|
|
|
callBack(accountResult);
|
|
[accountResult release];
|
|
|
|
|
|
}
|
|
|
|
}];
|
|
|
|
}
|
|
|
|
|
|
-(void)setAccountInfo:(NSString *)username password:(NSString *)password phone:(NSString *)phone email:(NSString *)email countryCode:(NSString *)countryCode phoneCheckCode:(NSString *)phoneCheckCode flag:(NSString *)flag sessionId:(NSString *)sessionId callBack:(void (^)(id))callBack{
|
|
|
|
if([username isEqual:@"0517400"]){
|
|
return;
|
|
}
|
|
|
|
NSInteger iUsername = username.integerValue | 0x80000000;
|
|
|
|
NSMutableDictionary *parameter = [[NSMutableDictionary alloc] init];
|
|
|
|
|
|
|
|
[parameter setObject:[NSString stringWithFormat:@"%d",(int)iUsername] forKey:@"UserID"];
|
|
[parameter setObject:[password getMd5_32Bit_String] forKey:@"UserPwd"];
|
|
[parameter setObject:sessionId forKey:@"SessionID"];
|
|
[parameter setObject:email forKey:@"Email"];
|
|
[parameter setObject:phone forKey:@"PhoneNO"];
|
|
[parameter setObject:countryCode forKey:@"CountryCode"];
|
|
[parameter setObject:flag forKey:@"BindFlag"];
|
|
[parameter setObject:phoneCheckCode forKey:@"PhoneCheckCode"];
|
|
[parameter setObject:@"SetParam" forKey:@"Opion"];
|
|
[self requestHttp:currentServer actionPath:@"Users/UpdateSafeSet.ashx" parameter:parameter
|
|
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
|
|
|
|
NSMutableDictionary *result = [[NSMutableDictionary alloc] initWithDictionary:JSON];
|
|
DLog(@"error_code:%@",[result valueForKey:@"error_code"]);
|
|
DLog(@"error:%@",[result valueForKey:@"error"]);
|
|
|
|
|
|
|
|
int error_code = ((NSString*)[result valueForKey:@"error_code"]).intValue;
|
|
|
|
if(error_code==NET_RET_SESSION_ERROR){
|
|
[self onSessionIdError];
|
|
}else if(error_code==1||error_code==29||error_code==999){
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self setAccountInfo:username password:password phone:phone email:email countryCode:countryCode phoneCheckCode:phoneCheckCode flag:flag sessionId:sessionId callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
callBack(NET_RET_UNKNOWN_ERROR);
|
|
}
|
|
}else{
|
|
callBack(((NSString*)[result valueForKey:@"error_code"]).intValue);
|
|
[self resetServer];
|
|
}
|
|
|
|
[result release];
|
|
|
|
|
|
}
|
|
|
|
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self setAccountInfo:username password:password phone:phone email:email countryCode:countryCode phoneCheckCode:phoneCheckCode flag:flag sessionId:sessionId callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
callBack(NET_RET_UNKNOWN_ERROR);
|
|
|
|
}
|
|
|
|
}
|
|
];
|
|
[parameter release];
|
|
}
|
|
|
|
-(void)modifyLoginPasswordWithUserName:(NSString *)username sessionId:(NSString *)sessionId oldPwd:(NSString *)oldPwd newPwd:(NSString *)newPwd rePwd:(NSString *)rePwd callBack:(void (^)(id))callBack{
|
|
|
|
if([username isEqual:@"0517400"]){
|
|
return;
|
|
}
|
|
|
|
NSInteger iUsername = username.integerValue | 0x80000000;
|
|
|
|
NSMutableDictionary *parameter = [[NSMutableDictionary alloc] init];
|
|
|
|
|
|
|
|
[parameter setObject:[NSString stringWithFormat:@"%d",(int)iUsername] forKey:@"UserID"];
|
|
[parameter setObject:sessionId forKey:@"SessionID"];
|
|
[parameter setObject:[oldPwd getMd5_32Bit_String] forKey:@"OldPwd"];
|
|
[parameter setObject:[newPwd getMd5_32Bit_String] forKey:@"Pwd"];
|
|
[parameter setObject:[rePwd getMd5_32Bit_String] forKey:@"RePwd"];
|
|
|
|
[self requestHttp:currentServer actionPath:@"Users/ModifyPwd.ashx" parameter:parameter
|
|
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
|
|
|
|
NSMutableDictionary *result = [[NSMutableDictionary alloc] initWithDictionary:JSON];
|
|
DLog(@"error_code:%@",[result valueForKey:@"error_code"]);
|
|
DLog(@"error:%@",[result valueForKey:@"error"]);
|
|
|
|
int error_code = ((NSString*)[result valueForKey:@"error_code"]).intValue;
|
|
|
|
if(error_code==NET_RET_SESSION_ERROR){
|
|
[self onSessionIdError];
|
|
}else if(error_code==1||error_code==29||error_code==999){
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self modifyLoginPasswordWithUserName:username sessionId:sessionId oldPwd:oldPwd newPwd:newPwd rePwd:rePwd callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
callBack(NET_RET_UNKNOWN_ERROR);
|
|
|
|
}
|
|
}else{
|
|
ModifyLoginPasswordResult *modifyLoginPasswordResult = [[ModifyLoginPasswordResult alloc] init];
|
|
modifyLoginPasswordResult.error_code = ((NSString*)[result valueForKey:@"error_code"]).intValue;
|
|
modifyLoginPasswordResult.sessionId = [result valueForKey:@"SessionID"];
|
|
callBack(modifyLoginPasswordResult);
|
|
[modifyLoginPasswordResult release];
|
|
[self resetServer];
|
|
}
|
|
[result release];
|
|
}
|
|
|
|
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self modifyLoginPasswordWithUserName:username sessionId:sessionId oldPwd:oldPwd newPwd:newPwd rePwd:rePwd callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
callBack(NET_RET_UNKNOWN_ERROR);
|
|
|
|
}
|
|
|
|
}
|
|
];
|
|
[parameter release];
|
|
}
|
|
|
|
-(void)getPhoneCodeWithPhone:(NSString *)phone countryCode:(NSString *)countryCode callBack:(void (^)(id))callBack{
|
|
|
|
|
|
NSMutableDictionary *parameter = [[NSMutableDictionary alloc] init];
|
|
|
|
[parameter setObject:countryCode forKey:@"CountryCode"];
|
|
[parameter setObject:phone forKey:@"PhoneNo"];
|
|
|
|
|
|
[self requestHttp:currentServer actionPath:@"Users/PhoneCheckCode.ashx" parameter:parameter
|
|
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
|
|
|
|
NSMutableDictionary *result = [[NSMutableDictionary alloc] initWithDictionary:JSON];
|
|
DLog(@"error_code:%@",[result valueForKey:@"error_code"]);
|
|
DLog(@"error:%@",[result valueForKey:@"error"]);
|
|
|
|
|
|
int error_code = ((NSString*)[result valueForKey:@"error_code"]).intValue;
|
|
|
|
if(error_code==NET_RET_SESSION_ERROR){
|
|
[self onSessionIdError];
|
|
}else if(error_code==1||error_code==29||error_code==999){
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self getPhoneCodeWithPhone:phone countryCode:countryCode callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
callBack(NET_RET_UNKNOWN_ERROR);
|
|
|
|
}
|
|
}else{
|
|
callBack(((NSString*)[result valueForKey:@"error_code"]).intValue);
|
|
[self resetServer];
|
|
}
|
|
|
|
[result release];
|
|
|
|
|
|
}
|
|
|
|
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self getPhoneCodeWithPhone:phone countryCode:countryCode callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
callBack(NET_RET_UNKNOWN_ERROR);
|
|
|
|
}
|
|
|
|
}
|
|
];
|
|
[parameter release];
|
|
}
|
|
|
|
#pragma mark -摄像头邮箱注册
|
|
|
|
-(void)registerWithVersionFlag:(NSString *)versionFlag email:(NSString *)email countryCode:(NSString *)countryCode phone:(NSString *)phone password:(NSString *)password repassword:(NSString *)repassword phoneCode:(NSString *)phoneCode callBack:(void (^)(id))callBack{
|
|
|
|
|
|
NSMutableDictionary *parameter = [[NSMutableDictionary alloc] init];
|
|
[parameter setObject:@"1" forKey:@"VersionFlag"];
|
|
[parameter setObject:email forKey:@"Email"];
|
|
[parameter setObject:countryCode forKey:@"CountryCode"];
|
|
[parameter setObject:phone forKey:@"PhoneNo"];
|
|
[parameter setObject:[password getMd5_32Bit_String] forKey:@"Pwd"];
|
|
[parameter setObject:[repassword getMd5_32Bit_String] forKey:@"RePwd"];
|
|
[parameter setObject:phoneCode forKey:@"VerifyCode"];
|
|
[parameter setObject:@"1" forKey:@"IgnoreSafeWarning"];
|
|
|
|
//新AF方法
|
|
[self requestHttp:@"Users/RegisterCheck.ashx" params:parameter success:^(id response) {
|
|
NSMutableDictionary *result = [[NSMutableDictionary alloc] initWithDictionary:response];
|
|
DLog(@"error_code:%@",[result valueForKey:@"error_code"]);
|
|
DLog(@"error:%@",[result valueForKey:@"error"]);
|
|
|
|
int error_code = ((NSString*)[result valueForKey:@"error_code"]).intValue;
|
|
|
|
if(error_code==1||error_code==29||error_code==999){
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self registerWithVersionFlag:versionFlag email:email countryCode:countryCode phone:phone password:password repassword:repassword phoneCode:phoneCode callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
callBack(NET_RET_UNKNOWN_ERROR);
|
|
|
|
|
|
}
|
|
}else{
|
|
RegisterResult *registerResult = [[RegisterResult alloc] init];
|
|
registerResult.error_code = ((NSString*)[result valueForKey:@"error_code"]).intValue;
|
|
int iContactId = ((NSString*)[result valueForKey:@"UserID"]).integerValue & 0x7fffffff;
|
|
registerResult.contactId = [NSString stringWithFormat:@"0%i",iContactId];
|
|
callBack(registerResult);
|
|
|
|
|
|
[self resetServer];
|
|
}
|
|
|
|
|
|
|
|
} failure:^(NSError *err) {
|
|
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self registerWithVersionFlag:versionFlag email:email countryCode:countryCode phone:phone password:password repassword:repassword phoneCode:phoneCode callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
callBack(NET_RET_UNKNOWN_ERROR);
|
|
|
|
}
|
|
|
|
|
|
}];
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
-(void)verifyPhoneCodeWithCode:(NSString *)phoneCode phone:(NSString *)phone countryCode:(NSString *)countryCode callBack:(void (^)(id))callBack{
|
|
NSMutableDictionary *parameter = [[NSMutableDictionary alloc] init];
|
|
|
|
[parameter setObject:countryCode forKey:@"CountryCode"];
|
|
[parameter setObject:phone forKey:@"PhoneNo"];
|
|
[parameter setObject:phoneCode forKey:@"VerifyCode"];
|
|
|
|
[self requestHttp:currentServer actionPath:@"Users/PhoneVerifyCodeCheck.ashx" parameter:parameter
|
|
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
|
|
|
|
NSMutableDictionary *result = [[NSMutableDictionary alloc] initWithDictionary:JSON];
|
|
DLog(@"error_code:%@",[result valueForKey:@"error_code"]);
|
|
DLog(@"error:%@",[result valueForKey:@"error"]);
|
|
|
|
|
|
|
|
int error_code = ((NSString*)[result valueForKey:@"error_code"]).intValue;
|
|
if(((NSString*)[result valueForKey:@"error_code"]).intValue==NET_RET_SESSION_ERROR){
|
|
[self onSessionIdError];
|
|
}else if(error_code==1||error_code==29||error_code==999){
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self verifyPhoneCodeWithCode:phoneCode phone:phone countryCode:countryCode callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
callBack(NET_RET_UNKNOWN_ERROR);
|
|
|
|
}
|
|
}else{
|
|
callBack(((NSString*)[result valueForKey:@"error_code"]).intValue);
|
|
[self resetServer];
|
|
}
|
|
|
|
[result release];
|
|
|
|
|
|
}
|
|
|
|
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self verifyPhoneCodeWithCode:phoneCode phone:phone countryCode:countryCode callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
callBack(NET_RET_UNKNOWN_ERROR);
|
|
|
|
}
|
|
|
|
}
|
|
];
|
|
[parameter release];
|
|
}
|
|
|
|
-(void)checkNewMessage:(NSString *)username sessionId:(NSString *)sessionId callBack:(void (^)(id JSON))callBack{
|
|
if([username isEqual:@"0517400"]){
|
|
return;
|
|
}
|
|
|
|
NSMutableDictionary *parameter = [[NSMutableDictionary alloc] init];
|
|
|
|
NSInteger iUsername = username.integerValue | 0x80000000;
|
|
|
|
|
|
|
|
|
|
|
|
[parameter setObject:[NSString stringWithFormat:@"%d",(int)iUsername] forKey:@"UserID"];
|
|
[parameter setObject:sessionId forKey:@"SessionID"];
|
|
|
|
|
|
[self requestHttp:currentServer actionPath:@"MSG/IsAnyMsgEx.ashx" parameter:parameter
|
|
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
|
|
|
|
NSMutableDictionary *result = [[NSMutableDictionary alloc] initWithDictionary:JSON];
|
|
DLog(@"error_code:%@",[result valueForKey:@"error_code"]);
|
|
DLog(@"error:%@",[result valueForKey:@"error"]);
|
|
|
|
int error_code = ((NSString*)[result valueForKey:@"error_code"]).intValue;
|
|
if(((NSString*)[result valueForKey:@"error_code"]).intValue==NET_RET_SESSION_ERROR){
|
|
[self onSessionIdError];
|
|
}else if(error_code==1||error_code==29||error_code==999){
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self checkNewMessage:username sessionId:sessionId callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
CheckNewMessageResult *checkNewMessageResult = [[CheckNewMessageResult alloc] init];
|
|
checkNewMessageResult.error_code = NET_RET_UNKNOWN_ERROR;
|
|
callBack(checkNewMessageResult);
|
|
[checkNewMessageResult release];
|
|
|
|
}
|
|
}else{
|
|
NSString *trl = [result valueForKey:@"TRL"];
|
|
//NSString *srl = [result valueForKey:@"SRL"];
|
|
DLog(@"%@",trl);
|
|
|
|
BOOL isNewContactMessage = NO;
|
|
NSArray *array = [trl componentsSeparatedByString:@";"];
|
|
for(NSString *str in array){
|
|
NSArray *temp = [str componentsSeparatedByString:@":"];
|
|
if([[temp objectAtIndex:0] integerValue]==2&&[[temp objectAtIndex:1] integerValue]>0){
|
|
isNewContactMessage = YES;
|
|
break;
|
|
}
|
|
}
|
|
CheckNewMessageResult *checkNewMessageResult = [[CheckNewMessageResult alloc] init];
|
|
checkNewMessageResult.error_code = ((NSString*)[result valueForKey:@"error_code"]).intValue;
|
|
checkNewMessageResult.isNewContactMessage = isNewContactMessage;
|
|
callBack(checkNewMessageResult);
|
|
[checkNewMessageResult release];
|
|
[self resetServer];
|
|
}
|
|
|
|
[result release];
|
|
|
|
|
|
}
|
|
|
|
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self checkNewMessage:username sessionId:sessionId callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
CheckNewMessageResult *checkNewMessageResult = [[CheckNewMessageResult alloc] init];
|
|
checkNewMessageResult.error_code = NET_RET_UNKNOWN_ERROR;
|
|
callBack(checkNewMessageResult);
|
|
[checkNewMessageResult release];
|
|
|
|
}
|
|
|
|
}
|
|
];
|
|
[parameter release];
|
|
|
|
}
|
|
|
|
-(void)getContactMessageWithUsername:(NSString *)username sessionId:(NSString *)sessionId callBack:(void (^)(id))callBack{
|
|
|
|
if([username isEqual:@"0517400"]){
|
|
return;
|
|
}
|
|
|
|
NSMutableDictionary *parameter = [[NSMutableDictionary alloc] init];
|
|
|
|
NSInteger iUsername = username.integerValue | 0x80000000;
|
|
|
|
[parameter setObject:[NSString stringWithFormat:@"%d",(int)iUsername] forKey:@"UserID"];
|
|
[parameter setObject:sessionId forKey:@"SessionID"];
|
|
[parameter setObject:@"2" forKey:@"MsgType"];
|
|
|
|
[self requestHttp:currentServer actionPath:@"MSG/GetMsgEx.ashx" parameter:parameter
|
|
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
|
|
|
|
NSMutableDictionary *result = [[NSMutableDictionary alloc] initWithDictionary:JSON];
|
|
DLog(@"error_code:%@",[result valueForKey:@"error_code"]);
|
|
DLog(@"error:%@",[result valueForKey:@"error"]);
|
|
|
|
|
|
|
|
int error_code = ((NSString*)[result valueForKey:@"error_code"]).intValue;
|
|
if(((NSString*)[result valueForKey:@"error_code"]).intValue==NET_RET_SESSION_ERROR){
|
|
[self onSessionIdError];
|
|
}else if(error_code==1||error_code==29||error_code==999){
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self getContactMessageWithUsername:username sessionId:sessionId callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
callBack(NET_RET_UNKNOWN_ERROR);
|
|
}
|
|
}else{
|
|
NSString *rl = [result valueForKey:@"RL"];
|
|
NSString *surplus = [result valueForKey:@"Surplus"];
|
|
|
|
NSMutableArray *datas = [NSMutableArray arrayWithCapacity:0];
|
|
|
|
NSArray *array = [rl componentsSeparatedByString:@";"];
|
|
for(NSString *str in array){
|
|
if([str isEqualToString:@""]){
|
|
continue;
|
|
}
|
|
NSArray *temp = [str componentsSeparatedByString:@"&"];
|
|
GetContactMessageResult *getContactMessageResult = [[GetContactMessageResult alloc] init];
|
|
getContactMessageResult.flag = [[temp objectAtIndex:0] integerValue];
|
|
getContactMessageResult.contactId = [NSString stringWithFormat:@"0%ld",[[temp objectAtIndex:1] integerValue]&0x7fffffff];
|
|
getContactMessageResult.message = [NSString stringWithFormat:@"%@",[temp objectAtIndex:3]];
|
|
|
|
NSString *timeStr = [temp objectAtIndex:4];
|
|
long timeInterval = [[Utils dateFromString2:timeStr] timeIntervalSince1970];
|
|
getContactMessageResult.time = [NSString stringWithFormat:@"%ld",timeInterval];
|
|
[datas addObject:getContactMessageResult];
|
|
[getContactMessageResult release];
|
|
}
|
|
|
|
DLog(@"%@",rl);
|
|
callBack(datas);
|
|
|
|
[self resetServer];
|
|
}
|
|
|
|
[result release];
|
|
|
|
|
|
}
|
|
|
|
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self getContactMessageWithUsername:username sessionId:sessionId callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
callBack(NET_RET_UNKNOWN_ERROR);
|
|
|
|
}
|
|
|
|
}
|
|
];
|
|
[parameter release];
|
|
}
|
|
|
|
-(void)checkAlarmMessage:(NSString *)username sessionId:(NSString *)sessionId callBack:(void (^)(id))callBack{
|
|
|
|
if([username isEqual:@"0517400"]){
|
|
return;
|
|
}
|
|
|
|
NSMutableDictionary *parameter = [[NSMutableDictionary alloc] init];
|
|
|
|
NSInteger iUsername = username.integerValue | 0x80000000;
|
|
|
|
|
|
|
|
|
|
|
|
[parameter setObject:[NSString stringWithFormat:@"%d",(int)iUsername] forKey:@"UserID"];
|
|
[parameter setObject:sessionId forKey:@"SessionID"];
|
|
|
|
|
|
[self requestHttp:currentServer actionPath:@"MSG/IsAnyMsgEx.ashx" parameter:parameter
|
|
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
|
|
|
|
NSMutableDictionary *result = [[NSMutableDictionary alloc] initWithDictionary:JSON];
|
|
DLog(@"error_code:%@",[result valueForKey:@"error_code"]);
|
|
DLog(@"error:%@",[result valueForKey:@"error"]);
|
|
|
|
|
|
|
|
int error_code = ((NSString*)[result valueForKey:@"error_code"]).intValue;
|
|
if(((NSString*)[result valueForKey:@"error_code"]).intValue==NET_RET_SESSION_ERROR){
|
|
[self onSessionIdError];
|
|
}else if(error_code==1||error_code==29||error_code==999){
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self checkNewMessage:username sessionId:sessionId callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
CheckAlarmMessageResult *checkAlarmMessageResult = [[CheckAlarmMessageResult alloc] init];
|
|
checkAlarmMessageResult.error_code = NET_RET_UNKNOWN_ERROR;
|
|
callBack(checkAlarmMessageResult);
|
|
[checkAlarmMessageResult release];
|
|
}
|
|
}else{
|
|
NSString *trl = [result valueForKey:@"TRL"];
|
|
NSString *srl = [result valueForKey:@"SRL"];
|
|
DLog(@"%@",trl);
|
|
DLog(@"%@",srl);
|
|
|
|
BOOL isNewAlarmMessage = NO;
|
|
NSArray *array = [trl componentsSeparatedByString:@";"];
|
|
for(NSString *str in array){
|
|
NSArray *temp = [str componentsSeparatedByString:@":"];
|
|
if([[temp objectAtIndex:0] integerValue]==3&&[[temp objectAtIndex:1] integerValue]>0){
|
|
isNewAlarmMessage = YES;
|
|
break;
|
|
}
|
|
}
|
|
CheckAlarmMessageResult *checkAlarmMessageResult = [[CheckAlarmMessageResult alloc] init];
|
|
checkAlarmMessageResult.error_code = ((NSString*)[result valueForKey:@"error_code"]).intValue;
|
|
checkAlarmMessageResult.isNewAlarmMessage = isNewAlarmMessage;
|
|
callBack(checkAlarmMessageResult);
|
|
[checkAlarmMessageResult release];
|
|
[self resetServer];
|
|
}
|
|
|
|
[result release];
|
|
|
|
|
|
}
|
|
|
|
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self checkAlarmMessage:username sessionId:sessionId callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
CheckAlarmMessageResult *checkAlarmMessageResult = [[CheckAlarmMessageResult alloc] init];
|
|
checkAlarmMessageResult.error_code = NET_RET_UNKNOWN_ERROR;
|
|
callBack(checkAlarmMessageResult);
|
|
[checkAlarmMessageResult release];
|
|
|
|
}
|
|
|
|
}
|
|
];
|
|
[parameter release];
|
|
}
|
|
|
|
-(void)getAlarmMessageWithUsername:(NSString *)username sessionId:(NSString *)sessionId callBack:(void (^)(id))callBack{
|
|
|
|
if([username isEqual:@"0517400"]){
|
|
return;
|
|
}
|
|
|
|
NSMutableDictionary *parameter = [[NSMutableDictionary alloc] init];
|
|
|
|
NSInteger iUsername = username.integerValue | 0x80000000;
|
|
|
|
[parameter setObject:[NSString stringWithFormat:@"%d",(int)iUsername] forKey:@"UserID"];
|
|
[parameter setObject:sessionId forKey:@"SessionID"];
|
|
[parameter setObject:@"2" forKey:@"MsgType"];
|
|
|
|
[self requestHttp:currentServer actionPath:@"MSG/GetMsgEx.ashx" parameter:parameter
|
|
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
|
|
|
|
NSMutableDictionary *result = [[NSMutableDictionary alloc] initWithDictionary:JSON];
|
|
DLog(@"error_code:%@",[result valueForKey:@"error_code"]);
|
|
DLog(@"error:%@",[result valueForKey:@"error"]);
|
|
|
|
|
|
|
|
int error_code = ((NSString*)[result valueForKey:@"error_code"]).intValue;
|
|
if(((NSString*)[result valueForKey:@"error_code"]).intValue==NET_RET_SESSION_ERROR){
|
|
[self onSessionIdError];
|
|
}else if(error_code==1||error_code==29||error_code==999){
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self getContactMessageWithUsername:username sessionId:sessionId callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
callBack(NET_RET_UNKNOWN_ERROR);
|
|
}
|
|
}else{
|
|
NSString *rl = [result valueForKey:@"RL"];
|
|
NSString *surplus = [result valueForKey:@"Surplus"];
|
|
|
|
NSMutableArray *datas = [NSMutableArray arrayWithCapacity:0];
|
|
|
|
NSArray *array = [rl componentsSeparatedByString:@";"];
|
|
for(NSString *str in array){
|
|
if([str isEqualToString:@""]){
|
|
continue;
|
|
}
|
|
NSArray *temp = [str componentsSeparatedByString:@"&"];
|
|
GetContactMessageResult *getContactMessageResult = [[GetContactMessageResult alloc] init];
|
|
getContactMessageResult.flag = [[temp objectAtIndex:0] integerValue];
|
|
getContactMessageResult.contactId = [NSString stringWithFormat:@"0%ld",[[temp objectAtIndex:1] integerValue]&0x7fffffff];
|
|
getContactMessageResult.message = [NSString stringWithFormat:@"%@",[temp objectAtIndex:3]];
|
|
|
|
NSString *timeStr = [temp objectAtIndex:4];
|
|
long timeInterval = [[Utils dateFromString2:timeStr] timeIntervalSince1970];
|
|
getContactMessageResult.time = [NSString stringWithFormat:@"%ld",timeInterval];
|
|
[datas addObject:getContactMessageResult];
|
|
[getContactMessageResult release];
|
|
}
|
|
|
|
DLog(@"%@",rl);
|
|
callBack(datas);
|
|
|
|
[self resetServer];
|
|
}
|
|
|
|
[result release];
|
|
|
|
|
|
}
|
|
|
|
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self getAlarmMessageWithUsername:username sessionId:sessionId callBack:callBack];
|
|
}else{
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
callBack(NET_RET_UNKNOWN_ERROR);
|
|
|
|
}
|
|
|
|
}
|
|
];
|
|
[parameter release];
|
|
}
|
|
|
|
#pragma mark - 获取报警记录
|
|
- (void) getAlarmRecordWithUsername:(NSString *)username sessionId:(NSString *)sessionId option:(NSString*)option msgIndex:(NSString *)msgIndex senderList:(NSString *)senderList checkLevelType:(NSString *)checkLevelType vKey:(NSString *)vKey callBack:(void (^)(id JSON))callBack{
|
|
if([username isEqual:@"0517400"]){
|
|
return;
|
|
}
|
|
|
|
NSMutableDictionary *parameter = [[NSMutableDictionary alloc] init];
|
|
|
|
NSInteger iUsername = username.integerValue | 0x80000000;
|
|
[parameter setObject:[NSString stringWithFormat:@"%d",(int)iUsername] forKey:@"UserID"];
|
|
[parameter setObject:sessionId forKey:@"SessionID"];
|
|
if (msgIndex) {
|
|
[parameter setObject:msgIndex forKey:@"MsgIndex"];
|
|
}
|
|
[parameter setObject:@"20" forKey:@"PageSize"];
|
|
[parameter setObject:option forKey:@"Option"];
|
|
|
|
[parameter setObject:senderList forKey:@"SenderList"];
|
|
[parameter setObject:checkLevelType forKey:@"CheckLevelType"];
|
|
|
|
// password encrypt 获取警报记录
|
|
// NSString *encryptPwd = [libPwdEncrypt passwordEncryptWithPassword:vKey];
|
|
// [parameter setObject:encryptPwd forKey:@"VKey"];
|
|
|
|
|
|
[self requestHttp:currentServer actionPath:@"Alarm/AlarmRecordEx.ashx" parameter:parameter
|
|
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
|
|
|
|
NSMutableDictionary *result = [[NSMutableDictionary alloc] initWithDictionary:JSON];
|
|
DLog(@"error_code:%@",[result valueForKey:@"error_code"]);
|
|
DLog(@"error:%@",[result valueForKey:@"error"]);
|
|
|
|
int error_code = ((NSString*)[result valueForKey:@"error_code"]).intValue;
|
|
if(error_code==NET_RET_SESSION_ERROR){
|
|
[self onSessionIdError];
|
|
}else if(error_code==1||error_code==29||error_code==999){
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self getAlarmRecordWithUsername:username sessionId:sessionId option:option msgIndex:msgIndex senderList:senderList checkLevelType:checkLevelType vKey:vKey callBack:callBack];
|
|
}else{
|
|
GetAlarmRecordResult *alarmresult = [[GetAlarmRecordResult alloc]init];
|
|
alarmresult.error_code = NET_RET_UNKNOWN_ERROR;
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
callBack(alarmresult);
|
|
[alarmresult release];
|
|
}
|
|
}else{
|
|
GetAlarmRecordResult *alarmresult = [[GetAlarmRecordResult alloc] init];
|
|
alarmresult.error_code = error_code;
|
|
NSString *RL = [result objectForKey:@"RL"];
|
|
|
|
NSMutableArray *alarmRecord = [NSMutableArray arrayWithCapacity:0];
|
|
|
|
NSArray *array = [RL componentsSeparatedByString:@";"];
|
|
for(NSString *record in array){
|
|
if([record isEqualToString:@""]){
|
|
continue;
|
|
}
|
|
|
|
NSArray *detailArray = [record componentsSeparatedByString:@"&"];
|
|
Alarm * alarm = [[Alarm alloc] init];
|
|
for (int i = 0; i < detailArray.count; i++) {
|
|
switch (i) {
|
|
case 0:
|
|
{
|
|
alarm.msgIndex = detailArray[i];
|
|
}
|
|
break;
|
|
case 1:
|
|
{
|
|
alarm.deviceId = detailArray[i];
|
|
}
|
|
break;
|
|
case 2:
|
|
{
|
|
alarm.alarmTime = detailArray[i];
|
|
}
|
|
break;
|
|
case 4:
|
|
{
|
|
alarm.alarmType = [detailArray[i] intValue];
|
|
}
|
|
break;
|
|
case 5:
|
|
{
|
|
alarm.alarmGroup = [detailArray[i] intValue];
|
|
}
|
|
break;
|
|
case 6:
|
|
{
|
|
alarm.alarmItem = [detailArray[i] intValue];
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
[alarmRecord addObject:alarm];
|
|
[alarm release];
|
|
}
|
|
|
|
alarmresult.alarmRecord = alarmRecord;
|
|
callBack(alarmresult);
|
|
[self resetServer];
|
|
[alarmresult release];
|
|
}
|
|
|
|
[result release];
|
|
|
|
|
|
}
|
|
|
|
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
|
|
if(reconnectCount<([servers count]-1)){
|
|
reconnectCount++;
|
|
currentServer = [NSString stringWithFormat:@"%@",[servers objectAtIndex:reconnectCount]];
|
|
DLog(@"change server:%@",currentServer);
|
|
[self getAlarmRecordWithUsername:username sessionId:sessionId option:option msgIndex:msgIndex senderList:senderList checkLevelType:checkLevelType vKey:vKey callBack:callBack];
|
|
}else{
|
|
GetAlarmRecordResult *alarmresult = [[GetAlarmRecordResult alloc]init];
|
|
alarmresult.error_code = NET_RET_UNKNOWN_ERROR;
|
|
[self randomServer];
|
|
reconnectCount = 0;
|
|
callBack(alarmresult);
|
|
[alarmresult release];
|
|
}
|
|
|
|
}
|
|
];
|
|
[parameter release];
|
|
}
|
|
|
|
|
|
|
|
|
|
@end
|