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.
373 lines
12 KiB
373 lines
12 KiB
1 year ago
|
//
|
||
|
// Circle.m
|
||
|
// myWatch
|
||
|
//
|
||
|
// Created by xTT on 15/10/30.
|
||
|
// Copyright © 2015年 xTT. All rights reserved.
|
||
|
//
|
||
|
|
||
|
#import "Circle.h"
|
||
|
#import "myHttp.h"
|
||
|
|
||
|
#import "CJFileUtility.h"
|
||
|
|
||
|
#import <AVFoundation/AVFoundation.h>
|
||
|
#import <Photos/Photos.h>
|
||
|
|
||
|
|
||
|
#import "User.h"
|
||
|
#import "Device.h"
|
||
|
//#import <MessageDisplayKit/XHMessage.h>
|
||
|
//#import <MessageDisplayKit/XHMessageVideoConverPhotoFactory.h>
|
||
|
|
||
|
|
||
|
@implementation Circle
|
||
|
|
||
|
- (baseModel *)getObjWithID:(NSString *)sender{
|
||
|
User *user = [self getUserWithUserID:sender];
|
||
|
Device *device = [self getDeviceWithIMEI:sender];
|
||
|
if (user) {
|
||
|
return (baseModel *)user;
|
||
|
}else if(device){
|
||
|
return (baseModel *)device;
|
||
|
}
|
||
|
return nil;
|
||
|
}
|
||
|
|
||
|
- (User *)getUserWithUserID:(NSString *)userID{
|
||
|
__block User *user = nil;
|
||
|
[_members enumerateObjectsUsingBlock:^(NSDictionary * dic, NSUInteger idx, BOOL * _Nonnull stop) {
|
||
|
User *obj = [User yy_modelWithJSON:dic];
|
||
|
if ([obj.openid isEqualToString:userID]) {
|
||
|
user = obj;
|
||
|
*stop = YES;
|
||
|
}
|
||
|
}];
|
||
|
return user;
|
||
|
}
|
||
|
|
||
|
//- (void)setDevices:(NSMutableArray *)devices{
|
||
|
//
|
||
|
//}
|
||
|
|
||
|
- (Device *)getDeviceWithIMEI:(NSString *)IMEI{
|
||
|
__block Device *device = nil;
|
||
|
[cUser.myDevices enumerateObjectsUsingBlock:^(Device * obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||
|
if ([obj.imei isEqualToString:IMEI]) {
|
||
|
device = obj;
|
||
|
*stop = YES;
|
||
|
}
|
||
|
}];
|
||
|
return device;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
#pragma 获取圈详情
|
||
|
- (void)getCircleInfoSuccess:(void (^)())success
|
||
|
failure:(void (^)())failure{
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_CHATGROUPS__
|
||
|
objArr:@[self]];
|
||
|
|
||
|
[xMyHttp URL:urlStr
|
||
|
method:@"GET" parameters:@{}
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
[self mj_setKeyValues:responseObject];
|
||
|
[User saveToFile];
|
||
|
success();
|
||
|
}else{
|
||
|
failure();
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
} showHUD:NO];
|
||
|
}
|
||
|
|
||
|
#pragma 获取圈邀请码
|
||
|
- (void)getCircleInviteTokenSuccess:(void (^)(id responseObject))success
|
||
|
failure:(void (^)())failure{
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_CHATGROUPS__INVITETOKEN
|
||
|
objArr:@[self]];
|
||
|
|
||
|
NSMutableDictionary *param = [NSMutableDictionary dictionary];
|
||
|
[param setValue:TargetName forKey:@"channel"];
|
||
|
|
||
|
[xMyHttp URL:urlStr
|
||
|
method:@"GET" parameters:param
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
success(responseObject);
|
||
|
}else{
|
||
|
failure();
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
|
||
|
#pragma 获取信息(群聊)
|
||
|
- (void)getCircleMessageWithParameters:(id)parameters
|
||
|
success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)())failure
|
||
|
{
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_CHATGROUPS__MESSAGE
|
||
|
objArr:@[self]];
|
||
|
|
||
|
NSLog(@"get msg url = %@", urlStr);
|
||
|
|
||
|
[xMyHttp URL:urlStr
|
||
|
method:@"GET" parameters:parameters
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
success(responseObject);
|
||
|
}else{
|
||
|
failure();
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
|
||
|
NSLog(@"error = %@", error);
|
||
|
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
#pragma 获取信息(单聊)
|
||
|
- (void)getCircleSingleMessageWithImei:(NSString *)imei
|
||
|
Parameters:(id)parameters
|
||
|
success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)())failure
|
||
|
{
|
||
|
|
||
|
NSString *urlStr = [NSString stringWithFormat:@"getway/single/%@/message",imei];
|
||
|
|
||
|
NSLog(@"get msg url = %@", urlStr);
|
||
|
|
||
|
[xMyHttp URL:urlStr
|
||
|
method:@"GET" parameters:parameters
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
success(responseObject);
|
||
|
}else{
|
||
|
failure();
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
|
||
|
NSLog(@"error = %@", error);
|
||
|
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
|
||
|
#pragma 举报信息
|
||
|
- (void)reportCircleMessageWithParameters:(id)parameters
|
||
|
success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)())failure {
|
||
|
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_REPORT__MESSAGE
|
||
|
objArr:@[cUser]];
|
||
|
|
||
|
[xMyHttp URL:urlStr
|
||
|
method:@"POST" parameters:parameters
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
success(responseObject);
|
||
|
}else{
|
||
|
failure();
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
}];
|
||
|
|
||
|
}
|
||
|
|
||
|
#pragma 发送信息(群聊)
|
||
|
- (void)sendCircleMessageWithParameters:(id)parameters
|
||
|
success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)())failure{
|
||
|
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_CHATGROUPS__MESSAGE
|
||
|
objArr:@[self]];
|
||
|
|
||
|
|
||
|
NSData *data = parameters[@"content"];
|
||
|
[xMyHttp URL:urlStr method:@"POST" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData){
|
||
|
if ([parameters[@"type"] isEqualToNumber:@(2)])
|
||
|
{//图片
|
||
|
[formData appendPartWithFileData:data
|
||
|
name:@"content"
|
||
|
fileName:@"image.jpg"
|
||
|
mimeType:@"image/jpeg"];
|
||
|
}
|
||
|
else if ([parameters[@"type"] isEqualToNumber:@(3)])
|
||
|
{
|
||
|
[formData appendPartWithFileData:data
|
||
|
name:@"content"
|
||
|
fileName:@"voice"
|
||
|
mimeType:@"amr"];
|
||
|
}
|
||
|
|
||
|
}success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
success(responseObject);
|
||
|
}else{
|
||
|
failure();
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
}];
|
||
|
|
||
|
}
|
||
|
|
||
|
#pragma 发送信息(单聊)
|
||
|
- (void)sendCircleMessageWithImei:(NSString *)imei
|
||
|
Parameters:(id)parameters
|
||
|
success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)())failure{
|
||
|
|
||
|
|
||
|
NSString *urlStr = [NSString stringWithFormat:@"getway/single/%@/message",imei];
|
||
|
|
||
|
|
||
|
NSData *data = parameters[@"content"];
|
||
|
[xMyHttp URL:urlStr
|
||
|
method:@"POST" parameters:parameters
|
||
|
constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
|
||
|
{
|
||
|
if ([parameters[@"type"] isEqualToNumber:@(2)]) {//图片
|
||
|
[formData appendPartWithFileData:data
|
||
|
name:@"content"
|
||
|
fileName:@"image.jpg"
|
||
|
mimeType:@"image/jpeg"];
|
||
|
}else if ([parameters[@"type"] isEqualToNumber:@(3)]){
|
||
|
[formData appendPartWithFileData:data
|
||
|
name:@"content"
|
||
|
fileName:@"voice"
|
||
|
mimeType:@"amr"];
|
||
|
}
|
||
|
|
||
|
}
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
success(responseObject);
|
||
|
}else{
|
||
|
failure();
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
}];
|
||
|
|
||
|
}
|
||
|
|
||
|
#pragma 清除聊天消息(群聊)
|
||
|
- (void)deleteCircleMessageWithParameters:(id)parameters
|
||
|
success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)())failure{
|
||
|
NSString *urlStr = [MyHttp getURL:HTTP_CHATGROUPS__MESSAGE
|
||
|
objArr:@[self]];
|
||
|
|
||
|
[xMyHttp URL:urlStr
|
||
|
method:@"DELETE" parameters:parameters
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
success(responseObject);
|
||
|
}else{
|
||
|
failure();
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
#pragma 清除聊天消息(单聊聊)
|
||
|
- (void)deleteSingleMessage:(NSString *)imei
|
||
|
success:(void (^)(id responseObject))success
|
||
|
failure:(void (^)())failure
|
||
|
{
|
||
|
NSString *urlStr = [NSString stringWithFormat:@"getway/single/%@/message",imei];
|
||
|
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
|
||
|
[parameters setValue:cUser.openid forKey:@"openid"];
|
||
|
[parameters setValue:cUser.accesstoken forKey:@"token"];
|
||
|
|
||
|
[xMyHttp URL:urlStr
|
||
|
method:@"DELETE" parameters:parameters
|
||
|
success:^(NSURLSessionDataTask *task, id responseObject)
|
||
|
{
|
||
|
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
|
||
|
success(responseObject);
|
||
|
}else{
|
||
|
failure();
|
||
|
}
|
||
|
} failure:^(NSURLSessionDataTask *task, NSError *error) {
|
||
|
if (failure) {
|
||
|
failure();
|
||
|
}
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
+ (UIAlertController *)getCameraSheetCamera:(void (^)())camera
|
||
|
photoLibrary:(void (^)())photoLibrary{
|
||
|
if([AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo] == AVAuthorizationStatusDenied){
|
||
|
[SVProgressHUD showErrorWithStatus:NSLocalizedStringFromTable(@"请在iOS设备的 设置-隐私-相机 中允许访问相机。", @"Localization", @"")];
|
||
|
}else if ([PHPhotoLibrary authorizationStatus] == PHAuthorizationStatusDenied){
|
||
|
[SVProgressHUD showErrorWithStatus:NSLocalizedStringFromTable(@"请在iOS设备的 设置-隐私-照片 中允许访问照片。", @"Localization", @"")];
|
||
|
}else{
|
||
|
UIAlertController *sheet = [UIAlertController alertControllerWithTitle:@"修改头像"
|
||
|
message:nil
|
||
|
preferredStyle:UIAlertControllerStyleActionSheet];
|
||
|
|
||
|
UIAlertAction *cameraAction = [UIAlertAction actionWithTitle:NSLocalizedStringFromTable(@"拍照", @"Localization", @"")
|
||
|
style:UIAlertActionStyleDefault
|
||
|
handler:^(UIAlertAction *action)
|
||
|
{
|
||
|
camera();
|
||
|
}];
|
||
|
|
||
|
UIAlertAction *libraryAction = [UIAlertAction actionWithTitle:NSLocalizedStringFromTable(@"从相册选择", @"Localization", @"")
|
||
|
style:UIAlertActionStyleDefault
|
||
|
handler:^(UIAlertAction *action)
|
||
|
{
|
||
|
photoLibrary();
|
||
|
}];
|
||
|
|
||
|
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消"
|
||
|
style:UIAlertActionStyleCancel
|
||
|
handler:^(UIAlertAction * _Nonnull action)
|
||
|
{}];
|
||
|
|
||
|
[sheet addAction:cameraAction];
|
||
|
[sheet addAction:libraryAction];
|
||
|
[sheet addAction:cancelAction];
|
||
|
return sheet;
|
||
|
}
|
||
|
return nil;
|
||
|
}
|
||
|
|
||
|
@end
|