JXUserPublicKeyObj.m 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. //
  2. // JXUserPublicKeyObj.m
  3. // shiku_im
  4. //
  5. // Created by p on 2019/8/7.
  6. // Copyright © 2019 Reese. All rights reserved.
  7. //
  8. #import "JXUserPublicKeyObj.h"
  9. #import "FMDatabase.h"
  10. #import "FMResultSet.h"
  11. @interface JXUserPublicKeyObj()
  12. @property (nonatomic, copy) NSString *tableName;
  13. @end
  14. @implementation JXUserPublicKeyObj
  15. +(instancetype)sharedManager {
  16. static dispatch_once_t onceToken;
  17. static JXUserPublicKeyObj *instance;
  18. dispatch_once(&onceToken, ^{
  19. instance = [[JXUserPublicKeyObj alloc] init];
  20. });
  21. return instance;
  22. }
  23. - (instancetype)init {
  24. if ([super init]) {
  25. _tableName = @"PublicKey";
  26. }
  27. return self;
  28. }
  29. -(NSString*)getTableName{
  30. return @"PublicKey";
  31. }
  32. -(BOOL)checkTableCreatedInDb:(FMDatabase *)db
  33. {
  34. NSString *createStr=[NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS '%@' ('userId' VARCHAR,'publicKey' VARCHAR,'keyCreateTime' DATETIME DEFAULT 0)",[self getTableName]];
  35. BOOL worked = [db executeUpdate:createStr];
  36. return worked;
  37. }
  38. //数据库增删改查
  39. -(BOOL)insert {
  40. NSString* myUserId = MY_USER_ID;
  41. FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
  42. [self checkTableCreatedInDb:db];
  43. NSString *insertStr=[NSString stringWithFormat:@"INSERT INTO '%@' ('userId','publicKey','keyCreateTime') VALUES (?,?,?)",[self getTableName]];
  44. BOOL worked = [db executeUpdate:insertStr,self.userId,self.publicKey,self.keyCreateTime];
  45. return worked;
  46. }
  47. -(BOOL)delete {
  48. NSString* myUserId = MY_USER_ID;
  49. FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
  50. [self checkTableCreatedInDb:db];
  51. NSString *sql = [NSString stringWithFormat:@"delete from %@ where publicKey=?",[self getTableName]];
  52. BOOL worked=[db executeUpdate:sql,self.publicKey];
  53. return worked;
  54. }
  55. // 获取好友的公钥列表
  56. - (NSMutableArray *)fetchPublicKeyWithUserId:(NSString *)userId {
  57. NSMutableArray *resultArr=[[NSMutableArray alloc]init];
  58. NSString* myUserId = MY_USER_ID;
  59. FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
  60. [self checkTableCreatedInDb:db];
  61. NSString *sql = @"select * from PublicKey where userId = ? order by keyCreateTime desc";
  62. FMResultSet *rs=[db executeQuery:sql,userId];
  63. while ([rs next]) {
  64. JXUserPublicKeyObj *obj=[[JXUserPublicKeyObj alloc] init];
  65. obj.userId = [rs stringForColumn:@"userId"];
  66. obj.publicKey = [rs stringForColumn:@"publicKey"];
  67. obj.keyCreateTime = [rs dateForColumn:@"keyCreateTime"];
  68. [resultArr addObject:obj];
  69. }
  70. return resultArr;
  71. }
  72. // 删除好友的公钥列表
  73. - (BOOL)deletePublicKeyWIthUserId:(NSString *)userId {
  74. NSString* myUserId = MY_USER_ID;
  75. FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
  76. [self checkTableCreatedInDb:db];
  77. NSString *sql = [NSString stringWithFormat:@"delete from %@ where userId=?",[self getTableName]];
  78. BOOL worked=[db executeUpdate:sql,userId];
  79. return worked;
  80. }
  81. @end