| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349 |
- //
- // MODataManager.m
- // MiMoLive
- //
- // Created by SuperC on 2023/10/15.
- //
- #import "MODataManager.h"
- #import "LKDBHelper.h"
- @implementation MODataManager
- + (void)saveUserInfo:(id)data{
-
- NSDictionary *baseDict = data[@"data"];
-
- MOMeDataInfo *baseModel = [MOMeDataInfo modelObjectWithDictionary:baseDict];
-
- [[MODataCache sharedYYCache] setObject:baseModel forKey:kMineUserInfo];
- [MOSvgaSourceManage shareManager].myDataInfo = baseModel;
-
- //token
- //请求token
- NSString *tokenString = [self objectOrNilForKey:@"token" fromDictionary:baseDict];
- if(tokenString.length > 0){
- [[NSUserDefaults standardUserDefaults] setObject:tokenString forKey:kToken];
- }
-
- //IM Token
- NSString *imTokenString = [self objectOrNilForKey:@"imToken" fromDictionary:baseDict];
- if(imTokenString.length > 0){
- [[NSUserDefaults standardUserDefaults] setObject:imTokenString forKey:kImToken];
- }
-
- //Tencent IM Token
- NSString *t_imTokenString = [self objectOrNilForKey:@"timToken" fromDictionary:baseDict];
- if(t_imTokenString.length > 0){
- [[NSUserDefaults standardUserDefaults] setObject:t_imTokenString forKey:kTent_ImToken];
-
- //是否只使用 Tim (腾讯IM)
- BOOL isUseTim = [[self objectOrNilForKey:@"onlyUseTim" fromDictionary:baseDict] boolValue];
- [[NSUserDefaults standardUserDefaults] setBool:isUseTim forKey:kOnlyUseTimIM];
- }
-
- //Level
- NSInteger level = [[self objectOrNilForKey:@"level" fromDictionary:baseDict] integerValue];
- [[NSUserDefaults standardUserDefaults] setObject:@(level) forKey:kUserLevel];
-
- //profile
- NSDictionary *profileDict = baseDict[@"profile"];
- [MODataManager updataUserProfileWith:profileDict AndNeedSynchronize:NO];
-
- //vip
- NSDictionary *vipDict = baseDict[@"vip"];
- [MODataManager updateVipInfoWith:vipDict AndNeedSynchronize:NO];
-
- //status
- NSDictionary *statusDict = baseDict[@"status"];
- [MODataManager updataUserInfoBoolWith:statusDict AndNeedSynchronize:NO];
-
- //wallet
- NSDictionary *walletDict = baseDict[@"wallet"];
- [MODataManager updataWalletInfoWith:walletDict AndNeedSynchronize:NO];
-
- [[NSUserDefaults standardUserDefaults] synchronize];
-
- //登录数据缓存到YYCache
- [[MODataCache sharedYYCache] setObject:baseDict forKey:kUserInfo];
- }
- + (void)updataWalletInfoWith:(NSDictionary *)dict AndNeedSynchronize:(BOOL)synchronize{
- NSInteger consumeDiamond = [[self objectOrNilForKey:@"consumeDiamond" fromDictionary:dict] integerValue];
- [[NSUserDefaults standardUserDefaults] setObject:@(consumeDiamond) forKey:kUserConsumeDiamond];
- if(synchronize){
- [[NSUserDefaults standardUserDefaults] synchronize];
- }
- }
- + (void)updateVipInfoWith:(NSDictionary *)dict AndNeedSynchronize:(BOOL)synchronize{
- NSInteger type = [[self objectOrNilForKey:@"type" fromDictionary:dict] integerValue];
- [[NSUserDefaults standardUserDefaults] setObject:@(type) forKey:kUserVipType];
-
- NSInteger expireTime = [[self objectOrNilForKey:@"expireTime" fromDictionary:dict] integerValue];
- [[NSUserDefaults standardUserDefaults] setObject:@(expireTime) forKey:kUserVipExpirTime];
-
- if(synchronize){
- [[NSUserDefaults standardUserDefaults] synchronize];
- }
- }
- + (void)updataUserProfileWith:(NSDictionary *)profileDict AndNeedSynchronize:(BOOL)synchronize{
- //头像
- NSString *avatarString = [self objectOrNilForKey:@"avatar" fromDictionary:profileDict];
- if(avatarString.length > 0){
- [[NSUserDefaults standardUserDefaults] setObject:avatarString forKey:kAvatar];
- }
-
- //用户ID
- NSString *userIdString = [self objectOrNilForKey:@"id" fromDictionary:profileDict];
- if(userIdString.length > 0){
- [[NSUserDefaults standardUserDefaults] setObject:userIdString forKey:kUserId];
- }
-
- //用户No
- NSString *userNoString = [self objectOrNilForKey:@"userNo" fromDictionary:profileDict];
- if(userNoString.length > 0){
- [[NSUserDefaults standardUserDefaults] setObject:userNoString forKey:kUserNo];
- }
-
- //用户昵称
- NSString *nicknameString = [self objectOrNilForKey:@"nickname" fromDictionary:profileDict];
- if(nicknameString.length > 0){
- [[NSUserDefaults standardUserDefaults] setObject:nicknameString forKey:kNickName];
- }
-
- //用户性别
- NSInteger gender = [[self objectOrNilForKey:@"gender" fromDictionary:profileDict] integerValue];
- [[NSUserDefaults standardUserDefaults] setObject:@(gender) forKey:kGender];
-
- //声网ID
- NSInteger agoraId = [[self objectOrNilForKey:@"agoraId" fromDictionary:profileDict] integerValue];
- [[NSUserDefaults standardUserDefaults] setObject:@(agoraId) forKey:kAgoraId];
-
- //装扮
- NSDictionary *adornment = profileDict[@"adornment"];
-
- //气泡
- NSString *bubbleString = [self objectOrNilForKey:@"bubble" fromDictionary:adornment];
- if(bubbleString.length > 0){
- [[NSUserDefaults standardUserDefaults] setObject:bubbleString forKey:kUserBubble];
- }
- else{
- [[NSUserDefaults standardUserDefaults] setObject:@"" forKey:kUserBubble];
- }
-
- //头饰
- NSString *headdressString = [self objectOrNilForKey:@"headgearRes" fromDictionary:adornment];
- if(headdressString.length > 0){
- [[NSUserDefaults standardUserDefaults] setObject:headdressString forKey:kUserHeaddress];
- }
- else{
- [[NSUserDefaults standardUserDefaults] setObject:@"" forKey:kUserHeaddress];
- }
-
- //头饰类型(0=无资源文件,1=动态webp,2=SVGA,3=VAP)
- NSInteger headgearType = [[self objectOrNilForKey:@"headgearType" fromDictionary:adornment] integerValue];
- [[NSUserDefaults standardUserDefaults] setObject:@(headgearType) forKey:kUserHeaddressType];
-
- //座驾
- NSInteger enterBar = [[self objectOrNilForKey:@"enterBar" fromDictionary:adornment] integerValue];
- [[NSUserDefaults standardUserDefaults] setObject:@(enterBar) forKey:kUserEnterBar];
-
- //装饰类 - 所有装饰Code
- NSDictionary *dressingDict = profileDict[@"dressing"];
- [self updateAllDressingCodeWith:dressingDict];
-
- //是否神秘人
- BOOL isMysterious = [[self objectOrNilForKey:@"mysterious" fromDictionary:profileDict] boolValue];
- [[NSUserDefaults standardUserDefaults] setBool:isMysterious forKey:kIsMysterious];
-
-
- if(synchronize){
- [[NSUserDefaults standardUserDefaults] synchronize];
- }
- }
- + (void)updateAllDressingCodeWith:(NSDictionary *)dict{
- //气泡
- NSInteger bubble = [[self objectOrNilForKey:@"bubble" fromDictionary:dict] integerValue];
- [[NSUserDefaults standardUserDefaults] setObject:@(bubble) forKey:kUserBubbleCode];
-
- //入场座驾Code
- NSInteger enterBar = [[self objectOrNilForKey:@"entryBar" fromDictionary:dict] integerValue];
- [[NSUserDefaults standardUserDefaults] setObject:@(enterBar) forKey:kUserEnterBar];
-
- //名片框 Code
- NSInteger cardFrame = [[self objectOrNilForKey:@"cardFrame" fromDictionary:dict] integerValue];
- [[NSUserDefaults standardUserDefaults] setObject:@(cardFrame) forKey:kCardFrameCode];
-
- //进场飘屏 Code
- NSInteger enterFloating = [[self objectOrNilForKey:@"enterFloating" fromDictionary:dict] integerValue];
- [[NSUserDefaults standardUserDefaults] setObject:@(enterFloating) forKey:kEnterFloatingCode];
-
- //打赏横幅 Code
- NSInteger rewardBanner = [[self objectOrNilForKey:@"rewardBanner" fromDictionary:dict] integerValue];
- [[NSUserDefaults standardUserDefaults] setObject:@(rewardBanner) forKey:kRewardBannerCode];
-
- //连麦边框 Code
- NSInteger linkMicFrame = [[self objectOrNilForKey:@"linkMicFrame" fromDictionary:dict] integerValue];
- [[NSUserDefaults standardUserDefaults] setObject:@(linkMicFrame) forKey:kLinkMicFrameCode];
-
- //直播弹幕 Code
- NSInteger liveBarrage = [[self objectOrNilForKey:@"liveBarrage" fromDictionary:dict] integerValue];
- [[NSUserDefaults standardUserDefaults] setObject:@(liveBarrage) forKey:kLiveBarrageCode];
- }
- + (void)updataUserInfoBoolWith:(NSDictionary *)dict AndNeedSynchronize:(BOOL)synchronize{
- //是否绑定手机
- BOOL isHaveMobile = [[self objectOrNilForKey:@"mobile" fromDictionary:dict] boolValue];
- [[NSUserDefaults standardUserDefaults] setBool:isHaveMobile forKey:kIsMobile];
-
- //是否主播
- BOOL isAnchor = [[self objectOrNilForKey:@"anchor" fromDictionary:dict] boolValue];
- [[NSUserDefaults standardUserDefaults] setBool:isAnchor forKey:kIsAnchor];
-
- //是否拥有工会
- BOOL isHaveGuild = [[self objectOrNilForKey:@"guild" fromDictionary:dict] boolValue];
- [[NSUserDefaults standardUserDefaults] setBool:isHaveGuild forKey:kIsHaveGuild];
-
- //是否创建粉丝团
- BOOL isCreateClub = [[self objectOrNilForKey:@"fansClub" fromDictionary:dict] boolValue];
- [[NSUserDefaults standardUserDefaults] setBool:isCreateClub forKey:kIsCreatFansClub];
-
- //关闭自动加入粉丝团
- BOOL closeFansClub = [[self objectOrNilForKey:@"joinFansClub" fromDictionary:dict] boolValue];
- [[NSUserDefaults standardUserDefaults] setBool:closeFansClub forKey:kCloseJoinFansClub];
-
- //是否享受直播新人打折
- BOOL liveDiscount = [[self objectOrNilForKey:@"liveDiscount" fromDictionary:dict] boolValue];
- [[NSUserDefaults standardUserDefaults] setBool:liveDiscount forKey:kLiveDiscount];
-
- if(synchronize){
- [[NSUserDefaults standardUserDefaults] synchronize];
- }
- }
- #pragma mark -- 删除用户信息 --
- ///删除关键信息, 一般用于退出登录
- + (void)deleteUserDefaultsExceptApp{
- NSArray *languaArr = (NSArray *)[[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];
-
- NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
- // 删除UserDefaults所有数据
- [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
-
- if(languaArr){
- if(languaArr.count > 0){
- [[NSUserDefaults standardUserDefaults] setObject:languaArr forKey:@"AppleLanguages"];
- }
- }
-
- [[NSUserDefaults standardUserDefaults] synchronize];
-
- }
- + (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict
- {
- id object = [dict objectForKey:aKey];
- return [object isEqual:[NSNull null]] ? nil : object;
- }
- #pragma mark - FMDB - Save
- + (void)saveUserBaseWith:(MOUserBase *)model{
-
- NSString *currentUserId = GetUserId;
- if(currentUserId.length == 0){
- return;
- }
-
- model.myUserId = currentUserId;
- NSString *tableName = [NSString stringWithFormat:@"MOUserBase_%@",currentUserId];
-
- LKDBHelper *helper = [MOUserBase getUsingLKDBHelper];
- model.db_tableName = tableName;
-
- LKDBQueryParams *queryParams = [LKDBQueryParams new];
- queryParams.tableName = tableName;
- queryParams.toClass = [MOUserBase class];
- queryParams.whereDic = @{@"model_id":model.model_id};
- queryParams.count = 1;
- NSMutableArray *searchArr = [helper searchWithParams:queryParams];
- if(searchArr.count == 0){
- BOOL result = [model saveToDB];
-
- if(!result){
- MOLogV(@"savePersonListWith 存储失败");
- }
- }
- else{
- BOOL result = [helper updateToDB:model where:nil];
- if(!result){
- MOLogV(@"savePersonListWith 更新失败");
- }
- }
-
- }
- #pragma mark - FMDB - Search
- //同步查询自己所有的好友
- + (void)searchAllUserBaseCompleted:(void(^)(NSArray<MOUserBase *> *data))completedCallback{
- NSString *currentUserId = GetUserId;
- if(currentUserId.length == 0){
- return;
- }
-
- NSString *tableName = [NSString stringWithFormat:@"MOUserBase_%@",currentUserId];
- NSString *where = [NSString stringWithFormat:@"SELECT * FROM %@",tableName];
- NSMutableArray *searchArr = [MOUserBase searchWithSQL:where];
- completedCallback(searchArr);
- }
- + (MOUserBase *)searchMOUserBaseWith:(NSString *)userId{
-
- if(userId.length == 0){
- return nil;
- }
- NSString *currentUserId = GetUserId;
- if(currentUserId.length == 0){
- return nil;
- }
-
- MOUserBase *model = [[MOUserBase alloc] init];
- model.myUserId = currentUserId;
- NSString *tableName = [NSString stringWithFormat:@"MOUserBase_%@",currentUserId];
-
- LKDBHelper *helper = [MOUserBase getUsingLKDBHelper];
- model.db_tableName = tableName;
- model.model_id = userId;
-
- LKDBQueryParams *queryParams = [LKDBQueryParams new];
- queryParams.tableName = tableName;
- queryParams.toClass = [MOUserBase class];
- queryParams.whereDic = @{@"model_id":model.model_id};
- queryParams.count = 1;
- NSMutableArray *searchArr = [helper searchWithParams:queryParams];
- if(searchArr.count > 0){
- return searchArr.lastObject;
- }
-
- return nil;
- }
- + (MOUserProfile *)searchMOUserProfileWith:(NSString *)userId{
-
- if(userId.length == 0){
- return nil;
- }
-
- NSMutableArray *searchArr = [MOUserProfile searchWithWhere:@{@"id":userId}];
- if(searchArr.count > 0){
- return searchArr.lastObject;
- }
-
- return nil;
- }
- @end
|