您的位置:首页 > 数据库

iOS 好友请求列表数据库处理

2016-07-22 17:23 260 查看
//

//  NewFriendsDBModel.h

//  HengTaiXinGolf

//

//  Created by 欧阳荣 on 16/7/7.

//  Copyright © 2016年 HengTaiXinGolf. All rights reserved.

//

#import <Foundation/Foundation.h>

#import "FMDB.h"

#import "NewFriendModel.h"

@interface NewFriendsDBModel :
NSObject

@property (nonatomic,strong)
FMDatabase * dataBaseNew;

+(NewFriendsDBModel *) sharedInstance;

-(void)openDatabaseWithMemberId:(NSString *)memberId;

-(NSMutableDictionary*)loadAllNewFriendModel;

-(BOOL)addNewFriendsModel:(NewFriendModel *)model;

-(NSInteger)addAllNewFriendsModel:(NSArray *)NewArr;

-(void)updateNewFriendsModel:(NewFriendModel *)model;

-(void)updateAddWayState:(int)state ofMemberId:(NSString *)memberId;

//删除好友请求

-(void)deleteNewFriendModel:(NSString *)memberId;

//- (void)deleteSession:(NSString*)sessionId;

//   查询本地数据库排序好的

-(NSArray *)getAllModelOrderArr;

@end

//

//  NewFriendsDBModel.m

//  HengTaiXinGolf

//

//  Created by 欧阳荣 on 16/7/7.

//  Copyright © 2016年 HengTaiXinGolf. All rights reserved.

//

#import "NewFriendsDBModel.h"

#define NEWFRIENDSDB @"NewFriendsDB"

@implementation NewFriendsDBModel

+(NewFriendsDBModel *)sharedInstance{

    static
NewFriendsDBModel * newFriDBManager;

    static
dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        

        newFriDBManager = [[NewFriendsDBModel
alloc]init];

        

    });

    return newFriDBManager;

}

#pragma mark    -------------根据不同的memberId来创建不同的数据库表---------------------

-(void)openDatabaseWithMemberId:(NSString *)memberId{

    if (memberId.length ==
0) {

        

        return;

        

    }

    // Documents 路径

    NSArray * paths =
NSSearchPathForDirectoriesInDomains(NSCachesDirectory,
NSUserDomainMask,
YES);

    // memberID md5

    const
char * cStr = [memberId
UTF8String];

    unsigned
char result[16];

    CC_MD5(cStr, (CC_LONG)strlen(cStr), result);

     NSString* MD5 =  [NSString
stringWithFormat:@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",result[0],
result[1], result[2], result[3], result[4],
result[5], result[6], result[7],result[8],
result[9], result[10], result[11],result[12],
result[13], result[14], result[15]];

    //md5 加密数据库文件路径

    NSString * documentsDirectory = [[paths
objectAtIndex:0]stringByAppendingPathComponent:MD5];

    NSFileManager  *fileManager = [NSFileManager
defaultManager];

    BOOL isDir =
FALSE;

    BOOL isDirExist = [fileManager
fileExistsAtPath:documentsDirectory
isDirectory:&isDir];

    //判断路径是否存在,不存在就创建    ----  
都是YES


    if (!(isDirExist && isDir)) {

        

        BOOL bCreateDir = [fileManager
createDirectoryAtPath:documentsDirectory
withIntermediateDirectories:YES
attributes:nil
error:nil];

        

        if (!bCreateDir) {

            

            NSLog(@"创建数据库路径失败");

            

        }

        

        DSLog(@"创建数据库路径成功:%@",documentsDirectory);

        

    }

    NSString * dbPath = [documentsDirectory
stringByAppendingPathComponent:@"NewFriendsDBModel.db"];

    if (self.dataBaseNew) {

        [self.dataBaseNew
close];

        self.dataBaseNew =
nil;

    }

    

    self.dataBaseNew = [FMDatabase
databaseWithPath:dbPath];

    

    [self.dataBaseNew
open];

    

    [self
NewFriendsDBTableCreate];

    

}

#pragma mark     在表中创建  NewFriendsDB
字段  
保存新的好友请求信息

- (void)NewFriendsDBTableCreate {

    [self
createTable:@"NewFriendsDB"
sql:@"CREATE table NewFriendsDB (memberId TEXT NOT NULL PRIMARY KEY UNIQUE ON CONFLICT REPLACE, regdate TEXT,memberNick TEXT,memberNickImg TEXT,memberMobile TEXT,addWay
INTEGER,isRead INTEGER,requestMessage TEXT,fNo INTEGER)"];

}

// 创建表

- (void) createTable:(NSString*)tableName sql:(NSString *)createSql {

    

    BOOL isExist = [self.dataBaseNew
tableExists:tableName];

    if (!isExist) {

        [self.dataBaseNew
executeUpdate:createSql];

    }

}

//intForColumn:

//longForColumn:

//longLongIntForColumn:

//boolForColumn:

//doubleForColumn:

//stringForColumn:

//dateForColumn:

//dataForColumn:

//dataNoCopyForColumn:

//UTF8StringForColumnIndex:

//objectForColumn:

