From 991d8dd64ed4d8c54484d378647c82fb774f43d6 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Wed, 14 Aug 2024 14:36:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0formula=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appsrc/baseservice/db/README.md | 1 - appsrc/baseservice/db/base/dbbase.hpp | 4 +- appsrc/baseservice/db/base/keyvaldb.cpp | 8 ++ appsrc/baseservice/db/base/keyvaldb.hpp | 3 +- appsrc/baseservice/db/db_service.cpp | 189 ------------------------------- appsrc/baseservice/db/db_service.hpp | 31 +---- appsrc/baseservice/db/doc/README.md | 1 + appsrc/baseservice/db/formula_db_dao.cpp | 53 +++++++++ appsrc/baseservice/db/formula_db_dao.hpp | 61 ++++++++++ appsrc/baseservice/db/setting_db_dao.cpp | 51 ++++++--- appsrc/baseservice/db/setting_db_dao.hpp | 6 +- appsrc/service/setting_mgr_service.cpp | 63 +++-------- 12 files changed, 176 insertions(+), 295 deletions(-) delete mode 100644 appsrc/baseservice/db/README.md create mode 100644 appsrc/baseservice/db/doc/README.md create mode 100644 appsrc/baseservice/db/formula_db_dao.cpp create mode 100644 appsrc/baseservice/db/formula_db_dao.hpp diff --git a/appsrc/baseservice/db/README.md b/appsrc/baseservice/db/README.md deleted file mode 100644 index f9d4073..0000000 --- a/appsrc/baseservice/db/README.md +++ /dev/null @@ -1 +0,0 @@ -https://blog.csdn.net/sdut_jk17_zhangming/article/details/107610438 \ No newline at end of file diff --git a/appsrc/baseservice/db/base/dbbase.hpp b/appsrc/baseservice/db/base/dbbase.hpp index 71d3cbd..dc39cf5 100644 --- a/appsrc/baseservice/db/base/dbbase.hpp +++ b/appsrc/baseservice/db/base/dbbase.hpp @@ -18,9 +18,7 @@ #include "appbase/dep.hpp" #define USER_DB "user.db" -#define SETTING_DB "setting.db" #define DISINFECTION_RECORD_DB "disinfection_record.db" -#define FORMULA_DB "formula.db" #define USER_BEHAVIOR_RECORD_DB "user_behavior_record.db" /** @@ -117,6 +115,8 @@ class SettingId { static settingid_t toEnum(string str); operator string() const { return toString(id); } + // 等于 + bool operator==(const SettingId& setid) const { return id == setid.id; } }; static inline void to_json(json& j, const SettingId& setid) { j = setid.toString(setid.getId()); } diff --git a/appsrc/baseservice/db/base/keyvaldb.cpp b/appsrc/baseservice/db/base/keyvaldb.cpp index 1749f77..b0e7179 100644 --- a/appsrc/baseservice/db/base/keyvaldb.cpp +++ b/appsrc/baseservice/db/base/keyvaldb.cpp @@ -91,3 +91,11 @@ void KeyvalDBDao::clear() { logger->error("clear setting failed: {}", e.what()); } } +void KeyvalDBDao::del(string key) { + try { + auto storage = STORAGE(); + storage.remove_all(where(c(&KeyValDB::key) == key)); + } catch (const std::exception& e) { + logger->error("del setting failed: {}", e.what()); + } +} diff --git a/appsrc/baseservice/db/base/keyvaldb.hpp b/appsrc/baseservice/db/base/keyvaldb.hpp index b5dba80..42a8c68 100644 --- a/appsrc/baseservice/db/base/keyvaldb.hpp +++ b/appsrc/baseservice/db/base/keyvaldb.hpp @@ -18,8 +18,6 @@ #include "appbase/dep.hpp" #include "dbbase.hpp" -#define SETTING_DB "setting.db" - namespace iflytop { using namespace std; using namespace std; @@ -54,6 +52,7 @@ class KeyvalDBDao : public enable_shared_from_this { bool set(string key, string val); string get(string key); + void del(string key); void clear(); public: diff --git a/appsrc/baseservice/db/db_service.cpp b/appsrc/baseservice/db/db_service.cpp index e147a34..60898b1 100644 --- a/appsrc/baseservice/db/db_service.cpp +++ b/appsrc/baseservice/db/db_service.cpp @@ -26,33 +26,6 @@ using namespace nlohmann; make_column("is_admin", &User::is_admin) /**/ \ ) -#define SETTING_DB_STRUCT \ - make_table("settings", /**/ \ - make_column("id", &Setting::id, primary_key()), /**/ \ - make_column("name", &Setting::name), /**/ \ - make_column("name_ch", &Setting::name_ch), /**/ \ - make_column("val_lower_limit", &Setting::val_lower_limit), /**/ \ - make_column("val_upper_limit", &Setting::val_upper_limit), /**/ \ - make_column("val_type", &Setting::val_type), /**/ \ - make_column("val", &Setting::val), /**/ \ - make_column("default_val", &Setting::default_val), /**/ \ - make_column("is_editable", &Setting::is_editable), /**/ \ - make_column("is_visible", &Setting::is_visible) /**/ \ - ) - -#define FORMULA_DB_STRUCT \ - make_table("formulas", /**/ \ - make_column("id", &Formula::id, primary_key()), /**/ \ - make_column("loglevel", &Formula::loglevel), /**/ \ - make_column("formula_id", &Formula::formula_id), /**/ \ - make_column("stoped_gs", &Formula::stoped_gs), /**/ \ - make_column("continued_gs", &Formula::continued_gs), /**/ \ - make_column("stoped_satur", &Formula::stoped_satur), /**/ \ - make_column("continued_satur", &Formula::continued_satur), /**/ \ - make_column("stoped_humi", &Formula::stoped_humi), /**/ \ - make_column("continued_humi", &Formula::continued_humi), /**/ \ - make_column("injection_pump_speed", &Formula::injection_pump_speed)) - #define USER_BEHAVIOR_RECORD_STRUCT \ make_table("user_behavior_records", /**/ \ make_column("id", &UserBehaviorRecord::id, primary_key().autoincrement()), /**/ \ @@ -65,7 +38,6 @@ using namespace nlohmann; * 配置列表 * *******************************************************************************/ - #define SETTING_ITEM(_id, _name, _name_ch, _val_type, _val_lower_limit, _val_upper_limit, _val, _is_editable, _is_visible) \ { \ /**/ \ @@ -81,7 +53,6 @@ using namespace nlohmann; .is_visible = _is_visible /**/ \ } - #define ZARRARY_SIZE(val) (sizeof(val) / sizeof(val[0])) DBService::DBService(/* args */) {} @@ -119,24 +90,6 @@ void DBService::init_usr_db() { } while (!suc); } -void DBService::init_formula_db() { - bool suc = false; - - do { - try { - logger->info("init formula db"); - auto storage = make_storage(FORMULA_DB, FORMULA_DB_STRUCT); - storage.sync_schema(); - - suc = true; - } catch (const std::exception& e) { - logger->error("init setting db failed: {}", e.what()); - system("rm -rf setting.db"); - sleep(1); - } - } while (!suc); -} - list> DBService::getAllUser() { lock_guard lock(lock_); @@ -269,146 +222,6 @@ bool DBService::ispasswdCorrect(string uid, string passwd) { return false; } -list> DBService::getAllFormula() { - lock_guard lock(lock_); - - list> formulas; - auto formulatable = make_storage(FORMULA_DB, FORMULA_DB_STRUCT); - formulatable.sync_schema(); - auto all = formulatable.get_all(); - for (auto& f : all) { - formulas.push_back(make_shared(f)); - } - return formulas; -} -shared_ptr DBService::getFormula(int id) { - lock_guard lock(lock_); - - auto formulatable = make_storage(FORMULA_DB, FORMULA_DB_STRUCT); - formulatable.sync_schema(); - auto formula = formulatable.get_all(where(c(&Formula::id) == id)); - if (formula.size() == 0) { - return nullptr; - } - return make_shared(formula[0]); -} - -json DBService::getAllFormulaJson() { - lock_guard lock(lock_); - - json j_formulas; - auto formulatable = make_storage(FORMULA_DB, FORMULA_DB_STRUCT); - formulatable.sync_schema(); - auto all = formulatable.get_all(); - for (auto& f : all) { - json j_formula; - j_formula["id"] = f.id; - j_formula["loglevel"] = f.loglevel; - j_formula["formula_id"] = f.formula_id; - j_formula["stoped_gs"] = f.stoped_gs; - j_formula["continued_gs"] = f.continued_gs; - j_formula["stoped_satur"] = f.stoped_satur; - j_formula["continued_satur"] = f.continued_satur; - j_formula["stoped_humi"] = f.stoped_humi; - j_formula["continued_humi"] = f.continued_humi; - j_formula["injection_pump_speed"] = f.injection_pump_speed; - j_formulas.push_back(j_formula); - } - - json jret; - jret["formulas"] = j_formulas; - return jret; -} -void DBService::addFormula(string formula_id, string loglevel, string stoped_gs, string continued_gs, string stoped_satur, string continued_satur, string stoped_humi, string continued_humi, string injection_pump_speed) { - lock_guard lock(lock_); - - auto formulatable = make_storage(FORMULA_DB, FORMULA_DB_STRUCT); - formulatable.sync_schema(); - Formula f; - f.loglevel = loglevel; - f.formula_id = formula_id; - f.stoped_gs = stoped_gs; - f.continued_gs = continued_gs; - f.stoped_satur = stoped_satur; - f.continued_satur = continued_satur; - f.stoped_humi = stoped_humi; - f.continued_humi = continued_humi; - f.injection_pump_speed = injection_pump_speed; - formulatable.insert(f); - - formulatable.sync_schema(); -} - -void DBService::addFormula(string formula_id, int loglevel, int stoped_gs, int continued_gs, int stoped_satur, int continued_satur, int stoped_humi, int continued_humi, int injection_pump_speed) { - addFormula(formula_id, to_string(loglevel), to_string(stoped_gs), to_string(continued_gs), to_string(stoped_satur), to_string(continued_satur), to_string(stoped_humi), to_string(continued_humi), - to_string(injection_pump_speed)); -} -shared_ptr DBService::delFormula(int id) { - lock_guard lock(lock_); - - // remove_all - auto formulatable = make_storage(FORMULA_DB, FORMULA_DB_STRUCT); - formulatable.sync_schema(); - auto formula = formulatable.get_all(where(c(&Formula::id) == id)); - formulatable.remove_all(where(c(&Formula::id) == id)); - formulatable.sync_schema(); - - if (formula.size() == 0) { - return nullptr; - } - - return make_shared(formula[0]); -} - -shared_ptr DBService::updateFormula(shared_ptr var_formula) { - lock_guard lock(lock_); - if (var_formula == nullptr) { - return nullptr; - } - auto formulatable = make_storage(FORMULA_DB, FORMULA_DB_STRUCT); - formulatable.sync_schema(); - auto formula = formulatable.get_all(where(c(&Formula::id) == var_formula->id)); - if (formula.size() == 0) { - return nullptr; - } - formulatable.update(*var_formula); - formulatable.sync_schema(); - return var_formula; -} - -shared_ptr DBService::updateFormula(int id, string column, string val) { - lock_guard lock(lock_); - - auto formulatable = make_storage(FORMULA_DB, FORMULA_DB_STRUCT); - formulatable.sync_schema(); - auto formula = formulatable.get_all(where(c(&Formula::id) == id)); - if (formula.size() == 0) { - return nullptr; - } - if (column == "formula_id") { - formula[0].formula_id = val; - } else if (column == "loglevel") { - formula[0].loglevel = val; - } else if (column == "stoped_gs") { - formula[0].stoped_gs = val; - } else if (column == "continued_gs") { - formula[0].continued_gs = val; - } else if (column == "stoped_satur") { - formula[0].stoped_satur = val; - } else if (column == "continued_satur") { - formula[0].continued_satur = val; - } else if (column == "stoped_humi") { - formula[0].stoped_humi = val; - } else if (column == "continued_humi") { - formula[0].continued_humi = val; - } else if (column == "injection_pump_speed") { - formula[0].injection_pump_speed = val; - } - formulatable.update(formula[0]); - formulatable.sync_schema(); - return make_shared(formula[0]); -} - int DBService::getUserBehaviorRecordCount() { lock_guard lock(lock_); @@ -484,8 +297,6 @@ json DBService::getUserBehaviorRecordDescJson(int page, int page_size) { static string getTime() { struct tm tm = {0}; - time_t t = ::time(nullptr); - struct tm* tmp = localtime_r(&t, &tm); return fmt::format("{:0>4}-{:0>2}-{:0>2} {:0>2}:{:0>2}:{:0>2}", tm.tm_year + 1900, // tm.tm_mon + 1, // tm.tm_mday, // diff --git a/appsrc/baseservice/db/db_service.hpp b/appsrc/baseservice/db/db_service.hpp index 0ac991c..b277d5f 100644 --- a/appsrc/baseservice/db/db_service.hpp +++ b/appsrc/baseservice/db/db_service.hpp @@ -16,12 +16,12 @@ #include #include "appbase/dep.hpp" +#include "formula_db_dao.hpp" #include "setting_db_dao.hpp" #include "user_behavior_des.hpp" #define USER_DB "user.db" #define DISINFECTION_RECORD_DB "disinfection_record.db" -#define FORMULA_DB "formula.db" #define USER_BEHAVIOR_RECORD_DB "user_behavior_record.db" /** @@ -61,20 +61,6 @@ struct User { bool is_admin; }; -struct Formula { - public: - int id; - string loglevel; - string formula_id; - string stoped_gs; - string continued_gs; - string stoped_satur; - string continued_satur; - string stoped_humi; - string continued_humi; - string injection_pump_speed; -}; - struct UserBehaviorRecord { int id; string uid; @@ -118,20 +104,6 @@ class DBService : public enable_shared_from_this { public: /******************************************************************************* - * Formula * - *******************************************************************************/ - - list> getAllFormula(); - json getAllFormulaJson(); - void addFormula(string formula_id, string loglevel, string stoped_gs, string continued_gs, string stoped_satur, string continued_satur, string stoped_humi, string continued_humi, string injection_pump_speed); - void addFormula(string formula_id, int loglevel, int stoped_gs, int continued_gs, int stoped_satur, int continued_satur, int stoped_humi, int continued_humi, int injection_pump_speed); - shared_ptr delFormula(int id); - shared_ptr updateFormula(int id, string column, string val); - shared_ptr updateFormula(shared_ptr formula); - - shared_ptr getFormula(int id); - - /******************************************************************************* * UserBehaviorRecord * *******************************************************************************/ @@ -146,7 +118,6 @@ class DBService : public enable_shared_from_this { private: void init_usr_db(); - void init_formula_db(); }; }; // namespace iflytop diff --git a/appsrc/baseservice/db/doc/README.md b/appsrc/baseservice/db/doc/README.md new file mode 100644 index 0000000..f9d4073 --- /dev/null +++ b/appsrc/baseservice/db/doc/README.md @@ -0,0 +1 @@ +https://blog.csdn.net/sdut_jk17_zhangming/article/details/107610438 \ No newline at end of file diff --git a/appsrc/baseservice/db/formula_db_dao.cpp b/appsrc/baseservice/db/formula_db_dao.cpp new file mode 100644 index 0000000..5ac069a --- /dev/null +++ b/appsrc/baseservice/db/formula_db_dao.cpp @@ -0,0 +1,53 @@ +#include "formula_db_dao.hpp" + +#include "setting_db_dao.hpp" + +/******************************************************************************* + * BASIC * + *******************************************************************************/ +#define DB_VERSION "1.0.1" // 更新这个参数,会自动重置数据库 + +namespace iflytop { +namespace db {} +} // namespace iflytop +using namespace iflytop; +using namespace db; + +void FormulaDBDao::initialize() { + inited = true; + keyvaldb.initialize("formula.db", "formula"); +} + +json FormulaDBDao::getAllFormula() { + json allFormula; + auto all = keyvaldb.getAll(); + for (auto& formula : all) { + allFormula.push_back(formula->val); + } + return allFormula; +} +void FormulaDBDao::updateFormula(string formulaid, json formula) { + formula["formula_id"] = formulaid; + keyvaldb.set(formulaid, formula); +} +void FormulaDBDao::updateFormula(string formulaid, string key, string val) { + json formula = keyvaldb.get(formulaid); + formula[key] = val; + keyvaldb.set(formulaid, formula); +} +void FormulaDBDao::deleteFormula(string formulaid) { keyvaldb.del(formulaid); } + +json FormulaDBDao::newFormula() { + // 根据设置中setting是否支持formula + auto allSettings = SettingDBDao::ins()->getAllSetting(); + json formula; + formula["formula_id"] = UUID().toString(); + formula["name"] = "新公式"; + for (auto& setting : allSettings) { + if (setting->is_visible_in_formula_page) { + formula[string(setting->setting_id)] = setting->default_val; + } + } + keyvaldb.set(formula["formula_id"], formula); + return formula; +} diff --git a/appsrc/baseservice/db/formula_db_dao.hpp b/appsrc/baseservice/db/formula_db_dao.hpp new file mode 100644 index 0000000..6fd99a2 --- /dev/null +++ b/appsrc/baseservice/db/formula_db_dao.hpp @@ -0,0 +1,61 @@ +#pragma once + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "appbase/dep.hpp" +#include "base/dbbase.hpp" +#include "base/keyvaldb.hpp" +#include "user_behavior_des.hpp" + +namespace iflytop { +using namespace std; +using namespace std; +using namespace core; +using namespace nlohmann; +namespace db { + +/******************************************************************************* + * DAO * + *******************************************************************************/ +class FormulaDBDao : public enable_shared_from_this { + THISCLASS(FormulaDBDao); + recursive_mutex lock_; + + KeyvalDBDao keyvaldb; + bool inited = false; + + public: + void initialize(); + + static FormulaDBDao* ins() { + static FormulaDBDao instance; + if (!instance.inited) instance.initialize(); + instance.inited = true; + return &instance; + } + + public: + json getAllFormula(); + void updateFormula(string formulaid, json formula); + void updateFormula(string formulaid, string key, string val); + void deleteFormula(string formulaid); + json newFormula(); + + public: +}; + +} // namespace db +}; // namespace iflytop diff --git a/appsrc/baseservice/db/setting_db_dao.cpp b/appsrc/baseservice/db/setting_db_dao.cpp index a198693..a89cf1c 100644 --- a/appsrc/baseservice/db/setting_db_dao.cpp +++ b/appsrc/baseservice/db/setting_db_dao.cpp @@ -3,6 +3,9 @@ /******************************************************************************* * BASIC * *******************************************************************************/ +#define SETTING_DB "setting.db" +#define DB_VERSION "1.0.1" // 更新这个参数,会自动重置数据库 + namespace iflytop { namespace db { @@ -66,7 +69,7 @@ static Setting settingInitTable[] = { INT_SETTING(SettingId::kstoped_satur, "消毒停止过氧化氢相对饱和度", "85", "0", "100", true, true, true, true), INT_SETTING(SettingId::kcontinued_satur, "消毒继续过氧化氢相对饱和度", "60", "0", "100", true, true, true, true), INT_SETTING(SettingId::kmax_humidity, "允许消毒最大湿度", "90", "0", "100", true, true, true, true), - INT_SETTING(SettingId::kdrainage_pump_speed, "排液蠕动泵最大转速", "400", "0", "400", true, true, true, true), + INT_SETTING(SettingId::kdrainage_pump_speed, "排液蠕动泵最大转速", "400", "0", "400", true, false, false, false), INT_SETTING(SettingId::kinjection_pump_speed, "喷射蠕动泵转速", "15", "0", "40", true, true, true, true), INT_SETTING(SettingId::kpre_heat_time_s, "预热时间", "120", "0", "1200", true, true, true, true), INT_SETTING(SettingId::kstoped_humi, "消毒停止相对湿度", "85", "0", "100", true, true, true, true), @@ -85,16 +88,29 @@ static Setting settingInitTable[] = { }; -#define VERSION "1.0.0" - void SettingDBDao::initialize() { // try { - keyvaldb.initialize("app.db", "setting"); + keyvaldb.initialize("setting.db", "setting"); string version = keyvaldb.get("version"); - if (version != VERSION) { + if (version != DB_VERSION) { keyvaldb.clear(); - keyvaldb.set("version", VERSION); + keyvaldb.set("version", DB_VERSION); + auto projSetting = GET_SERVICE(ProjectSettingMgr)->getProjectSetting(); for (auto& setting : settingInitTable) { + // 部分设置项根据项目类型进行初始化 + if (setting.setting_id == SettingId::injection_pump_speed) { + if (projSetting->isProjectType(kdraw_bar_disinfection_box)) { + setting.default_val = "4"; + setting.val = "4"; + setting.val_lower_limit = "0"; + setting.val_upper_limit = "8"; + } else { + setting.default_val = "15"; + setting.val = "15"; + setting.val_lower_limit = "0"; + setting.val_upper_limit = "40"; + } + } auto settingJson = setting.toJson(); keyvaldb.set(setting.setting_id, settingJson.dump()); } @@ -107,19 +123,18 @@ void SettingDBDao::initialize() { // list> SettingDBDao::getAllSetting() { // - auto allkeyVal = keyvaldb.getAll(); - list> allSetting; - for (auto& kv : allkeyVal) { - auto setting = make_shared(); - if (kv->key == "version") { - continue; - } - json val = json::parse(kv->val); - *setting = val; - allSetting.push_back(setting); + auto allkeyVal = keyvaldb.getAll(); + list> allSetting; + for (auto& kv : allkeyVal) { + auto setting = make_shared(); + if (kv->key == "version") { + continue; } - return allSetting; - + json val = json::parse(kv->val); + *setting = val; + allSetting.push_back(setting); + } + return allSetting; } shared_ptr SettingDBDao::getSetting(string name) { diff --git a/appsrc/baseservice/db/setting_db_dao.hpp b/appsrc/baseservice/db/setting_db_dao.hpp index aa355ba..73663f8 100644 --- a/appsrc/baseservice/db/setting_db_dao.hpp +++ b/appsrc/baseservice/db/setting_db_dao.hpp @@ -20,7 +20,7 @@ #include "base/keyvaldb.hpp" #include "user_behavior_des.hpp" -#define SETTING_DB "setting.db" + namespace iflytop { using namespace std; @@ -43,10 +43,10 @@ class Setting { SettingId setting_id; string name_ch; string val_type; // int,float,bool,string - string val_lower_limit; - string val_upper_limit; string val; string default_val; + string val_lower_limit; + string val_upper_limit; vector enum_vals; vector enum_dis_vals; diff --git a/appsrc/service/setting_mgr_service.cpp b/appsrc/service/setting_mgr_service.cpp index d25a268..cb73298 100644 --- a/appsrc/service/setting_mgr_service.cpp +++ b/appsrc/service/setting_mgr_service.cpp @@ -5,6 +5,7 @@ using namespace std; using namespace core; using namespace db; #define SETTING_DB SettingDBDao::ins() +#define FORMULA_DB FormulaDBDao::ins() SettingMgrService::SettingMgrService() {} void SettingMgrService::initialize() { @@ -31,65 +32,27 @@ void SettingMgrService::setSettingVal(shared_ptr cxt) { bool suc = SETTING_DB->setSettingVal(settingName, settingVal); APPCHECK(suc, err::kappe_db_operate_error, "setSettingVal failed"); } -void SettingMgrService::getAllFormula(shared_ptr cxt) { cxt->content = m_db->getAllFormulaJson(); } +void SettingMgrService::getAllFormula(shared_ptr cxt) { cxt->content = FORMULA_DB->getAllFormula(); } void SettingMgrService::addNewFormula(shared_ptr cxt) { - string formula_id = "新建配方"; - int loglevel = 3; // - int stoped_gs = SETTING_DB->getSettingValAsInt("stoped_gs"); - int continued_gs = SETTING_DB->getSettingValAsInt("continued_gs"); - int stoped_satur = SETTING_DB->getSettingValAsInt("stoped_satur"); - int continued_satur = SETTING_DB->getSettingValAsInt("continued_satur"); - int stoped_humi = SETTING_DB->getSettingValAsInt("stoped_humi"); - int continued_humi = SETTING_DB->getSettingValAsInt("continued_humi"); - int injection_pump_speed = SETTING_DB->getSettingValAsInt("injection_pump_speed"); - m_db->addFormula(formula_id, loglevel, stoped_gs, continued_gs, stoped_satur, continued_satur, stoped_humi, continued_humi, injection_pump_speed); - - cxt->content = m_db->getAllFormulaJson(); + auto formula = FORMULA_DB->newFormula(); + cxt->content = formula; } -void SettingMgrService::delFormula(shared_ptr cxt) { m_db->delFormula(jsonGet(cxt->cmd["params"]["id"])); } +void SettingMgrService::delFormula(shared_ptr cxt) { + auto param = cxt->cmd["params"]; + FORMULA_DB->deleteFormula(param["formula_id"]); + return; +} void SettingMgrService::updateFormula(shared_ptr cxt) { - auto param = cxt->cmd["params"]; - string val_str; - if (param["val"].is_string()) { - val_str = param["val"]; - } else { - val_str = std::to_string(param["val"].get()); - } - auto formula = m_db->updateFormula(jsonGet(param["id"]), param["itemName"], val_str); + auto param = cxt->cmd["params"]; + FORMULA_DB->updateFormula(param["formula_id"], param["formula"]); return; } void SettingMgrService::updateFormulaIterm(shared_ptr cxt) { auto param = cxt->cmd["params"]; - - int id = jsonGet(param["id"]); - string formula_id = param["formula_id"]; - int loglevel = jsonGet(param["loglevel"]); - int stoped_gs = jsonGet(param["stoped_gs"]); - int continued_gs = jsonGet(param["continued_gs"]); - int stoped_satur = jsonGet(param["stoped_satur"]); - int continued_satur = jsonGet(param["continued_satur"]); - int stoped_humi = jsonGet(param["stoped_humi"]); - int continued_humi = jsonGet(param["continued_humi"]); - int injection_pump_speed = jsonGet(param["injection_pump_speed"]); - - shared_ptr formula = m_db->getFormula(id); - APPCHECK(formula, err::kappe_db_operate_error, "formula id {} not exist", id); - - string oldname = formula->formula_id; - formula->formula_id = formula_id; - formula->loglevel = std::to_string(loglevel); - formula->stoped_gs = std::to_string(stoped_gs); - formula->continued_gs = std::to_string(continued_gs); - formula->stoped_satur = std::to_string(stoped_satur); - formula->continued_satur = std::to_string(continued_satur); - formula->stoped_humi = std::to_string(stoped_humi); - formula->continued_humi = std::to_string(continued_humi); - formula->injection_pump_speed = std::to_string(injection_pump_speed); - - m_db->updateFormula(formula); - cxt->content = m_db->getAllFormulaJson(); + FORMULA_DB->updateFormula(param["formula_id"], param["itemName"], param["val"]); + return; } void SettingMgrService::factoryResetSettings(shared_ptr cxt) { SETTING_DB->factoryReset();