From e0b64a20c421a04f40f552eb6b2a537480efd2be Mon Sep 17 00:00:00 2001 From: lixiaoyuan Date: Sun, 31 Aug 2025 14:38:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0HTTP=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E6=9E=B6=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/Release/assets/config/app.json | 3 +- doc/光储充站控系统-HTTP管理接口.docx | Bin 0 -> 414876 bytes src/CMakeLists.txt | 1 + src/app/AppData.cpp | 34 +- src/app/AppData.h | 15 +- src/app/Application.cpp | 2 + src/app/Config.cpp | 7 + src/app/Config.h | 1 + src/app/Constants.h | 11 + src/app/Dao1.cpp | 23 +- src/app/Dao1.h | 2 +- src/app/Device.cpp | 2 +- src/app/errcode.cpp | 24 ++ src/app/errcode.h | 26 +- src/common/Fields.cpp | 5 +- src/common/JsonN.h | 6 +- src/database/Dao.cpp | 466 ++++++++++++++++++------- src/database/Dao.h | 71 +++- src/database/DaoEntity.cpp | 27 +- src/database/DaoEntity.h | 18 +- src/database/DataModelDef.h | 8 +- src/database/MysqlClient.cpp | 116 ++++--- src/database/MysqlClient.h | 4 +- src/main.cpp | 23 +- src/protocol/CommEntity.cpp | 2 +- src/protocol/CommEntity.h | 11 +- src/protocol/HttpEntity.cpp | 502 +++++++++++++++++++++++++++ src/protocol/HttpEntity.h | 58 ++++ src/protocol/TcpEntity.cpp | 203 +++++------ src/protocol/TcpEntity.h | 62 ++-- src/pv/MaskMain.cpp | 6 +- src/pv/PvApp.cpp | 28 +- src/pv/PvApp.h | 12 +- src/pv/PvChart.cpp | 4 +- src/pv/PvPopWidget.cpp | 12 +- src/pv/PvStyle.cpp | 20 +- src/pv/PvStyle.h | 4 +- src/pv/PvTable.cpp | 24 +- src/pv/pages/MaskPageForecast.cpp | 6 +- src/pv/pages/MaskPageHome.cpp | 26 +- src/pv/pages/MaskPageRunning.cpp | 54 +-- src/pv/pages/MaskPageStat.cpp | 10 +- src/pv/pages/MaskPageSysmgr.cpp | 4 +- src/pv/pages/PageSysmgr.cpp | 24 +- src/pv/pages/PanelPolicy.cpp | 12 +- src/pv/pvmain.cpp | 2 +- 46 files changed, 1436 insertions(+), 545 deletions(-) create mode 100644 doc/光储充站控系统-HTTP管理接口.docx create mode 100644 src/app/Constants.h create mode 100644 src/app/errcode.cpp create mode 100644 src/protocol/HttpEntity.cpp create mode 100644 src/protocol/HttpEntity.h diff --git a/bin/Release/assets/config/app.json b/bin/Release/assets/config/app.json index 9732221..67688de 100644 --- a/bin/Release/assets/config/app.json +++ b/bin/Release/assets/config/app.json @@ -5,5 +5,6 @@ "user": "root", "passwd": "123456", "dbname": "ees" - } + }, + "token":"" } \ No newline at end of file diff --git a/doc/光储充站控系统-HTTP管理接口.docx b/doc/光储充站控系统-HTTP管理接口.docx new file mode 100644 index 0000000000000000000000000000000000000000..38748953bd5516551ab030c95c304dbb1e5f3428 GIT binary patch literal 414876 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%0AVZt4qiw8b?WULH7n)}tJA#s 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 literal 0 HcmV?d00001 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c3bb643..4b25f1c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -66,6 +66,7 @@ include_directories( ${THIRDPARTY_PATH} ${THIRDPARTY_PATH}/mysql/include ${THIRDPARTY_PATH}/nlohmann_json-3.11.2 + ${THIRDPARTY_PATH}/cpp-httplib-0.25.0 ${PVLIBS_PATH}/include/pvserver ${PVLIBS_PATH}/include/rllib ) diff --git a/src/app/AppData.cpp b/src/app/AppData.cpp index e782537..e826751 100644 --- a/src/app/AppData.cpp +++ b/src/app/AppData.cpp @@ -5,8 +5,8 @@ #include "app/Policy.h" #include "database/Dao.h" #include "common/JsonN.h" +#include "common/Snowflake.h" -#include "common/Utils.h" void ElectPeriod::parse(std::string jsonstr) { @@ -216,7 +216,6 @@ void AppData::initFromDB() void AppData::init() { this->initFromDB(); - this->initUser(); } std::shared_ptr AppData::getStation(int stationId) @@ -276,12 +275,35 @@ void AppData::loadStatData() { } - -void AppData::initUser() +static std::map g_mapUser; +std::string AppData::userLogin(std::string userId, std::string account) { - auto dao = DaoEntity::create(""); - std::vector result; + for (auto iter = g_mapUser.begin(); iter!=g_mapUser.end(); ++iter) + { + if (iter->second.userId == userId) // 重复登录 + { + g_mapUser.erase(iter); + break; + } + } + User user; + user.userId = userId; + user.account = account; + user.loginTime = Utils::time(); + user.token = Snowflake::instance().getIdStr(); + g_mapUser[user.token] = user; + return user.token; } +User AppData::getUser(std::string token) +{ + auto iter = g_mapUser.find(token); + if (iter != g_mapUser.end()) + { + return iter->second; + } + return User(); +} + int AppData::getWorkModeIdByName(std::string name) { diff --git a/src/app/AppData.h b/src/app/AppData.h index 23066a1..3a3569f 100644 --- a/src/app/AppData.h +++ b/src/app/AppData.h @@ -6,6 +6,7 @@ #include #include #include "common/Fields.h" +#include "app/Config.h" class Station; class Device; @@ -13,6 +14,14 @@ class MyPolicy; using VecPairSS = std::vector>; +struct User +{ + std::string userId; + std::string account; + std::string token; + int64_t loginTime {}; +}; + struct DeviceType { int typeId {}; @@ -50,13 +59,11 @@ public: void init(); void initFromDB(); - - // 读取统计数据: 今日统计数据,累计统计数据 void loadStatData(); - void initUser(); - + std::string userLogin(std::string userId, std::string account); + User getUser(std::string token); std::shared_ptr getStation(int stationId); diff --git a/src/app/Application.cpp b/src/app/Application.cpp index d8677c3..ee953e3 100644 --- a/src/app/Application.cpp +++ b/src/app/Application.cpp @@ -8,6 +8,8 @@ #include "app/Station.h" #include "app/Device.h" + + void Application::init() { // 初始化系统配置,读取配置文件 diff --git a/src/app/Config.cpp b/src/app/Config.cpp index b7d02ab..590c0bf 100644 --- a/src/app/Config.cpp +++ b/src/app/Config.cpp @@ -4,6 +4,7 @@ #include "common/JsonN.h" #include "Logger.h" +#include "AppData.h" AppOption Config::option; @@ -34,5 +35,11 @@ bool Config::init(std::string filename) XLOGI() << "[APP] load database config error: not found. host=" << option.database.host; } + if (jsonroot.contains("token")) + { + std::string token = jsonroot["token"]; + option.useToken = !token.empty(); + } + return true; } \ No newline at end of file diff --git a/src/app/Config.h b/src/app/Config.h index 39d5a99..c2e35aa 100644 --- a/src/app/Config.h +++ b/src/app/Config.h @@ -14,6 +14,7 @@ struct DatabaseOption struct AppOption { DatabaseOption database; + bool useToken {true}; }; class Config diff --git a/src/app/Constants.h b/src/app/Constants.h new file mode 100644 index 0000000..544f0b6 --- /dev/null +++ b/src/app/Constants.h @@ -0,0 +1,11 @@ +#ifndef _CONSTANTS_H_ +#define _CONSTANTS_H_ + +#include + +namespace CONST +{ + extern const std::string VAR; +} + +#endif // !_CONSTANTS_H_ diff --git a/src/app/Dao1.cpp b/src/app/Dao1.cpp index b7b6bb7..14dd8e0 100644 --- a/src/app/Dao1.cpp +++ b/src/app/Dao1.cpp @@ -15,8 +15,9 @@ std::shared_ptr DAO1::get(std::string tableName) return std::make_shared(tableName); } -Errcode DAO1::login(std::shared_ptr dao, std::string account, std::string passwd, std::string& err) +Errcode DAO1::login(std::shared_ptr dao, std::string account, std::string passwd, Fields& fields) { + std::string err; std::string t = Utils::timeStr(); if (!dao) { @@ -29,23 +30,24 @@ Errcode DAO1::login(std::shared_ptr dao, std::string account, std::st return Errcode::ERR_DB_CONN; } - std::string sql = "SELECT * FROM user WHERE account='" + account + "';"; + std::string sql = "SELECT u.*, ur.role_id FROM `user` u" + " LEFT JOIN user_role ur ON u.user_id = ur.user_id WHERE u.account=" + account + "';"; - std::vector res; - bool ret = dao->exec(sql, res); + std::vector result; + bool ret = dao->exec(sql, result); if (!ret) { err = "数据库操作错误"; DAO1::writeSystemLog(dao, 2, "", account, "用户登录失败:" + err); return Errcode::ERR_DB_CONN; } - if (res.size() <=0) + if (result.size() <=0) { err = "用户不存在"; DAO1::writeSystemLog(dao, 2, "", account, "用户登录失败:" + err); return Errcode::ERR_LOGIN_USER_NOTEXIST; } - Fields& fields = res[0]; + fields = result[0]; std::string userId = fields.value("user_id"); int loginCount = fields.get("login_count"); @@ -57,6 +59,15 @@ Errcode DAO1::login(std::shared_ptr dao, std::string account, std::st return Errcode::ERR_LOGIN_PASSWD; } + // 读取用户权限 + { + result.clear(); + std::string sql = "SELECT rp.role_id, rp.permission_id, p.name FROM role_permission rp " + "LEFT JOIN permission p ON p.permission_id = rp.permission_id" + "WHERE rp.role_id = 1;"; + + } + err = "登录成功"; // 数据库更新用户登录信息 diff --git a/src/app/Dao1.h b/src/app/Dao1.h index 9e9f0cd..5a924c6 100644 --- a/src/app/Dao1.h +++ b/src/app/Dao1.h @@ -7,7 +7,7 @@ class DAO1 public: static std::shared_ptr get(std::string tableName=""); - static Errcode login(std::shared_ptr dao, std::string account, std::string passwd, std::string& err); + static Errcode login(std::shared_ptr dao, std::string account, std::string passwd, Fields& res); static bool writeSystemLog(std::shared_ptr dao, int type, std::string userId, std::string account, std::string text); diff --git a/src/app/Device.cpp b/src/app/Device.cpp index 8496dbf..fec753a 100644 --- a/src/app/Device.cpp +++ b/src/app/Device.cpp @@ -37,7 +37,7 @@ int Device::startComm() { if (!isOpen) { - if (commEntity && commEntity->isAlive()) + if (commEntity && commEntity->alive) { commEntity->close(); } diff --git a/src/app/errcode.cpp b/src/app/errcode.cpp new file mode 100644 index 0000000..8878a00 --- /dev/null +++ b/src/app/errcode.cpp @@ -0,0 +1,24 @@ +#include "errcode.h" + +static std::unordered_map mapErr = +{ + {Errcode::OK, "操作成功"}, + {Errcode::ERR, "系统错误"}, + {Errcode::ERR_TOKEN, "TOKEN错误"}, + {Errcode::ERR_PARAM, "参数错误"}, + {Errcode::ERR_PARAM_NUL, "缺少参数"}, + + {Errcode::ERR_LOGIN_USER_NOTEXIST, "用户不存在"}, + {Errcode::ERR_LOGIN_PASSWD, "密码错误"}, + + {Errcode::ERR_DB_CONN, "数据库连接错误"}, + {Errcode::ERR_DB_DUPLICATE, "数据库数据重复"}, + {Errcode::ERR_DB_SQL, "数据库执行错误"}, + {Errcode::ERR_DB_VAL, "参数值错误"}, +}; + +std::string ErrcodeStr(Errcode code) +{ + auto iter = mapErr.find(code); + return (iter != mapErr.end() ? iter->second : ""); +} \ No newline at end of file diff --git a/src/app/errcode.h b/src/app/errcode.h index f308f47..003e7d4 100644 --- a/src/app/errcode.h +++ b/src/app/errcode.h @@ -1,16 +1,28 @@ #pragma once +#include +#include enum class Errcode { OK = 0, + ERR = 1, + ERR_TOKEN, // TOKEN错误 + ERR_PARAM, // 参数错误 + ERR_PARAM_NUL, // 缺少参数 - ERR = 100, - - ERR_DB_CONN = 101, // 数据库连接错误 - ERR_DB_SQL = 102, // 数据库查询SQL错误 - ERR_DB_DUPLICATE, // 数据重复 - + ERR_USER = 100, ERR_LOGIN_USER_NOTEXIST, // 登入错误,用户不存在 ERR_LOGIN_PASSWD, // 登入错误,密码不正确 -}; \ No newline at end of file + ERR_DEVICE = 200, + + + ERR_DB_CONN = 1001, // 数据库连接错误 + + ERR_DB_DUPLICATE = 1062, // Duplicate entry for key + ERR_DB_SQL = 1064, // 数据库查询SQL错误 + ERR_DB_VAL = 1366, // 1366,Incorrect decimal value,通常为参数值错误,例如空值、值类型错误 + +}; + +extern std::string ErrcodeStr(Errcode code); \ No newline at end of file diff --git a/src/common/Fields.cpp b/src/common/Fields.cpp index 23ff4b2..5c34f35 100644 --- a/src/common/Fields.cpp +++ b/src/common/Fields.cpp @@ -96,9 +96,10 @@ string Fields::toStr() string s; for (auto it = mapFields.begin(); it != mapFields.end(); it++) { - s += ("{" + it->first + ":" + it->second + "} "); + if (!s.empty()) s += ","; + s += ("\"" + it->first + "\":\"" + it->second + "\""); } - return s; + return "{" + s + "}"; } string Fields::toSqlInsert(string tableName) diff --git a/src/common/JsonN.h b/src/common/JsonN.h index ef66330..cc17059 100644 --- a/src/common/JsonN.h +++ b/src/common/JsonN.h @@ -1,4 +1,6 @@ -#include +#pragma once + +#include #include #include #include @@ -68,7 +70,7 @@ public: } catch (nlohmann::json::parse_error& e) { - std::cout << "JSON parse error: " << e.what() << std::endl; + std::cout << "JSON parse error: " << e.what() << "\n" << jsonstr << std::endl; return false; } return true; diff --git a/src/database/Dao.cpp b/src/database/Dao.cpp index 98b9830..e597aab 100644 --- a/src/database/Dao.cpp +++ b/src/database/Dao.cpp @@ -1,5 +1,9 @@ #include "Dao.h" #include "common/Utils.h" +#include "common/Snowflake.h" +#include "common/JsonN.h" +#include "app/Application.h" +#include "app/AppData.h" std::string DAO::sqlPageLimit(int index, int size) { @@ -8,19 +12,19 @@ std::string DAO::sqlPageLimit(int index, int size) return " LIMIT " + std::to_string(startIndex) + "," + std::to_string(size); } -bool DAO::count(DaoEntity& dao, std::string tableName, std::string condition, int& count) +Errcode DAO::count(DaoEntity& dao, std::string tableName, std::string condition, int& count) { std::string sql = "SELECT COUNT(*) count FROM " + tableName; if (!condition.empty()) { sql += " WHERE " + condition; }; sql += ";"; std::vector result; - bool ret = dao.exec(sql, result); - if (ret) + int ret = dao.exec(sql, result); + if (ret == 0) { count = (result.size() > 0) ? result[0].get("count") : 0; } - return ret; + return Errcode(ret); } Errcode DAO::exec(std::shared_ptr dao, std::string sql) @@ -31,7 +35,7 @@ Errcode DAO::exec(std::shared_ptr dao, std::string sql) return Errcode::ERR_DB_CONN; } auto ret = dao->exec(sql); - return ret ? Errcode::OK : Errcode::ERR_DB_SQL; + return Errcode(ret); } Errcode DAO::exec(std::shared_ptr dao, std::string sql, vector& result) @@ -42,68 +46,109 @@ Errcode DAO::exec(std::shared_ptr dao, std::string sql, vectorexec(sql, result); - return ret ? Errcode::OK : Errcode::ERR_DB_SQL; + return Errcode(ret); } - -static bool QueryCount(DaoEntity& dao, std::string sqlFrom, int& count) +Errcode DAO::query(std::shared_ptr dao, std::string tableName, std::vector keys, std::string condition) +{ + std::string sql; + return DAO::exec(dao, sql); +} +Errcode DAO::queryPagination(std::shared_ptr dao, std::string tableName, std::vector keys, std::string condition) +{ + std::string sql; + return DAO::exec(dao, sql); +} +Errcode DAO::insert(std::shared_ptr dao, std::string tableName, Fields params) +{ + return DAO::exec(dao, params.toSqlInsert(tableName)); +} +Errcode DAO::update(std::shared_ptr dao, std::string tableName, Fields params, std::string primaryKey) +{ + std::string primaryVal = params.remove(primaryKey); + if (primaryVal.empty()) + { + XLOGE() << "DAO update [" + tableName + "] failed, " << primaryKey << "=NULL."; + return Errcode::ERR_PARAM; + } + if (params.size() == 0) + { + XLOGE() << "DAO update [" + tableName + "] failed, params size=0."; + return Errcode::ERR_PARAM_NUL; + } + std::string condition = "WHERE " + primaryKey + "='" + primaryVal + "'"; + string sql = params.toSqlUpdate(tableName, condition); + return DAO::exec(dao, sql); +} +Errcode DAO::remove(std::shared_ptr dao, std::string tableName, std::string primaryKey, std::string val) +{ + std::string sql = "DELETE from `" + tableName + "` WHERE " + primaryKey + "='" + val + "';"; + return DAO::exec(dao, sql); +} +static Errcode QueryCount(DaoEntity& dao, std::string sqlFrom, int& count) { std::vector result; - bool ret = dao.exec("SELECT COUNT(*) count " + sqlFrom, result); - if (ret) + int ret = dao.exec("SELECT COUNT(*) count " + sqlFrom, result); + if (ret != 0) { count = (result.size() > 0) ? result[0].get("count") : 0; } - return ret; + return Errcode(ret); } -static bool QueryPagination(std::string sqlFields, std::string sqlCondition, PageInfo& page, vector& result) +static Errcode QueryPagination(std::string sqlFields, std::string sqlCondition, PageInfo& page, vector& result) { DaoEntity dao(""); - - int count {0}; - if (!QueryCount(dao, sqlCondition, count)) + if (!dao.isConnected()) { - return false; + return Errcode::ERR_DB_CONN; + } + int count {0}; + Errcode err = QueryCount(dao, sqlCondition, count); + if (err != Errcode::OK) + { + return err; } page.total = count; std::string sql = "SELECT " + sqlFields + " " + sqlCondition + DAO::sqlPageLimit(page.index, page.size); - bool ret = dao.exec(sql, result); - if (!ret) - { - XLOGE() << "DAO database error: sql=" << sql; - } - return ret; + int ret = dao.exec(sql, result); + return Errcode(ret); } // 新增用户信息 Errcode DAO::insertUser(Fields& params) { - std::string createTime = Utils::timeStr(); - auto dao = DaoEntity::create(DMUser::TABLENAME); std::string account = params.value(DMUser::ACCOUNT); - - std::string userRoleId = params.remove(DMRole::ROLE_ID); - - - // step1: 查询 - std::vector result; - bool ret = dao->exec("SELECT * from user WHERE account='" + account + "';", result); - if (!ret) + if (account.empty()) { - return Errcode::ERR_DB_CONN; + return Errcode::ERR_PARAM; + } + + // step1: 查询检查登录名是否已经存在 + std::vector result; + auto dao = DaoEntity::create(DMUser::TABLENAME); + int ret = dao->exec("SELECT * from user WHERE account='" + account + "';", result); + if (ret != 0) + { + return Errcode(ret); } if (result.size() > 0) { return Errcode::ERR_DB_DUPLICATE; } + + std::string createTime = Utils::timeStr(); + params.set(DMUser::USER_ID, Snowflake::instance().getIdStr()); params.set(DMUser::CREATETIME, createTime); + params.set(DMUser::PASSWD, "123456"); ret = dao->insertFields(params); - if (!ret) + if (ret != 0) { - return Errcode::ERR_DB_SQL; + return Errcode(ret); } + + std::string userRoleId = params.remove(DMRole::ROLE_ID); if (!userRoleId.empty()) { Fields paramsUserRole; @@ -115,20 +160,79 @@ Errcode DAO::insertUser(Fields& params) return Errcode::OK; } +Errcode DAO::login(std::shared_ptr dao, std::string account, std::string passwd, Fields& fields) +{ + if (!dao) { dao = std::make_shared(""); } + if (!dao->isConnected()) + { + + //DAO1::writeSystemLog(dao, 2, "", account, "用户登录失败:" + err); + return Errcode::ERR_DB_CONN; + } + std::string t = Utils::timeStr(); + + std::string sql = "SELECT u.*, ur.role_id FROM `user` u" + " LEFT JOIN user_role ur ON u.user_id = ur.user_id WHERE u.account='" + account + "';"; + std::vector result; + int ret = dao->exec(sql, result); + if (ret != 0) + { + //DAO1::writeSystemLog(dao, 2, "", account, "用户登录失败:" + err); + return Errcode(ret); + } + if (result.size() <=0) + { + //DAO1::writeSystemLog(dao, 2, "", account, "用户登录失败:" + err); + return Errcode::ERR_LOGIN_USER_NOTEXIST; + } + fields = result[0]; + std::string userId = fields.value("user_id"); + int loginCount = fields.get("login_count"); + + // 判断密码 + if (passwd != fields.remove("passwd")) + { + //DAO1::writeSystemLog(dao, 2, userId, account, "用户登录失败:" + err); + return Errcode::ERR_LOGIN_PASSWD; + } + + // 数据库更新用户登录信息 + //sql = "UPDATE user SET login_time='" + t + "', login_count='" + std::to_string(loginCount + 1) + "' WHERE user_id = '" + userId + "'; "; + //ret = dao->exec(sql); + //if (ret != 0) + //{ + // XLOGE() << "更新用户登录信息失败:sql=" << sql; + //} + + //DAO1::writeSystemLog(dao, 2, userId, account, "用户登录成功"); + return Errcode::OK; +} + +Errcode DAO::queryRolePermission(std::shared_ptr dao, int roleId, vector& result) +{ + std::string sql = "SELECT rp.role_id, rp.permission_id, p.name FROM role_permission rp" + " LEFT JOIN permission p ON p.permission_id = rp.permission_id" + " WHERE rp.is_open='1' AND rp.role_id ='" + std::to_string(roleId) + "';"; + return DAO::exec(dao, sql, result); +} + +Errcode DAO::queryRolePermission(std::shared_ptr dao, vector& result) +{ + // 查询 role 的 permission + std::string sql = "SELECT rp.role_id, rp.permission_id, rp.is_open, r.name role_name, p.name permission_name FROM role_permission rp" + " LEFT JOIN `role` r ON r.role_id = rp.role_id" + " LEFT JOIN permission p ON p.permission_id = rp.permission_id" + " WHERE rp.is_open='1';"; + return DAO::exec(dao, sql, result); +} // 分页查询用户信息列表 -bool DAO::queryUserList(PageInfo& pageInfo, vector& result) +Errcode DAO::queryUserList(PageInfo& pageInfo, vector& result) { - std::string sqlFields = "u.*, r.role_id , r.name role_name"; + std::string sqlFields = "u.user_id, u.account, u.name, u.phone, u.age, u.email, u.gender, u.is_open, u.create_time, u.update_time, r.role_id , r.name role_name"; std::string sqlCondition = "FROM USER u LEFT JOIN user_role ur ON ur.user_id = u.user_id LEFT JOIN ROLE r ON r.role_id =ur.role_id"; - DaoEntity dao(""); - bool ret = QueryPagination(sqlFields, sqlCondition, pageInfo, result); - if (!ret) - { - XLOGE() << "DAO database error: queryUserList failed."; - } - return ret; + return QueryPagination(sqlFields, sqlCondition, pageInfo, result); } Errcode DAO::updateUserById(Fields& params) @@ -141,10 +245,10 @@ Errcode DAO::updateUserById(Fields& params) if (params.size() > 0) { - bool ret = dao->updateFields(params, "WHERE " + DMUser::USER_ID + "='" + userId + "'"); - if (!ret) + int ret = dao->updateFields(params, "WHERE " + DMUser::USER_ID + "='" + userId + "'"); + if (ret != 0) { - return Errcode::ERR_DB_SQL; + return Errcode(ret); } } if (!roleId.empty()) @@ -154,43 +258,137 @@ Errcode DAO::updateUserById(Fields& params) paramsUserRole.set(DMUserRole::USER_ID, userId); paramsUserRole.set(DMUserRole::ROLE_ID, roleId); paramsUserRole.set(DMUserRole::UPDATETIME, createTime); - bool ret = dao->duplicateUpdate(paramsUserRole, {DMUserRole::ROLE_ID}); - if (!ret) + int ret = dao->duplicateUpdate(paramsUserRole, {DMUserRole::ROLE_ID}); + if (ret != 0) { - return Errcode::ERR_DB_SQL; + return Errcode(ret); } } return Errcode::OK; } +Errcode DAO::deleteUserById(std::string userId) +{ + std::string sql = "DELETE from user WHERE user_id='" + userId + "';"; + return DAO::exec(NULL, sql); +} + +Errcode DAO::queryPermissionList(PageInfo& pageInfo, vector& result) +{ + std::string sqlFrom = "FROM " + DMPermission::TABLENAME; + return QueryPagination("*", sqlFrom, pageInfo, result); +} + +Errcode DAO::insertPermission(Fields& params) +{ + return DAO::exec(NULL, params.toSqlInsert(DMPermission::TABLENAME)); +} + +Errcode DAO::updatePermissionById(Fields& params) +{ + std::string primaryKey = DMPermission::PERMISSION_ID; + std::string primaryVal = params.remove(primaryKey); + if (primaryVal.empty()) + { + return Errcode::ERR_DB_SQL; + } + std::string condition = "WHERE " + primaryKey + "='" + primaryVal + "'"; + string sql = params.toSqlUpdate(DMPermission::TABLENAME, condition); + return DAO::exec(NULL, sql); +} + +Errcode DAO::deletePermissionById(std::string permissionId) +{ + std::string sql = "DELETE from permission WHERE permission_id='" + permissionId + "';"; + return DAO::exec(NULL, sql); +} + Errcode DAO::queryRoleList(std::shared_ptr dao, vector& result) { std::string sql = "SELECT * FROM " + DMRole::TABLENAME + ";"; return DAO::exec(dao, sql, result); } -bool DAO::queryRoleList(PageInfo& pageInfo, vector& result) +Errcode DAO::queryRoleList(PageInfo& pageInfo, vector& result) { - DaoEntity dao(""); - std::string sqlFrom = "FROM " + DMRole::TABLENAME; - bool ret = QueryPagination("*", sqlFrom, pageInfo, result); - if (!ret) - { - XLOGE() << "DAO database error: queryRoleList failed."; - } - return ret; + std::string sqlFields = ""; + std::string sqlCondition = "FROM " + DMRole::TABLENAME; + return QueryPagination("*", sqlCondition, pageInfo, result); } -bool DAO::queryPermissionList(PageInfo& pageInfo, vector& result) +Errcode DAO::updateRolePermission(std::shared_ptr dao, std::string roleId, std::string permission) { - DaoEntity dao(""); - std::string sqlFrom = "FROM " + DMPermission::TABLENAME; - bool ret = QueryPagination("*", sqlFrom, pageInfo, result); - if (!ret) + NJsonNode jnode; + NJson::parse(permission, jnode); + std::vector vec; + for (auto& item: jnode) { - XLOGE() << "DAO database error: queryPermissionList failed."; + std::string permissionId; + if (item.is_number()) { permissionId = std::to_string(item.get()); } + if (item.is_string()) { permissionId = item.get(); } + if (!permissionId.empty()) + { + Fields field; + field.set("role_id", roleId); + field.set("permission_id", permissionId); + vec.emplace_back(field); + } } - return ret; + dao->setTableName(DMRolePermission::TABLENAME); + std::string sqlDel = "DELETE from " + DMRolePermission::TABLENAME + " WHERE role_id='" + roleId + "';"; + int ret = dao->exec(sqlDel); + if (ret != 0 ){ return Errcode(ret); }; + ret = dao->insertFields(vec); + if (ret != 0) { return Errcode(ret); }; + return Errcode::OK; +} + +// 新增角色 +Errcode DAO::insertRole(Fields& params) +{ + std::string permission = params.remove("permission"); + std::string name = params.value("name"); + auto dao = DaoEntity::create(DMRole::TABLENAME); + auto err = DAO::insert(dao, DMRole::TABLENAME, params); + + if (err == Errcode::OK && !permission.empty()) + { + // 查询获取 roleId + std::vector res; + std::string sql = "SELECT * FROM " + DMRole::TABLENAME + " WHERE name='" + name + "';"; + err = DAO::exec(dao, sql, res); + if (err == Errcode::OK && res.size() > 0) + { + std::string roleId = res[0].value("role_id"); + err = DAO::updateRolePermission(dao, roleId, permission); + } + } + return err; +} + +// 更新角色 +Errcode DAO::updateRoleById(Fields& params) +{ + auto roleId = params.value(DMRole::ROLE_ID); + if (roleId.empty()) + { + return Errcode::ERR_DB_SQL; + } + auto permission = params.remove("permission"); + + auto dao = DaoEntity::create(DMRole::TABLENAME); + auto err = DAO::update(dao, DMRole::TABLENAME, params, DMRole::ROLE_ID); + if (err == Errcode::OK && !permission.empty()) + { + err = DAO::updateRolePermission(dao, roleId, permission); + } + return err; +} + +// 删除角色 +Errcode DAO::deleteRoleById(std::string userId) +{ + return DAO::remove(NULL, DMRole::TABLENAME, DMRole::ROLE_ID, userId); } Errcode DAO::insertStation(Fields& params) @@ -201,7 +399,7 @@ Errcode DAO::insertStation(Fields& params) params.check(DMStation::LONGITUDE, "", "NULL"); std::string sql = params.toSqlInsert(DMStation::TABLENAME); - return DAO::exec(dao, sql); + return DAO::insert(NULL, DMStation::TABLENAME, params); } // 查询场站信息列表 @@ -212,33 +410,16 @@ Errcode DAO::queryStationList(std::shared_ptr dao, vector& re } // 分页查询场站信息列表 -bool DAO::queryStationList(PageInfo& pageInfo, vector& result) +Errcode DAO::queryStationList(PageInfo& pageInfo, vector& result) { - DaoEntity dao(""); std::string sqlFrom = "FROM " + DMStation::TABLENAME; - bool ret = QueryPagination("*", sqlFrom, pageInfo, result); - if (!ret) - { - XLOGE() << "DAO database error: queryStationList failed."; - } - return ret; + return QueryPagination("*", sqlFrom, pageInfo, result); } Errcode DAO::updateStationById(Fields& params) { - std::string stationId = params.value(DMStation::STATION_ID); - if (stationId.empty()) - { - return Errcode::ERR_DB_SQL; - } - params.remove(DMStation::STATION_ID); - auto dao = DaoEntity::create(DMStation::TABLENAME); - bool ret = dao->updateFields(params, "WHERE " + DMStation::STATION_ID + "='" + stationId + "'"); - if (!ret) - { - return Errcode::ERR_DB_SQL; - } - return Errcode::OK; + std::string primaryKey = DMStation::STATION_ID; + return DAO::update(NULL, DMStation::TABLENAME, params, primaryKey); } // 查询设备信息列表 @@ -249,16 +430,10 @@ Errcode DAO::queryDeviceList(std::shared_ptr dao, vector& res } // 分页查询设备信息列表 -bool DAO::queryDeviceList(PageInfo& pageInfo, vector& result) +Errcode DAO::queryDeviceList(PageInfo& pageInfo, vector& result) { - DaoEntity dao(""); std::string sqlFrom = "FROM " + DMDevice::TABLENAME; - bool ret = QueryPagination("*", sqlFrom, pageInfo, result); - if (!ret) - { - XLOGE() << "DAO database error: queryDeviceList failed."; - } - return ret; + return QueryPagination("*", sqlFrom, pageInfo, result); } // 查询设备类型定义 @@ -275,26 +450,14 @@ Errcode DAO::insertDevice(Fields& params) Errcode DAO::updateDeviceById(Fields& params) { - std::string deviceId = params.value(DMDevice::DEVICE_ID); - if (deviceId.empty()) - { - return Errcode::ERR_DB_SQL; - } - std::string sql = params.toSqlUpdate(DMDevice::TABLENAME, "WHERE " + DMDevice::DEVICE_ID + "='" + deviceId + "'"); - return DAO::exec(NULL, sql); + return DAO::update(NULL, DMDevice::TABLENAME, params, DMDevice::DEVICE_ID); } // 策略管理 -bool DAO::queryPolicyList(PageInfo& pageInfo, vector& result) +Errcode DAO::queryPolicyList(PageInfo& pageInfo, vector& result) { - auto dao = DaoEntity::create(""); std::string sqlFrom = "FROM " + DMPolicy::TABLENAME; - bool ret = QueryPagination("*", sqlFrom, pageInfo, result); - if (!ret) - { - XLOGE() << "DAO database error: queryPolicyList failed."; - } - return ret; + return QueryPagination("*", sqlFrom, pageInfo, result); } Errcode DAO::queryPolicyList(std::shared_ptr dao, vector& result) @@ -304,31 +467,77 @@ Errcode DAO::queryPolicyList(std::shared_ptr dao, vector& res } Errcode DAO::insertPolicy(Fields& params) { - return DAO::exec(NULL, params.toSqlInsert(DMPolicy::TABLENAME)); + return DAO::insert(NULL, DMPolicy::TABLENAME, params); } Errcode DAO::updatePolicyById(Fields& params) { - std::string policyId = params.value(DMPolicy::POLICY_ID); - if (policyId.empty()) - { - return Errcode::ERR_DB_SQL; - } - std::string sql = params.toSqlUpdate(DMPolicy::TABLENAME, "WHERE " + DMPolicy::POLICY_ID + "='" + policyId + "'"); - return DAO::exec(NULL, sql); + return DAO::update(NULL, DMPolicy::TABLENAME, params, DMPolicy::POLICY_ID); +} +Errcode DAO::deletePolicyById(std::string policyId) +{ + return DAO::remove(NULL, DMPolicy::TABLENAME, DMPolicy::POLICY_ID, policyId); } // 系统日志管理 -bool DAO::querySystemLogList(PageInfo& pageInfo, vector& result) +Errcode DAO::querySystemLogList(PageInfo& pageInfo, vector& result) { - DaoEntity dao(""); - std::string sqlFrom = "FROM " + DMSystemLog::TABLENAME; - bool ret = QueryPagination("*", sqlFrom, pageInfo, result); - if (!ret) - { - XLOGE() << "DAO database error: querySystemLogList failed."; - } - return ret; + std::string sqlFrom = "FROM " + DMLogSystem::TABLENAME; + return QueryPagination("*", sqlFrom, pageInfo, result); } +Errcode DAO::insertSystemLog(Fields& params) +{ + params.set(DMLogAlert::LOG_ID, Snowflake::instance().getIdStr()); + return DAO::insert(NULL, DMLogSystem::TABLENAME, params); +} +Errcode DAO::updateSystemLogById(Fields& params) +{ + return DAO::update(NULL, DMLogSystem::TABLENAME, params, DMLogSystem::LOG_ID); +} + +Errcode DAO::insertSystemLogSys(std::string content, int status) +{ + Fields fields; + fields.set("type", 1); + fields.set("content", content); + fields.set("status", status); + return DAO::insertSystemLog(fields); +} +Errcode DAO::insertSystemLogUser(std::string token, std::string content, int status) +{ + User user = Application::data().getUser(token); + Fields fields; + fields.set("type", 2); + fields.set("content", content); + fields.set("status", status); + fields.set("user_id", user.userId); + fields.set("user_account", user.account); + return DAO::insertSystemLog(fields); +} +Errcode DAO::insertSystemLogDevice(std::string deviceId, std::string content, int status) +{ + Fields fields; + fields.set("type", 3); + fields.set("content", content); + fields.set("status", status); + fields.set("device_id", deviceId); + return DAO::insertSystemLog(fields); +} + +Errcode DAO::queryAlertLogList(PageInfo& pageInfo, vector& result) +{ + std::string sqlFrom = "FROM " + DMLogAlert::TABLENAME; + return QueryPagination("*", sqlFrom, pageInfo, result); +} +Errcode DAO::insertAlertLog(Fields& params) +{ + params.set(DMLogAlert::LOG_ID, Snowflake::instance().getIdStr()); + return DAO::insert(NULL, DMLogAlert::TABLENAME, params); +} +Errcode DAO::updateAlertLogById(Fields& params) +{ + return DAO::update(NULL, DMLogAlert::TABLENAME, params, DMLogAlert::LOG_ID); +} + Errcode DAO::queryStatDataList(std::shared_ptr dao, std::string startDate, std::string endDate, vector& result) { @@ -342,7 +551,6 @@ Errcode DAO::queryWorkModeDef(std::shared_ptr dao, vector& re return DAO::exec(dao, sql, result); } - Errcode DAO::queryPolicyTypeDef(std::shared_ptr dao, vector& result) { std::string sql = "SELECT * FROM " + DMDefPolicyType::TABLENAME + ";"; diff --git a/src/database/Dao.h b/src/database/Dao.h index 7388981..78930ad 100644 --- a/src/database/Dao.h +++ b/src/database/Dao.h @@ -9,38 +9,60 @@ class DAO public: static std::string sqlPageLimit(int index, int size); - static bool count(DaoEntity& dao, std::string tableName, std::string condition, int& count); + static Errcode count(DaoEntity& dao, std::string tableName, std::string condition, int& count); static Errcode exec(std::shared_ptr dao, std::string sql); static Errcode exec(std::shared_ptr dao, std::string sql, vector& result); + static Errcode query(std::shared_ptr dao, std::string tableName, std::vector keys, std::string condition); + static Errcode queryPagination(std::shared_ptr dao, std::string tableName, std::vector keys, std::string condition); + static Errcode insert(std::shared_ptr dao, std::string tableName, Fields params); + static Errcode update(std::shared_ptr dao, std::string tableName, Fields params, std::string primaryKey); + static Errcode remove(std::shared_ptr dao, std::string tableName, std::string primaryKey, std::string val); + static Errcode login(std::shared_ptr dao, std::string account, std::string passwd, Fields& fields); - // 查询用户信息列表(分页) - static bool queryUserList(PageInfo& pageInfo, vector& result); + static Errcode queryRolePermission(std::shared_ptr dao, int roleId, vector& result); + static Errcode queryRolePermission(std::shared_ptr dao, vector& result); - // 新增用户信息 + // 查询用户列表(分页) + static Errcode queryUserList(PageInfo& pageInfo, vector& result); + + // 新增用户 static Errcode insertUser(Fields& params); - // 更新用户信息 + // 更新用户 static Errcode updateUserById(Fields& params); - - - - // 查询角色信息列表(分页) - static bool queryRoleList(PageInfo& pageInfo, vector& result); - - // 查询角色信息列表 - static Errcode queryRoleList(std::shared_ptr dao, vector& result); - + // 删除用户 + static Errcode deleteUserById(std::string userId); // 查询权限信息列表(分页) - static bool queryPermissionList(PageInfo& pageInfo, vector& result); + static Errcode queryPermissionList(PageInfo& pageInfo, vector& result); + // 新增权限 + static Errcode insertPermission(Fields& params); + // 更新权限 + static Errcode updatePermissionById(Fields& params); + // 删除权限 + static Errcode deletePermissionById(std::string userId); + static Errcode updateRolePermission(std::shared_ptr dao, std::string roleId, std::string permission); + + // 查询角色列表(分页) + static Errcode queryRoleList(PageInfo& pageInfo, vector& result); + + // 查询角色列表 + static Errcode queryRoleList(std::shared_ptr dao, vector& result); + // 新增角色 + static Errcode insertRole(Fields& params); + // 更新角色 + static Errcode updateRoleById(Fields& params); + // 删除角色 + static Errcode deleteRoleById(std::string userId); + // 查询场站信息列表(分页) - static bool queryStationList(PageInfo& pageInfo, vector& result); + static Errcode queryStationList(PageInfo& pageInfo, vector& result); // 查询场站信息列表 static Errcode queryStationList(std::shared_ptr dao, vector& result); @@ -52,7 +74,7 @@ public: // 查询设备信息列表(分页) - static bool queryDeviceList(PageInfo& pageInfo, vector& result); + static Errcode queryDeviceList(PageInfo& pageInfo, vector& result); // 查询设备信息列表 static Errcode queryDeviceList(std::shared_ptr dao, vector& result); // 查询设备类型定义 @@ -65,17 +87,28 @@ public: /////////////////////////////////////////////////////////////////////////////////////////////// // === 策略管理 === // 分页查询策略信息列表 - static bool queryPolicyList(PageInfo& pageInfo, vector& result); + static Errcode queryPolicyList(PageInfo& pageInfo, vector& result); static Errcode queryPolicyList(std::shared_ptr dao, vector& result); static Errcode insertPolicy(Fields& params); static Errcode updatePolicyById(Fields& params); + static Errcode deletePolicyById(std::string policyId); /////////////////////////////////////////////////////////////////////////////////////////////// // === 系统日志管理 === // 分页查询系统日志列表 - static bool querySystemLogList(PageInfo& pageInfo, vector& result); + static Errcode querySystemLogList(PageInfo& pageInfo, vector& result); + static Errcode insertSystemLog(Fields& params); + static Errcode updateSystemLogById(Fields& params); + + static Errcode insertSystemLogSys(std::string content, int status); + static Errcode insertSystemLogUser(std::string token, std::string content, int status); + static Errcode insertSystemLogDevice(std::string deviceId, std::string content, int status); + + static Errcode queryAlertLogList(PageInfo& pageInfo, vector& result); + static Errcode insertAlertLog(Fields& params); + static Errcode updateAlertLogById(Fields& params); /////////////////////////////////////////////////////////////////////////////////////////////// // === 统计数据管理 === diff --git a/src/database/DaoEntity.cpp b/src/database/DaoEntity.cpp index 9be63fe..5fdcd27 100644 --- a/src/database/DaoEntity.cpp +++ b/src/database/DaoEntity.cpp @@ -66,23 +66,23 @@ bool DaoEntity::isConnected() return db_->isConnected(); } -bool DaoEntity::exec(string sql) +int DaoEntity::exec(string sql) { return db_->exec(sql); } -bool DaoEntity::exec(string sql, vector& result) +int DaoEntity::exec(string sql, vector& result) { return db_->exec(sql, result); } -bool DaoEntity::insertFields(Fields& fields) +int DaoEntity::insertFields(Fields& fields) { string sql = fields.toSqlInsert(tableName_); return this->db_->exec(sql); } -bool DaoEntity::insertFields(vector& vec_fields) +int DaoEntity::insertFields(vector& vec_fields) { //"insert into TABLE () values ()"; string sql = "insert into " + tableName_; @@ -127,7 +127,7 @@ bool DaoEntity::insertFields(vector& vec_fields) return this->db_->exec(sql); } -bool DaoEntity::duplicateUpdate(Fields& fields, const vector& keys) +int DaoEntity::duplicateUpdate(Fields& fields, const vector& keys) { //insert into device_attr(device_id, attr_id, attr_val) values('26', 'model', '型号1') on duplicate key update attr_val='型号1'; string key; @@ -161,33 +161,34 @@ bool DaoEntity::duplicateUpdate(Fields& fields, const vector& keys) // }); //} -bool DaoEntity::queryFields(string keys, const string& condition, vector& result) +int DaoEntity::queryFields(string keys, const string& condition, vector& result) { ostringstream oss; oss << "SELECT " + keys + " FROM " << tableName_ << (" " + condition) << "; "; return this->db_->exec(oss.str(), result); } -bool DaoEntity::queryFields(string keys, const string& condition, PageInfo& page, vector& result) +int DaoEntity::queryFields(string keys, const string& condition, PageInfo& page, vector& result) { + int err = 0; ostringstream oss; oss << "SELECT count(1) total FROM `" << tableName_ << "` " << condition << ";"; vector res_total; - if (!this->db_->exec(oss.str().c_str(), res_total)) + if (err = this->db_->exec(oss.str().c_str(), res_total)) { - return false; + return err; } if (res_total.size() <= 0) { page.total = 0; - return true; + return err; } page.total = res_total[0].get("total"); if (page.total <= 0) { - return true; + return err; } oss.str(""); @@ -200,13 +201,13 @@ bool DaoEntity::queryFields(string keys, const string& condition, PageInfo& page return this->db_->exec(oss.str().c_str(), result); } -bool DaoEntity::updateFields(Fields& fields, const string& condition) +int DaoEntity::updateFields(Fields& fields, const string& condition) { string sql = fields.toSqlUpdate(tableName_, condition); return this->db_->exec(sql); } -bool DaoEntity::updateFields(Fields& fields, vector vecKeys, const string& condition) +int DaoEntity::updateFields(Fields& fields, vector vecKeys, const string& condition) { string sql = fields.toSqlUpdate(tableName_, vecKeys, condition); return this->db_->exec(sql); diff --git a/src/database/DaoEntity.h b/src/database/DaoEntity.h index 0dab9a5..9bc208a 100644 --- a/src/database/DaoEntity.h +++ b/src/database/DaoEntity.h @@ -42,39 +42,39 @@ public: /** * 执行sql语句 */ - bool exec(string sql); + int exec(string sql); /** * 执行sql语句并返回执行(查询)的结果集 */ - bool exec(string sql, vector& result); + int exec(string sql, vector& result); /** * 数据库插入一条数据, 需要先指定数据表名称 * @param: fields 写入的数据字段和值 */ - bool insertFields(Fields& vecFields); + int insertFields(Fields& vecFields); /** * 数据库插入多条数据, 需要先指定数据表名称 * @param: vecFields 写入的数据字段和值的集合 */ - bool insertFields(vector& vecFields); + int insertFields(vector& vecFields); /** * 数据库插入多条数据,UNIQUE索引或PRIMARY KEY重复时执行更新数据, 需要先指定数据表名称 * @param: vecFields 写入的数据字段和值的集合 * @param: keys 数据重复时需要更新的字段 */ - bool duplicateUpdate(Fields& vecFields, const vector& keys); + int duplicateUpdate(Fields& vecFields, const vector& keys); /** * 数据库查询,需要先指定数据表名称 * @param: sql_c 查询条件,例:"where id='1'" * @param: result 查询的数据结果集 */ - bool queryFields(string keys, const string& sql_c, vector& result); + int queryFields(string keys, const string& sql_c, vector& result); /** * 数据库查询,需要先指定数据表名称 @@ -82,14 +82,14 @@ public: * @param: pageinfo 分页信息 * @param: result 查询的数据结果集 */ - bool queryFields(string keys, const string& sql_c, PageInfo& pageinfo, vector& result); + int queryFields(string keys, const string& sql_c, PageInfo& pageinfo, vector& result); /** * 数据库更新,需要先指定数据表名称 * @param: fields 要更新的数据字段和值 * @param: sql_c 更新条件 */ - bool updateFields(Fields& fields, const string& sql_c); + int updateFields(Fields& fields, const string& sql_c); /** * 数据库更新,需要先指定数据表名称 @@ -97,7 +97,7 @@ public: * @param: vecKeys 要更新的字段名称 * @param: cond 更新条件 */ - bool updateFields(Fields& fields, vector vecKeys, const string& cond); + int updateFields(Fields& fields, vector vecKeys, const string& cond); protected: static MysqlOption option; diff --git a/src/database/DataModelDef.h b/src/database/DataModelDef.h index 6cfb9ec..f28dbd0 100644 --- a/src/database/DataModelDef.h +++ b/src/database/DataModelDef.h @@ -140,9 +140,9 @@ namespace DMPolicy const string UPDATE_TIME = "update_time"; } -namespace DMSystemLog +namespace DMLogSystem { - const string TABLENAME = "system_log"; + const string TABLENAME = "log_system"; const string LOG_ID = "log_id"; const string TYPE = "type"; const string USER_ID = "user_id"; @@ -153,9 +153,9 @@ namespace DMSystemLog const string UPDATE_TIME = "update_time"; } -namespace DMAlertLog +namespace DMLogAlert { - const string TABLENAME = "alert_log"; + const string TABLENAME = "log_alert"; const string LOG_ID = "log_id"; const string TYPE = "type"; const string DEVICE_ID = "device_id"; diff --git a/src/database/MysqlClient.cpp b/src/database/MysqlClient.cpp index d73fbf4..3fac260 100644 --- a/src/database/MysqlClient.cpp +++ b/src/database/MysqlClient.cpp @@ -2,6 +2,13 @@ #include "common/Utils.h" //#include "Spdlogger.h" #include "Logger.h" +#include +using namespace std; + +static int64_t GetTimestamp() +{ + return chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count(); +} MysqlClient::MysqlClient(MysqlOption option) : option(option) { @@ -13,22 +20,35 @@ MysqlClient::~MysqlClient() this->close(); } +static int64_t g_tickErr {0}; + int MysqlClient::conn() { if (mysql_) { return 0; } + if (GetTimestamp() - g_tickErr <= 5) + { + return 1; + } mysql_ = mysql_init(nullptr); - MYSQL* ret = mysql_real_connect(mysql_, option.host.c_str(), option.user.c_str(), option.password.c_str(), option.dbname.c_str(), option.port, NULL, 0); + MYSQL* ret = mysql_real_connect(mysql_, + option.host.c_str(), + option.user.c_str(), + option.password.c_str(), + option.dbname.c_str(), + option.port, NULL, 0); if (ret == NULL) { std::string err = mysql_error(mysql_); //Spdlogger::info("[mysql] connect failed: {}", mysql_error(mysql_)); mysql_ = nullptr; + g_tickErr = GetTimestamp(); } else { + g_tickErr = 0; mysql_query(mysql_, "set names 'utf8';"); } return 0; @@ -48,70 +68,80 @@ void MysqlClient::close() } } -bool MysqlClient::exec(std::string sql) +static int MysqlQuery(MYSQL* mysql, const std::string& sql) { - if (!mysql_) + int err = 0; + if (!mysql) { XLOGE() << "Mysql exec error, database is not connected."; - return false; + return err; } if (sql.empty()) { XLOGE() << "Mysql exec error, sql is empty."; - return false; + return err; } - int ret = mysql_query(mysql_, sql.c_str()); - if (0 != ret) + err = mysql_query(mysql, sql.c_str()); + if (0 != err) { - XLOGE() << "Mysql exec error: " << mysql_error(mysql_) << ", sql=" << sql; - return false; + err = mysql_errno(mysql); + XLOGE() << "Mysql exec error: " << err << "," << mysql_error(mysql) << ", sql=" << sql; + return err; } - return true; + return err; } -bool MysqlClient::exec(std::string sql, vector& result) +int MysqlClient::exec(std::string sql) +{ + int err = MysqlQuery(mysql_, sql); + // 确保读取并释放结果集,否则会产生 [2014,Commands out of sync;] 错误 + MYSQL_RES* res = mysql_store_result(mysql_); + if (res) { mysql_free_result(res); } + return err; +} + +int MysqlClient::exec(std::string sql, vector& result) { result.clear(); - bool ret = MysqlClient::exec(sql); - if (!ret) + int err = MysqlQuery(mysql_, sql); + if (err != 0) { - return false; + return err; } MYSQL_RES* res = mysql_store_result(mysql_); - if (!res) + if (res) { - return false; - } - vector fieldNames; - while (true) - { - MYSQL_FIELD* field = mysql_fetch_field(res); - if (!field) + vector fieldNames; + while (true) { - break; - } - fieldNames.push_back(field->name); - } - - while (true) - { - MYSQL_ROW row = mysql_fetch_row(res); - if (!row) - { - break; + MYSQL_FIELD* field = mysql_fetch_field(res); + if (!field) + { + break; + } + fieldNames.push_back(field->name); } - Fields rowData; - for (size_t i = 0; i < fieldNames.size(); ++i) + while (true) { - string field_text = (row[i] == NULL) ? "" : row[i]; - rowData.set(fieldNames[i], field_text); - } - result.push_back(rowData); - } + MYSQL_ROW row = mysql_fetch_row(res); + if (!row) + { + break; + } - // 释放结果集 - mysql_free_result(res); - return true; + Fields rowData; + for (size_t i = 0; i < fieldNames.size(); ++i) + { + string field_text = (row[i] == NULL) ? "" : row[i]; + rowData.set(fieldNames[i], field_text); + } + result.push_back(rowData); + } + + // 释放结果集 + mysql_free_result(res); + } + return 0; } \ No newline at end of file diff --git a/src/database/MysqlClient.h b/src/database/MysqlClient.h index 3d5e9e0..5c63f38 100644 --- a/src/database/MysqlClient.h +++ b/src/database/MysqlClient.h @@ -50,12 +50,12 @@ public: /** * @brief: 执行sql语句 */ - bool exec(std::string sql); + int exec(std::string sql); /** * @brief: 执行sql语句, 获取查询结果集 */ - bool exec(std::string, vector& result); + int exec(std::string, vector& result); private: // mysql数据库连接对象 diff --git a/src/main.cpp b/src/main.cpp index d655e19..02a9acc 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -19,10 +19,29 @@ #include "pv/PvUser.h" #include "rlsocket.h" +#include "protocol/HttpEntity.h" + +enum EAA +{ + A = 1, + B = 2 +}; #define wsa rlwsa int main(int argc, char** argv) { + EAA aa = EAA(100); + std::cout << aa; + + std::thread([]() { + while (1) { + HttpEntity http; + http.listen("0.0.0.0", 19800); + } + }).detach(); + + + // 设置控制台输出为 UTF-8 编码 SetConsoleOutputCP(CP_UTF8); // 设置控制台输入为 UTF-8 编码(如果需要输入中文) @@ -57,8 +76,8 @@ int main(int argc, char** argv) std::map mapT; bool ff = mapT[1]; - //rlwsa(); - //rlSocket socket("127.0.0.1", 19801, 1); + rlwsa(); + rlSocket socket("127.0.0.1", 19801, 1); //int ret = socket.connect(); //std::string s1 = "helloworld"; //socket.write(s1.c_str(), s1.size()); diff --git a/src/protocol/CommEntity.cpp b/src/protocol/CommEntity.cpp index 79457a5..4f04a89 100644 --- a/src/protocol/CommEntity.cpp +++ b/src/protocol/CommEntity.cpp @@ -11,7 +11,7 @@ std::shared_ptr CommEntity::create(Fields& data) if (commType == "TCP") { auto entity = std::make_shared(); - entity->setHost(ip, port, isclient); + entity->setAddr(ip, port, isclient); return entity; } else if (commType == "MODBUS") diff --git a/src/protocol/CommEntity.h b/src/protocol/CommEntity.h index 6dd03e9..a6f4608 100644 --- a/src/protocol/CommEntity.h +++ b/src/protocol/CommEntity.h @@ -18,17 +18,16 @@ public: // 启动通讯连接 virtual int start() { return 0; }; // 关闭通讯连接 - virtual void close() { isCloseRequest_ = true; }; + virtual void close() { isCloseRequest = true; }; std::string id() { return id_; } - bool isAlive() { return isAlive_; } - bool isConnected() { return isConnected_; } public: std::string id_; - bool isAlive_ = false; - bool isConnected_ = false; - bool isCloseRequest_ = false; std::string type; + int commtype = 0; + bool alive = false; + bool isConnected = false; + bool isCloseRequest = false; }; diff --git a/src/protocol/HttpEntity.cpp b/src/protocol/HttpEntity.cpp new file mode 100644 index 0000000..4d6ec88 --- /dev/null +++ b/src/protocol/HttpEntity.cpp @@ -0,0 +1,502 @@ +#include "HttpEntity.h" +#include "database/Dao.h" +#include +#include "common/Utils.h" +#include "common/Snowflake.h" +#include "app/Application.h" +#include "app/AppData.h" + +static NJsonNode FieldsToJsonArray(std::vector vecFields) +{ + NJsonNode jsonnode = NJsonNode::array(); + for (auto& fields : vecFields) + { + NJsonNode jnode; + for (auto& item : fields.map()) + { + jnode[item.first] = item.second; + } + jsonnode.push_back(jnode); + } + return jsonnode; +} + +static void GetRequestParam(const httplib::Request& req, const std::vector& vecKeys, Fields& fields) +{ + for (auto& key : vecKeys) + { + if (req.has_param(key)) + { + fields.set(key, req.get_param_value(key)); + } + } +} + +class HttpHelper +{ +public: + static bool CheckRequestParam(const httplib::Request& req, httplib::Response& resp, const std::vector& vecKeys, std::string& errmsg) + { + errmsg = ""; + for (auto& key : vecKeys) + { + if (!req.has_param(key)) + { + if (!errmsg.empty()) { errmsg += ","; } + errmsg += "缺少参数[" + key + "]"; + } + } + if (!errmsg.empty()) + { + return false; + } + return true; + } + static void setPagination(PageInfo& pageinfo, std::vector result, NJsonNode& json) + { + json["count"] = pageinfo.total; + json["page"] = pageinfo.index; + json["page_size"] = pageinfo.size; + json["data"] = FieldsToJsonArray(result); + } +}; + +using HandlerFunc = Errcode(HttpEntity::*)(const httplib::Request& req, httplib::Response& resp, NJsonNode& jnode); + +struct HandlerOptions +{ + HandlerFunc func; + std::vector requiredKeys; + std::vector keys; + + + HandlerOptions(HandlerFunc func, const std::vector& requiredKeys) + : func(func), requiredKeys(requiredKeys) + { + } +}; + +static std::map g_mapHttpHandler = +{ + {"/login", HandlerOptions(&HttpEntity::login, {DMUser::ACCOUNT, DMUser::PASSWD})}, + {"/queryUserList", HandlerOptions(&HttpEntity::queryUserList, {"token"})}, + {"/insertUser", HandlerOptions(&HttpEntity::insertUser, {"token", DMUser::ACCOUNT})}, + {"/updateUser", HandlerOptions(&HttpEntity::updateUser, {"token", DMUser::USER_ID})}, + {"/deleteUser", HandlerOptions(&HttpEntity::deleteUser, {"token", DMUser::USER_ID})}, + + {"/queryPermissionList", HandlerOptions(&HttpEntity::queryPermissionList, {"token"})}, + {"/insertPermission", HandlerOptions(&HttpEntity::insertPermission, {"token", DMPermission::NAME})}, + {"/updatePermission", HandlerOptions(&HttpEntity::updatePermission, {"token", DMPermission::PERMISSION_ID})}, + {"/deletePermission", HandlerOptions(&HttpEntity::deletePermission, {"token", DMPermission::PERMISSION_ID})}, + + {"/queryRoleList", HandlerOptions(&HttpEntity::queryRoleList, {"token"})}, + {"/insertRole", HandlerOptions(&HttpEntity::insertRole, {"token", DMRole::NAME})}, + {"/updateRole", HandlerOptions(&HttpEntity::updateRole, {"token", DMRole::ROLE_ID})}, + {"/deleteRole", HandlerOptions(&HttpEntity::deleteRole, {"token", DMRole::ROLE_ID})}, + + {"/queryStationList", HandlerOptions(&HttpEntity::queryStationList, {"token"})}, + {"/insertStation", HandlerOptions(&HttpEntity::insertStation, {"token", DMStation::NAME})}, + {"/updateStation", HandlerOptions(&HttpEntity::updateStation, {"token", DMStation::STATION_ID})}, + {"/deleteStation", HandlerOptions(&HttpEntity::deleteStation, {"token", DMStation::STATION_ID})}, + + {"/queryDeviceList", HandlerOptions(&HttpEntity::queryDeviceList, {"token"})}, + {"/insertDevice", HandlerOptions(&HttpEntity::insertDevice, {"token", DMDevice::NAME})}, + {"/updateDevice", HandlerOptions(&HttpEntity::updateDevice, {"token", DMDevice::DEVICE_ID})}, + {"/deleteDevice", HandlerOptions(&HttpEntity::deleteDevice, {"token", DMDevice::DEVICE_ID})}, + {"/queryDevicTypeDef", HandlerOptions(&HttpEntity::queryDevicTypeDef, {"token"})}, + + {"/queryPolicyList", HandlerOptions(&HttpEntity::queryPolicyList, {"token"})}, + {"/insertPolicy", HandlerOptions(&HttpEntity::insertPolicy, {"token", DMPolicy::NAME})}, + {"/updatePolicy", HandlerOptions(&HttpEntity::updatePolicy, {"token", DMPolicy::POLICY_ID})}, + {"/deletePolicy", HandlerOptions(&HttpEntity::deletePolicy, {"token", DMPolicy::POLICY_ID})}, + + {"/querySystemLogList", HandlerOptions(&HttpEntity::querySystemLogList, {"token"})}, + + {"/queryAlertLogList", HandlerOptions(&HttpEntity::queryAlertLogList, {"token"})}, + + {"/queryPredictionDetail", HandlerOptions(&HttpEntity::queryPredictionDetail, {"token"})}, + + //{"/insert", HandlerOptions(&HttpEntity::insert, {})}, + //{"/update", HandlerOptions(&HttpEntity::update, {})}, + //{"/delete", HandlerOptions(&HttpEntity::delete, {})}, + + +}; + + +void HttpEntity::listen(std::string addr, int port) +{ + for (auto& item : g_mapHttpHandler) + { + std::string name = item.first; + HandlerOptions& handler = item.second; + this->httpsvr.Get(name, [=, &handler](const httplib::Request& req, httplib::Response& resp) + { + NJsonNode json; + Errcode errcode = Errcode::OK; + + if (name != "/login" && Config::option.useToken) + { + // 验证token + std::string token = req.get_param_value("token"); + if (token.empty()) + { + errcode = Errcode::ERR_TOKEN; + } + else + { + User user = Application::data().getUser(token); + if (user.userId.empty()) + { + errcode = Errcode::ERR_TOKEN; + } + } + } + + std::string errmsg; + if (errcode == Errcode::OK) + { + if (!HttpHelper::CheckRequestParam(req, resp, handler.requiredKeys, errmsg)) + { + errcode = Errcode::ERR_PARAM; + } + else + { + errcode = (this->*(handler.func))(req, resp, json); + } + } + + json["errcode"] = errcode; + json["errmsg"] = ErrcodeStr(errcode) + (errmsg.empty() ? "" : (":"+errmsg)); + resp.set_content(json.dump(), "text/plain; charset=utf-8"); + resp.status = 200; + }); + } + + if (addr.empty()) addr = "0.0.0.0"; + httpsvr.listen(addr, port); +} + +void HttpEntity::registGet(std::string name, void (HttpEntity::* func)(const httplib::Request& req, httplib::Response& resp)) +{ + this->httpsvr.Get(name, std::bind(func, this, std::placeholders::_1, std::placeholders::_2)); +} + +Errcode HttpEntity::login(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + std::string userId; + std::string token; + std::string account = req.get_param_value("account"); + std::string passwd = req.get_param_value("passwd"); + + Fields fields; + auto dao = DaoEntity::create(""); + Errcode err = DAO::login(dao, account, passwd, fields); + userId = fields.value(DMUser::USER_ID); + token = Application::data().userLogin(userId, account); + if (err == Errcode::OK) + { + json["token"] = token; + + std::vector vecPermission; + int roleId = fields.get(DMRole::ROLE_ID); + DAO::queryRolePermission(dao, roleId, vecPermission); + + NJsonNode jnode = NJsonNode::array(); + for (auto& item : vecPermission) { jnode.push_back(item.value("name")); } + json["permission"] = jnode; + } + + DAO::insertSystemLogUser(token, "用户登录:" + ErrcodeStr(err), (err==Errcode::OK) ? 0: 1); + return err; +} + +Errcode HttpEntity::queryUserList(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + std::string token = req.get_param_value("token"); + PageInfo pageinfo; + pageinfo.index = Utils::toInt(req.get_param_value("page")); + pageinfo.size = Utils::toInt(req.get_param_value("page_size")); + + std::vector result; + auto err = DAO::queryUserList(pageinfo, result); + if (err == Errcode::OK) + { + HttpHelper::setPagination(pageinfo, result, json); + } + DAO::insertSystemLogUser(token, "查询用户列表:" + ErrcodeStr(err), (err==Errcode::OK) ? 0 : 1); + return err; +} + +Errcode HttpEntity::insertUser(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + Fields params; + GetRequestParam(req, {"account", "name", "gender", "age", "phone", "email", "role_id"}, params); + return DAO::insertUser(params); +} + +Errcode HttpEntity::updateUser(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + Fields params; + GetRequestParam(req, {"user_id", "name", "gender", "age", "phone", "email", "role_id"}, params); + return DAO::updateUserById(params); +} + +Errcode HttpEntity::deleteUser(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + std::string userId = req.get_param_value("user_id"); + return DAO::deleteUserById(userId); +} + +Errcode HttpEntity::queryPermissionList(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + PageInfo pageinfo; + pageinfo.index = Utils::toInt(req.get_param_value("page")); + pageinfo.size = Utils::toInt(req.get_param_value("page_size")); + + std::vector result; + auto err = DAO::queryPermissionList(pageinfo, result); + HttpHelper::setPagination(pageinfo, result, json); + return err; +} + +Errcode HttpEntity::insertPermission(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + Fields params; + GetRequestParam(req, {"name", "describe", "is_open"}, params); + return DAO::insertPermission(params); +} + +Errcode HttpEntity::updatePermission(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + Fields params; + GetRequestParam(req, {"permission_id", "name", "describe", "is_open"}, params); + return DAO::updatePermissionById(params); +} + +Errcode HttpEntity::deletePermission(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + std::string permissionId = req.get_param_value("permission_id"); + return DAO::deletePermissionById(permissionId); +} + + +Errcode HttpEntity::queryRoleList(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + std::string token = req.get_param_value("page"); + PageInfo pageinfo; + pageinfo.index = Utils::toInt(req.get_param_value("page")); + pageinfo.size = Utils::toInt(req.get_param_value("page_size")); + + std::vector result; + auto err = DAO::queryRoleList(pageinfo, result); + // 查询所有的角色权限关联 + if (err == Errcode::OK) + { + std::vector vecPermission; + err = DAO::queryRolePermission(NULL, vecPermission); + if (err != Errcode::OK) + { + return err; + } + + std::map> mapPermission; + for (auto& item: vecPermission) + { + std::string roleId = item.value("role_id"); + auto& v = mapPermission[roleId]; + NJsonNode jnode; + jnode["id"] = item.value("permission_id"); + jnode["name"] = item.value("permission_name"); + v.push_back(jnode); + } + + HttpHelper::setPagination(pageinfo, result, json); + if (json.contains("data")) + { + for (auto& item : json["data"]) + { + std::string roleId = item["role_id"]; + item["permission"] = mapPermission[roleId]; + } + } + } + return err; +} + +Errcode HttpEntity::insertRole(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + Fields params; + GetRequestParam(req, {"name", "describe", "is_open", "permission"}, params); + return DAO::insertRole(params); +}; +Errcode HttpEntity::updateRole(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + Fields params; + GetRequestParam(req, {"role_id", "name", "describe", "is_open", "permission"}, params); + return DAO::updateRoleById(params); +}; +Errcode HttpEntity::deleteRole(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + std::string roleId = req.get_param_value(DMRole::ROLE_ID); + return DAO::remove(NULL, DMRole::TABLENAME, DMRole::ROLE_ID, roleId); +}; + +Errcode HttpEntity::queryStationList(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + PageInfo pageinfo; + pageinfo.index = Utils::toInt(req.get_param_value("page")); + pageinfo.size = Utils::toInt(req.get_param_value("page_size")); + + std::vector result; + auto err = DAO::queryStationList(pageinfo, result); + HttpHelper::setPagination(pageinfo, result, json); + return err; +}; + +Errcode HttpEntity::insertStation(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + + Fields params; + GetRequestParam(req, {"name", "address", "lon", "lat", "tel", "capacity", "status"}, params); + return DAO::insertStation(params); +}; + +Errcode HttpEntity::updateStation(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + Fields params; + GetRequestParam(req, {"station_id", "name", "address", "lon", "lat", "tel", "capacity", "status"}, params); + return DAO::updateStationById(params); +}; + +Errcode HttpEntity::deleteStation(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + std::string primaryKey = DMStation::STATION_ID; + return DAO::remove(NULL, DMStation::TABLENAME, primaryKey, req.get_param_value(primaryKey)); +}; + + +Errcode HttpEntity::queryDeviceList(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + PageInfo pageinfo; + pageinfo.index = Utils::toInt(req.get_param_value("page")); + pageinfo.size = Utils::toInt(req.get_param_value("page_size")); + + std::vector result; + auto err = DAO::queryDeviceList(pageinfo, result); + HttpHelper::setPagination(pageinfo, result, json); + return err; +}; + +Errcode HttpEntity::insertDevice(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + Fields params; + GetRequestParam(req, {"station_id", "type", "name", "code", "model", "factory", "factory_tel", "is_open", "attrs"}, params); + return DAO::insertDevice(params); +}; +Errcode HttpEntity::updateDevice(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + Fields params; + GetRequestParam(req, {"device_id", "station_id", "type", "name", "code", "model", "factory", "factory_tel", "is_open", "attrs"}, params); + return DAO::updateDeviceById(params); +}; +Errcode HttpEntity::deleteDevice(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + std::string primaryKey = DMDevice::DEVICE_ID; + return DAO::remove(NULL, DMDevice::TABLENAME, primaryKey, req.get_param_value(primaryKey)); +}; +Errcode HttpEntity::queryDevicTypeDef(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + std::string sql = "SELECT device_type_id, name FROM def_device_type;"; + std::vector result; + auto err = DAO::exec(NULL, sql, result); + json["data"] = FieldsToJsonArray(result); + return err; +} + +Errcode HttpEntity::queryPolicyList(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + PageInfo pageinfo; + pageinfo.index = Utils::toInt(req.get_param_value("page")); + pageinfo.size = Utils::toInt(req.get_param_value("page_size")); + + std::vector result; + auto err = DAO::queryPolicyList(pageinfo, result); + HttpHelper::setPagination(pageinfo, result, json); + return err; +}; +Errcode HttpEntity::insertPolicy(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + Fields params; + GetRequestParam(req, {"type", "name", "describe", "value", "is_open"}, params); + return DAO::insertPolicy(params); +}; +Errcode HttpEntity::updatePolicy(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + Fields params; + GetRequestParam(req, {"policy_id", "type", "describe", "value", "is_open"}, params); + return DAO::updatePolicyById(params); +}; +Errcode HttpEntity::deletePolicy(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + return DAO::deletePolicyById(req.get_param_value("prolicy_id")); +}; + +Errcode HttpEntity::querySystemLogList(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + PageInfo pageinfo; + pageinfo.index = Utils::toInt(req.get_param_value("page")); + pageinfo.size = Utils::toInt(req.get_param_value("page_size")); + + std::vector result; + auto err = DAO::querySystemLogList(pageinfo, result); + HttpHelper::setPagination(pageinfo, result, json); + return err; +} + +//Errcode insertSystemLog(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); +Errcode HttpEntity::updateSystemLog(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + Fields params; + GetRequestParam(req, {"log_id", "status"}, params); + return DAO::updateSystemLogById(params); +} + +Errcode HttpEntity::queryAlertLogList(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + PageInfo pageinfo; + pageinfo.index = Utils::toInt(req.get_param_value("page")); + pageinfo.size = Utils::toInt(req.get_param_value("page_size")); + + std::vector result; + auto err = DAO::queryAlertLogList(pageinfo, result); + HttpHelper::setPagination(pageinfo, result, json); + return err; +} + +//Errcode insertAlertLog(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); +Errcode HttpEntity::updateAlertLog(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + Fields params; + GetRequestParam(req, {"log_id", "status"}, params); + return DAO::updateAlertLogById(params); +} + +Errcode HttpEntity::queryPredictionDetail(const httplib::Request& req, httplib::Response& resp, NJsonNode& json) +{ + NJsonNode jsonData = NJsonNode::array(); + for (int i = 1; i<=5; i++) + { + NJsonNode jnode; + jnode["datatype"] = i; + NJsonNode jsonValues = NJsonNode::array(); + for (int i = 0; i<1440; ++i) + { + jsonValues.push_back(float(Utils::random(50, 100))); + } + jnode["values"] = jsonValues; + jsonData.push_back(jnode); + } + json["data"] = jsonData; + return Errcode::OK; +} \ No newline at end of file diff --git a/src/protocol/HttpEntity.h b/src/protocol/HttpEntity.h new file mode 100644 index 0000000..10aa165 --- /dev/null +++ b/src/protocol/HttpEntity.h @@ -0,0 +1,58 @@ +#include "httplib.h" +#include "common/JsonN.h" +#include "errcode.h" + +class HttpEntity +{ +public: + httplib::Server httpsvr; + void listen(std::string addr, int port); + void registGet(std::string name, void (HttpEntity::* func)(const httplib::Request& req, httplib::Response& resp)); + + //void onGet(const httplib::Request& req, httplib::Response& resp); + + Errcode login(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + + Errcode queryUserList(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode insertUser(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode updateUser(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode deleteUser(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + + Errcode queryPermissionList(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode insertPermission(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode updatePermission(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode deletePermission(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + + + Errcode queryRoleList(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode insertRole(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode updateRole(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode deleteRole(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + + Errcode queryStationList(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode insertStation(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode updateStation(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode deleteStation(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + + Errcode queryDeviceList(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode insertDevice(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode updateDevice(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode deleteDevice(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode queryDevicTypeDef(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + + Errcode queryPolicyList(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode insertPolicy(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode updatePolicy(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode deletePolicy(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + + Errcode querySystemLogList(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + //Errcode insertSystemLog(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode updateSystemLog(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + + Errcode queryAlertLogList(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + //Errcode insertAlertLog(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + Errcode updateAlertLog(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + + Errcode queryPredictionDetail(const httplib::Request& req, httplib::Response& resp, NJsonNode& json); + +}; \ No newline at end of file diff --git a/src/protocol/TcpEntity.cpp b/src/protocol/TcpEntity.cpp index f6bd2c1..8f51e5c 100644 --- a/src/protocol/TcpEntity.cpp +++ b/src/protocol/TcpEntity.cpp @@ -15,25 +15,18 @@ static std::string ToHexText(std::string s) return ss.str(); } -TcpEntity::TcpEntity(TcpHandler* handler) - : handler_(handler), isClient_(true) +TcpEntity::TcpEntity() { } - TcpEntity::~TcpEntity() { } -void TcpEntity::setHandler(TcpHandler* handler) +void TcpEntity::setAddr(string addr, int port, int commtype) { - handler_ = handler; -} - -void TcpEntity::setHost(string host, int port, bool isClient) -{ - host_ = host; - port_ = port; - isClient_ = isClient; + this->addr = addr; + this->port = port; + this->commtype = commtype; } @@ -44,11 +37,8 @@ void TcpEntity::setReconnect(int ms) int TcpEntity::start() { - if (isAlive_) - { - return 1; - } - isAlive_ = true; + if (alive) { return 1; } + alive = true; WSADATA wsaData; if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0) @@ -56,97 +46,88 @@ int TcpEntity::start() return -1; } - sockaddr_.sin_family = AF_INET; - sockaddr_.sin_port = htons(port_); - sockaddr_.sin_addr.S_un.S_addr = (isClient_ ? inet_addr(host_.c_str()) : htonl(INADDR_ANY)); + sockaddr.sin_family = AF_INET; + sockaddr.sin_port = htons(port); + sockaddr.sin_addr.S_un.S_addr = ((commtype != 0) ? inet_addr(addr.c_str()) : htonl(INADDR_ANY)); - std::thread([=]() { this->runThreadTcp(); }).detach(); + std::thread([=]() { + //if (isRequestClose_) { break; } + //std::this_thread::sleep_for(std::chrono::milliseconds(1000)); + + std::cout << "TCP thread start ..." << std::endl; + if ((commtype != 0)) + { + this->runClientLoop(); + } + else + { + this->runServerLoop(); + } + alive = false; + }).detach(); return 0; } -void TcpEntity::runThreadTcp() -{ - //if (isRequestClose_) { break; } - //std::this_thread::sleep_for(std::chrono::milliseconds(1000)); - - std::cout << "TCP thread start ..." << std::endl; - if (isClient_) - { - this->runClientLoop(); - } - else - { - this->runServerLoop(); - } - isAlive_ = false; -} - -void TcpEntity::close() -{ - isCloseRequest_ = true; -} void TcpEntity::runServerLoop() { - sock_ = ::socket(AF_INET, SOCK_STREAM, 0); + sock = ::socket(AF_INET, SOCK_STREAM, 0); // 绑定套接字 【注意】functional中定义了bind与winsock2的定义发生重载导致异常,这里需要使用::bind(加::) - if (::bind(sock_, (SOCKADDR*)&sockaddr_, sizeof(SOCKADDR)) == SOCKET_ERROR) + if (::bind(sock, (SOCKADDR*)&sockaddr, sizeof(SOCKADDR)) == SOCKET_ERROR) { - std::cout << "TCP server bind [" << hostport() << "] failed." << std::endl; + std::cout << "TCP server bind [" << getAddrPort() << "] failed." << std::endl; return; } // 启动监听,准备接收客户请求 - if (::listen(sock_, 5) == SOCKET_ERROR) + if (::listen(sock, 5) == SOCKET_ERROR) { - std::cout << "TCP server listen [" << hostport() << "] failed." << std::endl; + std::cout << "TCP server listen [" << getAddrPort() << "] failed." << std::endl; return; } int addrlen = sizeof(SOCKADDR); while (1) { - if (isCloseRequest_) { break; } + if (isCloseRequest) { break; } + // 等待client连接请求 Client client; - - // 等待客户请求到来 - client.sock = ::accept(sock_, (SOCKADDR*)&client.sock_addr, &addrlen); + client.sock = ::accept(sock, (SOCKADDR*)&client.sockaddr, &addrlen); if (client.sock == INVALID_SOCKET) { break; } - client.host = inet_ntoa(client.sock_addr.sin_addr); - - // 存储客户端的连接信息 - vecClient_.push_back(client); + // client连接成功,存储信息 + client.host = inet_ntoa(client.sockaddr.sin_addr); + vecClient.push_back(client); - // 创建线程处理 + // 创建client处理线程 std::thread th([=]() { this->runServerRecvLoop(client, client.host); }); th.detach(); } - ::closesocket(sock_); - // 连接关闭 - for (auto iter = vecClient_.begin(); iter != vecClient_.end(); ++iter) + // 客户端的连接关闭 + for (auto iter = vecClient.begin(); iter != vecClient.end(); ++iter) { ::closesocket(iter->sock); - vecClient_.erase(iter); + vecClient.erase(iter); } - isCloseRequest_ = false; + + // 关闭socket + ::closesocket(sock); + isCloseRequest = false; } void TcpEntity::runServerRecvLoop(Client client, std::string client_name) { - std::vector buf(1024000, 0); + std::vector buf(10240, 0); while (1) { - if (isCloseRequest_ || !isAlive_) - { - break; - } - memset(buf.data(), 0, buf.size()); + if (isCloseRequest || !alive) { break; } + // 接收数据 + memset(buf.data(), 0, buf.size()); int n = ::recv(client.sock, &buf[0], buf.size(), 0); // 需要判断 errno是否等于 EINTR 。如果errno == EINTR 则说明recv函数是由于程序接收到信号后返回的,socket连接还是正常的 if (n <= 0 && GetLastError() != EINTR) @@ -159,11 +140,11 @@ void TcpEntity::runServerRecvLoop(Client client, std::string client_name) } } // 连接关闭 - for (auto iter = vecClient_.begin(); iter != vecClient_.end(); ++iter) + for (auto iter = vecClient.begin(); iter != vecClient.end(); ++iter) { if (iter->sock == client.sock) { - vecClient_.erase(iter); + vecClient.erase(iter); break; } } @@ -172,31 +153,31 @@ void TcpEntity::runServerRecvLoop(Client client, std::string client_name) void TcpEntity::runClientLoop() { // 数据缓存 - std::vector buf(1024000, 0); + std::vector buf(10240, 0); while (1) { - if (isCloseRequest_) { break; } + if (isCloseRequest) { break; } //创建套接字,向服务器发出连接请求 - sock_ = ::socket(AF_INET, SOCK_STREAM, 0); - if (::connect(sock_, (SOCKADDR*)&sockaddr_, sizeof(SOCKADDR)) != SOCKET_ERROR) + sock = ::socket(AF_INET, SOCK_STREAM, 0); + if (::connect(sock, (SOCKADDR*)&sockaddr, sizeof(SOCKADDR)) != SOCKET_ERROR) { - isConnected_ = true; - std::cout << "TCP client connect to [" << hostport() << "] success." << std::endl; + isConnected = true; + std::cout << "TCP client connect to [" << getAddrPort() << "] success." << std::endl; // 连接服务器成功,循环等待接受消息 while (1) { - if (isCloseRequest_) { break; } + if (isCloseRequest) { break; } memset(buf.data(), 0, buf.size()); - int n = ::recv(sock_, buf.data(), buf.size(), 0); + int n = ::recv(sock, buf.data(), buf.size(), 0); if (n <= 0 && GetLastError() != EINTR) { // TCP通讯异常, 关闭连接 - ::closesocket(sock_); - isConnected_ = false; + ::closesocket(sock); + isConnected = false; break; } else @@ -207,75 +188,55 @@ void TcpEntity::runClientLoop() } else { - isConnected_ = false; - std::cout << "TCP client connect to [" << hostport() << "] failed." << std::endl; + isConnected = false; + std::cout << "TCP client connect to [" << getAddrPort() << "] failed." << std::endl; } // 连接异常 if (tReconnect_ > 0) { // 重新连接 - std::cout << "TCP client [" << hostport() << "] reconnect (" << tReconnect_ << ")." << std::endl; + std::cout << "TCP client [" << getAddrPort() << "] reconnect (" << tReconnect_ << ")." << std::endl; //std::this_thread::sleep_for(std::chrono::microseconds(tReconnect_)); Sleep(tReconnect_); } else { // 关闭线程 - std::cout << "TCP client [" << hostport() << "] close." << std::endl; + std::cout << "TCP client [" << getAddrPort() << "] close." << std::endl; break; } } - if (sock_ != INVALID_SOCKET) + if (sock != INVALID_SOCKET) { - ::closesocket(sock_); - sock_ = INVALID_SOCKET; - isConnected_ = false; + ::closesocket(sock); + sock = INVALID_SOCKET; + isConnected = false; } - if (isCloseRequest_) + if (isCloseRequest) { } - isCloseRequest_ = false; + isCloseRequest = false; } -bool TcpEntity::sendData(std::string data, std::string clientId) +bool TcpEntity::write(std::string data) { - if (isClient_) + if (commtype == 0) { - // #客户端 - if (sock_ == INVALID_SOCKET) + // #服务端 + if (vecClient.size() <= 0) { return false; } + for (auto& client : vecClient) { - //Spdlogger::error("TCP client send data failed, connect error, invalid socket, device: {}:{}.", this->type_, client_code); - return false; + std::string clientAddr = inet_ntoa(client.sockaddr.sin_addr); + ::send(client.sock, data.c_str(), data.size(), 0); } - int len = ::send(sock_, data.c_str(), data.size(), 0); - //Spdlogger::info("TCP client send data success, data length={}, device: {}:{}.", len, this->type_, client_code); - return (len > 0); + return true; } else { - if (vecClient_.size() <= 0) - { - return false; - } - for (auto& client : vecClient_) - { - std::string client_addr = inet_ntoa(client.sock_addr.sin_addr); - ::send(client.sock, data.c_str(), data.size(), 0); - - } - - return true; + // #客户端 + if (sock == INVALID_SOCKET) { return false; } + int len = ::send(sock, data.c_str(), data.size(), 0); + return (len > 0); } } - - -bool TcpEntity::isAlive() -{ - return isAlive_; -} - -bool TcpEntity::isConnected() -{ - return isConnected_; -} diff --git a/src/protocol/TcpEntity.h b/src/protocol/TcpEntity.h index 0d53bbf..512efc5 100644 --- a/src/protocol/TcpEntity.h +++ b/src/protocol/TcpEntity.h @@ -11,6 +11,12 @@ using namespace std; +enum class ETcpType +{ + SERVER = 0, + CLIENT = 1, +}; + enum class ETcpEvent { NUL = 0, // @@ -32,80 +38,54 @@ class TcpEntity : public CommEntity, public std::enable_shared_from_this parser = nullptr; }; public: - // 初始化服务端 - TcpEntity(TcpHandler* handler = nullptr); + TcpEntity(); ~TcpEntity(); int start() override; - void close() override; - void runThreadTcp(); - - void setHost(string host, int port, bool is_client); - std::string host() { return host_; } - int port() { return port_; } - std::string hostport() { return host_ + ":" + std::to_string(port_); } + void setAddr(string host, int port, int commtype); + std::string getAddr() { return addr; } + std::string getAddrPort() { return addr + ":" + std::to_string(port); } + int getPort() { return port; } void setReconnect(int ms); - - bool isClient() { return isClient_; } - - void setHandler(TcpHandler* handler); - - bool sendData(std::string data, std::string clientId=""); - - bool isAlive(); - bool isConnected(); - - - std::shared_ptr parser = nullptr; + bool write(std::string data); private: void runServerLoop(); void runServerRecvLoop(Client client, std::string client_name); - void runClientLoop(); private: // 本机的SOCKET对象 - SOCKET sock_ = INVALID_SOCKET; + SOCKET sock = INVALID_SOCKET; // socket addr信息 - SOCKADDR_IN sockaddr_; - - // TCP类型是否是客户端: true: 客户端, false: 服务端 - bool isClient_ = true; + SOCKADDR_IN sockaddr {}; // 通讯地址,作为客户端时有效 - std::string host_; + std::string addr; // 通讯端口 - int port_ = 0; + int port = 0; // 重连间隔时间,单位秒 int tReconnect_ = 0; // 作为服务端时连接的客户端SOCKET - std::vector vecClient_; - - // 回调处理对象 - TcpHandler* handler_ = nullptr; - - bool isAlive_ = false; - bool isCloseRequest_ = false; - bool isConnected_ = false; + std::vector vecClient; // 状态更新时间戳 - int64_t ts_; + int64_t ts_ = 0; - int64_t tsHeartbeat_=0; + int64_t tsHeartbeat_ = 0; }; class TcpHandler diff --git a/src/pv/MaskMain.cpp b/src/pv/MaskMain.cpp index 8e13a81..c3e46a1 100644 --- a/src/pv/MaskMain.cpp +++ b/src/pv/MaskMain.cpp @@ -27,10 +27,10 @@ int MaskMain::initUI() PvApp::label(p, PV_ID_MAIN, 0, 0, 1920, 1080, "", "background-color: rgb(1, 32, 54)"); PvApp::image(p, 0, 0, 0, 1920, 90, "bkgHead.png"); - ui.datetime = PvApp::label(p, PV_ID_MAIN, 10, 30, 420, 30, GetDateTimeWeekday(), qss::label(20)); + ui.datetime = PvApp::label(p, PV_ID_MAIN, 10, 30, 420, 30, GetDateTimeWeekday(), QSS::label(20)); pvSetAlignment(p, ui.datetime, AlignCenter); - int idStationTitle = PvApp::label(p, 0, 620, 0, 660, 90, "能源站监控与运行管理系统", qss::label(48)); + int idStationTitle = PvApp::label(p, 0, 620, 0, 660, 90, "能源站监控与运行管理系统", QSS::label(48)); pvSetAlignment(p, idStationTitle, AlignCenter); // 初始化子页面 @@ -81,7 +81,7 @@ int MaskMain::initUI() std::string& title = vecMenuItems[i]; EPvCode statusTmp = PvApp::getPvCode(title); int x = x0 + (w+margin)*i; - int id = PvApp::button(p, 0, x, y, w, h, title, (statusTmp == pvcode_) ? qss::BTN_ACTIVE : qss::BTN); + int id = PvApp::button(p, 0, x, y, w, h, title, (statusTmp == pvcode_) ? QSS::BTN_ACTIVE : QSS::BTN); mapMenuInfo_[id] = std::make_pair(title, statusTmp); } } diff --git a/src/pv/PvApp.cpp b/src/pv/PvApp.cpp index 87cfcfe..cb24e4f 100644 --- a/src/pv/PvApp.cpp +++ b/src/pv/PvApp.cpp @@ -160,38 +160,38 @@ int PvApp::widget(PARAM* p, int parent, int x, int y, int w, int h) return id; } -int PvApp::label(PARAM* p, int parent, int x, int y, int w, int h, std::string text, std::string qss) +int PvApp::label(PARAM* p, int parent, int x, int y, int w, int h, std::string text, std::string QSS) { static const std::string style = "QLabel { border: none; background-color: transparent; } QLabel:disabled { color: gray;}"; int id = PvApp::pvid(p); pvQLabel(p, id, parent); pvSetGeometry(p, id, x, y, w, h); if (!text.empty()) { pvSetText(p, id, text.c_str()); } - pvSetStyleSheet(p, id, qss.empty() ? style.c_str() : qss.c_str()); + pvSetStyleSheet(p, id, QSS.empty() ? style.c_str() : QSS.c_str()); return id; } -int PvApp::labelCenter(PARAM* p, int parent, int x, int y, int w, int h, std::string text, std::string qss) +int PvApp::labelCenter(PARAM* p, int parent, int x, int y, int w, int h, std::string text, std::string QSS) { - int id = PvApp::label(p, parent, x, y, w, h, text, qss); + int id = PvApp::label(p, parent, x, y, w, h, text, QSS); pvSetAlignment(p, id, AlignCenter); return id; } -int PvApp::labelAlignCenter(PARAM* p, int parent, int x, int y, int w, int h, std::string text, std::string qss) +int PvApp::labelAlignCenter(PARAM* p, int parent, int x, int y, int w, int h, std::string text, std::string QSS) { - int id = PvApp::label(p, parent, x, y, w, h, text, qss); + int id = PvApp::label(p, parent, x, y, w, h, text, QSS); pvSetAlignment(p, id, AlignCenter); return id; } -int PvApp::button(PARAM* p, int parent, int x, int y, int w, int h, std::string text, std::string qss) +int PvApp::button(PARAM* p, int parent, int x, int y, int w, int h, std::string text, std::string QSS) { int id = PvApp::pvid(p); pvQPushButton(p, id, parent); pvSetGeometry(p, id, x, y, w, h); if (!text.empty()) { pvSetText(p, id, text.c_str()); } - pvSetStyleSheet(p, id, qss.empty() ? qss::button().c_str() : qss.c_str()); + pvSetStyleSheet(p, id, QSS.empty() ? QSS::button().c_str() : QSS.c_str()); return id; } @@ -208,7 +208,7 @@ int PvApp::combox(PARAM* p, int parent, int x, int y, int w, int h, const std::v int id = PvApp::pvid(p); pvQComboBox(p, id, parent, 0, 0); pvSetGeometry(p, id, x, y, w, h); - pvSetStyleSheet(p, id, qss::COMBOX_14.c_str()); + pvSetStyleSheet(p, id, QSS::COMBOX_14.c_str()); for (int i=0; i& vecItems, int index=0); - static int textedit(PARAM* p, int parent, int x, int y, int w, int h, std::string text, std::string qss = ""); + static int textedit(PARAM* p, int parent, int x, int y, int w, int h, std::string text, std::string QSS = ""); - static int multiTextedit(PARAM* p, int parent, int x, int y, int w, int h, std::string text, std::string qss = ""); + static int multiTextedit(PARAM* p, int parent, int x, int y, int w, int h, std::string text, std::string QSS = ""); static int radioButton(PARAM* p, int parent, int x, int y, int w, int h, std::string text); diff --git a/src/pv/PvChart.cpp b/src/pv/PvChart.cpp index ffdad68..de6ce6f 100644 --- a/src/pv/PvChart.cpp +++ b/src/pv/PvChart.cpp @@ -249,8 +249,8 @@ PvChartCurve::PvChartCurve(PARAM* p, int parent, int x, int y, int w, int h) : P void PvChartCurve::setBackground(PARAM* p, int r, int g, int b) { qpwSetCanvasBackground(p, plotId_, r, g, b); - std::string qss = "border: none; border-radius: 0px; background-color: " + PvColor(r, g, b).rgb() + ";"; - pvSetStyleSheet(p, pvid_, qss.c_str()); + std::string QSS = "border: none; border-radius: 0px; background-color: " + PvColor(r, g, b).rgb() + ";"; + pvSetStyleSheet(p, pvid_, QSS.c_str()); } void PvChartCurve::setLabelYLeft(std::string title, float min, float max, float step) diff --git a/src/pv/PvPopWidget.cpp b/src/pv/PvPopWidget.cpp index 99af3f3..bd8b44b 100644 --- a/src/pv/PvPopWidget.cpp +++ b/src/pv/PvPopWidget.cpp @@ -17,24 +17,24 @@ PvPopWidget::PvPopWidget(PARAM* p, int width, int height, std::string name) ui.bkgL = PvApp::label(p, ui.widget, 0, 0, 60, height, "", "background-color: transparent; border: 0 solid rgb(42, 149, 245); border-width: 5px 0 5px 5px;"); ui.bkgR = PvApp::label(p, ui.widget, width-60, 0, 60, height, "", "background-color: transparent; border: 0 solid rgb(42, 149, 245); border-width: 5px 5px 5px 0;"); - ui.title = PvApp::label(p, ui.widget, 20, 10, width-20, 30, name, qss::label(20)); - PvApp::label(p, ui.widget, 20, 40, width*0.5-20, 3, "", qss::QSS_UNDERLINE); + ui.title = PvApp::label(p, ui.widget, 20, 10, width-20, 30, name, QSS::label(20)); + PvApp::label(p, ui.widget, 20, 40, width*0.5-20, 3, "", QSS::QSS_UNDERLINE); { int w = 100, h = 40, offset = 50; int x = (width- w*2 - offset) *0.5; int y = height - h - 40; - ui.btnOK = PvApp::button(p, ui.widget, x, y, w, h, "确定", qss::BTN_CONFIRM); + ui.btnOK = PvApp::button(p, ui.widget, x, y, w, h, "确定", QSS::BTN_CONFIRM); PvApp::bind(p, PvEvent::BUTTON_EVENT, ui.btnOK, [=](std::string) { if (callbackConfirm) { callbackConfirm(); } }); - ui.btnCancel = PvApp::button(p, ui.widget, x+w+offset, y, w, h, "取消", qss::BTN_CANCEL); + ui.btnCancel = PvApp::button(p, ui.widget, x+w+offset, y, w, h, "取消", QSS::BTN_CANCEL); PvApp::bind(p, PvEvent::BUTTON_EVENT, ui.btnCancel, [=](std::string) { this->show(false); }); } - ui.msg = PvApp::label(p, ui.widget, 50, height-110, width-100, 24, "", qss::label(14, "red")); + ui.msg = PvApp::label(p, ui.widget, 50, height-110, width-100, 24, "", QSS::label(14, "red")); } std::shared_ptr PvPopWidget::addParamLine(std::string type, std::string key, std::string title, int x, int y, bool editable/* = true*/) @@ -42,7 +42,7 @@ std::shared_ptr PvPopWidget::addParamLine(std::string ty auto line = std::make_shared(type, key); mapLines[key] = line; - PvApp::label(p, ui.widget, x, y, lineKeyWidth, lineHeight, title, qss::label(15)); + PvApp::label(p, ui.widget, x, y, lineKeyWidth, lineHeight, title, QSS::label(15)); if (type == "textedit") { line->widget = PvApp::textedit(p, ui.widget, x+lineKeyWidth, y, lineValWidth, lineHeight, ""); diff --git a/src/pv/PvStyle.cpp b/src/pv/PvStyle.cpp index a9a6e0f..a9f553c 100644 --- a/src/pv/PvStyle.cpp +++ b/src/pv/PvStyle.cpp @@ -6,7 +6,7 @@ std::string BUTTON() return ""; } -namespace qss +namespace QSS { std::string label(int fontSize, std::string color, std::string bkgcolor, std::string border) { @@ -44,11 +44,11 @@ namespace qss return ss.str(); } - const std::string LABEL_BKG_1 = qss::label(14, "", "rgb(5, 47, 77)", "none; border-radius:5px"); + const std::string LABEL_BKG_1 = QSS::label(14, "", "rgb(5, 47, 77)", "none; border-radius:5px"); - const std::string LABEL_BKG_2 = qss::label(14, "", "rgb(8, 54, 91)", "none; border-radius:5px"); + const std::string LABEL_BKG_2 = QSS::label(14, "", "rgb(8, 54, 91)", "none; border-radius:5px"); - const std::string LABEL_BOX = qss::label(16, "", "rgba(200,200,200,20)", "none; border-radius:2px") + const std::string LABEL_BOX = QSS::label(16, "", "rgba(200,200,200,20)", "none; border-radius:2px") + "QLabel:hover {border: 1px solid rgb(1, 183, 209);}"; const std::string QSS_BOX_ACTIVE = @@ -56,10 +56,10 @@ namespace qss "QLabel:hover {border: 1px solid rgb(1, 183, 209);}" "QLabel:disabled { color:rgb(150,150,150);}"; - const std::string LABEL_TITLE = qss::label(16, "rgb(99, 196, 216)", "", "none; padding-top: 0px;"); + const std::string LABEL_TITLE = QSS::label(16, "rgb(99, 196, 216)", "", "none; padding-top: 0px;"); - const std::string LABEL_KEY = qss::label(13, "rgb(180,180,180)", "", ""); - const std::string LABEL_VAL = qss::label(14, "", "", ""); + const std::string LABEL_KEY = QSS::label(13, "rgb(180,180,180)", "", ""); + const std::string LABEL_VAL = QSS::label(14, "", "", ""); const std::string BTN = "QPushButton { background-color:rgb(4, 96, 142);border-radius:10px;border:0px solid rgb(10,120,215);color:white;font:bold 18px;}" @@ -133,16 +133,16 @@ namespace qss /////////////////////////////////////////////////////////////////////////////////////////////////// /// === 表格 const std::string QSS_TABLE = - qss::label(15, "", "rgb(7, 46, 74)", "1px solid rgb(28, 121, 122)"); + QSS::label(15, "", "rgb(7, 46, 74)", "1px solid rgb(28, 121, 122)"); // 表头标签 const std::string QSS_TABLE_HEAD = - qss::label(14, "", "rgb(18, 93, 113)", "1px solid rgb(120, 120, 120); border-style:inset solid"); + QSS::label(14, "", "rgb(18, 93, 113)", "1px solid rgb(120, 120, 120); border-style:inset solid"); //"background-color: rgb(18, 93, 113); color:rgb(255, 255, 255); font:bold 16px;" //"border-width:1 1 1 1px; border-style:inset solid; border-color:rgb(120, 120, 120);"; // 单元格 - const std::string QSS_TABLE_CELL = qss::label(14, "", "", "none; padding-left: 10px"); + const std::string QSS_TABLE_CELL = QSS::label(14, "", "", "none; padding-left: 10px"); const std::string QSS_TABLE_BTN_VIEW = "QPushButton { background-color: rgb(7, 46, 74); color:white; border-radius:2px; border:none; font:bold 14px;}" diff --git a/src/pv/PvStyle.h b/src/pv/PvStyle.h index fe82bee..b8b2e2a 100644 --- a/src/pv/PvStyle.h +++ b/src/pv/PvStyle.h @@ -1,7 +1,7 @@ #pragma once #include -namespace qss +namespace QSS { std::string label(int fontSize = 14, std::string color = "", std::string bkgcolor = "", std::string border = ""); @@ -23,8 +23,6 @@ namespace qss extern const std::string LINEEDIT; - - extern const std::string QSS_BOX_ACTIVE; extern const std::string LABEL_TITLE; diff --git a/src/pv/PvTable.cpp b/src/pv/PvTable.cpp index 6fb837b..9639240 100644 --- a/src/pv/PvTable.cpp +++ b/src/pv/PvTable.cpp @@ -20,7 +20,7 @@ PvTable::PvTable(PARAM* p, int parent, int x, int y, int w, int irow, Options& o pvid = PvApp::widget(p, parent, x, y, w, h+1); // 表格的背景色和边框样式 - PvApp::label(p, pvid, 0, 0, w, h+1, "", qss::QSS_TABLE); + PvApp::label(p, pvid, 0, 0, w, h+1, "", QSS::QSS_TABLE); vecHeads.resize(0); vecRows.resize(nrow); @@ -30,8 +30,8 @@ PvTable::PvTable(PARAM* p, int parent, int x, int y, int w, int irow, Options& o for (int row = 0; row < nrow; row++) { int y = row * option.row_height + (option.show_header ? option.head_height : 0); - string qss = (row % 2 != 0) ? qss::QSS_TABLE_ROW_0 : qss::QSS_TABLE_ROW_1; - int widgetRow = PvApp::label(p, pvid, 1, y, rect.w-2, option.row_height, "", qss); + string QSS = (row % 2 != 0) ? QSS::QSS_TABLE_ROW_0 : QSS::QSS_TABLE_ROW_1; + int widgetRow = PvApp::label(p, pvid, 1, y, rect.w-2, option.row_height, "", QSS); pvHide(p, widgetRow); vecRows[row].widget = widgetRow; } @@ -48,13 +48,13 @@ void PvTable::addHead(string id, string text, int width, vector 0 && irow <= vecRows.size()) { - if (v) { qss = "background-color:rgba(14,45,60,200);border:1px solid rgba(255,0,0,100);"; } - pvSetStyleSheet(p, vecRows[irow].widget, qss.c_str()); + if (v) { QSS = "background-color:rgba(14,45,60,200);border:1px solid rgba(255,0,0,100);"; } + pvSetStyleSheet(p, vecRows[irow].widget, QSS.c_str()); } } @@ -110,11 +110,11 @@ void PvTable::addOperate(vector vecOpt) // 创建表头的标签 if (option.show_header) { - PvApp::label(p, pvid, posCol, 0, rect.w - posCol, option.head_height, "操作", qss::QSS_TABLE_HEAD); + PvApp::label(p, pvid, posCol, 0, rect.w - posCol, option.head_height, "操作", QSS::QSS_TABLE_HEAD); } for (int row = 0; row < nrow; ++row) { - int cellWidget = PvApp::label(p, vecRows[row].widget, posCol, 0, rect.w - posCol, option.row_height, "", qss::QSS_TABLE_CELL); + int cellWidget = PvApp::label(p, vecRows[row].widget, posCol, 0, rect.w - posCol, option.row_height, "", QSS::QSS_TABLE_CELL); vecOper.push_back({ cellWidget, vector() }); auto& vec_opt_btn_ = vecOper.back().second; int x = 5, w = 60; @@ -122,7 +122,7 @@ void PvTable::addOperate(vector vecOpt) { auto& title = vecOpt[i]; w = 20 + 15 * title.size() / 3; - int btn = PvApp::button(p, cellWidget, x, 4, w, 24, title, qss::button(14, "", "", "none; border-radius: 0px")); + int btn = PvApp::button(p, cellWidget, x, 4, w, 24, title, QSS::button(14, "", "", "none; border-radius: 0px")); PvApp::bind(p, PvEvent::BUTTON_EVENT, btn, [=](std::string) { if (callbackOper) { callbackOper(row, 0, title); } }); @@ -239,7 +239,7 @@ PvPagination::PvPagination(PARAM* p, int parent, int x, int y, int n) PvApp::bind(p, PvEvent::BUTTON_EVENT, btn, [=](string) { this->activePage(i, true); }); } btnNext = PvApp::button(p, pvid, 32, 0, 30, 30, ">", STYLE_NORMAL); - labelInfo = PvApp::label(p, pvid, 2*32, 0, 80, 30, " 共0页", qss::label(14, "rgb(27, 220, 224)")); + labelInfo = PvApp::label(p, pvid, 2*32, 0, 80, 30, " 共0页", QSS::label(14, "rgb(27, 220, 224)")); pvSetEnabled(p, btnPrev, 0); pvSetEnabled(p, btnNext, 0); diff --git a/src/pv/pages/MaskPageForecast.cpp b/src/pv/pages/MaskPageForecast.cpp index f13949d..e74fe4a 100644 --- a/src/pv/pages/MaskPageForecast.cpp +++ b/src/pv/pages/MaskPageForecast.cpp @@ -4,9 +4,9 @@ static int CreatePanel(PARAM* p, int parentId, int x, int y, int w, int h, std::string title) { - int id = PvApp::label(p, parentId, x, y, w, h, "", qss::LABEL_BKG_2); - PvApp::label(p, id, 10, 10, w, 20, title, qss::STYLE_TITLE_ICON); - PvApp::label(p, id, 20, 30, w, 2, "", qss::QSS_UNDERLINE); + int id = PvApp::label(p, parentId, x, y, w, h, "", QSS::LABEL_BKG_2); + PvApp::label(p, id, 10, 10, w, 20, title, QSS::STYLE_TITLE_ICON); + PvApp::label(p, id, 20, 30, w, 2, "", QSS::QSS_UNDERLINE); return id; } diff --git a/src/pv/pages/MaskPageHome.cpp b/src/pv/pages/MaskPageHome.cpp index 486fa77..42f74a2 100644 --- a/src/pv/pages/MaskPageHome.cpp +++ b/src/pv/pages/MaskPageHome.cpp @@ -19,9 +19,9 @@ void TestPage(PARAM* p) static int CreatePanel(PARAM* p, int parent, int x, int y, int w, int h, std::string title) { - int panelId = PvApp::label(p, parent, x, y, w, h, "", qss::LABEL_BKG_1); - int titleId = PvApp::label(p, panelId, 10, 8, w, 22, title, qss::STYLE_TITLE_ICON); - PvApp::label(p, panelId, 20, 28, w, 2, "", qss::QSS_UNDERLINE); + int panelId = PvApp::label(p, parent, x, y, w, h, "", QSS::LABEL_BKG_1); + int titleId = PvApp::label(p, panelId, 10, 8, w, 22, title, QSS::STYLE_TITLE_ICON); + PvApp::label(p, panelId, 20, 28, w, 2, "", QSS::QSS_UNDERLINE); return panelId; } @@ -35,7 +35,7 @@ static int CreatePanel1(PARAM* p, int parent, int x, int y, int w, int h, std::s static int CreateCard1(PARAM* p, int parentId, int x, int y, int w, int h, std::string title, std::string val) { - int id = PvApp::label(p, parentId, x, y, w, h, "", qss::LABEL_BKG_1); + int id = PvApp::label(p, parentId, x, y, w, h, "", QSS::LABEL_BKG_1); int idTitle = PvApp::label(p, id, 0, h*0.5, w, h*0.5, title, "background:transparent; font: bold 28px;"); int idVal = PvApp::label(p, id, 0, 0, w, h*0.5, val, "background:transparent; font: bold 28px; color:rgb(77,215,240);"); pvSetAlignment(p, idTitle, AlignCenter); @@ -45,7 +45,7 @@ static int CreateCard1(PARAM* p, int parentId, int x, int y, int w, int h, std:: static int CreateCard2(PARAM* p, int parent, int x, int y, int w, int h, std::string title, std::string val) { - int id = PvApp::label(p, parent, x, y, w, h, "", qss::LABEL_BKG_1); + int id = PvApp::label(p, parent, x, y, w, h, "", QSS::LABEL_BKG_1); int idTitle = PvApp::label(p, id, 0, 0, w, h*0.5, title); int idVal = PvApp::label(p, id, 0, h*0.5, w, h*0.5, val, "background:transparent; font: bold 16px; color:rgb(77,215,240);"); @@ -59,15 +59,15 @@ static int CreateBox(PARAM* p, int parent, int x, int y, int w, int h, std::stri int id = PvApp::label(p, parent, x, y, w, h, "", "border-radius:0px; background-color: rgb(7, 45, 66); border: 1px solid rgb(27, 88, 105);"); { int len = 10; - std::string qss = "background-color: transparent; border: 1px solid rgb(0, 218, 216);"; - PvApp::label(p, id, 0, 0, len, len, "", qss + "border-width: 2px 0 0 2px"); - PvApp::label(p, id, w-len, 0, len, len, "", qss + "border-width: 2px 2px 0 0"); - PvApp::label(p, id, w-len, h-len, len, len, "", qss + "border-width: 0 2px 2px 0"); - PvApp::label(p, id, 0, h-len, len, len, "", qss + "border-width: 0 0 2px 2px"); + std::string QSS = "background-color: transparent; border: 1px solid rgb(0, 218, 216);"; + PvApp::label(p, id, 0, 0, len, len, "", QSS + "border-width: 2px 0 0 2px"); + PvApp::label(p, id, w-len, 0, len, len, "", QSS + "border-width: 2px 2px 0 0"); + PvApp::label(p, id, w-len, h-len, len, len, "", QSS + "border-width: 0 2px 2px 0"); + PvApp::label(p, id, 0, h-len, len, len, "", QSS + "border-width: 0 0 2px 2px"); } // "border:none; background-color: transparent; font: bold 14px; padding-bottom: 0px;" int titleId = PvApp::label(p, id, 0, 0, w, h*0.5-2, k); - int valId = PvApp::label(p, id, 0, h*0.5+2, w, h*0.5-2, val, qss::label(16, "rgb(77, 215, 240)")); + int valId = PvApp::label(p, id, 0, h*0.5+2, w, h*0.5-2, val, QSS::label(16, "rgb(77, 215, 240)")); pvSetAlignment(p, titleId, AlignHCenter | AlignBottom); pvSetAlignment(p, valId, AlignHCenter | AlignTop); return valId; @@ -276,7 +276,7 @@ int MaskPageHome::initUI(EPvCode pvcode) // 中间区域 { - int panel = PvApp::label(p, 0, x = 10+500+10, y, w = 880, h1+h2+h3+20, "", qss::LABEL_BKG_1); + int panel = PvApp::label(p, 0, x = 10+500+10, y, w = 880, h1+h2+h3+20, "", QSS::LABEL_BKG_1); ////// 饼图 //int left = PvApp::widget(p, panel, 100, 100, 100, 100); @@ -298,7 +298,7 @@ int MaskPageHome::initUI(EPvCode pvcode) auto popStation = new PopStation(p); popStation->show(0); - int btn = PvApp::button(p, panel, 10, 20, 100, 30, "场站一", qss::BTN); + int btn = PvApp::button(p, panel, 10, 20, 100, 30, "场站一", QSS::BTN); PvApp::bind(p, PvEvent::BUTTON_EVENT, btn, [=](std::string) { popStation->setStatus("场站一"); pvShow(p, popStation->widget); diff --git a/src/pv/pages/MaskPageRunning.cpp b/src/pv/pages/MaskPageRunning.cpp index 397fee3..a01e323 100644 --- a/src/pv/pages/MaskPageRunning.cpp +++ b/src/pv/pages/MaskPageRunning.cpp @@ -8,8 +8,8 @@ static int CreateParamLabel(PARAM* p, int parent, int x, int y, std::string k, std::string v) { - PvApp::label(p, parent, x, y, 70, 30, k, qss::LABEL_KEY); - return PvApp::label(p, parent, x += 70, y, 120, 30, v, qss::LABEL_VAL); + PvApp::label(p, parent, x, y, 70, 30, k, QSS::LABEL_KEY); + return PvApp::label(p, parent, x += 70, y, 120, 30, v, QSS::LABEL_VAL); } class CardDevice : PvObject @@ -22,24 +22,24 @@ public: CardDevice(PARAM* p, int parent, int x, int y) : PvObject(p) { - card_ = PvApp::label(p, parent, x, y, 400, 250, "", qss::QSS_CARD_DEVICE); + card_ = PvApp::label(p, parent, x, y, 400, 250, "", QSS::QSS_CARD_DEVICE); PvApp::label(p, card_, 10, 10, 60, 60, "", "border:none; background-color: rgb(39, 158, 145);"); ui.name = PvApp::label(p, card_, 80, 10, 100, 20, ""); ui.code = PvApp::label(p, card_, 80, 30, 100, 20, ""); - ui.type = PvApp::label(p, card_, 80, 50, 100, 20, "", qss::label(14, "rgb(8, 161, 249)")); + ui.type = PvApp::label(p, card_, 80, 50, 100, 20, "", QSS::label(14, "rgb(8, 161, 249)")); int x1 = 190; - ui.online = PvApp::labelAlignCenter(p, card_, x1, 10, 70, 30, "在线", qss::LABEL_VAL); - ui.running = PvApp::labelAlignCenter(p, card_, x1 += 70, 10, 70, 30, "空闲", qss::LABEL_VAL); - ui.err = PvApp::labelAlignCenter(p, card_, x1 += 70, 10, 70, 30, "正常", qss::LABEL_VAL); + ui.online = PvApp::labelAlignCenter(p, card_, x1, 10, 70, 30, "在线", QSS::LABEL_VAL); + ui.running = PvApp::labelAlignCenter(p, card_, x1 += 70, 10, 70, 30, "空闲", QSS::LABEL_VAL); + ui.err = PvApp::labelAlignCenter(p, card_, x1 += 70, 10, 70, 30, "正常", QSS::LABEL_VAL); - PvApp::labelAlignCenter(p, card_, x1 = 190, 40, 70, 30, "在线状态", qss::LABEL_KEY); - PvApp::labelAlignCenter(p, card_, x1 += 70, 40, 70, 30, "工作状态", qss::LABEL_KEY); - PvApp::labelAlignCenter(p, card_, x1 += 70, 40, 70, 30, "故障状态", qss::LABEL_KEY); + PvApp::labelAlignCenter(p, card_, x1 = 190, 40, 70, 30, "在线状态", QSS::LABEL_KEY); + PvApp::labelAlignCenter(p, card_, x1 += 70, 40, 70, 30, "工作状态", QSS::LABEL_KEY); + PvApp::labelAlignCenter(p, card_, x1 += 70, 40, 70, 30, "故障状态", QSS::LABEL_KEY); - PvApp::label(p, card_, 10, 80, 80, 30, "运行分析:", qss::LABEL_KEY); + PvApp::label(p, card_, 10, 80, 80, 30, "运行分析:", QSS::LABEL_KEY); PvApp::button(p, card_, 80, 83, 60, 24, "查看"); // 默认创建 10 个参数标签: @@ -50,8 +50,8 @@ public: int row = i/2; int col = i%2; int h = 25; - vecParamLabel[i].first = PvApp::label(p, card_, 10 + 200*col, 115 + h*row, 70, h, "参数"+std::to_string(i) + ":", qss::LABEL_KEY); - vecParamLabel[i].second = PvApp::label(p, card_, 10 + 200*col + 70, 115 + h*row, 120, h, "---", qss::LABEL_VAL); + vecParamLabel[i].first = PvApp::label(p, card_, 10 + 200*col, 115 + h*row, 70, h, "参数"+std::to_string(i) + ":", QSS::LABEL_KEY); + vecParamLabel[i].second = PvApp::label(p, card_, 10 + 200*col + 70, 115 + h*row, 120, h, "---", QSS::LABEL_VAL); } } @@ -166,7 +166,7 @@ int MaskPageRunning::initUI(EPvCode pvcode) pvHide(p, security.workspace); { - std::string style = qss::label(20, "white; padding: 0px 0px 0px 10px;", "rgb(8, 54, 91)", "none; border-radius: 5px;"); + std::string style = QSS::label(20, "white; padding: 0px 0px 0px 10px;", "rgb(8, 54, 91)", "none; border-radius: 5px;"); for (int i = 0; i<12; ++i) { int w = 320, h = 240; @@ -174,20 +174,20 @@ int MaskPageRunning::initUI(EPvCode pvcode) int cardId = PvApp::label(p, security.workspace, x, y, w, h, "监控点 " + std::to_string(i+1), style); pvSetAlignment(p, cardId, AlignLeft | AlignTop); - PvApp::label(p, cardId, 10, 40, w-20, h-50, "", qss::label(14, "", "", "8px solid black; border-radius: 0px;")); + PvApp::label(p, cardId, 10, 40, w-20, h-50, "", QSS::label(14, "", "", "8px solid black; border-radius: 0px;")); PvApp::image(p, cardId, (w-77)*0.5, 40+(h-40-77)*0.5, 77, 77, "play1.png"); } } { int w = 320, h = 50; - int pid = PvApp::label(p, security.workspace, 1320, 10, w, 200, "环境温度信息", qss::label(20, "", "", "none;")); + int pid = PvApp::label(p, security.workspace, 1320, 10, w, 200, "环境温度信息", QSS::label(20, "", "", "none;")); pvSetAlignment(p, pid, AlignLeft | AlignTop); - PvApp::label(p, pid, 0, 30, w, 5, "", qss::QSS_UNDERLINE); + PvApp::label(p, pid, 0, 30, w, 5, "", QSS::QSS_UNDERLINE); int x = 0, y = 50; - PvApp::label(p, pid, x, y, w, h, "", qss::label(14, "", "rgb(16, 105, 125)", "none; border-radius: 5px 5px 0px 0px;")); - PvApp::label(p, pid, x, y, w, h*2, "", qss::label(14, "", "", "1px solid rgb(12, 255, 251); border-radius: 5px;")); + PvApp::label(p, pid, x, y, w, h, "", QSS::label(14, "", "rgb(16, 105, 125)", "none; border-radius: 5px 5px 0px 0px;")); + PvApp::label(p, pid, x, y, w, h*2, "", QSS::label(14, "", "", "1px solid rgb(12, 255, 251); border-radius: 5px;")); { w = w/3; PvApp::labelCenter(p, pid, x, y, w, h, "点位"); @@ -200,13 +200,13 @@ int MaskPageRunning::initUI(EPvCode pvcode) } { int w = 320, h = 50; - int pid = PvApp::label(p, security.workspace, 1320, 200, w, 500, "消防信息", qss::label(20, "", "", "none;")); + int pid = PvApp::label(p, security.workspace, 1320, 200, w, 500, "消防信息", QSS::label(20, "", "", "none;")); pvSetAlignment(p, pid, AlignLeft | AlignTop); - PvApp::label(p, pid, 0, 30, w, 5, "", qss::QSS_UNDERLINE); + PvApp::label(p, pid, 0, 30, w, 5, "", QSS::QSS_UNDERLINE); int x = 0, y = 50; - PvApp::label(p, pid, x, y, w, h, "", qss::label(14, "", "rgb(16, 105, 125)", "none; border-radius: 5px 5px 0px 0px;")); - PvApp::label(p, pid, x, y, w, h*9, "", qss::label(14, "", "", "1px solid rgb(12, 255, 251); border-radius: 5px;")); + PvApp::label(p, pid, x, y, w, h, "", QSS::label(14, "", "rgb(16, 105, 125)", "none; border-radius: 5px 5px 0px 0px;")); + PvApp::label(p, pid, x, y, w, h*9, "", QSS::label(14, "", "", "1px solid rgb(12, 255, 251); border-radius: 5px;")); { w = w/2; PvApp::labelCenter(p, pid, x, y, w, h, "点位"); @@ -246,8 +246,8 @@ void MaskPageRunning::initModule(Module& module, std::string name, int x, int y, module.name = name; int deviceNum = activeStation->getDeviceNumByGroup(name); - int pid = module.widget = PvApp::label(p, 0, x, y, w, h, "", qss::LABEL_BOX); - PvApp::label(p, module.widget, 10, 20, w, 30, module.name, qss::LABEL_TITLE); + int pid = module.widget = PvApp::label(p, 0, x, y, w, h, "", QSS::LABEL_BOX); + PvApp::label(p, module.widget, 10, 20, w, 30, module.name, QSS::LABEL_TITLE); pvSetAlignment(p, module.widget, AlignTop | AlignLeft); module.labelPower = PvApp::lineLabel(p, pid, PvRect(10, 80, 180, 30), 70, "总功率:", "60 W"); module.labelNum = PvApp::lineLabel(p, pid, PvRect(10, 110, 180, 30), 70, "设备数量:", std::to_string(deviceNum).c_str()); @@ -268,13 +268,13 @@ void MaskPageRunning::activeBoxPanel(Module* module) { if (activeBox) { - pvSetStyleSheet(p, activeBox->widget, qss::LABEL_BOX.c_str()); + pvSetStyleSheet(p, activeBox->widget, QSS::LABEL_BOX.c_str()); pvHide(p, activeBox->workspace); } activeBox = module; if (activeBox) { - pvSetStyleSheet(p, activeBox->widget, qss::QSS_BOX_ACTIVE.c_str()); + pvSetStyleSheet(p, activeBox->widget, QSS::QSS_BOX_ACTIVE.c_str()); pvShow(p, activeBox->workspace); } diff --git a/src/pv/pages/MaskPageStat.cpp b/src/pv/pages/MaskPageStat.cpp index ff40722..b8e8096 100644 --- a/src/pv/pages/MaskPageStat.cpp +++ b/src/pv/pages/MaskPageStat.cpp @@ -4,9 +4,9 @@ static int CreatePanel(PARAM* p, int parentId, int x, int y, int w, int h, std::string title) { - int id = PvApp::label(p, parentId, x, y, w, h, "", qss::LABEL_BKG_2); - PvApp::label(p, id, 10, 10, w, 20, title, qss::STYLE_TITLE_ICON); - PvApp::label(p, id, 20, 30, w, 2, "", qss::QSS_UNDERLINE); + int id = PvApp::label(p, parentId, x, y, w, h, "", QSS::LABEL_BKG_2); + PvApp::label(p, id, 10, 10, w, 20, title, QSS::STYLE_TITLE_ICON); + PvApp::label(p, id, 20, 30, w, 2, "", QSS::QSS_UNDERLINE); return id; } @@ -52,7 +52,7 @@ static VecStatDef statDef = { int MaskPageStat::initUI(EPvCode pvcode) { - PvApp::label(p, PV_ID_MAIN, 10, 100, 1900, 850, "", qss::LABEL_BKG_1); + PvApp::label(p, PV_ID_MAIN, 10, 100, 1900, 850, "", QSS::LABEL_BKG_1); if (pvcode == EPvCode::MASK_STAT) { pvcode = EPvCode::MASK_STAT_STORAGE; } std::string curModuleName; @@ -63,7 +63,7 @@ int MaskPageStat::initUI(EPvCode pvcode) std::string moduleName = statDef[i].first; // 创建按钮 bool isActive = (PvApp::getPvCode(moduleName) == pvcode); - int pageBtn = PvApp::button(p, PV_ID_MAIN, 10+(i*190), 110, 180, 40, moduleName, isActive ? qss::QSS_BTN_MGR_ACTIVE : qss::QSS_BTN_MGR); + int pageBtn = PvApp::button(p, PV_ID_MAIN, 10+(i*190), 110, 180, 40, moduleName, isActive ? QSS::QSS_BTN_MGR_ACTIVE : QSS::QSS_BTN_MGR); mapSubpage_[pageBtn] = moduleName; if (isActive) { diff --git a/src/pv/pages/MaskPageSysmgr.cpp b/src/pv/pages/MaskPageSysmgr.cpp index 0d65a6a..9811cd3 100644 --- a/src/pv/pages/MaskPageSysmgr.cpp +++ b/src/pv/pages/MaskPageSysmgr.cpp @@ -79,7 +79,7 @@ MaskPageSysmgr::MaskPageSysmgr(PARAM* p) : PvMask(p) int MaskPageSysmgr::initUI(EPvCode pvcode) { - PvApp::label(p, PV_ID_MAIN, 10, 150, 1900, 790, "", qss::LABEL_BKG_1); + PvApp::label(p, PV_ID_MAIN, 10, 150, 1900, 790, "", QSS::LABEL_BKG_1); if (pvcode == EPvCode::MASK_SYSMGR) { pvcode = EPvCode::MASK_MGR_USER; } @@ -88,7 +88,7 @@ int MaskPageSysmgr::initUI(EPvCode pvcode) { std::string& title = vecPageNames[i]; bool isActive = (PvApp::getPvCode(title) == pvcode); - int idPageBtn = PvApp::button(p, PV_ID_MAIN, 10+(i*110), 100, 100, 40, title, isActive ? qss::QSS_BTN_MGR_ACTIVE : qss::QSS_BTN_MGR); + int idPageBtn = PvApp::button(p, PV_ID_MAIN, 10+(i*110), 100, 100, 40, title, isActive ? QSS::QSS_BTN_MGR_ACTIVE : QSS::QSS_BTN_MGR); mapSubpage_[idPageBtn] = title; } diff --git a/src/pv/pages/PageSysmgr.cpp b/src/pv/pages/PageSysmgr.cpp index 19de603..6d7ae5a 100644 --- a/src/pv/pages/PageSysmgr.cpp +++ b/src/pv/pages/PageSysmgr.cpp @@ -438,12 +438,12 @@ std::string PagePolicy::onPopConfirm(std::shared_ptr pop, Fields& f // === PageSyslog === PageSyslog::PageSyslog(PARAM* p, EPvCode pvcode) : PageTable(p) { - table->addHead(DMSystemLog::LOG_ID, "日志编号", 160, {}); - table->addHead(DMSystemLog::TYPE, "日志类型", 160, {}); - table->addHead(DMSystemLog::USER_ACCOUNT, "用户", 160, {}); - table->addHead(DMSystemLog::CONTENT, "日志详情", 800, {}); - table->addHead(DMSystemLog::STATUS, "状态", 160, {}); - table->addHead(DMSystemLog::CREATE_TIME, "记录时间", 200, {}); + table->addHead(DMLogSystem::LOG_ID, "日志编号", 160, {}); + table->addHead(DMLogSystem::TYPE, "日志类型", 160, {}); + table->addHead(DMLogSystem::USER_ACCOUNT, "用户", 160, {}); + table->addHead(DMLogSystem::CONTENT, "日志详情", 800, {}); + table->addHead(DMLogSystem::STATUS, "状态", 160, {}); + table->addHead(DMLogSystem::CREATE_TIME, "记录时间", 200, {}); table->addOperate({"查看"}); } void PageSyslog::onQueryTable(PageInfo& pageInfo, std::vector& result) @@ -477,12 +477,12 @@ std::string PageSyslog::onPopConfirm(std::shared_ptr pop, Fields& f // === PageAlertlog === PageAlertlog::PageAlertlog(PARAM* p, EPvCode pvcode) : PageTable(p) { - table->addHead(DMAlertLog::LOG_ID, "日志编号", 160, {}); - table->addHead(DMAlertLog::TYPE, "日志类型", 160, {}); - table->addHead(DMAlertLog::DEVICE_ID, "设备ID", 160, {}); - table->addHead(DMAlertLog::CONTENT, "日志详情", 800, {}); - table->addHead(DMAlertLog::STATUS, "状态", 160, {}); - table->addHead(DMAlertLog::CREATE_TIME, "记录时间", 200, {}); + table->addHead(DMLogAlert::LOG_ID, "日志编号", 160, {}); + table->addHead(DMLogAlert::TYPE, "日志类型", 160, {}); + table->addHead(DMLogAlert::DEVICE_ID, "设备ID", 160, {}); + table->addHead(DMLogAlert::CONTENT, "日志详情", 800, {}); + table->addHead(DMLogAlert::STATUS, "状态", 160, {}); + table->addHead(DMLogAlert::CREATE_TIME, "记录时间", 200, {}); table->addOperate({"查看"}); } void PageAlertlog::onQueryTable(PageInfo& pageInfo, std::vector& result) diff --git a/src/pv/pages/PanelPolicy.cpp b/src/pv/pages/PanelPolicy.cpp index eba66db..488cec4 100644 --- a/src/pv/pages/PanelPolicy.cpp +++ b/src/pv/pages/PanelPolicy.cpp @@ -103,7 +103,7 @@ PanelPolicyPeak::PanelPolicyPeak(PARAM* p, int parent, int ix, int iy, int iw, i } if (row == 0 || col == 0) { - std::string qssLabel = (row==0) ? qss::label(14, "", "rgb(19, 93, 114)") : ""; + std::string qssLabel = (row==0) ? QSS::label(14, "", "rgb(19, 93, 114)") : ""; int label = PvApp::label(p, pvid, x+w*col, y+h*row, w, h, text, qssLabel); pvSetAlignment(p, label, AlignCenter); } @@ -127,7 +127,7 @@ PanelPolicyPeak::PanelPolicyPeak(PARAM* p, int parent, int ix, int iy, int iw, i ui.radioPolicy1 = PvApp::radioButton(p, labelPolicy, 80, 0, 80, H, "一充一放"); ui.radioPolicy2 = PvApp::radioButton(p, labelPolicy, 170, 0, 80, H, "两充两放"); - ui.label1 = PvApp::label(p, pvid, 10, y+=30, 610, 90, "第一次充放电过程", qss::label(14, "", "", "1px solid rgb(49, 130, 141)")); + ui.label1 = PvApp::label(p, pvid, 10, y+=30, 610, 90, "第一次充放电过程", QSS::label(14, "", "", "1px solid rgb(49, 130, 141)")); pvSetAlignment(p, ui.label1, AlignLeft | AlignTop); { int y0 = 70; @@ -152,7 +152,7 @@ PanelPolicyPeak::PanelPolicyPeak(PARAM* p, int parent, int ix, int iy, int iw, i ui.arrt1LabelPowerOut = PvApp::textedit(p, labelPowerOut, y0 += 70, 0, 80, H, ""); } - ui.label2 = PvApp::label(p, pvid, 630, y, 610, 90, "第二次充放电过程", qss::label(14, "", "", "1px solid rgb(49, 130, 141)")); + ui.label2 = PvApp::label(p, pvid, 630, y, 610, 90, "第二次充放电过程", QSS::label(14, "", "", "1px solid rgb(49, 130, 141)")); pvSetAlignment(p, ui.label2, AlignLeft | AlignTop); { int y0 = 70; @@ -394,14 +394,14 @@ PanelPolicyRequire::PanelPolicyRequire(PARAM* p, int parent, int ix, int iy, int int y = 10; const int H = 24; - ui.label1 = PvApp::label(p, pvid, 10, y, 600, 80, "响应削峰指令", qss::label(14, "", "", "1px solid rgb(49, 130, 141)")); + ui.label1 = PvApp::label(p, pvid, 10, y, 600, 80, "响应削峰指令", QSS::label(14, "", "", "1px solid rgb(49, 130, 141)")); pvSetAlignment(p, ui.label1, AlignLeft | AlignTop); { ui.dischargeSoc = PvApp::lineTextedit(p, ui.label1, PvRect(10, 40, 270, H), 100, "电池SOC阈值", ""); ui.dischargePower = PvApp::lineTextedit(p, ui.label1, PvRect(300, 40, 270, H), 70, "放电功率", ""); } - ui.label2 = PvApp::label(p, pvid, 10, y += 90, 600, 90, "响应填谷指令", qss::label(14, "", "", "1px solid rgb(49, 130, 141)")); + ui.label2 = PvApp::label(p, pvid, 10, y += 90, 600, 90, "响应填谷指令", QSS::label(14, "", "", "1px solid rgb(49, 130, 141)")); pvSetAlignment(p, ui.label2, AlignLeft | AlignTop); { ui.chargeSoc = PvApp::lineTextedit(p, ui.label2, PvRect(10, 40, 270, H), 100, "电池SOC阈值", ""); @@ -458,7 +458,7 @@ PanelPolicySelf::PanelPolicySelf(PARAM* p, int parent, int ix, int iy, int iw, i int y = 10; const int H = 24; - ui.label1 = PvApp::label(p, pvid, 10, y, 600, 120, "响应削峰指令", qss::label(14, "", "", "1px solid rgb(49, 130, 141)")); + ui.label1 = PvApp::label(p, pvid, 10, y, 600, 120, "响应削峰指令", QSS::label(14, "", "", "1px solid rgb(49, 130, 141)")); pvSetAlignment(p, ui.label1, AlignLeft | AlignTop); { ui.usedSoc = PvApp::lineTextedit(p, ui.label1, PvRect(10, 40, 270, H), 100, "自用电量比值", ""); diff --git a/src/pv/pvmain.cpp b/src/pv/pvmain.cpp index 838fd2a..87fffb8 100644 --- a/src/pv/pvmain.cpp +++ b/src/pv/pvmain.cpp @@ -30,7 +30,7 @@ int pvMain(PARAM* p) // 管理客户端的连接信息 PvUser pvuser; PvApp::setPvUser(p, &pvuser); - XLOGD() << "Browser client connect: s= " << int(p->s) << ", user=" << int(&pvuser); + XLOGD() << "Browser client connect: s= " << int(p->s) << ", user=" << (&pvuser); // 客户端断开时回调 pvSetCleanup(p, onPvThreadCleanup, p);