123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- //
- // BDQuestionModule.m
- // jiaPei
- //
- // Created by 张嵘 on 2022/7/28.
- // Copyright © 2022 JCZ. All rights reserved.
- //
- #import "BDQuestionModule.h"
- static NSString *dbNameStr = @"question";
- static NSString *dbTypeStr = @"db";
- static NSString *questionTableNameStr = @"t_question";
- @interface BDQuestionModule ()
- @property (nonatomic, readwrite, strong) FMDatabaseQueue *databaseQueue;
- @end
- @implementation BDQuestionModule
- static id rq_BDQuestionModule = nil;
- #pragma mark - init
- + (instancetype)sharedInstance {
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- rq_BDQuestionModule = [[self alloc] init];
- });
- return rq_BDQuestionModule;
- }
- - (instancetype)init {
- if (self = [super init]) {
- NSError *error;
-
- NSString *dbPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@",dbNameStr,dbTypeStr]];
- NSString *resourcePath = [[NSBundle mainBundle] pathForResource:dbNameStr ofType:dbTypeStr];
-
- if ([RQFileManager isPathExist:dbPath]) {
- self.databaseQueue = [FMDatabaseQueue databaseQueueWithPath:dbPath];
- NSLog(@"数据库path-----%@",dbPath);
- if ([self getQuestionVersion] >= [self getQuestionVersionWithResourcePath:resourcePath]) {
- } else {
- [[RQFileManager fileManager] removeItemAtPath:dbPath error:&error];
- [[RQFileManager fileManager] copyItemAtPath:resourcePath toPath:[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@",dbNameStr,dbTypeStr]] error:&error];
- self.databaseQueue = [FMDatabaseQueue databaseQueueWithPath:dbPath];
- }
- } else {
- [[RQFileManager fileManager] copyItemAtPath:resourcePath toPath:[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@",dbNameStr,dbTypeStr]] error:&error];
- self.databaseQueue = [FMDatabaseQueue databaseQueueWithPath:dbPath];
- NSLog(@"数据库path-----%@",dbPath);
- }
- }
- return self;
- }
- #pragma mark - PublicMethods
- - (NSInteger)getQuestionVersion {
- __block NSInteger version = 0;
- if (_databaseQueue) {
- [_databaseQueue inDatabase:^(FMDatabase * _Nonnull db) {
- FMResultSet *resultSet;
- resultSet = [db executeQuery:@"SELECT version FROM t_version"];
- while ([resultSet next]) {
- version = [resultSet longForColumn:@"version"];
- }
- }];
- }
- return version;
- }
- - (NSInteger)getQuestionVersionWithResourcePath:(NSString *)resourcePath {
- __block NSInteger version = 0;
- [[FMDatabaseQueue databaseQueueWithPath:resourcePath] inDatabase:^(FMDatabase * _Nonnull db) {
- FMResultSet *resultSet;
- resultSet = [db executeQuery:@"SELECT version FROM t_version"];
- while ([resultSet next]) {
- version = [resultSet longForColumn:@"version"];
- }
- }];
- return version;
- }
- - (NSArray *)queryQuestionWithQueryStr:(NSString *)queryStr {
- NSMutableArray *arr = @[].mutableCopy;
- [_databaseQueue inDatabase:^(FMDatabase * _Nonnull db) {
- // NSString *sqlStr = [NSString stringWithFormat:@"ATTACH DATABASE '%@' AS jsjp_user_db",RQ_YDT_USER_Question_Module.dbPath];
- // bool success = [db executeStatements:sqlStr];
- // if(!success) {
- // NSLog(@"%@", db.lastErrorMessage);
- // }
-
- FMResultSet *resultSet = [db executeQuery:queryStr];
- // NSInteger num = 0;
- while ([resultSet next]) {
- RQBDQuestionModel *bdQuestionModel = [RQBDQuestionModel bdQuestionModelWithFMResultSet:resultSet];
- // ydtQuestionModel.num = num;
- [arr addObject:bdQuestionModel];
- // num ++;
- }
- [resultSet close];
- }];
- return arr.copy;
- }
- @end
|