- (NSMutableDictionary *)loadAllNewFriendModel {

    

    NSMutableDictionary * sessionDictionay = [NSMutableDictionary
dictionary];

    

    FMResultSet *rs = [self.dataBaseNew
executeQuery:@"SELECT memberId, regdate, memberNick,  memberNickImg, memberMobile, addWay,isRead, requestMessage ,fNo FROM NewFriendsDB"];//ORDER
BY regdate DESC

    while ([rs
next]) {

        NSString * memberId = [rs
stringForColumnIndex:0];

        if (memberId.length>0) {

            NewFriendModel* session = [[NewFriendModel
alloc] init];

            int columnIndex =
0;

            session.memberId = [rs
stringForColumnIndex:columnIndex]; columnIndex++;

            session.regdate = [rs
stringForColumnIndex:columnIndex]; columnIndex++;

//            session.regdate = [rs dateForColumnIndex:columnIndex]; columnIndex ++;

            session.memberNick = [rs
stringForColumnIndex:columnIndex]; columnIndex++;

            session.memberNickImg = [rs
stringForColumnIndex:columnIndex]; columnIndex++;

            session.memberMobile = [rs
stringForColumnIndex:columnIndex]; columnIndex++;

            session.addWay = [rs
intForColumnIndex:columnIndex]; columnIndex++;

            session.isRead = [rs
intForColumnIndex:columnIndex]; columnIndex++;

            session.requestMessage = [rs
stringForColumnIndex:columnIndex]; columnIndex++;

            session.fNo = [rs
intForColumnIndex:columnIndex]; columnIndex++;

            [sessionDictionay setObject:session
forKey:memberId];

//            [self updateMessageStateFailedAndSessionId:sessionid];

        }

    }

    [rs close];

    

    return sessionDictionay;

}

-(NSArray*)getAllModelArr{

    

    

    NSDictionary * _allNewFriDict =
nil;

    if (!_allNewFriDict){

        

        _allNewFriDict = [self
loadAllNewFriendModel];

    

    }

    

    

    return  [_allNewFriDict.allValues
sortedArrayUsingComparator:

             ^(NewFriendModel *obj1,
NewFriendModel* obj2){

                 

                 NSComparisonResult result = [obj1.regdate
compare:obj2.regdate];

                 //                 NSLog(@"date1 : %@, date2 : %@", oneDay, anotherDay);

                 return result;

                 

             }];

    

}

-(NSArray *)getAllModelOrderArr{

    NSArray * newFriendArr1 = [self
getAllModelArr];

    

    NSArray * newFriendArr2 = [NSArray
array];

    

    newFriendArr2 = [[newFriendArr1 reverseObjectEnumerator]
allObjects];

    

    return newFriendArr2;

}

-(BOOL)addNewFriendsModel:(NewFriendModel *)model{

    return [self.dataBaseNew
executeUpdate:@"INSERT INTO NewFriendsDB(memberId, regdate, memberNick, memberNickImg, memberMobile, addWay,isRead,requestMessage,fNo) VALUES(?,?,?,?,?,?,?,?,?)",model.memberId,model.regdate,model.memberNick,model.memberNickImg,model.memberMobile,@(model.addWay),@(model.isRead),model.requestMessage,@(model.fNo)];

}

#pragma mark    把好友请求列表都添加进去

-(NSInteger)addAllNewFriendsModel:(NSArray *)NewArr{

    NSInteger i =
0 ;

    for (NewFriendModel * model
in NewArr) {

        if ([self
addNewFriendsModel:model]) {

            i ++;

            

        }

    }

    return i ;

    

}

-(void)updateNewFriendsModel:(NewFriendModel *)model{

    BOOL UPDATE =
NO;

    

    UPDATE = [self.dataBaseNew
executeUpdate:@"INSERT INTO NewFriendsDB(memberId, regdate, memberNick, memberNickImg, memberMobile, addWay,isRead,requestMessage,fNo) VALUES(?,?,?,?,?,?,?,?,?)",model.memberId,model.regdate,model.memberNick,model.memberNickImg,model.memberMobile,@(model.addWay),@(model.isRead),model.requestMessage,@(model.fNo)];

    if (UPDATE) {

        

        DSLog(@"新的好友请求数据更新成功");

        

    }

}

-(void)updateAddWayState:(int)state ofMemberId:(NSString *)memberId{

    BOOL UpdateAddWay =
NO;

    NSString *updateSql = [NSString
stringWithFormat:

                           @"UPDATE '%@' SET addWay = %d WHERE memberId = '%@'",

                           NEWFRIENDSDB,state,memberId];

//    UpdateAddWay = [self.dataBaseNew executeUpdate:@"UPDATE NewFriendsDB SET addWay = %d WHERE memberId = '%@'",state,memberId];

    UpdateAddWay = [self.dataBaseNew
executeUpdate:updateSql];

    

    if (UpdateAddWay) {

        

        DSLog(@"  --  UpdateAddWay 
更新成功");

        

    }

}

-(void)deleteNewFriendModel:(NSString *)memberId{

    BOOL UPDATE =
NO;

    

    UPDATE = [self.dataBaseNew
executeUpdate:@"DELETE FROM NewFriendsDB WHERE memberId = ?",memberId]

    ;

    if (UPDATE) {

        

//        DSLog(@" 删除
拒绝
新的好友请求数据更新成功");

        

    }

}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios