228 lines
10 KiB
C++
228 lines
10 KiB
C++
#include "MachineCfgDao.h"
|
|
#include "../../utils/StringHelper.h"
|
|
#include "../../utils/TimeHelper.h"
|
|
#include <time.h>
|
|
#include "../ConfigManager.h"
|
|
|
|
MachineCfgDao::MachineCfgDao(SQLite::Database* pdb) :BaseDao(pdb)
|
|
{
|
|
}
|
|
|
|
|
|
MachineCfgDao::~MachineCfgDao()
|
|
{
|
|
}
|
|
|
|
void MachineCfgDao::CreateTable()
|
|
{
|
|
if (!m_pDB->tableExists(MachineCfg::TABLE_NAME)) {
|
|
char buffer[1024];
|
|
string createSql = "CREATE TABLE %s(%s VARCHAR(32) PRIMARY KEY,%s VARCHAR(50))";
|
|
sprintf_s(buffer, sizeof(buffer), createSql.c_str(), MachineCfg::TABLE_NAME.c_str(), MachineCfg::FIELD_CODE.c_str(), MachineCfg::FIELD_VALUE.c_str());
|
|
m_pDB->exec(buffer);
|
|
}
|
|
}
|
|
|
|
void MachineCfgDao::Find(MachineCfg& mcfg)
|
|
{
|
|
Machine::InitMachineCfg(&mcfg);
|
|
char buffer[1024];
|
|
string strsql = "SELECT %s,%s FROM %s";
|
|
string insertSql = "INSERT INTO " + MachineCfg::TABLE_NAME + "(" + MachineCfg::FIELD_CODE + "," + MachineCfg::FIELD_VALUE + ") VALUES('%s','%s')";
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(),
|
|
MachineCfg::FIELD_CODE.c_str(),
|
|
MachineCfg::FIELD_VALUE.c_str(),
|
|
MachineCfg::TABLE_NAME.c_str());
|
|
SQLite::Statement query(*m_pDB, buffer);
|
|
map<string, string> values;
|
|
vector<string> ins;
|
|
while (query.executeStep()) {
|
|
values[query.getColumn(MachineCfg::FIELD_CODE.c_str()).getString()] = query.getColumn(MachineCfg::FIELD_VALUE.c_str()).getString();
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_SERIAL.c_str()) != values.end())mcfg.m_serial->SetValue(values[MachineCfg::CODE_SERIAL]);
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_SERIAL.c_str(), mcfg.m_serial->GetValueStr().c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_NAME.c_str()) != values.end())mcfg.m_Name->SetValue(values[MachineCfg::CODE_NAME]);
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_NAME.c_str(), mcfg.m_Name->GetValueStr().c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_LANGUAGE.c_str()) != values.end())mcfg.m_language->SetValue(stoi(values[MachineCfg::CODE_LANGUAGE]));
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_LANGUAGE.c_str(), to_string(mcfg.m_language->GetValue()).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_MACHINE_TYPE.c_str()) != values.end())mcfg.m_MachineType->SetValue(stoi(values[MachineCfg::CODE_MACHINE_TYPE]));
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_MACHINE_TYPE.c_str(), to_string(mcfg.m_MachineType->GetValue()).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_SCAN_CONTROL.c_str()) != values.end())mcfg.m_ScanControl->SetValue(stoi(values[MachineCfg::CODE_SCAN_CONTROL]));
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_SCAN_CONTROL.c_str(), to_string(mcfg.m_ScanControl->GetValue()).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_PULIFIER_TYPE.c_str()) != values.end())mcfg.m_PulifierType->SetValue(stoi(values[MachineCfg::CODE_PULIFIER_TYPE]));
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_PULIFIER_TYPE.c_str(), to_string(mcfg.m_PulifierType->GetValue()).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_FONT_SIZE.c_str()) != values.end())mcfg.m_fontSize->SetValue(stof(values[MachineCfg::CODE_FONT_SIZE]));
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_FONT_SIZE.c_str(), to_string(mcfg.m_fontSize->GetValue()).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_FONT_SCALE.c_str()) != values.end())mcfg.m_fontScale->SetValue(stof(values[MachineCfg::CODE_FONT_SCALE]));
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_FONT_SCALE.c_str(), to_string(mcfg.m_fontScale->GetValue()).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_LAST_START_TIME.c_str()) != values.end())mcfg.m_lastStartTime->SetValue(stoll(values[MachineCfg::CODE_LAST_START_TIME]));
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_LAST_START_TIME.c_str(), to_string(mcfg.m_lastStartTime->GetValue()).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_LAST_SHUTDOWN_TIME.c_str()) != values.end())mcfg.m_lastShutdownTime->SetValue(stoll(values[MachineCfg::CODE_LAST_SHUTDOWN_TIME]));
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_LAST_SHUTDOWN_TIME.c_str(), to_string(mcfg.m_lastShutdownTime->GetValue()).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_LOCK_PASSWORD.c_str()) != values.end())mcfg.m_LockPassword->SetValue(values[MachineCfg::CODE_LOCK_PASSWORD]);
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_LOCK_PASSWORD.c_str(), mcfg.m_LockPassword->GetValueStr().c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_LOCK_ALPHA.c_str()) != values.end())mcfg.m_LockAlpha->SetValue(stof(values[MachineCfg::CODE_LOCK_ALPHA]));
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_LOCK_ALPHA.c_str(), to_string(mcfg.m_LockAlpha->GetValue()).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_LOCK_IDLE_TIME.c_str()) != values.end())mcfg.m_LockIdleTime->SetValue(stoi(values[MachineCfg::CODE_LOCK_IDLE_TIME]));
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_LOCK_IDLE_TIME.c_str(), to_string(mcfg.m_LockIdleTime->GetValue()).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_EXPIRED_TIME.c_str()) != values.end())mcfg.m_ExpriedTime->SetValue(stoul(values[MachineCfg::CODE_EXPIRED_TIME]));
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_EXPIRED_TIME.c_str(), to_string(mcfg.m_ExpriedTime->GetValue()).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_CONNECT_PASSWORD.c_str()) != values.end())mcfg.m_ConnectPassword->SetValue(values[MachineCfg::CODE_CONNECT_PASSWORD]);
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_CONNECT_PASSWORD.c_str(), mcfg.m_ConnectPassword->GetValueStr().c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_LOCATION.c_str()) != values.end())mcfg.m_Location->SetValue(values[MachineCfg::CODE_LOCATION]);
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_LOCATION.c_str(), mcfg.m_Location->GetValueStr().c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_SHAPE.c_str()) != values.end())mcfg.m_PlatformShape->SetValue(stoi(values[MachineCfg::CODE_SHAPE]));
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_SHAPE.c_str(), to_string(mcfg.m_PlatformShape->GetValue()).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_SUPPORT_NON_ENC_MAGIC.c_str()) != values.end())mcfg.m_SupportNonEncMagic->SetValue(stoi(values[MachineCfg::CODE_SUPPORT_NON_ENC_MAGIC]) > 0 ? true : false);
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_SUPPORT_NON_ENC_MAGIC.c_str(), to_string(mcfg.m_SupportNonEncMagic->GetValue()).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_PRINT_STRATEGY.c_str()) != values.end())mcfg.m_PrintStrategy->SetValue(MachineCfg::PrintStrategy(stoi(values[MachineCfg::CODE_PRINT_STRATEGY])));
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_PRINT_STRATEGY.c_str(), to_string(mcfg.m_PrintStrategy->GetValue()).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_PLATFORM_WIDTH.c_str()) != values.end())mcfg.m_PlatformWidth->SetValue(stoi(values[MachineCfg::CODE_PLATFORM_WIDTH]));
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_PLATFORM_WIDTH.c_str(), to_string(mcfg.m_PlatformWidth->GetValue()).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_PLATFORM_LENGTH.c_str()) != values.end())mcfg.m_PlatformLength->SetValue(stoi(values[MachineCfg::CODE_PLATFORM_LENGTH]));
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_PLATFORM_LENGTH.c_str(), to_string(mcfg.m_PlatformLength->GetValue()).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_IS_INTELLI.c_str()) != values.end())mcfg.m_IsIntelli->SetValue(stoi(values[MachineCfg::CODE_IS_INTELLI]) > 0 ? true : false);
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_IS_INTELLI.c_str(), mcfg.m_IsIntelli->GetValue() ? "1" : "0");
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_IO_VERSION.c_str()) != values.end())mcfg.m_IOVersion->SetValue(stoi(values[MachineCfg::CODE_IO_VERSION]));
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_IO_VERSION.c_str(), to_string(mcfg.m_IOVersion->GetValue()).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_SUPPLY_MACHINE_VERSION.c_str()) != values.end())mcfg.m_SupplyMachineVersion->SetValue(stoi(values[MachineCfg::CODE_SUPPLY_MACHINE_VERSION]));
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_SUPPLY_MACHINE_VERSION.c_str(), to_string(mcfg.m_SupplyMachineVersion->GetValue()).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_USE_TOUCH_SCREEN.c_str()) != values.end())mcfg.m_UseTouchScreen->SetValue(stoi(values[MachineCfg::CODE_USE_TOUCH_SCREEN]) > 0 ? true : false);
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_USE_TOUCH_SCREEN.c_str(), mcfg.m_UseTouchScreen->GetValue() ? "1" : "0");
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_MACHINE_CODE.c_str()) != values.end())
|
|
mcfg.m_MachineCode->SetValue(values[MachineCfg::CODE_MACHINE_CODE]);
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_MACHINE_CODE.c_str(), mcfg.m_MachineCode->GetValueStr().c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
mcfg.m_MachineCodeAss->SetValue(mcfg.m_MachineCode->GetValueStr());
|
|
|
|
if (!ins.empty()) {
|
|
SQLite::Transaction transaction(*m_pDB);
|
|
for (size_t insIndex = 0; insIndex < ins.size(); insIndex++) {
|
|
m_pDB->exec(ins[insIndex]);
|
|
}
|
|
transaction.commit();
|
|
}
|
|
}
|
|
|
|
void MachineCfgDao::Save(MachineCfg& mcfg)
|
|
{
|
|
vector<string> ups;
|
|
mcfg.GetUpdateSql(ups);
|
|
for (size_t i = 0; i < ups.size(); ++i) {
|
|
m_pDB->exec(ups[i]);
|
|
}
|
|
}
|
|
|
|
|
|
void MachineCfgDao::Export(MachineCfg& mcfg, stringstream& sql)
|
|
{
|
|
vector<string> ups;
|
|
mcfg.GetUpdateSql(ups);
|
|
for (size_t i = 0; i < ups.size(); ++i) {
|
|
sql << ups[i] << "\n";
|
|
}
|
|
} |