180 lines
6.5 KiB
Objective-C
180 lines
6.5 KiB
Objective-C
//
|
|
// IfishUserObsever.m
|
|
// Ifish
|
|
//
|
|
// Created by imac on 17/3/3.
|
|
// Copyright © 2017年 lianlian. All rights reserved.
|
|
//
|
|
|
|
#import "IfishUserObsever.h"
|
|
#import "IfishLevelUpView.h"
|
|
#import "IfishHelperUtils.h"
|
|
#import "IfishUserDefaultHelper.h"
|
|
#import "IfishGoldAndExpTostView.h"
|
|
#import "IifishGetGoldTaskHelper.h"
|
|
#import "IifshGetExpHelper.h"
|
|
@implementation IfishUserObsever
|
|
+ (IfishUserObsever *)sharedInstance
|
|
{
|
|
static IfishUserObsever *sharedInstace = nil;
|
|
static dispatch_once_t onceToken;
|
|
dispatch_once(&onceToken, ^{
|
|
|
|
sharedInstace = [[self alloc] init];
|
|
sharedInstace.userAsset = [dataContorl getAllIfishUserAsset];
|
|
});
|
|
|
|
return sharedInstace;
|
|
}
|
|
|
|
//备用KVO
|
|
-(void)userAssetAddObserver
|
|
{
|
|
//self.userAsset = [dataContorl getAllIfishUserAsset];
|
|
//[self.userAsset addObserver:self forKeyPath:@"gradeNum" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];
|
|
|
|
}
|
|
|
|
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
|
|
if([keyPath isEqualToString:@"gradeNum"])
|
|
{
|
|
//NSString *newValue = change[@"new"];
|
|
//BOOL isUP = [IfishHelperUtils diagnoseLevelIsUp:newValue];
|
|
//if (isUP) {
|
|
// [self addAdViewWith:newValue];
|
|
//}
|
|
|
|
NSLog(@"change**************%@",change);
|
|
}
|
|
}
|
|
|
|
-(void)showLevelUpWith:(NSString*)newValue{
|
|
|
|
IfishLevelUpView *levelUpView =[[IfishLevelUpView alloc] initWithFrame:[UIApplication sharedApplication].keyWindow.bounds];
|
|
levelUpView.imgName = [IfishHelperUtils getLeveloacalImgName:newValue];
|
|
|
|
[[UIApplication sharedApplication].keyWindow addSubview:levelUpView];
|
|
}
|
|
|
|
-(void)dealloc{
|
|
//[self.userAsset removeObserver:self forKeyPath:@"gradeNum"];
|
|
}
|
|
|
|
//增加经验
|
|
-(void)xinZengJingYanZhi:(NSString *)ruleTyp addType:(NSString*)addType
|
|
{
|
|
// 每日加经验接口是否调用 一次性加经验不做处理直接请求
|
|
|
|
if ([addType isEqualToString:IFISHADDEXPTYPE0]) {
|
|
BOOL iscanAdd = [IfishHelperUtils dignoseIsAddExpToday:ruleTyp];
|
|
if (!iscanAdd) {
|
|
return;
|
|
}
|
|
}
|
|
|
|
NSString *userId =[dataContorl dataControlGetUserIdInfo];
|
|
__weak typeof (self) weakself = self;
|
|
[AFHttpTool addLevelValueWith:userId ruleType:ruleTyp success:^(id response) {
|
|
NSDictionary *reDic=[NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers error:nil];
|
|
|
|
if ([reDic[@"result"] isEqualToString:@"100"]){
|
|
NSDictionary *data=reDic[@"data"];
|
|
|
|
if (![data isKindOfClass:[NSNull class]]&&data) {
|
|
IfishUserAsset *userAsset = [[IfishUserAsset alloc] initWithDict:data];
|
|
[dataContorl resetUserAsset:userAsset];
|
|
//每日加经验 完成后 mark 一下
|
|
if ([addType isEqualToString:IFISHADDEXPTYPE0]) {
|
|
[IifshGetExpHelper everyDayExpMark:userAsset.lastLoginDate withRuleType:ruleTyp];
|
|
}
|
|
|
|
NSString *oldGradeNum = [IfishUserDefaultHelper getDefualtGradNum];
|
|
NSString *gradeNum = userAsset.gradeNum;
|
|
NSLog(@"oldGradeNum%@",oldGradeNum);
|
|
|
|
//加经验 tost
|
|
NSString *addvalue = [NSString stringWithFormat:@"%ld",(long)userAsset.addValue];
|
|
//一次性任务 addValue 0 不show
|
|
if (userAsset.addValue !=0) {
|
|
[weakself showAddExp:addvalue];
|
|
}
|
|
|
|
if ([oldGradeNum intValue]<[gradeNum intValue]){
|
|
[weakself showLevelUpWith:gradeNum];
|
|
[IfishUserDefaultHelper chageLevlelGrad:gradeNum];
|
|
}
|
|
}
|
|
}else{
|
|
[[UIApplication sharedApplication].keyWindow makeToast:@"添加经验请求出错"];
|
|
}
|
|
|
|
} failure:^(NSError *err) {
|
|
|
|
}];
|
|
}
|
|
|
|
-(void)addGoldWith:(NSString *)ruleType addType:(NSString*)addType
|
|
{
|
|
//判断是否今天任务 每日任务判断 是否完成 一次性任务不做处理直接请求
|
|
if ([addType isEqualToString:IFISHADDGOLDTYPE0]) {
|
|
BOOL iscanAdd = [IfishHelperUtils dignoseIsRequestDataToday:ruleType];
|
|
if (!iscanAdd) {
|
|
return;
|
|
}
|
|
}
|
|
|
|
NSString *userId =[dataContorl dataControlGetUserIdInfo];
|
|
__weak typeof (self) weakself = self;
|
|
[AFHttpTool addGoldValue:userId ruleType:ruleType success:^(id response) {
|
|
NSDictionary *reDic=[NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers error:nil];
|
|
|
|
if ([reDic[@"result"] isEqualToString:@"100"]){
|
|
NSDictionary *data=reDic[@"data"];
|
|
if (![data isKindOfClass:[NSNull class]]&&data) {
|
|
|
|
IfishUserAsset *userAsset = [[IfishUserAsset alloc] initWithDict:data];
|
|
[dataContorl resetUserAsset:userAsset];
|
|
//每日任务 完成后 mark 一下 保证每日一次
|
|
NSString *date = userAsset.lastLoginDate;
|
|
if ([addType isEqualToString:IFISHADDGOLDTYPE0]) {
|
|
[IifishGetGoldTaskHelper everyDayTaskMark:date withRuleType:ruleType];
|
|
}
|
|
|
|
//加金币 tost
|
|
NSString *addvalue = [NSString stringWithFormat:@"%ld",(long)userAsset.addValue];
|
|
// addValue 0 不show
|
|
if (userAsset.addValue !=0) {
|
|
|
|
[weakself showAddGoldWith:addvalue];
|
|
//更新任务列表数据 签到的数据在签到接口中处理
|
|
[IfishHelperUtils updateTask:ruleType];
|
|
}
|
|
}
|
|
|
|
}else{
|
|
[[UIApplication sharedApplication].keyWindow makeToast:@"添加金币请求出错"];
|
|
}
|
|
} failure:^(NSError *err) {
|
|
|
|
}];
|
|
}
|
|
|
|
|
|
|
|
-(void)showAddGoldWith:(NSString *)addValue
|
|
{
|
|
IfishGoldAndExpTostView *levelUpView =[[IfishGoldAndExpTostView alloc] initWithFrame:[UIApplication sharedApplication].keyWindow.bounds];
|
|
[[UIApplication sharedApplication].keyWindow addSubview:levelUpView];
|
|
[levelUpView showGoldToastView:addValue];
|
|
|
|
}
|
|
|
|
-(void)showAddExp:(NSString *)addValue
|
|
{
|
|
|
|
IfishGoldAndExpTostView *levelUpView =[[IfishGoldAndExpTostView alloc] initWithFrame:[UIApplication sharedApplication].keyWindow.bounds];
|
|
[[UIApplication sharedApplication].keyWindow addSubview:levelUpView];
|
|
[levelUpView showExpTostView:addValue];
|
|
}
|
|
@end
|