JXSynTask.m 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. //
  2. // JXSynchronizationTask.m
  3. // shiku_im
  4. //
  5. // Created by p on 2018/8/18.
  6. // Copyright © 2018年 Reese. All rights reserved.
  7. //
  8. #import "JXSynTask.h"
  9. #import "FMDatabase.h"
  10. #import "FMResultSet.h"
  11. @implementation JXSynTask
  12. static JXSynTask *sharedUser;
  13. +(JXSynTask*)sharedInstance{
  14. static dispatch_once_t onceToken;
  15. dispatch_once(&onceToken, ^{
  16. sharedUser=[[JXSynTask alloc]init];
  17. });
  18. return sharedUser;
  19. }
  20. -(id)init{
  21. self = [super init];
  22. if(self){
  23. _tableName = @"synTask";
  24. }
  25. return self;
  26. }
  27. -(NSString*)getTableName{
  28. // NSString* tableName = [NSString stringWithFormat:@"task_%@",self.userId];
  29. return @"synTask";
  30. }
  31. -(BOOL)checkTableCreatedInDb:(FMDatabase *)db
  32. {
  33. 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]];
  34. BOOL worked = [db executeUpdate:createStr];
  35. return worked;
  36. }
  37. //数据库增删改查
  38. -(BOOL)insert {
  39. NSString* myUserId = MY_USER_ID;
  40. FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
  41. [self checkTableCreatedInDb:db];
  42. if (!self.startTime) {
  43. self.startTime = [NSDate dateWithTimeIntervalSince1970:0];
  44. }
  45. NSString *insertStr=[NSString stringWithFormat:@"INSERT INTO '%@' ('startTime','endTime','lastTime','startMsgId','endMsgId','userId','roomId','isLoading','isFinish') VALUES (?,?,?,?,?,?,?,?,?)",[self getTableName]];
  46. BOOL worked = [db executeUpdate:insertStr,self.startTime,self.endTime,self.lastTime,self.startMsgId,self.endMsgId,self.userId,self.roomId,self.isLoading,self.isFinish];
  47. return worked;
  48. }
  49. -(BOOL)update {
  50. NSString* myUserId = MY_USER_ID;
  51. FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
  52. [self checkTableCreatedInDb:db];
  53. NSString* sql = [NSString stringWithFormat:@"update %@ set startTime=?,endTime=?,lastTime=?,startMsgId=?,endMsgId=?,userId=?,roomId=?,isLoading=?,isFinish=? where taskId=?",[self getTableName]];
  54. 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];
  55. return worked;
  56. }
  57. -(BOOL)delete {
  58. NSString* myUserId = MY_USER_ID;
  59. FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
  60. [self checkTableCreatedInDb:db];
  61. NSString *sql = [NSString stringWithFormat:@"delete from %@ where taskId=?",[self getTableName]];
  62. BOOL worked=[db executeUpdate:sql,self.taskId];
  63. return worked;
  64. }
  65. - (BOOL)deleteTaskWithRoomId:(NSString *)roomId {
  66. NSString* myUserId = MY_USER_ID;
  67. FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
  68. [self checkTableCreatedInDb:db];
  69. NSString *sql = [NSString stringWithFormat:@"delete from %@ where roomId=?",[self getTableName]];
  70. BOOL worked=[db executeUpdate:sql,roomId];
  71. return worked;
  72. }
  73. // 更新起始时间
  74. - (BOOL)updateStartTime {
  75. NSString* myUserId = MY_USER_ID;
  76. FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
  77. [self checkTableCreatedInDb:db];
  78. NSString* sql = [NSString stringWithFormat:@"update %@ set startTime=? where taskId=?",[self getTableName]];
  79. BOOL worked = [db executeUpdate:sql,self.startTime,self.taskId];
  80. return worked;
  81. }
  82. // 更新结束时间
  83. - (BOOL)updateEndTime {
  84. NSString* myUserId = MY_USER_ID;
  85. FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
  86. [self checkTableCreatedInDb:db];
  87. NSString* sql = [NSString stringWithFormat:@"update %@ set endTime=? where taskId=?",[self getTableName]];
  88. BOOL worked = [db executeUpdate:sql,self.endTime,self.taskId];
  89. return worked;
  90. }
  91. // 获取单个群的任务列表
  92. - (NSMutableArray *)getTaskWithUserId:(NSString *)userId {
  93. NSMutableArray *resultArr=[[NSMutableArray alloc]init];
  94. NSString* myUserId = MY_USER_ID;
  95. FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
  96. [self checkTableCreatedInDb:db];
  97. NSString *sql = @"select * from synTask where userId = ? order by startTime desc";
  98. FMResultSet *rs=[db executeQuery:sql,userId];
  99. while ([rs next]) {
  100. JXSynTask *task=[[JXSynTask alloc] init];
  101. [self taskFromDataset:task rs:rs];
  102. [resultArr addObject:task];
  103. }
  104. return resultArr;
  105. }
  106. -(void)taskFromDataset:(JXSynTask*)obj rs:(FMResultSet*)rs{
  107. obj.userId = [rs stringForColumn:@"userId"];
  108. obj.roomId = [rs stringForColumn:@"roomId"];
  109. obj.taskId = [rs stringForColumn:@"taskId"];
  110. obj.startTime = [rs dateForColumn:@"startTime"];
  111. obj.endTime = [rs dateForColumn:@"endTime"];
  112. obj.lastTime = [rs dateForColumn:@"lastTime"];
  113. obj.startMsgId = [rs stringForColumn:@"startMsgId"];
  114. obj.endMsgId = [rs stringForColumn:@"endMsgId"];
  115. obj.isLoading = [rs objectForColumnName:@"isLoading"];
  116. obj.isFinish = [rs objectForColumnName:@"isFinish"];
  117. }
  118. @end