-(void)downLoadFile:(VoodaProgressHUD *)downFileHud
{
请求服务器数据data
UserModel * user = [AppDelegatesharedAppDelegate].defaultUser;
NSString *str1=@"http://………………bs_image/bakfile/";
NSString *str2 = [NSStringstringWithFormat:@"%@.db",user.UserID];
NSString *str = [str1 stringByAppendingString:str2];
NSData *data = [mulFetcherDownloadFilegetFileHttpSynWithURLString:str];
if (data) {
UserModel * user = [AppDelegatesharedAppDelegate].defaultUser;
/*根据路径创建数据库和表*/
NSArray *filePath =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentPath = [filePath objectAtIndex:0];
NSString *dbFilePath = [documentPath stringByAppendingPathComponent:[NSStringstringWithFormat:@"IDO_%@.sqlite",user.UserID]];
NSString *newdbFilePath = [documentPathstringByAppendingPathComponent:[NSStringstringWithFormat:@"newIDO_%@.sqlite",user.UserID]];
BOOL B = [data writeToFile:newdbFilePath atomically:YES];
/*将下载下来的文件通过比对后写入数据库文件中*/
FMDatabase* database = [ FMDatabase databaseWithPath: dbFilePath];
FMDatabase* newdatabase = [ FMDatabase databaseWithPath: newdbFilePath];
if ( ![ database open ] )
{
return;
}
if ( ![ newdatabase open ] )
{
return;
}
// 查找表 sport_day_data
FMResultSet* newstepsSet = [newdatabaseexecuteQuery: @"select * from sport_day_data" ];
// 逐行读取数据
while ([newstepsSet next ] )
{
// 对应字段来取数据
NSString* oldsteps;
NSString* date = [newstepsSet stringForColumn: @"date" ];
FMResultSet* oldstepsSets=[databaseexecuteQuery:@"select steps from sport_day_data where date=?",date];
NSLog(@"historysteps is ---------%@",oldstepsSets);
while ([oldstepsSets next ] )
{
oldsteps = [oldstepsSets stringForColumn:@"steps" ];
NSLog(@"oldsteps is ---------%@",oldsteps);
}
NSString* newsteps = [newstepsSet stringForColumn: @"steps" ];
if(!oldsteps)
{
//今日运动把刷新来的数据重新插入数据库
VoodaDBModel *parameterModel=[[VoodaDBModelalloc]init];
parameterModel.date = date;
parameterModel.steps = newsteps;
parameterModel.total_distance = [newstepsSetstringForColumn: @"total_distance" ];
parameterModel.total_cal = [newstepsSetstringForColumn: @"total_cal" ];
parameterModel.goal_steps = [newstepsSetstringForColumn: @"goal_steps" ];
parameterModel.times = [newstepsSetstringForColumn: @"times" ];
parameterModel.hour_steps = [newstepsSetstringForColumn: @"hour_steps" ];
// VoodaDBOperation * Operation = [[VoodaDBOperation alloc] init];
// BOOL modelbool=[Operation saveCalculater:parameterModel];
NSString * proSqlStr = [NSStringstringWithFormat:@"INSERT INTO sport_day_data (date,hour_steps,total_cal,steps,total_distance,times,goal_steps) VALUES ('%@','%@','%@','%@','%@','%@','%@')",parameterModel.date,parameterModel.hour_steps,parameterModel.total_cal,parameterModel.steps,parameterModel.total_distance,parameterModel.times,parameterModel.goal_steps];
bool b = [database executeUpdate:proSqlStr];
}
else
{
if([oldsteps integerValue]< [newsteps integerValue])
{
//今日运动把刷新来的数据重新插入数据库
VoodaDBModel *parameterModel=[[VoodaDBModelalloc]init];
parameterModel.date = date;
parameterModel.steps = newsteps;
parameterModel.total_distance = [newstepsSetstringForColumn: @"total_distance" ];
parameterModel.total_cal = [newstepsSetstringForColumn: @"total_cal" ];
parameterModel.goal_steps = [newstepsSetstringForColumn: @"goal_steps" ];
parameterModel.times = [newstepsSetstringForColumn: @"times" ];
parameterModel.hour_steps = [newstepsSetstringForColumn: @"hour_steps" ];
// VoodaDBOperation * Operation = [[VoodaDBOperation alloc] init];
// BOOL modelbool=[Operation saveCalculater:parameterModel];
NSString *proSqlStr = [NSStringstringWithFormat:@"UPDATE sport_day_data SET date='%@',hour_steps='%@',total_cal='%@',steps='%@',total_distance='%@',times='%@',goal_steps='%@' where date='%@'",parameterModel.date,parameterModel.hour_steps,parameterModel.total_cal,parameterModel.steps,parameterModel.total_distance,parameterModel.times,parameterModel.goal_steps,parameterModel.date];
bool b = [database executeUpdate:proSqlStr];
}
}
NSLog(@"newsteps is ---------%@",newsteps);
}
// 查找表 sleep_day_data
FMResultSet* newsleepSet = [newdatabaseexecuteQuery: @"select * from sleep_day_data" ];
// 逐行读取数据
while ([newsleepSet next ] )
{
// 对应字段来取数据
NSString* oldsleep;
NSString* date = [newsleepSet stringForColumn: @"date" ];
FMResultSet* oldsleepSet=[databaseexecuteQuery:@"select all_time_min from sleep_day_data where date=?",date];
while ([oldsleepSet next ] )
{
oldsleep = [oldsleepSet stringForColumn:@"all_time_min" ];
NSLog(@"oldsleep is ---------%@",oldsleep);
NSLog(@"date is --date is-------%@",date);
}
NSString* newsleep = [newsleepSet stringForColumn: @"all_time_min" ];
if(!oldsleep)
{
//今日运动把刷新来的数据重新插入数据库
VoodaDBBleModel *parameterModel=[[VoodaDBBleModelalloc]init];
parameterModel.date = date;
parameterModel.end_sleep_min = newsleep;
parameterModel.awake_count = [newsleepSetstringForColumn: @"awake_count" ];
parameterModel.end_sleep_hour = [newsleepSetstringForColumn: @"end_sleep_hour" ];
parameterModel.deep_sleep = [newsleepSetstringForColumn: @"deep_sleep" ];
parameterModel.sleep_time_min = [newsleepSetstringForColumn: @"sleep_time_min" ];
parameterModel.deep_sleep = [newsleepSetstringForColumn: @"deep_sleep" ];
parameterModel.goal_time = [newsleepSetstringForColumn: @"goal_time" ];
parameterModel.start_sleep_hour = [newsleepSetstringForColumn: @"start_sleep_hour" ];
parameterModel.light_sleep = [newsleepSetstringForColumn: @"light_sleep" ];
parameterModel.start_sleep_min = [newsleepSetstringForColumn: @"start_sleep_min" ];
parameterModel.all_time_min = [newsleepSetstringForColumn: @"all_time_min" ];
NSString *proSqlStr = [NSStringstringWithFormat:@"INSERT INTO sleep_day_data (date,end_sleep_min,awake_count,end_sleep_hour,deep_sleep,sleep_time_min,goal_time,start_sleep_hour,light_sleep,start_sleep_min,all_time_min ) VALUES ('%@','%@','%@','%@','%@','%@','%@','%@','%@','%@','%@')",parameterModel.date,parameterModel.end_sleep_min,parameterModel.awake_count,parameterModel.end_sleep_hour,parameterModel.deep_sleep,parameterModel.sleep_time_min,parameterModel.goal_time,parameterModel.start_sleep_hour,parameterModel.light_sleep,parameterModel.start_sleep_min,parameterModel.all_time_min];
bool b = [database executeUpdate:proSqlStr];
}
else
{
if([oldsleep integerValue] == [newsleep integerValue])
{
//今日运动把刷新来的数据重新插入数据库
VoodaDBBleModel *parameterModel=[[VoodaDBBleModelalloc]init];
parameterModel.date = date;
parameterModel.end_sleep_min = newsleep;
parameterModel.awake_count = [newsleepSetstringForColumn: @"awake_count" ];
parameterModel.end_sleep_hour = [newsleepSetstringForColumn: @"end_sleep_hour" ];
parameterModel.deep_sleep = [newsleepSetstringForColumn: @"deep_sleep" ];
parameterModel.sleep_time_min = [newsleepSetstringForColumn: @"sleep_time_min" ];
parameterModel.deep_sleep = [newsleepSetstringForColumn: @"deep_sleep" ];
parameterModel.goal_time = [newsleepSetstringForColumn: @"goal_time" ];
parameterModel.start_sleep_hour = [newsleepSetstringForColumn: @"start_sleep_hour" ];
parameterModel.light_sleep = [newsleepSetstringForColumn: @"light_sleep" ];
parameterModel.start_sleep_min = [newsleepSetstringForColumn: @"start_sleep_min" ];
parameterModel.all_time_min = [newsleepSetstringForColumn: @"all_time_min" ];
NSString *proSqlStr = [NSStringstringWithFormat:@"UPDATE sleep_day_data SET date='%@',end_sleep_min='%@',awake_count='%@',end_sleep_hour='%@',deep_sleep='%@',sleep_time_min='%@',goal_time='%@',start_sleep_hour='%@',light_sleep='%@',start_sleep_min='%@',all_time_min='%@' where date='%@'",parameterModel.date,parameterModel.end_sleep_min,parameterModel.awake_count,parameterModel.end_sleep_hour,parameterModel.deep_sleep,parameterModel.sleep_time_min,parameterModel.goal_time,parameterModel.start_sleep_hour,parameterModel.light_sleep,parameterModel.start_sleep_min,parameterModel.all_time_min,parameterModel.date];
bool b = [database executeUpdate:proSqlStr];
}
}
NSLog(@"newsleep is ---------%@",newsleep);
}
downFileHud.mode = MBProgressHUDModeText;
downFileHud.labelText = NSLocalizedString(@"数据合并完成,正在上传",nil);
[downFileHud hide:NO];
[downFileHud show:YES];
[self performSelector:@selector(uploadDbFile:)withObject:downFileHud afterDelay:0.5];
}else
{
// downFileHud.mode = MBProgressHUDModeText;
// downFileHud.labelText = NSLocalizedString(@"同步失败",nil);
// [downFileHud hide:NO];
// [downFileHud show:YES];
// [downFileHud hide:YES afterDelay:1.0];
}
}