You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1249 lines
44 KiB
1249 lines
44 KiB
1 year ago
|
//
|
||
|
// User.m
|
||
|
// tianyin
|
||
|
//
|
||
|
// Created by xTT on 15/6/7.
|
||
|
// Copyright (c) 2015年 xTT. All rights reserved.
|
||
|
//
|
||
|
|
||
|
#import "User.h"
|
||
|
|
||
|
|
||
|
#import "AppDelegate.h"
|
||
|
|
||
|
#import "myHttp.h"
|
||
|
#import "MyMQTT.h"
|
||
|
//#import "bleObject.h"
|
||
|
|
||
|
#import "Circle.h"
|
||
|
#import "CJFileUtility.h"
|
||
|
|
||
|
#import "Locate.h"
|
||
|
|
||
|
#import "Device.h"
|
||
|
|
||
|
static User *currentUser = nil;
|
||
|
|
||
|
@implementation User
|
||
|
|
||
|
@synthesize ownedDevices = _ownedDevices;
|
||
|
|
||
|
- (Device *)cDevice{
|
||
|
if (!_cDevice && self.myDevices.count > 0) {
|
||
|
_cDevice = [self.myDevices firstObject];
|
||
|
}
|
||
|
return _cDevice;
|
||
|
}
|
||
|
|
||
|
- (NSMutableArray *)myDevices{
|
||
|
if (!_myDevices) {
|
||
|
_myDevices = [[NSMutableArray alloc] init];
|
||
|
return _myDevices;
|
||
|
}
|
||
|
return _myDevices;
|
||
|
}
|
||
|
|
||
|
- (void)setOwnedDevices:(NSMutableArray *)ownedDevices{
|
||
|
if (!_ownedDevices) {
|
||
|
_ownedDevices = [[NSMutableArray alloc] init];
|
||
|
}
|
||
|
NSMutableArray *arr = [NSMutableArray array];
|
||
|
[ownedDevices enumerateObjectsUsingBlock:^(Device *obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||
|
Device *device = [self getDeviceWithImei:obj.imei];
|
||
|
if (device) {
|
||
|
[device mj_setKeyValues:obj.mj_JSONObject];
|
||
|
}else{
|
||
|
device = obj;
|
||
|
}
|
||
|
[device getDeviceInfoWithParameters:[NSMutableDictionary dictionaryWithDictionary:@{@"imei": device.imei,@"vendor":device.vendor}]
|
||
|
success:nil failure:nil];
|
||
|
|
||
|
[arr addObject:device];
|
||
|
}];
|
||
|
[_ownedDevices removeAllObjects];
|
||
|
[_ownedDevices addObjectsFromArray:arr];
|
||
|
|
||
|
[self.myDevices removeAllObjects];
|
||
|
[self.myDevices addObjectsFromArray:self.ownedDevices];
|
||
|
[self.myDevices addObjectsFromArray:self.chatGroupDevices];
|
||
|
}
|
||
|
|
||
|
- (void)setChatGroupDevices:(NSMutableArray *)chatGroupDevices{
|
||
|
if (!_chatGroupDevices) {
|
||
|
_chatGroupDevices = [[NSMutableArray alloc] init];
|
||
|
}
|
||
|
[self.myDevices removeAllObjects];
|
||
|
NSMutableArray *arr = [NSMutableArray array];
|
||
|
[chatGroupDevices enumerateObjectsUsingBlock:^(Device *obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||
|
Device *device = [self getDeviceWithImei:obj.imei];
|
||
|
if (device) {
|
||
|
[device mj_setKeyValues:obj.mj_JSONObject];
|
||
|
}else{
|
||
|
device = obj;
|
||
|
}
|
||
|
[device getDeviceInfoWithParameters:[NSMutableDictionary dictionaryWithDictionary:@{@"imei": device.imei,@"vendor":device.vendor}]
|
||
|
success:nil failure:nil];
|
||
|
|
||
|
[arr addObject:device];
|
||
|
}];
|
||
|
[_chatGroupDevices removeAllObjects];
|
||
|
[_chatGroupDevices addObjectsFromArray:arr];
|
||
|
|
||
|
[self.myDevices addObjectsFromArray:self.ownedDevices];
|
||
|
[self.myDevices addObjectsFromArray:self.chatGroupDevices];
|
||
|
}
|
||
|
|
||
|
- (Device *)getDeviceWithImei:(NSString *)imei{
|
||
|
__block Device *device = nil;
|
||
|
[self.myDevices enumerateObjectsUsingBlock:^(Device *obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||
|
if ([obj.imei isEqualToString:imei]) {
|
||
|
device = obj;
|
||
|
*stop = YES;
|
||
|
}
|
||
|
}];
|
||
|
return device;
|
||
|
}
|
||
|
|
||
|
- (void)setChatGroups:(NSMutableArray *)chatGroups{
|
||
|
if (!_chatGroups) {
|
||
|
_chatGroups = [[NSMutableArray alloc] init];
|
||
|
}
|
||
|
NSMutableArray *arr = [NSMutableArray array];
|
||
|
[chatGroups enumerateObjectsUsingBlock:^(Circle *obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||
|
Circle *circle = [currentUser getCircleWithId:obj.groupid];
|
||
|
if (circle) {
|
||
|
[circle mj_setKeyValues:obj.mj_JSONObject];
|
||
|
}else{
|
||
|
circle = obj;
|
||
|
}
|
||
|
|
||
|
[circle getCircleInfoSuccess:^{} failure:^{}];
|
||
|
[arr addObject:circle];
|
||
|
}];
|
||
|
[_chatGroups removeAllObjects];
|
||
|
[_chatGroups addObjectsFromArray:arr];
|
||
|
}
|
||
|
|
||
|
|
||
|
#pragma 获取圈子
|
||
|
- (Circle *)getCircleWithId:(NSString *)Id{
|
||
|
__block Circle *c = nil;
|
||
|
[_chatGroups enumerateObjectsUsingBlock:^(Circle * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||
|
if ([obj.groupid isEqualToString:Id]) {
|
||
|
c = obj;
|
||
|
*stop = YES;
|
||
|
}
|
||
|
}];
|
||
|
return c;
|
||
|
}
|
||
|
|
||
|
- (Circle *)getCircleWithImei:(NSString *)imei{
|
||
|
__block Circle *c = nil;
|
||
|
[_chatGroups enumerateObjectsUsingBlock:^(Circle * _Nonnull circle, NSUInteger idx, BOOL * _Nonnull stop) {
|
||
|
[circle.devices enumerateObjectsUsingBlock:^(Device * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||
|
if ([obj.imei isEqualToString:imei]) {
|
||
|
c = circle;
|
||
|
*stop = YES;
|
||
|
}
|
||
|
}];
|
||
|
if (c) {
|
||
|
*stop = YES;
|
||
|
}
|
||
|
}];
|
||
|
return c;
|
||
|
}
|
||
|
|
||
|
+ (void)saveDefaultImei:(NSString *)imei{
|
||
|
[[NSUserDefaults standardUserDefaults] setObject:imei forKey:@"default_imei"];
|
||
|
}
|
||
|
|
||
|
+ (NSString *)getDefaultImei{
|
||
|
return [[NSUserDefaults standardUserDefaults] stringForKey:@"default_imei"];
|
||
|
}
|
||
|
|
||
|
+ (void)saveAgreeImei:(NSString *)imei {
|
||
|
[[NSUserDefaults standardUserDefaults] setObject:imei forKey:@"agree_imei"];
|
||
|
}
|
||
|
|
||
|
+ (NSString *)agreeImei {
|
||
|
return [[NSUserDefaults standardUserDefaults] stringForKey:@"agree_imei"];
|
||
|
}
|
||
|
|
||
|
+ (void)removeAgreeImei {
|
||
|
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"agree_imei"];
|
||
|
}
|
||
|
|
||
|
+ (User *)currentUser{
|
||
|
return currentUser;
|
||
|
}
|
||
|
|
||
|
- (NSString *)id{
|
||
|
return _openid;
|
||
|
}
|
||
|
|
||
|
//MARK: 上传微信授权 原始数据 和登录 新的登录接口
|
||
|
+ (void)upWXDataAndLoginParameters:(id)parameters
|
||
|
success:(void (^)(id))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
|
||
|
NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithDictionary:parameters];
|
||
|
[dic setValue:@"ios" forKey: @"mobile_type"];
|
||
|
|
||
|
|
||
|
[xMyHttp URL:HTTP_POST_ACCOUNTS_WXDATAUP method:@"POST" parameters:dic
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
User *currentUser = [User mj_objectWithKeyValues:parameters];
|
||
|
[currentUser mj_setKeyValues:responseObject];
|
||
|
[User setCurrentUser:currentUser];
|
||
|
if(success){success(responseObject);}
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
|
||
|
#pragma 登录
|
||
|
+ (void)loginWithParameters:(id)parameters
|
||
|
success:(void (^)(id))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
[[MyHttp sharedClient] URL:HTTP_POST_ACCOUNTS_LOGIN method:@"POST" parameters:parameters
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
User *currentUser = [User mj_objectWithKeyValues:parameters];
|
||
|
[currentUser mj_setKeyValues:responseObject];
|
||
|
[User setCurrentUser:currentUser];
|
||
|
if(success){success(responseObject);}
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
#pragma 主动退出登录
|
||
|
+ (void)logoutWithSuccess:(void (^)(id))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
if(currentUser){
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_POST_ACCOUNTS_LOGOUT
|
||
|
objArr:@[currentUser]];
|
||
|
[[MyHttp sharedClient] URL:urlStr method:@"DELETE" parameters:nil
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
if(success){success(responseObject);}
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
}];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#pragma 注销用户
|
||
|
+ (void)unregisterWithSuccess:(void (^)(id))success
|
||
|
failure:(void (^)(id faiObject))failure {
|
||
|
|
||
|
if(currentUser){
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_POST_ACCOUNTS_UNREGISTER
|
||
|
objArr:@[currentUser]];
|
||
|
|
||
|
[[MyHttp sharedClient] URL:urlStr method:@"POST" parameters:@{@"accesstoken":currentUser.accesstoken}
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
if(success){success(responseObject);}
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
}];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#pragma 其他的 登录
|
||
|
+ (void)loginWithParameters:(id)parameters
|
||
|
type:(int)type
|
||
|
success:(void (^)(id))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
[parameters setValue:@(type) forKey:@"type"];
|
||
|
[parameters setValue:@"ios" forKey:@"mobile_type"];
|
||
|
[[MyHttp sharedClient] URL:HTTP_POST_ACCOUNTS method:@"POST" parameters:parameters
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
User *currentUser = [User mj_objectWithKeyValues:parameters];
|
||
|
[currentUser mj_setKeyValues:responseObject];
|
||
|
[User setCurrentUser:currentUser];
|
||
|
if(success){success(responseObject);}
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
#pragma 注册用户
|
||
|
+ (void)newUserWithParameters:(id)parameters
|
||
|
success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
[[MyHttp sharedClient] URL:HTTP_POST_REGISTER method:@"POST" parameters:parameters
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
User *currentUser = [User mj_objectWithKeyValues:parameters];
|
||
|
[currentUser mj_setKeyValues:responseObject];
|
||
|
[User setCurrentUser:currentUser];
|
||
|
if(success){success(responseObject);}
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
#pragma 获取用户信息
|
||
|
- (void)getUserInfoSuccess:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_ACCOUNTS_INFO
|
||
|
objArr:@[self]];
|
||
|
|
||
|
[xMyHttp URL:urlStr method:@"GET" parameters:@{}
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
[self mj_setKeyValues:responseObject];
|
||
|
if(success){success(responseObject);}
|
||
|
[User saveToFile];
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
} showHUD:NO];
|
||
|
}
|
||
|
|
||
|
#pragma 获取用户未读消息
|
||
|
-(void)getMsgUnreadCount:(NSString *)msgType
|
||
|
Success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(void))failure{
|
||
|
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_ACCOUNTS__UNREAD_MSG
|
||
|
objArr:@[self]];
|
||
|
|
||
|
[xMyHttp URL:urlStr method:@"GET" parameters:@{@"type":msgType}
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
if(success){success(responseObject);}
|
||
|
}else{
|
||
|
if(failure){failure();}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
} showHUD:NO];
|
||
|
}
|
||
|
|
||
|
-(void)updateMsg2Read:(NSString *)msgId
|
||
|
MsgType:(NSString *)msgType
|
||
|
Success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(void))failure{
|
||
|
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_ACCOUNTS__UNREAD_MSG
|
||
|
objArr:@[self]];
|
||
|
|
||
|
[xMyHttp URL:urlStr method:@"POST" parameters:@{@"type":msgType,@"id":msgId}
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
if(success){success(responseObject);}
|
||
|
}else{
|
||
|
if(failure){failure();}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
} showHUD:NO];
|
||
|
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
MARK:获取公众号模板消息开关状态
|
||
|
*/
|
||
|
- (void)getGZHSwitchSuccess:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_ACCOUNTS_GZH_SWITCH
|
||
|
objArr:@[self]];
|
||
|
|
||
|
[xMyHttp URL:urlStr method:@"GET" parameters:@{}
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
if(success){success(responseObject);}
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
} showHUD:NO];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
MARK:设置公众号模板消息开关状态
|
||
|
*/
|
||
|
- (void)setGZHSwitchStatus:(NSNumber*)status
|
||
|
Success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure;{
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_ACCOUNTS_GZH_SWITCH
|
||
|
objArr:@[self]];
|
||
|
|
||
|
[xMyHttp URL:urlStr method:@"POST" parameters:@{@"status":status}
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
if(success){success(responseObject);}
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
} showHUD:NO];
|
||
|
}
|
||
|
|
||
|
#pragma 编辑用户信息
|
||
|
- (void)saveUserInfoSuccess:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_ACCOUNTS_INFO
|
||
|
objArr:@[self]];
|
||
|
|
||
|
NSMutableDictionary *parameters = [self mj_keyValues];
|
||
|
[parameters removeObjectForKey:@"image"];
|
||
|
|
||
|
[xMyHttp URL:urlStr method:@"PATCH" parameters:parameters
|
||
|
constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
|
||
|
{
|
||
|
if (self.image) {
|
||
|
[formData appendPartWithFileData:UIImageJPEGRepresentation(self.image, 0.1)
|
||
|
name:@"image"
|
||
|
fileName:@"image.jpg"
|
||
|
mimeType:@"image/jpeg"];
|
||
|
}
|
||
|
}
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
[self mj_setKeyValues:responseObject];
|
||
|
if(success){success(responseObject);}
|
||
|
[User saveToFile];
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
|
||
|
#pragma 上传jjm
|
||
|
- (void)updatajkCodeSuccess:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_POST_IOSCODE
|
||
|
objArr:@[cUser.cDevice]];
|
||
|
[xMyHttp UploadPictureByFileName:urlStr Path:UIImageJPEGRepresentation(self.image, 0.1) success:^(id responseObject) {
|
||
|
if(success)
|
||
|
success(responseObject);
|
||
|
} failure:^(id faiObject) {
|
||
|
if(faiObject)
|
||
|
failure(faiObject);
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
#pragma 获取jjm信息
|
||
|
- (void)getjkCodeSuccess:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_POST_IOSCODE
|
||
|
objArr:@[cUser.cDevice]];
|
||
|
|
||
|
[xMyHttp URL:urlStr method:@"GET" parameters:@{}
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
[self mj_setKeyValues:responseObject];
|
||
|
if(success){success(responseObject);}
|
||
|
[User saveToFile];
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
} showHUD:NO];
|
||
|
}
|
||
|
|
||
|
|
||
|
#pragma mark --获取首页轮播图
|
||
|
- (void)getSlideshowInfoSuccess:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_GET_SLIDESHOW
|
||
|
objArr:@[self]];
|
||
|
|
||
|
[xMyHttp URL:urlStr method:@"GET" parameters:@{}
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
if(success){success(responseObject);}
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
} showHUD:NO];
|
||
|
}
|
||
|
|
||
|
#pragma mark --表盘列表分页查询
|
||
|
- (void)getDialMsgInfo:(id)parameters
|
||
|
success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure
|
||
|
{
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_POST_PAGELIST
|
||
|
objArr:@[self]];
|
||
|
|
||
|
[xMyHttp URL:urlStr method:@"POST" parameters:parameters
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
if(success){success(responseObject);}
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
} showHUD:NO];
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
- (void)postSlideshowInfoWithID:(NSString *)slideID
|
||
|
Success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_GET_SLIDESHOW
|
||
|
objArr:@[self]];
|
||
|
NSMutableDictionary *dic = [NSMutableDictionary dictionary];
|
||
|
[dic setValue:slideID forKey:@"id"];
|
||
|
[xMyHttp URL:urlStr method:@"POST" parameters:dic
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
if(success){success(responseObject);}
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
} showHUD:NO];
|
||
|
}
|
||
|
|
||
|
+ (void)wxUserApplyPhone:(NSString*)phone
|
||
|
success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
NSString *url = [MyHttp getURL:HTTP_POST_ACCOUNTS_APPLY_BIND_PHONE
|
||
|
objArr:@[currentUser]];
|
||
|
[[MyHttp sharedClient] URL:url
|
||
|
method:@"POST" parameters:@{@"phone":phone}
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
[[User currentUser] mj_setKeyValues:responseObject];
|
||
|
if(success){success(responseObject);}
|
||
|
[User saveToFile];
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
} showHUD:NO];
|
||
|
}
|
||
|
|
||
|
#pragma 手机账号 绑定微信账号
|
||
|
+ (void)userBindWX:(NSMutableDictionary*)param
|
||
|
success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
NSString *url = [MyHttp getURL:HTTP_ACCOUNTS_BIND_AND_UNBIND_WX
|
||
|
objArr:@[currentUser]];
|
||
|
[[MyHttp sharedClient] URL:url
|
||
|
method:@"POST" parameters:param
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
[[User currentUser] mj_setKeyValues:responseObject];
|
||
|
if(success){success(responseObject);}
|
||
|
[User saveToFile];
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
} showHUD:YES];
|
||
|
}
|
||
|
|
||
|
#pragma 手机账号 解绑微信账号
|
||
|
+ (void)userUNBindWXSuccess:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
NSString *url = [MyHttp getURL:HTTP_ACCOUNTS_BIND_AND_UNBIND_WX
|
||
|
objArr:@[currentUser]];
|
||
|
[[MyHttp sharedClient] URL:url
|
||
|
method:@"DELETE" parameters:nil
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
[[User currentUser] mj_setKeyValues:responseObject];
|
||
|
if(success){success(responseObject);}
|
||
|
[User saveToFile];
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
} showHUD:YES];
|
||
|
}
|
||
|
|
||
|
|
||
|
#pragma 获取用户关联设备
|
||
|
- (void)getRelatedDeviceSuccess:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
NSString *url = [MyHttp getURL:HTTP_ACCOUNTS__RELATEDDEVICE
|
||
|
objArr:@[currentUser]];
|
||
|
[[MyHttp sharedClient] URL:url
|
||
|
method:@"GET" parameters:@{}
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
[[User currentUser] mj_setKeyValues:responseObject];
|
||
|
[User saveToFile];
|
||
|
//MARK: 添加广告开关 代码
|
||
|
if(responseObject[@"ad_rate"]){
|
||
|
if ([responseObject[@"ad_rate"] intValue] == 2) {
|
||
|
[cUser getADConfig];
|
||
|
}
|
||
|
}
|
||
|
if(success){success(responseObject);}
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
} showHUD:NO];
|
||
|
}
|
||
|
|
||
|
/// 获取未读消息
|
||
|
- (void)GetNotificationCountWithSuccess:(void (^)(id responseObject))success failure:(void (^)(NSError *error))failure
|
||
|
{
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_GET_NotificationCount
|
||
|
objArr:@[currentUser]];
|
||
|
[xMyHttp URL:urlStr
|
||
|
method:@"GET" parameters:nil
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == 0) {
|
||
|
success(responseObject);
|
||
|
} else {
|
||
|
if (failure) {
|
||
|
NSString *domain = @"com.zuoyebang.iot.watch";
|
||
|
NSDictionary *userInfo = @{@"msg" : responseObject[@"msg"]};
|
||
|
NSError *err = [NSError errorWithDomain:domain code:-1 userInfo:userInfo];
|
||
|
failure(err);
|
||
|
}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
- (void)getRelatedChatGroupSuccess:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
NSString *url = [MyHttp getURL:HTTP_CHATGROUPS__RELATECHATGROP
|
||
|
objArr:@[currentUser]];
|
||
|
[[MyHttp sharedClient] URL:url
|
||
|
method:@"GET" parameters:@{}
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
[[User currentUser] mj_setKeyValues:responseObject];
|
||
|
if(success){success(responseObject);}
|
||
|
[User saveToFile];
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
} showHUD:NO];
|
||
|
}
|
||
|
|
||
|
#pragma mark --- 获取环信MI 用户 (与设备对应的 MI 用户)
|
||
|
- (void)getHXAccoutSuccess:(void (^)(id responseObject))success
|
||
|
failure:(void (^)())failure{
|
||
|
// accounts/[imei]/video
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_POST_GETHXID
|
||
|
objArr:@[self.cDevice]];
|
||
|
[xMyHttp URL:urlStr
|
||
|
method:@"GET" parameters:nil
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
if(responseObject[@"username"] &&
|
||
|
responseObject[@"password"] &&
|
||
|
responseObject[@"appkey"]){
|
||
|
|
||
|
success(responseObject);
|
||
|
}else{
|
||
|
xLog(@"缺少返回参数username password appkey 之一");
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
} showHUD:YES];
|
||
|
}
|
||
|
#pragma 添加关联设备
|
||
|
- (void)addDeviceWithDevice:(Device *)device
|
||
|
success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_ACCOUNTS__RELATEDDEVICE
|
||
|
objArr:@[device,self]];
|
||
|
|
||
|
NSMutableDictionary *parameters = [device mj_keyValues];
|
||
|
|
||
|
[xMyHttp URL:urlStr
|
||
|
method:@"POST" parameters:parameters
|
||
|
constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
|
||
|
if (device.image) {
|
||
|
[formData appendPartWithFileData:UIImageJPEGRepresentation(device.image, 0.1)
|
||
|
name:@"image"
|
||
|
fileName:@"image.jpg"
|
||
|
mimeType:@"image/jpeg"];
|
||
|
}
|
||
|
}
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
if(success){success(responseObject);}
|
||
|
[User saveToFile];
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
- (void)localDeleteDevice{
|
||
|
if ([self.ownedDevices containsObject:self.cDevice]) {
|
||
|
[self.ownedDevices removeObject:self.cDevice];
|
||
|
}else if([self.chatGroupDevices containsObject:self.cDevice]){
|
||
|
[self.chatGroupDevices removeObject:self.cDevice];
|
||
|
}
|
||
|
if([self.myDevices containsObject:self.cDevice]){
|
||
|
[self.myDevices removeObject:self.cDevice];
|
||
|
}
|
||
|
if(self.myDevices.count > 0){
|
||
|
self.cDevice = [self.myDevices firstObject];
|
||
|
}else{
|
||
|
self.cDevice = nil;
|
||
|
}
|
||
|
//清空 一下 聊天群组
|
||
|
self.chatGroups = nil;
|
||
|
}
|
||
|
|
||
|
#pragma 扫码查询设备是否存在管理员,如果存在则得到管理员的 openid 和 phone
|
||
|
/**
|
||
|
扫码查询设备是否存在管理员,如果存在则得到管理员的 openid 和 phone
|
||
|
|
||
|
@param params @{@"imei":@"XXXX"}
|
||
|
@param success <#success description#>
|
||
|
@param failure <#failure description#>
|
||
|
*/
|
||
|
- (void)getDeviceIsHaveAdmin:(NSMutableDictionary *)params
|
||
|
success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_ACCOUNTS__AFTER
|
||
|
objArr:@[currentUser]];
|
||
|
[xMyHttp URL:urlStr
|
||
|
method:@"POST" parameters:params
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
// if (![cUser getDeviceWithImei:params[@"imei"]])
|
||
|
// {
|
||
|
// Device *de = [Device new];
|
||
|
// de.imei = params[@"imei"];
|
||
|
// de.deviceType = responseObject[@"deviceType"];
|
||
|
// de.name = @"";
|
||
|
// [self setOwnedDevices:[NSMutableArray arrayWithArray:@[de]]];
|
||
|
// }
|
||
|
// //self.cDevice.deviceType = [NSNumber numberWithInteger:3];
|
||
|
// NSLog(@"%@",self.cDevice);
|
||
|
if(success){success(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
#pragma 发送关注申请的接口 需要管理员的 openid 和 phone
|
||
|
/**
|
||
|
发送关注申请的接口 需要管理员的 openid 和 phone
|
||
|
*/
|
||
|
- (void)postDeviceInAdmin:(NSMutableDictionary *)params
|
||
|
success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_ACCOUNTS__APPLY_BIND
|
||
|
objArr:@[currentUser]];
|
||
|
[xMyHttp URL:urlStr
|
||
|
method:@"POST" parameters:params
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
if(success){success(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
#pragma 删除关联设备
|
||
|
- (void)deleteDeviceSuccess:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_ACCOUNTS__RELATEDDEVICE
|
||
|
objArr:@[self.cDevice,[User currentUser]]];
|
||
|
|
||
|
[xMyHttp URL:urlStr
|
||
|
method:@"DELETE" parameters:@{@"imei":cUser.cDevice.imei}
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
[self localDeleteDevice];
|
||
|
if(success){success(responseObject);}
|
||
|
[User saveToFile];
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
+ (void)setDeviceTokenWithNet:(NSString *)deviceToken AndVoIPToken:(NSString *)VoIPToken method:(NSString *)method{
|
||
|
NSString *version = @"produce";
|
||
|
#if defined(DEBUG)||defined(_DEBUG)
|
||
|
version = @"develop";
|
||
|
#endif
|
||
|
NSMutableDictionary *parameters = [NSMutableDictionary dictionaryWithDictionary:@{
|
||
|
@"version":version,
|
||
|
@"package":[[NSBundle mainBundle] bundleIdentifier]
|
||
|
|
||
|
}];
|
||
|
[parameters setValue:VoIPToken forKey:@"voip_devicetoken"];
|
||
|
[xMyHttp URL:[NSString stringWithFormat:HTTP_DEVICETOKEN__,deviceToken]
|
||
|
method:method
|
||
|
parameters:parameters constructingBodyWithBlock:nil
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject) {}
|
||
|
failure:^(NSURLSessionDataTask *task, NSError *error) {}
|
||
|
showHUD:NO
|
||
|
showError:NO];
|
||
|
}
|
||
|
|
||
|
#pragma mark --- 获取问题类别和热门问题
|
||
|
+ (void)getCategoryQAndHotQSuccess:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
NSString *url = [MyHttp getURL:HTTP_GET_CQ_AND_HOTQ
|
||
|
objArr:@[currentUser]];
|
||
|
[[MyHttp sharedClient] URL:url
|
||
|
method:@"GET" parameters:@{}
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
if (success) {success(responseObject);}
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
} showHUD:YES];
|
||
|
}
|
||
|
|
||
|
#pragma mark --- 获取某个问题类别中的所有问题
|
||
|
+ (void)getAllCategoryQWithCID:(NSString*)cid
|
||
|
success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(id faiObject))failure{
|
||
|
NSString *url = [MyHttp getURL:HTTP_GET_ALL_CQ
|
||
|
objArr:@[currentUser]];
|
||
|
url = [url stringByReplacingOccurrencesOfString:@"[categoryid]" withString:cid];
|
||
|
[[MyHttp sharedClient] URL:url
|
||
|
method:@"GET" parameters:@{}
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
if (success) {success(responseObject);}
|
||
|
}else{
|
||
|
if(failure){failure(responseObject);}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
} showHUD:YES];
|
||
|
}
|
||
|
|
||
|
|
||
|
+ (void)setCurrentUser:(User *)user
|
||
|
{
|
||
|
AppDelegate *app = (AppDelegate *)[UIApplication sharedApplication].delegate;
|
||
|
if (user && app.deviceTokenStr) {
|
||
|
currentUser = user;//先赋值,不然上传没有用户数据
|
||
|
[self setDeviceTokenWithNet:app.deviceTokenStr AndVoIPToken:app.deviceVoIPTokenStr method:@"POST"];
|
||
|
}else if(!user && currentUser){
|
||
|
[self setDeviceTokenWithNet:app.deviceTokenStr AndVoIPToken:app.deviceVoIPTokenStr method:@"DELETE"];
|
||
|
}
|
||
|
currentUser = user;
|
||
|
// [xMyMQTT setSubscriptions:nil];
|
||
|
|
||
|
[User saveToFile];
|
||
|
}
|
||
|
|
||
|
+ (void)setDeviceToken:(NSString *)deviceToken AndVoIPToken:(NSString *)VoIPToken{
|
||
|
if (currentUser) {
|
||
|
[self setDeviceTokenWithNet:deviceToken AndVoIPToken:VoIPToken method:@"POST"];
|
||
|
}else{
|
||
|
[self setDeviceTokenWithNet:deviceToken AndVoIPToken:VoIPToken method:@"DELETE"];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
+ (void)loadFormFile{
|
||
|
[baseModel mj_setupIgnoredPropertyNames:^NSArray *{
|
||
|
return @[@"block",@"image"];
|
||
|
}];
|
||
|
|
||
|
[User mj_setupIgnoredPropertyNames:^NSArray *{
|
||
|
return @[@"curLocation",@"cDevice",@"myDevices"];
|
||
|
}];
|
||
|
|
||
|
[User mj_setupObjectClassInArray:^NSDictionary *{
|
||
|
return @{@"ownedDevices":@"Device",
|
||
|
@"chatGroupDevices":@"Device",
|
||
|
@"chatGroups":@"Circle",
|
||
|
@"questions":@"CSQuestion"};
|
||
|
}];
|
||
|
|
||
|
[Circle mj_setupObjectClassInArray:^NSDictionary *{
|
||
|
return @{@"members":@"User",
|
||
|
@"devices":@"Device"};
|
||
|
}];
|
||
|
|
||
|
[Device mj_setupObjectClassInArray:^NSDictionary *{
|
||
|
return @{@"alerts":@"Clock",
|
||
|
@"chatGroupList":@"Circle",
|
||
|
@"contacts":@"Contacts"};
|
||
|
}];
|
||
|
|
||
|
|
||
|
NSString *path = [CJFileUtility documentsPathSubDir:@"user"
|
||
|
andFile:@"user_data"];
|
||
|
|
||
|
NSData *data = [NSData dataWithContentsOfFile:path];
|
||
|
if (data) {
|
||
|
NSMutableDictionary *userDic = [NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfFile:path]
|
||
|
options:NSJSONReadingMutableContainers
|
||
|
error:nil];
|
||
|
xLog(@"%@",userDic);
|
||
|
NSMutableDictionary *tmp = [NSMutableDictionary dictionary];
|
||
|
[userDic enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
|
||
|
if ([obj isKindOfClass:[NSArray class]]) {
|
||
|
[tmp setObject:obj forKey:key];
|
||
|
[userDic removeObjectForKey:key];
|
||
|
}
|
||
|
}];
|
||
|
[User setCurrentUser:[User mj_objectWithKeyValues:userDic]];
|
||
|
[[User currentUser] mj_setKeyValues:tmp];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
+ (void)deleteFormFile{
|
||
|
// if ([[User currentUser].admin boolValue] && [bleObject defaultManager].peripheral) {
|
||
|
// [[bleObject defaultManager].manager cancelPeripheralConnection:[bleObject defaultManager].peripheral];
|
||
|
// }
|
||
|
NSString *path = [CJFileUtility documentsPathSubDir:@"user" andFile:@"user_data"];
|
||
|
[[NSFileManager defaultManager] removeItemAtPath:path error:nil];
|
||
|
}
|
||
|
|
||
|
+ (void)saveToFile{
|
||
|
|
||
|
// NSString* libraryDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES)[0];
|
||
|
// NSString* filePath = [libraryDir stringByAppendingPathComponent:@"user.plist"];
|
||
|
// NSLog(@"%@",currentUser.mj_keyValues);
|
||
|
|
||
|
// NSMutableArray *tmp = [NSMutableArray arrayWithArray:currentUser.myCircles];
|
||
|
// currentUser.babies = [NSMutableArray arrayWithArray:@[]];
|
||
|
if (currentUser) {
|
||
|
NSString *path = [CJFileUtility documentsPathSubDir:@"user"
|
||
|
andFile:@"user_data"];
|
||
|
NSData *data = [NSJSONSerialization dataWithJSONObject:[currentUser mj_keyValues]
|
||
|
options:NSJSONWritingPrettyPrinted error:nil];
|
||
|
|
||
|
BOOL isSave = [CJFileUtility writeToFile:path data:data];
|
||
|
xLog(@"isSave = %d %@ %@",isSave,currentUser.openid,currentUser.accesstoken);
|
||
|
if (!isSave) {
|
||
|
xLog(@"%@",[currentUser mj_keyValues]);
|
||
|
}
|
||
|
}else{
|
||
|
[User deleteFormFile];
|
||
|
}
|
||
|
// currentUser.babies = tmp;
|
||
|
}
|
||
|
|
||
|
- (void)getADConfig{
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_ADS_CONFIG
|
||
|
objArr:@[self]];
|
||
|
|
||
|
[xMyHttp URL:urlStr method:@"GET" parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
[UserDefaults setObject:responseObject forKey:kNewADKey];
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
- (void)setSwitchDataState:(NSInteger)state
|
||
|
success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)())failure{
|
||
|
|
||
|
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
|
||
|
[parameters setValue:@(state) forKey:@"switch"];
|
||
|
[parameters setValue:cUser.cDevice.imei forKey:@"imei"];
|
||
|
[parameters setValue:cUser.openid forKey:@"openid"];
|
||
|
[parameters setValue:cUser.accesstoken forKey:@"accesstoken"];
|
||
|
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_DEVICES_GpsSwitch objArr:@[cUser.cDevice]];
|
||
|
[xMyHttp URL:urlStr
|
||
|
method:@"POST" parameters:parameters
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
success(responseObject);
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure(error);
|
||
|
}
|
||
|
}];
|
||
|
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
根据imei获取供应商的配置
|
||
|
*/
|
||
|
- (void)getSupplierConfigWithDevice:(Device *)device{
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_GETSUPPLIER_CONFIG
|
||
|
objArr:@[device]];
|
||
|
|
||
|
[xMyHttp URL:urlStr method:@"GET" parameters:@{@"type":@"ios"} success:^(NSURLSessionDataTask *task, id responseObject) {
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
[UserDefaults setObject:responseObject forKey:kSupplierConfigKey];
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
|
||
|
//MARK: 上传声网视频通话的通话时长和视频通话的分辨率
|
||
|
- (void)postVideoCallTimeParame:(NSDictionary*) parameters
|
||
|
deviceModel:(Device *)deviceModel
|
||
|
success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)())failure{
|
||
|
// accounts/[imei]/video
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_POST_VideoOperation
|
||
|
objArr:@[deviceModel]];
|
||
|
|
||
|
[xMyHttp URL:urlStr
|
||
|
method:@"POST" parameters:parameters
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
success(responseObject);
|
||
|
}else{
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
} showHUD:YES];
|
||
|
}
|
||
|
/**
|
||
|
MARK: 主动挂断通话
|
||
|
@param videoID 要挂断的通话 ID
|
||
|
*/
|
||
|
- (void)activeHangUpVideoID:(NSString*)videoID
|
||
|
WithDevice:(Device*)device
|
||
|
WithSuccess:(void (^)(id responseObject))success failure:(void (^)())failure{
|
||
|
|
||
|
// accounts/[imei]/video
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_POST_VideoOperation
|
||
|
objArr:@[device]];
|
||
|
NSMutableDictionary * dic = [NSMutableDictionary dictionary];
|
||
|
[dic setValue:videoID forKey:@"video_id"];
|
||
|
|
||
|
[xMyHttp URL:urlStr
|
||
|
method:@"DELETE" parameters:dic
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
success(responseObject);
|
||
|
}else{
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
} showHUD:YES];
|
||
|
|
||
|
}
|
||
|
|
||
|
#pragma mark --------- 视频获取信息接口(声网和菊风共用) ----------
|
||
|
- (void)getVideoAccoutCallType:(int)callType
|
||
|
deviceModel:(Device *)deviceModel
|
||
|
Success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)())failure{
|
||
|
|
||
|
// getway/accounts/[imei]/video
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_POST_VideoOperation
|
||
|
objArr:@[deviceModel]];
|
||
|
NSMutableDictionary * param = [NSMutableDictionary dictionary];
|
||
|
[param setValue:@(callType) forKey:@"callType"];
|
||
|
[xMyHttp URL:urlStr
|
||
|
method:@"GET" parameters:param
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
success(responseObject);
|
||
|
}else{
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
} showHUD:YES];
|
||
|
}
|
||
|
|
||
|
- (void)getVideoInfoWithDeviceImei:(NSString*)deviceImei
|
||
|
CallType:(int)callType
|
||
|
Success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)(void))failure{
|
||
|
|
||
|
// getway/accounts/[imei]/video
|
||
|
NSString *urlStr = [HTTP_POST_VideoOperation stringByReplacingOccurrencesOfString:@"[imei]" withString:deviceImei];
|
||
|
NSMutableDictionary * param = [NSMutableDictionary dictionary];
|
||
|
[param setValue:@(callType) forKey:@"callType"];
|
||
|
[param setValue:@"getInfo" forKey:@"type"];
|
||
|
[xMyHttp URL:urlStr
|
||
|
method:@"GET" parameters:param
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
success(responseObject);
|
||
|
}else{
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
} showHUD:YES];
|
||
|
}
|
||
|
#pragma mark --------- Juphoon获取信息接口 End----------
|
||
|
|
||
|
@end
|