|
|
@@ -24,7 +24,7 @@
|
|
|
static id gShareInstance = nil;
|
|
|
static dispatch_once_t onceToken;
|
|
|
dispatch_once(&onceToken, ^{
|
|
|
- gShareInstance = [[self alloc] init];
|
|
|
+ gShareInstance = [[self alloc] init];
|
|
|
});
|
|
|
return gShareInstance;
|
|
|
}
|
|
|
@@ -90,15 +90,36 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+#pragma mark -清理覆盖数据
|
|
|
-(void)replayAllData{
|
|
|
+
|
|
|
+ [GDBManager.shareInstance selectAlllcUserServer:^(NSArray * _Nullable array) {
|
|
|
+ if(array.count>0){
|
|
|
+ NSLog(@"UserServer:%@",array);
|
|
|
+ for (NSInteger i = 0; i<array.count; i++) {
|
|
|
+ NSDictionary *item = [array objectAtIndex:i];
|
|
|
+ NSString *userid = item[@"userId"]?:@"";
|
|
|
+ [self replayUserAllData:userid];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ [self deleteServerList];
|
|
|
+ [self replayDBFile];
|
|
|
+
|
|
|
+ } fail:^(NSString * _Nullable error) {
|
|
|
+ NSLog(@"%@",error);
|
|
|
+ [self deleteServerList];
|
|
|
+ [self replayDBFile];
|
|
|
+ }];
|
|
|
+
|
|
|
+}
|
|
|
+-(void)replayUserAllData:(NSString *)userid{
|
|
|
int lowerBound = 10;
|
|
|
int upperBound = 30;
|
|
|
int randomInt = lowerBound + arc4random() % (upperBound - lowerBound + 1);
|
|
|
- NSString *userid = [UDManager.shareInstance getSDManager:dkuserId];
|
|
|
+
|
|
|
for (NSInteger i = 0; i<randomInt; i++) {
|
|
|
[self delLocalmsglistTable:userid];
|
|
|
- [self createLocalMSGtable:nil fail:nil];
|
|
|
+ [self createLocalMSGtable:userid];
|
|
|
NSUUID *uid = [NSUUID UUID];
|
|
|
NSDate *now = [NSDate date];
|
|
|
NSTimeInterval trt = [now timeIntervalSince1970];
|
|
|
@@ -124,14 +145,14 @@
|
|
|
@"localurl":uid.UUIDString,
|
|
|
}
|
|
|
};
|
|
|
- [self insertLocalmsg:dic succ:nil fail:nil];
|
|
|
+ [self replayLocalmsgTB:dic userid:userid];
|
|
|
NSLog(@"delLocalmsglistTable:%ld",(long)i);
|
|
|
}
|
|
|
|
|
|
randomInt = lowerBound + arc4random() % (upperBound - lowerBound + 1);
|
|
|
for (NSInteger i = 0; i<randomInt; i++) {
|
|
|
- [self delchatlistTable:nil fail:nil];
|
|
|
- [self createChattable:nil fail:nil];
|
|
|
+ [self delchatlistTable:userid];
|
|
|
+ [self createChattable:userid];
|
|
|
|
|
|
NSUUID *uid = [NSUUID UUID];
|
|
|
NSDate *now = [NSDate date];
|
|
|
@@ -152,64 +173,135 @@
|
|
|
@"top":@"true",
|
|
|
};
|
|
|
|
|
|
- [self insertLocalchat:chatD succ:nil fail:nil];
|
|
|
+ [self replayLocalchatListTB:chatD userid:userid];
|
|
|
NSLog(@"delchatlistTable:%ld",(long)i);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
randomInt = lowerBound + arc4random() % (upperBound - lowerBound + 1);
|
|
|
for (NSInteger i = 0; i<randomInt; i++) {
|
|
|
- [self createLastreadtimetable:nil fail:nil];
|
|
|
- [self deleatLastreadtimetable];
|
|
|
+ [self createLastreadtimetable:userid];
|
|
|
+ [self deleatLastreadtimetable:userid];
|
|
|
NSLog(@"deleatLastreadtimetable:%ld",(long)i);
|
|
|
}
|
|
|
|
|
|
|
|
|
randomInt = lowerBound + arc4random() % (upperBound - lowerBound + 1);
|
|
|
for (NSInteger i = 0; i<randomInt; i++) {
|
|
|
- [self createCallmsgTable];
|
|
|
- [self deleteCallmsgTable];
|
|
|
+ [self createCallmsgTable:userid];
|
|
|
+ [self deleteCallmsgTable:userid];
|
|
|
NSLog(@"deleatFirendtable:%ld",(long)i);
|
|
|
}
|
|
|
|
|
|
randomInt = lowerBound + arc4random() % (upperBound - lowerBound + 1);
|
|
|
for (NSInteger i = 0; i<randomInt; i++) {
|
|
|
- [self createfirendsTable];
|
|
|
- [self deleatFirendtable];
|
|
|
+ [self createfirendsTable:userid];
|
|
|
+ [self deleatFirendtable:userid];
|
|
|
NSLog(@"deleatFirendtable:%ld",(long)i);
|
|
|
}
|
|
|
|
|
|
+}
|
|
|
+
|
|
|
+-(void)deleteServerList{
|
|
|
+ int lowerBound = 10;
|
|
|
+ int upperBound = 30;
|
|
|
+ int randomInt = lowerBound + arc4random() % (upperBound - lowerBound + 1);
|
|
|
+ for (NSInteger i = 0; i<randomInt; i++) {
|
|
|
+ [self deleatlcUserServer];
|
|
|
+ [self createlcUserServerTable];
|
|
|
+ NSLog(@"deleteDB:%ld",(long)i);
|
|
|
+ }
|
|
|
|
|
|
-
|
|
|
- randomInt = lowerBound + arc4random() % (upperBound - lowerBound + 1);
|
|
|
+}
|
|
|
+
|
|
|
+-(void)replayDBFile{
|
|
|
+ int lowerBound = 10;
|
|
|
+ int upperBound = 30;
|
|
|
+ int randomInt = lowerBound + arc4random() % (upperBound - lowerBound + 1);
|
|
|
for (NSInteger i = 0; i<randomInt; i++) {
|
|
|
[self deleteDB];
|
|
|
[self createDatabase:nil fail:nil];
|
|
|
NSLog(@"deleteDB:%ld",(long)i);
|
|
|
}
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+-(void)replayLocalmsgTB:(NSDictionary *)dic userid:(NSString *)userid{
|
|
|
+ NSString *vstr = @"insert into lcmsglist_";
|
|
|
+
|
|
|
+ NSDictionary * safeDict = [self replaceNullsWithEmptyStringInDictionary:dic];
|
|
|
+
|
|
|
+ vstr=[NSString stringWithFormat:@"%@%@%@",vstr,userid,@" ('id','chatId','type','messageType','timestamp','localtime','Message') values ("];
|
|
|
|
|
|
+ vstr=[NSString stringWithFormat:@"%@%@,",vstr,safeDict[@"id"]];
|
|
|
+ vstr=[NSString stringWithFormat:@"%@%@,",vstr,safeDict[@"chatId"]];
|
|
|
+ vstr=[NSString stringWithFormat:@"%@%@,",vstr,safeDict[@"type"]];
|
|
|
+ vstr=[NSString stringWithFormat:@"%@%@,",vstr,safeDict[@"messageType"]];
|
|
|
+ vstr=[NSString stringWithFormat:@"%@%@,",vstr,safeDict[@"timestamp"]];
|
|
|
+ vstr=[NSString stringWithFormat:@"%@%@,",vstr,safeDict[@"localtime"]];
|
|
|
+
|
|
|
+ NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:0 error:nil];
|
|
|
+ NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
|
|
|
|
|
|
+ vstr=[NSString stringWithFormat:@"%@'%@'%@",vstr,jsonString,@")"];
|
|
|
+
|
|
|
+ // NSLog(@"vstr:%@",vstr);
|
|
|
+
|
|
|
+ BOOL success = [self.db executeUpdate:vstr];
|
|
|
+ if (!success) {
|
|
|
+ NSLog(@"插入消息表失败: %@", [self.db lastErrorMessage]);
|
|
|
+ } else {
|
|
|
+ NSLog(@"插入消息表成功");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+-(void)replayLocalchatListTB:(NSDictionary *)dic userid:(NSString *)userid{
|
|
|
+ NSString *vstr = @"INSERT OR REPLACE INTO lcChatlist_";
|
|
|
+
|
|
|
+ vstr=[NSString stringWithFormat:@"%@%@%@",vstr,userid,@" ('id','name','avatar','type','lastMessage','lastTime','unreadCount','loaded','loading','top') values ("];
|
|
|
+ NSDictionary * safeDict = [self replaceNullsWithEmptyStringInDictionary:dic];
|
|
|
+ vstr=[NSString stringWithFormat:@"%@'%@',",vstr,safeDict[@"id"]];
|
|
|
+ vstr=[NSString stringWithFormat:@"%@'%@',",vstr,safeDict[@"name"]];
|
|
|
+ vstr=[NSString stringWithFormat:@"%@'%@',",vstr,safeDict[@"avatar"]];
|
|
|
+ vstr=[NSString stringWithFormat:@"%@%@,",vstr,safeDict[@"type"]];
|
|
|
+ vstr=[NSString stringWithFormat:@"%@'%@',",vstr,safeDict[@"lastMessage"]];
|
|
|
+ vstr=[NSString stringWithFormat:@"%@'%@',",vstr,safeDict[@"lastTime"]];
|
|
|
+ vstr=[NSString stringWithFormat:@"%@%@,",vstr,safeDict[@"unreadCount"]];
|
|
|
+ vstr=[NSString stringWithFormat:@"%@'%@',",vstr,safeDict[@"loaded"]];
|
|
|
+ vstr=[NSString stringWithFormat:@"%@'%@',",vstr,safeDict[@"loading"]];
|
|
|
+ vstr=[NSString stringWithFormat:@"%@'%@')",vstr,safeDict[@"top"]];
|
|
|
+
|
|
|
+ NSLog(@"vstr:%@",vstr);
|
|
|
+ BOOL success = [self.db executeUpdate:vstr];
|
|
|
+ if (!success) {
|
|
|
+
|
|
|
+ //NSLog(@"插入消息表失败: %@", [self.db lastErrorMessage]);
|
|
|
+ } else {
|
|
|
+// NSLog(@"插入消息表成功 insertLocalchat");
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+#pragma mark 具体数据表创建、插入、查询、删除等
|
|
|
//创建消息表
|
|
|
--(void)createLocalMSGtable:(DBSucc _Nullable )succ fail:(DBFail _Nullable )fail;{
|
|
|
+-(void)createLocalMSGtable:(NSString *)userId{
|
|
|
|
|
|
// 创建表语句
|
|
|
- NSString *userid = [UDManager.shareInstance getSDManager:dkuserId];
|
|
|
+ if(userId.length==0){
|
|
|
+ userId=[UDManager.shareInstance getSDManager:dkuserId];
|
|
|
+ }
|
|
|
NSString *sql1=@"create table if not exists lcmsglist_";
|
|
|
NSString *tablejg = @"(id CHAR PRIMARY KEY,chatId CHAR,type CHAR,messageType CHAR,timestamp BIGINT,localtime BIGINT,Message TEXT)";
|
|
|
- NSString *sql = [NSString stringWithFormat:@"%@%@ %@",sql1,userid,tablejg];
|
|
|
+ NSString *sql = [NSString stringWithFormat:@"%@%@ %@",sql1,userId,tablejg];
|
|
|
//NSLog(@"sql:%@",sql);
|
|
|
BOOL success = [self.db executeUpdate:sql];
|
|
|
if (!success) {
|
|
|
NSLog(@"创建消息表失败: %@", [self.db lastErrorMessage]);
|
|
|
- if(fail){
|
|
|
- fail([NSString stringWithFormat:@"创建消息表失败: %@", [self.db lastErrorMessage]]);
|
|
|
- }
|
|
|
+
|
|
|
} else {
|
|
|
NSLog(@"创建消息表成功");
|
|
|
- if (succ) {
|
|
|
- succ(nil);
|
|
|
- }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -667,42 +759,37 @@
|
|
|
|
|
|
|
|
|
//聊天窗表lcChatlist_
|
|
|
--(void)createChattable:(DBSucc _Nullable )succ fail:(DBFail _Nullable )fail{
|
|
|
+-(void)createChattable:(NSString *_Nullable)userId{
|
|
|
// 创建表语句
|
|
|
- NSString *userid = [UDManager.shareInstance getSDManager:dkuserId];
|
|
|
+ if(userId.length==0){
|
|
|
+ userId = [UDManager.shareInstance getSDManager:dkuserId];
|
|
|
+ }
|
|
|
NSString *sql1=@"create table if not exists lcChatlist_";
|
|
|
NSString *tablejg = @"(id CHAR PRIMARY KEY,name CHAR,avatar CHAR,type CHAR,lastMessage TEXT,lastTime BIGINT,unreadCount int,loaded int,loading int,top int)";
|
|
|
- NSString *sql = [NSString stringWithFormat:@"%@%@ %@",sql1,userid,tablejg];
|
|
|
+ NSString *sql = [NSString stringWithFormat:@"%@%@ %@",sql1,userId,tablejg];
|
|
|
//NSLog(@"sql:%@",sql);
|
|
|
BOOL success = [self.db executeUpdate:sql];
|
|
|
if (!success) {
|
|
|
NSLog(@"创建lcChatlist_表失败: %@", [self.db lastErrorMessage]);
|
|
|
- if(fail){
|
|
|
- fail([NSString stringWithFormat:@"创建消息表失败: %@", [self.db lastErrorMessage]]);
|
|
|
- }
|
|
|
+
|
|
|
} else {
|
|
|
NSLog(@"创建lcChatlist_表成功");
|
|
|
- if (succ) {
|
|
|
- succ(nil);
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
--(void)delchatlistTable:(DBSucc _Nullable )succ fail:(DBFail _Nullable )fail{//删除聊天窗表lcChatlist_
|
|
|
- NSString *userid = [UDManager.shareInstance getSDManager:dkuserId];
|
|
|
+-(void)delchatlistTable:(NSString *_Nullable)userId{//删除聊天窗表lcChatlist_
|
|
|
+ if(userId.length==0){
|
|
|
+ userId = [UDManager.shareInstance getSDManager:dkuserId];
|
|
|
+ }
|
|
|
NSString *sql1=@"DROP TABLE lcChatlist_";
|
|
|
- NSString *sql = [NSString stringWithFormat:@"%@%@",sql1,userid];
|
|
|
+ NSString *sql = [NSString stringWithFormat:@"%@%@",sql1,userId];
|
|
|
BOOL success = [self.db executeUpdate:sql];
|
|
|
if (!success) {
|
|
|
NSLog(@"删除lcChatlist_表失败: %@", [self.db lastErrorMessage]);
|
|
|
- if(fail){
|
|
|
- fail([NSString stringWithFormat:@"创建消息表失败: %@", [self.db lastErrorMessage]]);
|
|
|
- }
|
|
|
+
|
|
|
} else {
|
|
|
NSLog(@"删除lcChatlist_表成功");
|
|
|
- if (succ) {
|
|
|
- succ(nil);
|
|
|
- }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -801,30 +888,30 @@
|
|
|
}
|
|
|
|
|
|
//聊天窗最后已读时间表
|
|
|
--(void)createLastreadtimetable:(DBSucc _Nullable )succ fail:(DBFail _Nullable )fail{
|
|
|
- NSString *userid = [UDManager.shareInstance getSDManager:dkuserId];
|
|
|
+-(void)createLastreadtimetable:(NSString *_Nullable)userId{
|
|
|
+ if(userId.length==0){
|
|
|
+ userId = [UDManager.shareInstance getSDManager:dkuserId];
|
|
|
+ }
|
|
|
+
|
|
|
NSString *sql1=@"create table if not exists lcChatlasttime_";
|
|
|
NSString *tablejg = @"(chatId CHAR PRIMARY KEY,userId CHAR,timestamp BIGINT,type CHAR)";
|
|
|
- NSString *sql = [NSString stringWithFormat:@"%@%@ %@",sql1,userid,tablejg];
|
|
|
+ NSString *sql = [NSString stringWithFormat:@"%@%@ %@",sql1,userId,tablejg];
|
|
|
//NSLog(@"sql:%@",sql);
|
|
|
BOOL success = [self.db executeUpdate:sql];
|
|
|
if (!success) {
|
|
|
NSLog(@"创建lcChatlasttime_表失败: %@", [self.db lastErrorMessage]);
|
|
|
- if(fail){
|
|
|
- fail([NSString stringWithFormat:@"创建消息表失败: %@", [self.db lastErrorMessage]]);
|
|
|
- }
|
|
|
+
|
|
|
} else {
|
|
|
NSLog(@"创建lcChatlasttime_表成功");
|
|
|
- if (succ) {
|
|
|
- succ(nil);
|
|
|
- }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
--(void)deleatLastreadtimetable{
|
|
|
-
|
|
|
- NSString *userid = [UDManager.shareInstance getSDManager:dkuserId];
|
|
|
+-(void)deleatLastreadtimetable:(NSString *)userid{
|
|
|
+ if(userid.length==0){
|
|
|
+ userid = [UDManager.shareInstance getSDManager:dkuserId];
|
|
|
+ }
|
|
|
NSString *sql1=@"DROP TABLE lcChatlasttime_";
|
|
|
NSString *sql = [NSString stringWithFormat:@"%@%@",sql1,userid];
|
|
|
BOOL success = [self.db executeUpdate:sql];
|
|
|
@@ -1101,9 +1188,11 @@
|
|
|
}
|
|
|
|
|
|
//安博通通话记录表
|
|
|
--(void)createCallmsgTable{
|
|
|
+-(void)createCallmsgTable:(NSString *_Nullable)userid{
|
|
|
// 创建表语句
|
|
|
- NSString *userid = [UDManager.shareInstance getSDManager:dkuserId];
|
|
|
+ if(userid.length==0){
|
|
|
+ userid = [UDManager.shareInstance getSDManager:dkuserId];
|
|
|
+ }
|
|
|
NSString *sql1=@"create table if not exists Callmsglist_";
|
|
|
NSString *tablejg = @"(id CHAR PRIMARY KEY,chatId CHAR,type CHAR,messageType CHAR,timestamp BIGINT,localtime BIGINT,Message TEXT)";
|
|
|
NSString *sql = [NSString stringWithFormat:@"%@%@ %@",sql1,userid,tablejg];
|
|
|
@@ -1118,9 +1207,11 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
--(void)deleteCallmsgTable{
|
|
|
+-(void)deleteCallmsgTable:(NSString *)userid{
|
|
|
NSString *sql1=@"DROP TABLE Callmsglist_";
|
|
|
- NSString *userid = [UDManager.shareInstance getSDManager:dkuserId];
|
|
|
+ if(userid.length==0){
|
|
|
+ userid = [UDManager.shareInstance getSDManager:dkuserId];
|
|
|
+ }
|
|
|
NSString *sql = [NSString stringWithFormat:@"%@%@",sql1,userid];
|
|
|
BOOL success = [self.db executeUpdate:sql];
|
|
|
if (!success) {
|
|
|
@@ -1410,9 +1501,12 @@
|
|
|
//voipTk = "<null>";
|
|
|
|
|
|
//通讯录
|
|
|
--(void)createfirendsTable{
|
|
|
+-(void)createfirendsTable:(NSString *)userid{
|
|
|
// 创建表语句
|
|
|
- NSString *userid = [UDManager.shareInstance getSDManager:dkuserId];
|
|
|
+ if(userid.length==0){
|
|
|
+ userid = [UDManager.shareInstance getSDManager:dkuserId];
|
|
|
+ }
|
|
|
+
|
|
|
NSString *sql1=@"create table if not exists Firendslist_";
|
|
|
NSString *tablejg = @"(id CHAR PRIMARY KEY,deptId CHAR,mobile CHAR,name CHAR,avatar CHAR,username CHAR)";
|
|
|
NSString *sql = [NSString stringWithFormat:@"%@%@ %@",sql1,userid,tablejg];
|
|
|
@@ -1585,9 +1679,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
--(void)deleatFirendtable{
|
|
|
-
|
|
|
- NSString *userid = [UDManager.shareInstance getSDManager:dkuserId];
|
|
|
+-(void)deleatFirendtable:(NSString *)userid{
|
|
|
+ if(userid.length==0){
|
|
|
+ userid = [UDManager.shareInstance getSDManager:dkuserId];
|
|
|
+ }
|
|
|
+
|
|
|
NSString *sql1=@"DROP TABLE Firendslist_";
|
|
|
NSString *sql = [NSString stringWithFormat:@"%@%@",sql1,userid];
|
|
|
BOOL success = [self.db executeUpdate:sql];
|