123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- //
- // JXMediaObject.m
- //
- // Created by Reese on 13-8-11.
- // Copyright (c) 2013年 Reese. All rights reserved.
- //
- #import "JXMediaObject.h"
- #import "FMDatabase.h"
- #import "FMResultSet.h"
- #import "AppDelegate.h"
- #import "JXMessageObject.h"
- @implementation JXMediaObject
- @synthesize userId;
- @synthesize fileName;
- @synthesize name;
- @synthesize remark;
- @synthesize isVideo;
- @synthesize timeLen;
- @synthesize createTime;
- @synthesize url;
- static JXMediaObject *shared;
- +(JXMediaObject*)sharedInstance{
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- shared=[[JXMediaObject alloc] init];
- });
- return shared;
- }
- -(id)init{
- self = [super init];
- if(self){
- _tableName = @"media";
- self.userId = nil;
- self.isDelete = [NSNumber numberWithBool:NO];
- }
- return self;
- }
- -(void)dealloc{
- // NSLog(@"JXMediaObject.dealloc");
- self.userId = nil;
- self.fileName = nil;
- self.photoPath = nil;
- self.name = nil;
- self.remark = nil;
- self.isVideo = nil;
- self.isDelete = nil;
- self.timeLen = nil;
- self.createTime = nil;
- self.url = nil;
- // [super dealloc];
- }
- -(BOOL)insert
- {
- NSString* myUserId = MY_USER_ID;
- FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
- [self checkTableCreatedInDb:db];
-
- if (!self.createTime) {
- self.createTime = [NSDate date];
- }
- NSString *sql=[NSString stringWithFormat:@"INSERT INTO '%@' (userId,fileName,createTime,name,remark,timeLen,isVideo,url,photoPath,isDelete) VALUES (?,?,?,?,?,?,?,?,?,?)",_tableName];
- BOOL worked = [db executeUpdate:sql,self.userId,self.fileName,self.createTime,self.name,self.remark,self.timeLen,self.isVideo,self.url,self.photoPath,self.isDelete];
- // FMDBQuickCheck(worked);
-
- if(!worked)
- worked = [self update];
- return worked;
- }
- -(BOOL)update
- {
- NSString* myUserId = MY_USER_ID;
- FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
- [self checkTableCreatedInDb:db];
-
- NSString *sql=[NSString stringWithFormat:@"update '%@' set url=?,name=?,remark=? where mediaId=?",_tableName];
- BOOL worked = [db executeUpdate:sql,self.url,self.name,self.remark,self.mediaId];
- // FMDBQuickCheck(worked);
-
- return worked;
- }
- -(BOOL)delete
- {
- NSString* myUserId = MY_USER_ID;
- FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
- [self checkTableCreatedInDb:db];
- if (self.photoPath.length > 0) { // 当是手机中的视频时,更新isDelete = YES,以便删除时不显示
- self.isDelete = [NSNumber numberWithBool:YES];
- BOOL worked=[db executeUpdate:[NSString stringWithFormat:@"update '%@' set isDelete=? where mediaId=?",_tableName],self.isDelete,self.mediaId];
- return worked;
- }
-
- BOOL worked=[db executeUpdate:[NSString stringWithFormat:@"delete from %@ where mediaId=?",_tableName],self.mediaId];
- return worked;
- }
- // 清除缓存后删除所有
- -(BOOL)deleteAll {
- NSString* myUserId = MY_USER_ID;
- FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
- [self checkTableCreatedInDb:db];
-
- BOOL worked=[db executeUpdate:[NSString stringWithFormat:@"delete from %@",_tableName]];
- return worked;
- }
- -(void)fromDataset:(JXMediaObject*)obj rs:(FMResultSet*)rs{
- obj.userId=[rs stringForColumn:kMedia_userId];
- obj.fileName=[rs stringForColumn:kMedia_FileName];
- obj.photoPath=[rs stringForColumn:kMedia_PhotoPath];
- obj.remark=[rs stringForColumn:kMedia_Remark];
- obj.name=[rs stringForColumn:kMedia_Name];
- obj.url=[rs stringForColumn:kMedia_url];
- obj.timeLen=[rs objectForColumnName:kMedia_timeLen];
- obj.createTime=[rs dateForColumn:kMedia_Time];
- obj.isVideo=[rs objectForColumnName:kMedia_IsVideo];
- obj.isDelete=[rs objectForColumnName:kMedia_IsDelete];
- obj.mediaId=[rs objectForColumnName:kMedia_ID];
- }
- -(void)fromDictionary:(JXMediaObject*)obj dict:(NSDictionary*)aDic
- {
- // obj.userId = [aDic objectForKey:kUSER_ID];
- }
- -(NSDictionary*)toDictionary
- {
- // NSDictionary *dic=[NSDictionary dictionaryWithObjectsAndKeys:userId,kUSER_ID,msgId,kMedia_MsgID,time,kMedia_Time, nil];
- // return dic;
- return nil;
- }
- -(BOOL)checkTableCreatedInDb:(FMDatabase *)db
- {
- NSString *createStr=[NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS '%@' ('mediaId' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE ,'userId' VARCHAR,'createTime' DATETIME,'name' VARCHAR,'remark' VARCHAR,'fileName' VARCHAR,'url' VARCHAR,'isVideo' INTEGER,'timeLen' INTEGER,'photoPath' INTEGER,'isDelete' INTEGER)",_tableName];
-
- BOOL worked = [db executeUpdate:createStr];
- // FMDBQuickCheck(worked);
- return worked;
- }
- -(NSMutableArray*)fetch
- {
- NSMutableArray *resultArr=[[NSMutableArray alloc]init];
-
- NSString* myUserId = MY_USER_ID;
- FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
- [self checkTableCreatedInDb:db];
-
- NSString *sql=[NSString stringWithFormat:@"select * from media where isDelete<>1 order by mediaId desc"];
- FMResultSet *rs=[db executeQuery:sql];
- while ([rs next]) {
- JXMediaObject *user=[[JXMediaObject alloc] init];
- [self fromDataset:user rs:rs];
- [resultArr addObject:user];
- // [user release];
- }
- [rs close];
- // if([resultArr count]==0){
- //// [resultArr release];
- // resultArr = nil;
- // }
- return resultArr;
- }
- - (BOOL)haveTheMediaWithPhotoPath:(NSString *)photoPath {
-
- NSString* myUserId = MY_USER_ID;
- FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
- [self checkTableCreatedInDb:db];
-
- NSString *sql=[NSString stringWithFormat:@"select * from media where photoPath=?"];
- FMResultSet *rs=[db executeQuery:sql,photoPath];
- while ([rs next]) {
- return YES;
- }
- return NO;
- }
- @end
|