232 lines
9.8 KiB
C++
232 lines
9.8 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 = values[MachineCfg::CODE_SERIAL];
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_SERIAL.c_str(), mcfg.m_serial.c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_NAME.c_str()) != values.end())mcfg.m_Name = values[MachineCfg::CODE_NAME];
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_NAME.c_str(), mcfg.m_Name.c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_LANGUAGE.c_str()) != values.end())mcfg.m_language = stoi(values[MachineCfg::CODE_LANGUAGE]);
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_LANGUAGE.c_str(), to_string(mcfg.m_language).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_MACHINE_TYPE.c_str()) != values.end())mcfg.m_MachineType = 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).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_SCAN_CONTROL.c_str()) != values.end())mcfg.m_ScanControl = 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).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_PULIFIER_TYPE.c_str()) != values.end())mcfg.m_PulifierType = 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).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_FONT_SIZE.c_str()) != values.end())mcfg.m_fontSize = 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).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_FONT_SCALE.c_str()) != values.end())mcfg.m_fontScale = 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).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_LAST_START_TIME.c_str()) != values.end())mcfg.m_lastStartTime = 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).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_LAST_SHUTDOWN_TIME.c_str()) != values.end())mcfg.m_lastShutdownTime = 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).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_LOCK_PASSWORD.c_str()) != values.end())mcfg.m_LockPassword = values[MachineCfg::CODE_LOCK_PASSWORD];
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_LOCK_PASSWORD.c_str(), mcfg.m_LockPassword.c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_LOCK_ALPHA.c_str()) != values.end())mcfg.m_LockAlpha = 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).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_LOCK_IDLE_TIME.c_str()) != values.end())mcfg.m_LockIdleTime = 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).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_EXPIRED_TIME.c_str()) != values.end())mcfg.m_ExpriedTime = 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).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_CONNECT_PASSWORD.c_str()) != values.end())mcfg.m_ConnectPassword = values[MachineCfg::CODE_CONNECT_PASSWORD];
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_CONNECT_PASSWORD.c_str(), mcfg.m_ConnectPassword.c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_LOCATION.c_str()) != values.end())mcfg.m_Location = values[MachineCfg::CODE_LOCATION];
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_LOCATION.c_str(), mcfg.m_Location.c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_SHAPE.c_str()) != values.end())mcfg.m_PlatformShape = stoi(values[MachineCfg::CODE_SHAPE]);
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_SHAPE.c_str(), to_string(mcfg.m_PlatformShape).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_SUPPORT_NON_ENC_MAGIC.c_str()) != values.end())mcfg.m_SupportNonEncMagic = (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).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_PRINT_STRATEGY.c_str()) != values.end())mcfg.m_PrintStrategy = 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).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_PLATFORM_WIDTH.c_str()) != values.end())mcfg.m_PlatformWidth = 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).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_PLATFORM_LENGTH.c_str()) != values.end())mcfg.m_PlatformLength = 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).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_IS_INTELLI.c_str()) != values.end())mcfg.m_IsIntelli = (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 ? "1" : "0");
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_IO_VERSION.c_str()) != values.end())mcfg.m_IOVersion = 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).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_SUPPLY_MACHINE_VERSION.c_str()) != values.end())mcfg.m_SupplyMachineVersion = 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).c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_I18N_LANG.c_str()) != values.end())
|
|
mcfg.m_I18NLang = values[MachineCfg::CODE_I18N_LANG];
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_I18N_LANG.c_str(), mcfg.m_I18NLang.c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
|
|
if (values.find(MachineCfg::CODE_MACHINE_CODE.c_str()) != values.end())
|
|
mcfg.m_MachineCode = values[MachineCfg::CODE_MACHINE_CODE];
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), insertSql.c_str(), MachineCfg::CODE_MACHINE_CODE.c_str(), mcfg.m_MachineCode.c_str());
|
|
ins.push_back(buffer);
|
|
}
|
|
memset(&mcfg.m_MachineCodeAss, '\0', sizeof(mcfg.m_MachineCodeAss));
|
|
|
|
for (int i = 0; i < mcfg.m_MachineCode.length(); i++) {
|
|
mcfg.m_MachineCodeAss[i] = mcfg.m_MachineCode[i];
|
|
}
|
|
|
|
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";
|
|
}
|
|
} |