JXRoomRemind.m 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. //
  2. // JXRoomRemind.m
  3. //
  4. // Created by Reese on 13-8-11.
  5. // Copyright (c) 2013年 Reese. All rights reserved.
  6. //
  7. #import "JXRoomRemind.h"
  8. #import "FMDatabase.h"
  9. #import "FMResultSet.h"
  10. #import "AppDelegate.h"
  11. #import "JXMessageObject.h"
  12. @implementation JXRoomRemind
  13. @synthesize userId,objectId,time,type,roomId,fromUserName;
  14. static JXRoomRemind *shared;
  15. -(id)init{
  16. self = [super init];
  17. if(self){
  18. _tableName = @"roomRemind";
  19. self.userId = nil;
  20. self.fromUserName = nil;
  21. self.objectId = nil;
  22. self.time = nil;
  23. self.toUserId = nil;
  24. self.content = nil;
  25. self.type = nil;
  26. self.fileSize = nil;
  27. }
  28. return self;
  29. }
  30. -(void)dealloc{
  31. // NSLog(@"JXRoomRemind.dealloc");
  32. self.userId = nil;
  33. self.fromUserName = nil;
  34. self.objectId = nil;
  35. self.time = nil;
  36. self.toUserId = nil;
  37. self.content = nil;
  38. self.type = nil;
  39. // [super dealloc];
  40. }
  41. -(void)notify{
  42. //发送全局通知
  43. [g_notify postNotificationName:kXMPPRoomNotifaction object:self userInfo:nil];
  44. }
  45. -(void)fromObject:(JXMessageObject*)message{
  46. self.userId=message.fromUserId;
  47. self.fromUserName=message.fromUserName;
  48. self.fromUserId = message.fromUserId;
  49. self.objectId=message.objectId;
  50. self.time=message.timeSend;
  51. self.toUserId = message.toUserId;
  52. self.content = message.content;
  53. self.type = message.type;
  54. self.roomId = message.fileName;
  55. self.fileSize = message.fileSize;
  56. self.other = message.other;
  57. self.toUserName = message.toUserName;
  58. self.isGroup = message.isGroup;
  59. }
  60. /*
  61. //+(JXRoomRemind*)sharedInstance{
  62. // static dispatch_once_t onceToken;
  63. // dispatch_once(&onceToken, ^{
  64. // shared=[[JXRoomRemind alloc] init];
  65. // });
  66. // return shared;
  67. //}
  68. -(BOOL)insert
  69. {
  70. NSString* myUserId = MY_USER_ID;
  71. FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
  72. [self checkTableCreatedInDb:db];
  73. self.time = [NSDate date];
  74. NSString *insertStr=[NSString stringWithFormat:@"INSERT INTO '%@' ('userId','objectId','time','toUserId','content',type) VALUES (?,?,?,?,?,?)",_tableName];
  75. BOOL worked = [db executeUpdate:insertStr,self.userId,self.objectId,self.time,self.toUserId,self.content,self.type];
  76. // FMDBQuickCheck(worked);
  77. if(!worked)
  78. worked = [self update];
  79. return worked;
  80. }
  81. -(BOOL)update
  82. {
  83. return YES;
  84. }
  85. -(BOOL)delete
  86. {
  87. NSString* myUserId = MY_USER_ID;
  88. FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
  89. [self checkTableCreatedInDb:db];
  90. BOOL worked=[db executeUpdate:[NSString stringWithFormat:@"delete from %@ where toUserId=? and objectId=? and type=?",_tableName],self.toUserId,self.objectId,self.type];
  91. return worked;
  92. }
  93. -(BOOL)deleteAll:(int)n{
  94. NSString* myUserId = MY_USER_ID;
  95. FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
  96. [self checkTableCreatedInDb:db];
  97. BOOL worked=[db executeUpdate:[NSString stringWithFormat:@"delete from %@ where toUserId=? and type=%d",_tableName,n],self.toUserId];
  98. return worked;
  99. }
  100. -(void)fromDataset:(JXRoomRemind*)obj rs:(FMResultSet*)rs{
  101. obj.userId=[rs stringForColumn:kRoomRemind_UserID];
  102. obj.toUserId=[rs stringForColumn:kRoomRemind_ToUserID];
  103. obj.content=[rs stringForColumn:kRoomRemind_Content];
  104. obj.objectId=[rs stringForColumn:kRoomRemind_ObjectId];
  105. obj.time=[rs objectForColumnName:kRoomRemind_Time];
  106. obj.type=[rs objectForColumnName:kRoomRemind_Type];
  107. }
  108. -(void)fromDictionary:(JXRoomRemind*)obj dict:(NSDictionary*)aDic
  109. {
  110. // obj.userId = [aDic objectForKey:kUSER_ID];
  111. }
  112. -(NSDictionary*)toDictionary
  113. {
  114. NSDictionary *dic=[NSDictionary dictionaryWithObjectsAndKeys:userId,kUSER_ID,objectId,kRoomRemind_ObjectId,time,kRoomRemind_Time, nil];
  115. return dic;
  116. }
  117. -(BOOL)checkTableCreatedInDb:(FMDatabase *)db
  118. {
  119. NSString *createStr=[NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS '%@' ('objectId' VARCHAR , 'userId' VARCHAR,'toUserId' VARCHAR,'content' VARCHAR,'time' DATETIME,type INTEGER)",_tableName];
  120. BOOL worked = [db executeUpdate:createStr];
  121. // FMDBQuickCheck(worked);
  122. return worked;
  123. }
  124. -(NSMutableArray*)fetch:(int)n{
  125. NSString* sql = [NSString stringWithFormat:@"select objectId from %@ where type=%d and toUserId='%@' group by objectId",_tableName,n,g_myself.userId];
  126. return [self doFetch:sql];
  127. }
  128. -(NSMutableArray*)doFetch:(NSString*)sql
  129. {
  130. NSMutableArray *resultArr=[[NSMutableArray alloc]init];
  131. NSString* myUserId = MY_USER_ID;
  132. FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
  133. FMResultSet *rs=[db executeQuery:sql];
  134. while ([rs next]) {
  135. [resultArr addObject:[rs stringForColumn:kRoomRemind_ObjectId]];
  136. }
  137. [rs close];
  138. return resultArr;
  139. }
  140. -(void)addToArray:(NSMutableArray*)array{
  141. if([self.objectId length]<=0)
  142. return;
  143. if([array indexOfObject:self.objectId] == NSNotFound)
  144. [array addObject:self.objectId];
  145. }
  146. -(void)addContentToArray:(NSMutableArray*)array{
  147. if([self.content length]<=0)
  148. return;
  149. if([array indexOfObject:self.content] == NSNotFound)
  150. [array addObject:self.content];
  151. }
  152. +(void)createAndNotifyNewObj:(NSString*)objectId toUserId:(NSString*)toUserId type:(int)type{
  153. if(!objectId)
  154. return;
  155. JXRoomRemind* p = [[JXRoomRemind alloc]init];
  156. p.toUserId = MY_USER_ID;
  157. p.userId = toUserId;
  158. p.objectId = objectId;
  159. p.type = [NSNumber numberWithInt:type];
  160. p.time = [NSDate date];
  161. [p insert];
  162. [p notify];
  163. // [p release];
  164. }
  165. */
  166. @end