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

//

//  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





猜你喜欢

转载自blog.csdn.net/qq_27247497/article/details/51996878