226 lines
9.3 KiB
Objective-C
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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