Browse Source

更新formula接口

storage-in-realtime
zhaohe 12 months ago
parent
commit
991d8dd64e
  1. 4
      appsrc/baseservice/db/base/dbbase.hpp
  2. 8
      appsrc/baseservice/db/base/keyvaldb.cpp
  3. 3
      appsrc/baseservice/db/base/keyvaldb.hpp
  4. 189
      appsrc/baseservice/db/db_service.cpp
  5. 31
      appsrc/baseservice/db/db_service.hpp
  6. 0
      appsrc/baseservice/db/doc/README.md
  7. 53
      appsrc/baseservice/db/formula_db_dao.cpp
  8. 61
      appsrc/baseservice/db/formula_db_dao.hpp
  9. 51
      appsrc/baseservice/db/setting_db_dao.cpp
  10. 6
      appsrc/baseservice/db/setting_db_dao.hpp
  11. 63
      appsrc/service/setting_mgr_service.cpp

4
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()); }

8
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<KeyValDB>(where(c(&KeyValDB::key) == key));
} catch (const std::exception& e) {
logger->error("del setting failed: {}", e.what());
}
}

3
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<KeyvalDBDao> {
bool set(string key, string val);
string get(string key);
void del(string key);
void clear();
public:

189
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<shared_ptr<User>> DBService::getAllUser() {
lock_guard<recursive_mutex> lock(lock_);
@ -269,146 +222,6 @@ bool DBService::ispasswdCorrect(string uid, string passwd) {
return false;
}
list<shared_ptr<db::Formula>> DBService::getAllFormula() {
lock_guard<recursive_mutex> lock(lock_);
list<shared_ptr<db::Formula>> formulas;
auto formulatable = make_storage(FORMULA_DB, FORMULA_DB_STRUCT);
formulatable.sync_schema();
auto all = formulatable.get_all<Formula>();
for (auto& f : all) {
formulas.push_back(make_shared<Formula>(f));
}
return formulas;
}
shared_ptr<db::Formula> DBService::getFormula(int id) {
lock_guard<recursive_mutex> lock(lock_);
auto formulatable = make_storage(FORMULA_DB, FORMULA_DB_STRUCT);
formulatable.sync_schema();
auto formula = formulatable.get_all<Formula>(where(c(&Formula::id) == id));
if (formula.size() == 0) {
return nullptr;
}
return make_shared<Formula>(formula[0]);
}
json DBService::getAllFormulaJson() {
lock_guard<recursive_mutex> lock(lock_);
json j_formulas;
auto formulatable = make_storage(FORMULA_DB, FORMULA_DB_STRUCT);
formulatable.sync_schema();
auto all = formulatable.get_all<Formula>();
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<recursive_mutex> 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<db::Formula> DBService::delFormula(int id) {
lock_guard<recursive_mutex> lock(lock_);
// remove_all
auto formulatable = make_storage(FORMULA_DB, FORMULA_DB_STRUCT);
formulatable.sync_schema();
auto formula = formulatable.get_all<Formula>(where(c(&Formula::id) == id));
formulatable.remove_all<Formula>(where(c(&Formula::id) == id));
formulatable.sync_schema();
if (formula.size() == 0) {
return nullptr;
}
return make_shared<Formula>(formula[0]);
}
shared_ptr<db::Formula> DBService::updateFormula(shared_ptr<db::Formula> var_formula) {
lock_guard<recursive_mutex> 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<Formula>(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<db::Formula> DBService::updateFormula(int id, string column, string val) {
lock_guard<recursive_mutex> lock(lock_);
auto formulatable = make_storage(FORMULA_DB, FORMULA_DB_STRUCT);
formulatable.sync_schema();
auto formula = formulatable.get_all<Formula>(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>(formula[0]);
}
int DBService::getUserBehaviorRecordCount() {
lock_guard<recursive_mutex> 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, //

31
appsrc/baseservice/db/db_service.hpp

@ -16,12 +16,12 @@
#include <vector>
#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<DBService> {
public:
/*******************************************************************************
* Formula *
*******************************************************************************/
list<shared_ptr<db::Formula>> 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<db::Formula> delFormula(int id);
shared_ptr<db::Formula> updateFormula(int id, string column, string val);
shared_ptr<db::Formula> updateFormula(shared_ptr<db::Formula> formula);
shared_ptr<db::Formula> getFormula(int id);
/*******************************************************************************
* UserBehaviorRecord *
*******************************************************************************/
@ -146,7 +118,6 @@ class DBService : public enable_shared_from_this<DBService> {
private:
void init_usr_db();
void init_formula_db();
};
}; // namespace iflytop

0
appsrc/baseservice/db/README.md → appsrc/baseservice/db/doc/README.md

53
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;
}

61
appsrc/baseservice/db/formula_db_dao.hpp

@ -0,0 +1,61 @@
#pragma once
#include <sqlite3.h>
#include <stdio.h>
#include <fstream>
#include <functional>
#include <iostream>
#include <list>
#include <map>
#include <memory>
#include <mutex>
#include <set>
#include <sstream>
#include <string>
#include <vector>
#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<FormulaDBDao> {
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

51
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<shared_ptr<Setting>> SettingDBDao::getAllSetting() { //
auto allkeyVal = keyvaldb.getAll();
list<shared_ptr<Setting>> allSetting;
for (auto& kv : allkeyVal) {
auto setting = make_shared<Setting>();
if (kv->key == "version") {
continue;
}
json val = json::parse(kv->val);
*setting = val;
allSetting.push_back(setting);
auto allkeyVal = keyvaldb.getAll();
list<shared_ptr<Setting>> allSetting;
for (auto& kv : allkeyVal) {
auto setting = make_shared<Setting>();
if (kv->key == "version") {
continue;
}
return allSetting;
json val = json::parse(kv->val);
*setting = val;
allSetting.push_back(setting);
}
return allSetting;
}
shared_ptr<Setting> SettingDBDao::getSetting(string name) {

6
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<string> enum_vals;
vector<string> enum_dis_vals;

63
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<MsgProcessContext> cxt) {
bool suc = SETTING_DB->setSettingVal(settingName, settingVal);
APPCHECK(suc, err::kappe_db_operate_error, "setSettingVal failed");
}
void SettingMgrService::getAllFormula(shared_ptr<MsgProcessContext> cxt) { cxt->content = m_db->getAllFormulaJson(); }
void SettingMgrService::getAllFormula(shared_ptr<MsgProcessContext> cxt) { cxt->content = FORMULA_DB->getAllFormula(); }
void SettingMgrService::addNewFormula(shared_ptr<MsgProcessContext> 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<MsgProcessContext> cxt) { m_db->delFormula(jsonGet<int>(cxt->cmd["params"]["id"])); }
void SettingMgrService::delFormula(shared_ptr<MsgProcessContext> cxt) {
auto param = cxt->cmd["params"];
FORMULA_DB->deleteFormula(param["formula_id"]);
return;
}
void SettingMgrService::updateFormula(shared_ptr<MsgProcessContext> 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<int>());
}
auto formula = m_db->updateFormula(jsonGet<int>(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<MsgProcessContext> cxt) {
auto param = cxt->cmd["params"];
int id = jsonGet<int>(param["id"]);
string formula_id = param["formula_id"];
int loglevel = jsonGet<int>(param["loglevel"]);
int stoped_gs = jsonGet<int>(param["stoped_gs"]);
int continued_gs = jsonGet<int>(param["continued_gs"]);
int stoped_satur = jsonGet<int>(param["stoped_satur"]);
int continued_satur = jsonGet<int>(param["continued_satur"]);
int stoped_humi = jsonGet<int>(param["stoped_humi"]);
int continued_humi = jsonGet<int>(param["continued_humi"]);
int injection_pump_speed = jsonGet<int>(param["injection_pump_speed"]);
shared_ptr<Formula> 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<MsgProcessContext> cxt) {
SETTING_DB->factoryReset();

Loading…
Cancel
Save