Commit 60e090ba by zhangyunjie

时序排序

parent cf0bfd16
// //
...@@ -114,7 +114,9 @@ static OffcnIMSDKiOS *liveTelecastSDK; ...@@ -114,7 +114,9 @@ static OffcnIMSDKiOS *liveTelecastSDK;
-(void)sendMsgWithMsg_fromID:(NSString *)msg_fromID msg_toID:(NSString *)msg_toID msg_type:(OffcnSDKMsgType)msg_type text:(NSString *)text filePath:(NSString *)filePath Finished:(void(^)(BOOL success,OffcnIMSendMsgModel *sendMsgModel,NSString *errorMessage))finished ProgressPercent:(void(^)(NSString *key, float percent))progressPercent{ -(void)sendMsgWithMsg_fromID:(NSString *)msg_fromID msg_toID:(NSString *)msg_toID msg_type:(OffcnSDKMsgType)msg_type text:(NSString *)text filePath:(NSString *)filePath Finished:(void(^)(BOOL success,OffcnIMSendMsgModel *sendMsgModel,NSString *errorMessage))finished ProgressPercent:(void(^)(NSString *key, float percent))progressPercent{
KWeakSelf KWeakSelf
NSString *tidStr = [NSString stringWithFormat:@"%@_%@",msg_toID,[SDGeneralTool getNowSSSTimeTimestamp]]; NSString *msg_seqStr = [SDGeneralTool getNowSSSTimeTimestamp];
NSString *send_timeStr = [SDGeneralTool getIMAllTimeWithSeconds:[msg_seqStr integerValue]];
NSString *tidStr = [NSString stringWithFormat:@"%@__%@",msg_toID,msg_seqStr];
if (msg_type == OffcnSDKMsgTypeText) { if (msg_type == OffcnSDKMsgTypeText) {
if (!text || !text.length) { if (!text || !text.length) {
...@@ -127,6 +129,8 @@ static OffcnIMSDKiOS *liveTelecastSDK; ...@@ -127,6 +129,8 @@ static OffcnIMSDKiOS *liveTelecastSDK;
BodyModel.msg_to = msg_toID; BodyModel.msg_to = msg_toID;
BodyModel.msg_type = msg_type; BodyModel.msg_type = msg_type;
BodyModel.tid = tidStr; BodyModel.tid = tidStr;
BodyModel.msg_seq = [msg_seqStr integerValue];
BodyModel.send_time = send_timeStr;
MsgModel.msg = text; MsgModel.msg = text;
BodyModel.msg = MsgModel; BodyModel.msg = MsgModel;
BodyModel.isSentSuccess = 0; BodyModel.isSentSuccess = 0;
...@@ -152,6 +156,8 @@ static OffcnIMSDKiOS *liveTelecastSDK; ...@@ -152,6 +156,8 @@ static OffcnIMSDKiOS *liveTelecastSDK;
BodyModel.msg_to = msg_toID; BodyModel.msg_to = msg_toID;
BodyModel.msg_type = msg_type; BodyModel.msg_type = msg_type;
BodyModel.tid = tidStr; BodyModel.tid = tidStr;
BodyModel.msg_seq = [msg_seqStr integerValue];
BodyModel.send_time = send_timeStr;
BodyModel.isSentSuccess = 0; BodyModel.isSentSuccess = 0;
BodyModel.bymyself = 1; BodyModel.bymyself = 1;
BodyModel.isRead = 0; BodyModel.isRead = 0;
...@@ -227,6 +233,8 @@ static OffcnIMSDKiOS *liveTelecastSDK; ...@@ -227,6 +233,8 @@ static OffcnIMSDKiOS *liveTelecastSDK;
BodyModel.msg_to = msg_toID; BodyModel.msg_to = msg_toID;
BodyModel.msg_type = msg_type; BodyModel.msg_type = msg_type;
BodyModel.tid = tidStr; BodyModel.tid = tidStr;
BodyModel.msg_seq = [msg_seqStr integerValue];
BodyModel.send_time = send_timeStr;
BodyModel.isSentSuccess = 0; BodyModel.isSentSuccess = 0;
BodyModel.bymyself = 1; BodyModel.bymyself = 1;
BodyModel.isRead = 0; BodyModel.isRead = 0;
......
// //
...@@ -44,7 +44,7 @@ static OffcnIMZYJFMDBHandler *FMDBHandler; ...@@ -44,7 +44,7 @@ static OffcnIMZYJFMDBHandler *FMDBHandler;
_database = getFMDBInstance(); _database = getFMDBInstance();
} }
NSString *creatChatListSqlStr = @"create table chatlist(msg_fromId varchar(100), msg_toId varchar(100),tid varchar(100),session_id varchar(100),msg_id varchar (100),msg_type varchar(10),lastmessage varchar (500),lastSendtime varchar (50),primary key(msg_fromId))"; NSString *creatChatListSqlStr = @"create table chatlist(msg_fromId varchar(100), msg_toId varchar(100),tid varchar(100),session_id varchar(100),msg_id varchar (100),msg_type varchar(10),lastmessage varchar (500),lastSendtime varchar (50),msg_seq varchar(100),primary key(msg_fromId))";
NSString *creatChatInfoSqlStr = @"create table chatinfo(ID integer PRIMARY KEY AUTOINCREMENT,msg_fromId varchar(100),msg_toId varchar(100),tid varchar(100),session_id varchar(100),msg_id varchar (100),version varchar(10),send_time varchar(50),msg_seq varchar(100),msg_scope varchar (10),msg_type varchar(10),msg varchar(500),dur varchar(30),name varchat(500),md5 varchar(500),url varchar (500),thumb_url varchar(500),cover_url varchar(500),ext varchar(30),w varchar (10),h varchar(10),size varchar(10),isSentSuccess integer,bymyself integer,isRead integer)"; NSString *creatChatInfoSqlStr = @"create table chatinfo(ID integer PRIMARY KEY AUTOINCREMENT,msg_fromId varchar(100),msg_toId varchar(100),tid varchar(100),session_id varchar(100),msg_id varchar (100),version varchar(10),send_time varchar(50),msg_seq varchar(100),msg_scope varchar (10),msg_type varchar(10),msg varchar(500),dur varchar(30),name varchat(500),md5 varchar(500),url varchar (500),thumb_url varchar(500),cover_url varchar(500),ext varchar(30),w varchar (10),h varchar(10),size varchar(10),isSentSuccess integer,bymyself integer,isRead integer)";
...@@ -87,8 +87,8 @@ static OffcnIMZYJFMDBHandler *FMDBHandler; ...@@ -87,8 +87,8 @@ static OffcnIMZYJFMDBHandler *FMDBHandler;
} }
[_database inDatabase:^(ZYJZYJFMDatabase *db) { [_database inDatabase:^(ZYJZYJFMDatabase *db) {
NSString *sql = @"update chatinfo set isSentSuccess = ?,msg_id = ?,send_time = ?,session_id = ?,msg = ?,name = ?,md5 = ?,url = ?,thumb_url = ?,cover_url = ?,ext = ?,w = ?,h = ?,size = ?,dur = ? where tid = ?"; NSString *sql = @"update chatinfo set isSentSuccess = ?,msg_id = ?,send_time = ?,msg_seq = ?,session_id = ?,msg = ?,name = ?,md5 = ?,url = ?,thumb_url = ?,cover_url = ?,ext = ?,w = ?,h = ?,size = ?,dur = ? where tid = ?";
BOOL result = [db executeUpdate:sql,[NSNumber numberWithInteger:messageModel.isSentSuccess],messageModel.msg_id,messageModel.send_time,messageModel.session_id,messageModel.msg.msg,messageModel.msg.name,messageModel.msg.md5,messageModel.msg.url,messageModel.msg.thumb_url,messageModel.msg.cover_url,messageModel.msg.ext,[NSNumber numberWithInteger:messageModel.msg.w],[NSNumber numberWithInteger:messageModel.msg.h],[NSNumber numberWithInteger:messageModel.msg.size],[NSNumber numberWithInteger:messageModel.msg.dur],messageModel.tid]; BOOL result = [db executeUpdate:sql,[NSNumber numberWithInteger:messageModel.isSentSuccess],messageModel.msg_id,messageModel.send_time,[NSNumber numberWithInteger:messageModel.msg_seq],messageModel.session_id,messageModel.msg.msg,messageModel.msg.name,messageModel.msg.md5,messageModel.msg.url,messageModel.msg.thumb_url,messageModel.msg.cover_url,messageModel.msg.ext,[NSNumber numberWithInteger:messageModel.msg.w],[NSNumber numberWithInteger:messageModel.msg.h],[NSNumber numberWithInteger:messageModel.msg.size],[NSNumber numberWithInteger:messageModel.msg.dur],messageModel.tid];
if (!result) { if (!result) {
NSLog(@"error when insert into database table"); NSLog(@"error when insert into database table");
...@@ -123,16 +123,16 @@ static OffcnIMZYJFMDBHandler *FMDBHandler; ...@@ -123,16 +123,16 @@ static OffcnIMZYJFMDBHandler *FMDBHandler;
BOOL result = NO; BOOL result = NO;
if (tmpDataArray.count) { if (tmpDataArray.count) {
NSString *sqlStr = @"update chatlist set lastmessage = ?,lastSendtime = ?,session_id = ?,tid = ?,msg_id = ?,msg_type = ? where msg_fromId = ? and msg_toId = ?"; NSString *sqlStr = @"update chatlist set lastmessage = ?,lastSendtime = ?,msg_seq = ?,session_id = ?,tid = ?,msg_id = ?,msg_type = ? where msg_fromId = ? and msg_toId = ?";
NSString *lastmessage = [self lastMessage:chatlistModel]; NSString *lastmessage = [self lastMessage:chatlistModel];
result = [db executeUpdate:sqlStr,lastmessage,chatlistModel.send_time,chatlistModel.session_id,chatlistModel.tid,chatlistModel.msg_id,[NSNumber numberWithInteger:chatlistModel.msg_type],chatlistModel.msg_from,chatlistModel.msg_to]; result = [db executeUpdate:sqlStr,lastmessage,chatlistModel.send_time,[NSNumber numberWithInteger:chatlistModel.msg_seq],chatlistModel.session_id,chatlistModel.tid,chatlistModel.msg_id,[NSNumber numberWithInteger:chatlistModel.msg_type],chatlistModel.msg_from,chatlistModel.msg_to];
//不存在,插库 //不存在,插库
}else{ }else{
NSString *sqlStr = @"insert into chatlist(msg_fromId,msg_toId,tid,session_id,msg_id,msg_type,lastmessage,lastSendtime)values(?,?,?,?,?,?,?,?)"; NSString *sqlStr = @"insert into chatlist(msg_fromId,msg_toId,tid,session_id,msg_id,msg_type,lastmessage,lastSendtime,msg_seq)values(?,?,?,?,?,?,?,?,?)";
NSString *lastmessage = [self lastMessage:chatlistModel]; NSString *lastmessage = [self lastMessage:chatlistModel];
result = [db executeUpdate:sqlStr,chatlistModel.msg_from,chatlistModel.msg_to,chatlistModel.tid,chatlistModel.session_id,chatlistModel.msg_id,[NSNumber numberWithInteger:chatlistModel.msg_type],lastmessage,chatlistModel.send_time]; result = [db executeUpdate:sqlStr,chatlistModel.msg_from,chatlistModel.msg_to,chatlistModel.tid,chatlistModel.session_id,chatlistModel.msg_id,[NSNumber numberWithInteger:chatlistModel.msg_type],lastmessage,chatlistModel.send_time,[NSNumber numberWithInteger:chatlistModel.msg_seq]];
} }
[rs close]; [rs close];
...@@ -170,7 +170,7 @@ static OffcnIMZYJFMDBHandler *FMDBHandler; ...@@ -170,7 +170,7 @@ static OffcnIMZYJFMDBHandler *FMDBHandler;
getFMDBInstance(); getFMDBInstance();
} }
NSString *updateStr = @"update chatlist set lastmessage = ?,lastSendtime = ?,msg_type = ? where msg_fromId = ? and msg_toId = ?"; NSString *updateStr = @"update chatlist set lastmessage = ?,lastSendtime = ?,msg_seq = ?,msg_type = ? where msg_fromId = ? and msg_toId = ?";
NSString * listSql = [NSString stringWithFormat:@"delete FROM chatlist where msg_fromId = ? and msg_toId = ?"]; NSString * listSql = [NSString stringWithFormat:@"delete FROM chatlist where msg_fromId = ? and msg_toId = ?"];
NSString * infoSql = [NSString stringWithFormat:@"delete FROM chatinfo where (msg_fromId =? and msg_toId = ?) or (msg_fromId =? and msg_toId = ?)"]; NSString * infoSql = [NSString stringWithFormat:@"delete FROM chatinfo where (msg_fromId =? and msg_toId = ?) or (msg_fromId =? and msg_toId = ?)"];
[_database inDatabase:^(ZYJZYJFMDatabase *db) { [_database inDatabase:^(ZYJZYJFMDatabase *db) {
...@@ -190,7 +190,7 @@ static OffcnIMZYJFMDBHandler *FMDBHandler; ...@@ -190,7 +190,7 @@ static OffcnIMZYJFMDBHandler *FMDBHandler;
break; break;
case UIClearStylePart: { case UIClearStylePart: {
[db executeUpdate:updateStr,@"",@"",@"",fromUser,toUser]; [db executeUpdate:updateStr,@"",@"",@"",@"",fromUser,toUser];
[db executeUpdate:infoSql,fromUser,toUser,toUser,fromUser]; [db executeUpdate:infoSql,fromUser,toUser,toUser,fromUser];
} }
break; break;
...@@ -232,8 +232,8 @@ static OffcnIMZYJFMDBHandler *FMDBHandler; ...@@ -232,8 +232,8 @@ static OffcnIMZYJFMDBHandler *FMDBHandler;
[array removeObject:messageModel]; [array removeObject:messageModel];
if (!array.count) { if (!array.count) {
NSString *sqlStr = @"update chatlist set lastmessage = ?,lastSendtime = ?,msg_type = ? where msg_fromId =? and msg_toId = ?"; NSString *sqlStr = @"update chatlist set lastmessage = ?,lastSendtime = ?,msg_seq = ?,msg_type = ? where msg_fromId =? and msg_toId = ?";
BOOL updateSucceed = [db executeUpdate:sqlStr,@"",@"",@"",messageModel.msg_from,messageModel.msg_to]; BOOL updateSucceed = [db executeUpdate:sqlStr,@"",@"",@"",@"",messageModel.msg_from,messageModel.msg_to];
if (isSuccess) { if (isSuccess) {
isSuccess(updateSucceed); isSuccess(updateSucceed);
} }
...@@ -244,9 +244,9 @@ static OffcnIMZYJFMDBHandler *FMDBHandler; ...@@ -244,9 +244,9 @@ static OffcnIMZYJFMDBHandler *FMDBHandler;
OffcnIMBodyModel *lastModel = array[index]; OffcnIMBodyModel *lastModel = array[index];
if (lastModel.isSentSuccess) { if (lastModel.isSentSuccess) {
NSString *sqlStr = @"update chatlist set lastmessage = ?,lastSendtime = ?,msg_type = ?,tid = ?,session_id = ?,msg_id = ? where msg_fromId =? and msg_toId = ?"; NSString *sqlStr = @"update chatlist set lastmessage = ?,lastSendtime = ?,msg_seq = ?,msg_type = ?,tid = ?,session_id = ?,msg_id = ? where msg_fromId =? and msg_toId = ?";
NSString *lastmessage = [self lastMessage:lastModel]; NSString *lastmessage = [self lastMessage:lastModel];
BOOL updateSucceed = [db executeUpdate:sqlStr,lastmessage,lastModel.send_time,[NSNumber numberWithInteger:lastModel.msg_type],lastModel.tid,lastModel.session_id,lastModel.msg_id,lastModel.msg_from,lastModel.msg_to]; BOOL updateSucceed = [db executeUpdate:sqlStr,lastmessage,lastModel.send_time,[NSNumber numberWithInteger:lastModel.msg_seq],[NSNumber numberWithInteger:lastModel.msg_type],lastModel.tid,lastModel.session_id,lastModel.msg_id,lastModel.msg_from,lastModel.msg_to];
if (isSuccess) { if (isSuccess) {
isSuccess(updateSucceed); isSuccess(updateSucceed);
...@@ -282,7 +282,7 @@ static OffcnIMZYJFMDBHandler *FMDBHandler; ...@@ -282,7 +282,7 @@ static OffcnIMZYJFMDBHandler *FMDBHandler;
getFMDBInstance(); getFMDBInstance();
} }
NSString * sql = [NSString stringWithFormat:@"SELECT * FROM chatinfo where (msg_fromId =? and msg_toId = ?) or (msg_fromId =? and msg_toId = ?) order by send_time desc limit ?,?"]; NSString * sql = [NSString stringWithFormat:@"SELECT * FROM chatinfo where (msg_fromId =? and msg_toId = ?) or (msg_fromId =? and msg_toId = ?) order by msg_seq desc limit ?,?"];
[_database inDatabase:^(ZYJZYJFMDatabase *db) { [_database inDatabase:^(ZYJZYJFMDatabase *db) {
ZYJZYJFMResultSet *rs = [db executeQuery:sql,fromUser,toUser,toUser,fromUser,startIndex,limit]; ZYJZYJFMResultSet *rs = [db executeQuery:sql,fromUser,toUser,toUser,fromUser,startIndex,limit];
NSMutableArray *tmpArray = [NSMutableArray array]; NSMutableArray *tmpArray = [NSMutableArray array];
...@@ -333,7 +333,7 @@ static OffcnIMZYJFMDBHandler *FMDBHandler; ...@@ -333,7 +333,7 @@ static OffcnIMZYJFMDBHandler *FMDBHandler;
getFMDBInstance(); getFMDBInstance();
} }
NSString * sql = [NSString stringWithFormat:@"SELECT * FROM chatlist order by lastSendtime asc"]; NSString * sql = [NSString stringWithFormat:@"SELECT * FROM chatlist order by msg_seq asc"];
[_database inDatabase:^(ZYJZYJFMDatabase *db) { [_database inDatabase:^(ZYJZYJFMDatabase *db) {
ZYJZYJFMResultSet *rs = [db executeQuery:sql]; ZYJZYJFMResultSet *rs = [db executeQuery:sql];
NSMutableArray *tmpArray = [NSMutableArray array]; NSMutableArray *tmpArray = [NSMutableArray array];
...@@ -348,6 +348,7 @@ static OffcnIMZYJFMDBHandler *FMDBHandler; ...@@ -348,6 +348,7 @@ static OffcnIMZYJFMDBHandler *FMDBHandler;
tmpModel.tid = [rs stringForColumn:@"tid"]; tmpModel.tid = [rs stringForColumn:@"tid"];
tmpModel.session_id = [rs stringForColumn:@"session_id"]; tmpModel.session_id = [rs stringForColumn:@"session_id"];
tmpModel.msg_id = [rs stringForColumn:@"msg_id"]; tmpModel.msg_id = [rs stringForColumn:@"msg_id"];
tmpModel.msg_seq = [rs longLongIntForColumn:@"msg_seq"];
[tmpArray addObject:tmpModel]; [tmpArray addObject:tmpModel];
} }
......
// //
...@@ -42,6 +42,8 @@ ...@@ -42,6 +42,8 @@
+(NSString *)getHHTimeWithSeconds:(NSTimeInterval)s; +(NSString *)getHHTimeWithSeconds:(NSTimeInterval)s;
+(NSString *)getIMAllTimeWithSeconds:(NSTimeInterval)s;
+ (NSString *)getTimeWithSeconds:(NSTimeInterval)s; + (NSString *)getTimeWithSeconds:(NSTimeInterval)s;
+(NSString *)getTimeWithDate:(NSDate *)date; +(NSString *)getTimeWithDate:(NSDate *)date;
......
// //
...@@ -245,6 +245,12 @@ ...@@ -245,6 +245,12 @@
NSDate *date = [NSDate dateWithTimeIntervalSince1970:s/1000]; NSDate *date = [NSDate dateWithTimeIntervalSince1970:s/1000];
return [format stringFromDate:date]; return [format stringFromDate:date];
} }
+(NSString *)getIMAllTimeWithSeconds:(NSTimeInterval)s{
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:s/1000];
return [format stringFromDate:date];
}
+(NSString *)getTimeWithSeconds:(NSTimeInterval)s{ +(NSString *)getTimeWithSeconds:(NSTimeInterval)s{
NSDateFormatter *format = [[NSDateFormatter alloc] init]; NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; [format setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
......
// //
...@@ -59,6 +59,7 @@ ...@@ -59,6 +59,7 @@
BodyModel.send_time = SendMsgModel.send_time; BodyModel.send_time = SendMsgModel.send_time;
BodyModel.session_id = SendMsgModel.session_id; BodyModel.session_id = SendMsgModel.session_id;
BodyModel.tid = SendMsgModel.tid; BodyModel.tid = SendMsgModel.tid;
BodyModel.msg_seq = [[[tid componentsSeparatedByString:@"__"] lastObject] integerValue];
BodyModel.isSentSuccess = 1; BodyModel.isSentSuccess = 1;
BodyModel.msg_type = msg_type; BodyModel.msg_type = msg_type;
if (msg_type == 1) { if (msg_type == 1) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment