JXBlogObject.m 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. //
  2. // JXBlogObject.m
  3. //
  4. // Created by Reese on 13-8-11.
  5. // Copyright (c) 2013年 Reese. All rights reserved.
  6. //
  7. #import "JXBlogObject.h"
  8. #import "FMDatabase.h"
  9. #import "FMResultSet.h"
  10. #import "AppDelegate.h"
  11. #import "JXMessageObject.h"
  12. @implementation JXBlogObject
  13. @synthesize userId,msgId,time;
  14. static JXBlogObject *shared;
  15. +(JXBlogObject*)sharedInstance{
  16. static dispatch_once_t onceToken;
  17. dispatch_once(&onceToken, ^{
  18. shared=[[JXBlogObject alloc] init];
  19. });
  20. return shared;
  21. }
  22. -(id)init{
  23. self = [super init];
  24. if(self){
  25. _tableName = @"friend_blog";
  26. self.userId = nil;
  27. self.msgId = nil;
  28. self.time = nil;
  29. }
  30. return self;
  31. }
  32. -(void)dealloc{
  33. // NSLog(@"JXBlogObject.dealloc");
  34. self.userId = nil;
  35. self.msgId = nil;
  36. self.time = nil;
  37. // [super dealloc];
  38. }
  39. -(BOOL)insert
  40. {
  41. NSString* myUserId = MY_USER_ID;
  42. FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
  43. [self checkTableCreatedInDb:db];
  44. self.time = [NSDate date];
  45. NSString *insertStr=[NSString stringWithFormat:@"INSERT INTO '%@' ('userId','msgId','time') VALUES (?,?,?)",_tableName];
  46. BOOL worked = [db executeUpdate:insertStr,self.userId,self.msgId,self.time];
  47. // FMDBQuickCheck(worked);
  48. if(!worked)
  49. worked = [self update];
  50. return worked;
  51. }
  52. -(BOOL)update
  53. {
  54. return YES;
  55. }
  56. -(BOOL)delete
  57. {
  58. NSString* myUserId = MY_USER_ID;
  59. FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
  60. [self checkTableCreatedInDb:db];
  61. BOOL worked=[db executeUpdate:[NSString stringWithFormat:@"delete from %@ where userId=? and msgId=?",_tableName],self.userId,self.msgId];
  62. return worked;
  63. }
  64. -(BOOL)deleteAllMsg:(NSString*)userId{
  65. NSString* myUserId = MY_USER_ID;
  66. FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
  67. [self checkTableCreatedInDb:db];
  68. BOOL worked=[db executeUpdate:[NSString stringWithFormat:@"delete from %@ where userId=?",_tableName],self.userId];
  69. return worked;
  70. }
  71. -(void)fromObject:(JXMessageObject*)message{
  72. self.userId=message.fromUserId;
  73. self.msgId=message.objectId;
  74. self.time=message.timeSend;
  75. }
  76. -(void)fromDataset:(JXBlogObject*)obj rs:(FMResultSet*)rs{
  77. obj.userId=[rs stringForColumn:kBLOG_UserID];
  78. obj.msgId=[rs stringForColumn:kBLOG_MsgID];
  79. obj.time=[rs dateForColumn:kBLOG_Time];
  80. }
  81. -(void)fromDictionary:(JXBlogObject*)obj dict:(NSDictionary*)aDic
  82. {
  83. // obj.userId = [aDic objectForKey:kUSER_ID];
  84. }
  85. -(NSDictionary*)toDictionary
  86. {
  87. NSDictionary *dic=[NSDictionary dictionaryWithObjectsAndKeys:userId,kUSER_ID,msgId,kBLOG_MsgID,time,kBLOG_Time, nil];
  88. return dic;
  89. }
  90. -(BOOL)checkTableCreatedInDb:(FMDatabase *)db
  91. {
  92. NSString *createStr=[NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS '%@' ('msgId' VARCHAR , 'userId' VARCHAR,'time' DATETIME)",_tableName];
  93. BOOL worked = [db executeUpdate:createStr];
  94. // FMDBQuickCheck(worked);
  95. return worked;
  96. }
  97. -(NSMutableArray*)getBlogIds:(int)pageIndex;
  98. {
  99. NSString *sql=[NSString stringWithFormat:@"select * from %@ order by time desc limit ?*%d,%d",_tableName,PAGE_SHOW_COUNT,PAGE_SHOW_COUNT];
  100. NSMutableArray *resultArr=[[NSMutableArray alloc] init];
  101. NSString* myUserId = MY_USER_ID;
  102. FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
  103. [self checkTableCreatedInDb:db];
  104. FMResultSet *rs=[db executeQuery:sql,[NSNumber numberWithInt:pageIndex]];
  105. while ([rs next]) {
  106. JXBlogObject *p=[[JXBlogObject alloc] init];
  107. [self fromDataset:p rs:rs];
  108. [resultArr addObject:p];
  109. // [p release];
  110. }
  111. [rs close];
  112. if([resultArr count]==0){
  113. // [resultArr release];
  114. resultArr = nil;
  115. }
  116. return resultArr;
  117. }
  118. @end