226 lines
9.3 KiB
Mathematica
Raw Normal View History

//
// sysInfo.m
// myhome
//
// Created by hkh on 15/10/31.
//
//
#import "sysInfo.h"
#import "Opendoor.h"
@interface sysInfo ()
@end
@implementation sysInfo{
}
@synthesize db = db;
- (Boolean)initDB{
//
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); ///Users/apple/Library/Application Support/iPhone Simulator/4.3/Applications/550AF26D-174B-42E6-881B-B7499FAA32B7/Documents
NSString *documentsDirectory = [paths objectAtIndex:0]; //
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"linetsql.sqlite"];
if (sqlite3_open([path UTF8String], &db) != SQLITE_OK) {
sqlite3_close(db);
NSLog(@"数据库打开失败");
return FALSE;
}
else {
NSLog(@"数据库打开成功");
return TRUE;
}
}
- (void)sqlexe:(NSString *)sql
{
char *err;
int ret = sqlite3_exec(db, [sql UTF8String], NULL, NULL, &err);
NSLog(@"数据库操作结果!%d",ret);
if ( ret!= SQLITE_OK) {
sqlite3_close(db);
NSLog(@"数据库操作数据失败!%@",[NSString stringWithUTF8String:err]);
}
}
- (void)readSystemInfo
{
self.equid = @"";
self.username = @"";
self.server_wan = @"8.129.71.206";
self.server_port = 8367;
self.port = 8366;
self.equip = @"0.0.0.0";
self.reporttime = 15;
self.smscodetime = 0;
self.pushkitToken = @"";
self.push = 1;
self.HF = 0;
self.sandbox = 0;
NSString *sql = @"SELECT * FROM linet_sysinfo";
sqlite3_stmt * statement;
if(sqlite3_prepare_v2(db, [sql UTF8String], -1, &statement, nil) == SQLITE_OK) {
NSLog(@"sqlite3_prepare_v2 OK");
while(sqlite3_step(statement) == SQLITE_ROW) {
NSString *key = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0) ];
if( [@"equid" isEqualToString: key]){
self.equid = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
}
else if([@"push" isEqualToString: key]){
self.push = [[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)] intValue];
}
else if([@"HF" isEqualToString: key]){
self.HF = [[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)] intValue];
}
// else if( [@"equip" isEqualToString: key]){
// self.equip = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
// }
// else if([@"equmac" isEqualToString: key]){
// self.equmac = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
// }
// else if([@"port" isEqualToString: key]){
// self.port = [[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)] intValue];
// }
// else if([@"server" isEqualToString: key]){
// self.server = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
// }
// else if([@"server_wan" isEqualToString: key]){
// self.server_wan = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
// }
// else if([@"server_port" isEqualToString: key]){
// self.server_port = [[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)] intValue];
// }
else if([@"lasttime" isEqualToString: key]){
self.lasttime = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
}
else if([@"username" isEqualToString: key]){
self.username = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
}
else if([@"token" isEqualToString: key]){
self.token = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
}
else if([@"smscodetime" isEqualToString: key]){
self.smscodetime = [[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)] longLongValue];
}
}
}
else{
//linet_sysinfo
NSLog(@"sysinfo不存在创建表并初始化数据库");
//
sql=@"DROP TABLE if exists linet_sysinfo";
NSLog(@"drop");
[self sqlexe:sql];
sql =@"create table linet_sysinfo(pname string primary key,pvalue string)";
[self sqlexe:sql];
sql =@"create table record(no integer PRIMARY KEY AUTOINCREMENT,stime long,type string,username string,equid string,name string,img string,note string)";
[self sqlexe:sql];
}
}
- (void)SaveRecord:(long)time Type:(NSString *)type Equ:(NSString *)equid Img:(NSString *)img Note:(NSString *)note{
NSString *name = [Opendoor EquNameById:equid];
NSString *sql = [[NSString alloc] initWithFormat: @"insert into record(stime,type,username,equid,name,img,note) values (%ld,'%@','%@','%@','%@','%@','%@')",time,type,self.username,equid,name,img,note] ;
NSLog(sql);
[self sqlexe:sql];
}
- (NSMutableArray *)readRecord:(NSString *)no{
NSMutableArray *ret = [[NSMutableArray alloc] initWithCapacity:0];
NSString *sql;
if(no){
sql = [[NSString alloc] initWithFormat:@"SELECT no,stime,type,equid,name,img,note FROM record where username='%@' and no<%@ order by no desc limit 0,20",self.username,no] ;
}
else{
sql = [[NSString alloc] initWithFormat:@"SELECT no,stime,type,equid,name,img,note FROM record where username='%@' order by no desc limit 0,20",self.username] ;
}
//sql = @"SELECT no,stime,type,equid,name,img,note FROM record order by no desc" ;
NSLog(sql);
sqlite3_stmt * statement;
if(sqlite3_prepare_v2(db, [sql UTF8String], -1, &statement, nil) == SQLITE_OK) {
NSLog(@"sqlite3_prepare_v2 OK");
while(sqlite3_step(statement) == SQLITE_ROW) {
NSDictionary *dic = [[NSDictionary alloc] initWithObjects:@[
[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0) ],
[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1) ],
[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 2) ],
[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 3) ],
[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 4) ],
[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 5) ],
[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 6) ]
]
forKeys:@[@"no",@"stime",@"type",@"equid",@"name",@"img",@"note"]];
// for (id key in dic) {
// id value=[dic objectForKey:key];
// NSLog(@"readRecord:%@:%@",key,value);
//
// }
[ret addObject:dic];
}
}
return ret;
}
- (void)delRecord:(NSString *)condition{
NSString *sql = [[NSString alloc] initWithFormat:@"select img FROM record where username='%@' and type='截图' %@",self.username,condition] ;
sqlite3_stmt * statement;
if(sqlite3_prepare_v2(db, [sql UTF8String], -1, &statement, nil) == SQLITE_OK) {
NSLog(@"sqlite3_prepare_v2 OK");
while(sqlite3_step(statement) == SQLITE_ROW) {
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *imageFilePath = [path stringByAppendingPathComponent:[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0) ]];
[[NSFileManager defaultManager] removeItemAtPath:imageFilePath error:nil];
}
}
sql = [[NSString alloc] initWithFormat:@"delete FROM record where username='%@' %@",self.username,condition] ;
NSLog(sql);
[self sqlexe:sql];
}
- (void)setSystemInfo:(NSString *)key WithValue:(NSString *)value
{
NSString *sql = [[NSString alloc] initWithFormat: @"SELECT * FROM linet_sysinfo where pname='%@'",key] ;
sqlite3_stmt * statement;
int ret = sqlite3_prepare_v2(db, [sql UTF8String], -1, &statement, nil);
if(ret == SQLITE_OK) {
if(sqlite3_step(statement) == SQLITE_ROW) {
sql = [[NSString alloc] initWithFormat: @"update linet_sysinfo set pvalue='%@' where pname='%@'",value,key] ;
}
else{
sql = [[NSString alloc] initWithFormat: @"insert into linet_sysinfo(pname,pvalue) values('%@','%@')",key,value] ;
}
NSLog(@"%@",sql);
[self sqlexe:sql];
}
else{
NSLog(@"setSystemInfo 失败:%d",ret);
}
// NSString *sql = [[NSString alloc] initWithFormat:@"update linet_sysinfo set equid='%@',equip='%@',equmac='%@',port=%d,server='%@',server_wan='%@',server_lan='%@',equ_server=%d,code_mode=%d,subequid=%d",sysinfo.equid,sysinfo.equip,sysinfo.equmac,sysinfo.port,sysinfo.server,sysinfo.server_wan,sysinfo.server_lan,sysinfo.equ_server,sysinfo.code_mode,sysinfo.subequid];
// NSLog(@"%@",sql);
// [self sqlexe:sql];
}
@end