123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- //
- // JXSynchronizationTask.m
- // shiku_im
- //
- // Created by p on 2018/8/18.
- // Copyright © 2018年 Reese. All rights reserved.
- //
- #import "JXSynTask.h"
- #import "FMDatabase.h"
- #import "FMResultSet.h"
- @implementation JXSynTask
- static JXSynTask *sharedUser;
- +(JXSynTask*)sharedInstance{
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- sharedUser=[[JXSynTask alloc]init];
- });
- return sharedUser;
- }
- -(id)init{
- self = [super init];
- if(self){
- _tableName = @"synTask";
- }
- return self;
- }
- -(NSString*)getTableName{
-
- // NSString* tableName = [NSString stringWithFormat:@"task_%@",self.userId];
- return @"synTask";
- }
- -(BOOL)checkTableCreatedInDb:(FMDatabase *)db
- {
- NSString *createStr=[NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS '%@' ('taskId' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE ,'startTime' DATETIME DEFAULT 0,'endTime' DATETIME,'lastTime' DATETIME,'startMsgId' VARCHAR,'endMsgId' VARCHAR,'userId' VARCHAR,'roomId' VARCHAR,'isLoading' INTEGER, 'isFinish' INTEGER)",[self getTableName]];
-
- BOOL worked = [db executeUpdate:createStr];
- return worked;
- }
- //数据库增删改查
- -(BOOL)insert {
- NSString* myUserId = MY_USER_ID;
- FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
- [self checkTableCreatedInDb:db];
- if (!self.startTime) {
- self.startTime = [NSDate dateWithTimeIntervalSince1970:0];
- }
-
- NSString *insertStr=[NSString stringWithFormat:@"INSERT INTO '%@' ('startTime','endTime','lastTime','startMsgId','endMsgId','userId','roomId','isLoading','isFinish') VALUES (?,?,?,?,?,?,?,?,?)",[self getTableName]];
- BOOL worked = [db executeUpdate:insertStr,self.startTime,self.endTime,self.lastTime,self.startMsgId,self.endMsgId,self.userId,self.roomId,self.isLoading,self.isFinish];
-
- return worked;
- }
- -(BOOL)update {
- NSString* myUserId = MY_USER_ID;
- FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
- [self checkTableCreatedInDb:db];
-
- NSString* sql = [NSString stringWithFormat:@"update %@ set startTime=?,endTime=?,lastTime=?,startMsgId=?,endMsgId=?,userId=?,roomId=?,isLoading=?,isFinish=? where taskId=?",[self getTableName]];
- BOOL worked = [db executeUpdate:sql,self.startTime,self.endTime,self.lastTime,self.startMsgId,self.endMsgId,self.userId,self.roomId,self.isLoading,self.isFinish,self.taskId];
- return worked;
- }
- -(BOOL)delete {
-
- NSString* myUserId = MY_USER_ID;
- FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
- [self checkTableCreatedInDb:db];
- NSString *sql = [NSString stringWithFormat:@"delete from %@ where taskId=?",[self getTableName]];
- BOOL worked=[db executeUpdate:sql,self.taskId];
- return worked;
- }
- - (BOOL)deleteTaskWithRoomId:(NSString *)roomId {
-
- NSString* myUserId = MY_USER_ID;
- FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
- [self checkTableCreatedInDb:db];
- NSString *sql = [NSString stringWithFormat:@"delete from %@ where roomId=?",[self getTableName]];
- BOOL worked=[db executeUpdate:sql,roomId];
- return worked;
- }
- // 更新起始时间
- - (BOOL)updateStartTime {
- NSString* myUserId = MY_USER_ID;
- FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
- [self checkTableCreatedInDb:db];
-
- NSString* sql = [NSString stringWithFormat:@"update %@ set startTime=? where taskId=?",[self getTableName]];
- BOOL worked = [db executeUpdate:sql,self.startTime,self.taskId];
- return worked;
- }
- // 更新结束时间
- - (BOOL)updateEndTime {
- NSString* myUserId = MY_USER_ID;
- FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
- [self checkTableCreatedInDb:db];
-
- NSString* sql = [NSString stringWithFormat:@"update %@ set endTime=? where taskId=?",[self getTableName]];
- BOOL worked = [db executeUpdate:sql,self.endTime,self.taskId];
- return worked;
- }
- // 获取单个群的任务列表
- - (NSMutableArray *)getTaskWithUserId:(NSString *)userId {
- NSMutableArray *resultArr=[[NSMutableArray alloc]init];
- NSString* myUserId = MY_USER_ID;
- FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
- [self checkTableCreatedInDb:db];
-
- NSString *sql = @"select * from synTask where userId = ? order by startTime desc";
- FMResultSet *rs=[db executeQuery:sql,userId];
- while ([rs next]) {
- JXSynTask *task=[[JXSynTask alloc] init];
- [self taskFromDataset:task rs:rs];
- [resultArr addObject:task];
- }
- return resultArr;
- }
- -(void)taskFromDataset:(JXSynTask*)obj rs:(FMResultSet*)rs{
- obj.userId = [rs stringForColumn:@"userId"];
- obj.roomId = [rs stringForColumn:@"roomId"];
- obj.taskId = [rs stringForColumn:@"taskId"];
- obj.startTime = [rs dateForColumn:@"startTime"];
- obj.endTime = [rs dateForColumn:@"endTime"];
- obj.lastTime = [rs dateForColumn:@"lastTime"];
- obj.startMsgId = [rs stringForColumn:@"startMsgId"];
- obj.endMsgId = [rs stringForColumn:@"endMsgId"];
- obj.isLoading = [rs objectForColumnName:@"isLoading"];
- obj.isFinish = [rs objectForColumnName:@"isFinish"];
- }
- @end
|