123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- //
- // KSRCIMDataSource.m
- // StudentDaya
- //
- // Created by Kyle on 2019/8/12.
- // Copyright © 2019 DayaMusic. All rights reserved.
- //
- #import "KSRCIMDataSource.h"
- @implementation KSRCIMDataSource
- + (KSRCIMDataSource *)shareInstance {
- static KSRCIMDataSource *manager = nil;
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- manager = [[[self class] alloc] init];
- });
- return manager;
- }
- #pragma mark --- groupInfo
- - (void)getGroupInfoWithGroupId:(NSString *)groupId completion:(void (^)(RCGroup *))completion {
- if ([NSString isEmptyString:groupId]) {
- completion(nil);
- }
- [KSNetworkingManager queryGroupDetail:KS_POST groupId:groupId success:^(NSDictionary * _Nonnull dic) {
- if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
- NSDictionary *result = [dic dictionaryValueForKey:@"data"];
- RCGroup *groupInfo = [[RCGroup alloc] initWithGroupId:groupId groupName:[result stringValueForKey:@"name"] portraitUri:[result stringValueForKey:@"img"]];
- completion(groupInfo);
- }
- else {
- RCGroup *groupInfo = [[RCGroup alloc] initWithGroupId:groupId groupName:@"" portraitUri:@""];
- completion(groupInfo);
- }
- } faliure:^(NSError * _Nonnull error) {
- RCGroup *groupInfo = [[RCGroup alloc] initWithGroupId:groupId groupName:@"" portraitUri:@""];
- completion(groupInfo);
- }];
- }
- // 获取群组中所有的用户uid
- - (void)getAllMembersOfGroup:(NSString *)groupId result:(void (^)(NSArray<NSString *> *))resultBlock {
- if ([NSString isEmptyString:groupId]) {
- resultBlock(nil);
- return;
- }
- [KSNetworkingManager imGroupMemberAllRequest:KS_POST groupId:groupId success:^(NSDictionary * _Nonnull dic) {
- if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
- NSArray *sourceArray = [dic arrayValueForKey:@"data"];
- NSMutableArray *ret = [[NSMutableArray alloc] init];
- for (NSDictionary *parm in sourceArray) {
- [ret addObject:[parm stringValueForKey:@"userId"]];
- }
- resultBlock(ret);
- }
- else {
- resultBlock(nil);
- }
- } faliure:^(NSError * _Nonnull error) {
- resultBlock(nil);
- }];
- }
- #pragma mark -- userInfo
- - (void)getUserInfoWithUserId:(NSString *)userId completion:(void (^)(RCUserInfo *))completion {
- RCUserInfo *user = [RCUserInfo new];
- if (userId == nil || [userId length] == 0) {
- user.userId = userId;
- user.portraitUri = @"";
- user.name = @"";
- completion(user);
- return;
- }
- if (![userId isEqualToString:[RCIM sharedRCIM].currentUserInfo.userId]) {
- [KSNetworkingManager imUserFriendQueryDetail:KS_POST userId:userId success:^(NSDictionary * _Nonnull dic) {
- if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
-
- NSDictionary *userDic = [dic dictionaryValueForKey:@"data"];
- RCUserInfo *user = [[RCUserInfo alloc] initWithUserId:userId name:[userDic stringValueForKey:@"friendNickname"] portrait:[userDic stringValueForKey:@"friendAvatar"]];
- completion(user);
- }
- else {
- RCUserInfo *user = [RCUserInfo new];
- completion(user);
- }
- } faliure:^(NSError * _Nonnull error) {
- RCUserInfo *user = [RCUserInfo new];
- completion(user);
- }];
- }
- else {
- RCUserInfo *user = [[RCUserInfo alloc] initWithUserId:UserDefault(UIDKey) name:UserDefault(NicknameKey) portrait:UserDefault(AvatarUrlKey)];
- return completion(user);
- }
- }
- #pragma mark --- group userInfo
- - (void)getUserInfoWithUserId:(NSString *)userId inGroup:(NSString *)groupId completion:(void (^)(RCUserInfo *))completion {
- RCUserInfo *user = [RCUserInfo new];
- if (userId == nil || [userId length] == 0) {
- user.userId = userId;
- user.portraitUri = @"";
- user.name = @"";
- completion(user);
- return;
- }
- [KSNetworkingManager imGroupMemberQueryUser:KS_POST groupId:groupId userId:userId success:^(NSDictionary * _Nonnull dic) {
- if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
- NSDictionary *result = [dic dictionaryValueForKey:@"data"];
- NSString *name = [result stringValueForKey:@"nickname"];
- NSString *title = [result stringValueForKey:@"roleType"];
- if (![NSString isEmptyString:title]) {
- name = [NSString stringWithFormat:@"%@(%@)", name, title];
- }
- NSDictionary *userDic = [result dictionaryValueForKey:@"user"];
- RCUserInfo *user = [[RCUserInfo alloc] initWithUserId:userId name:name portrait:[userDic stringValueForKey:@"avatar"]];
- completion(user);
- }
- else {
- RCUserInfo *user = [RCUserInfo new];
- completion(user);
- }
- } faliure:^(NSError * _Nonnull error) {
- RCUserInfo *user = [RCUserInfo new];
- completion(user);
- }];
- }
- @end
|