实现启动splash画面,实现天历史数据的处理和数据库存贮

This commit is contained in:
lixiaoyuan
2025-09-09 19:26:05 +08:00
parent 5c94e2098a
commit b2338f21b0
29 changed files with 426 additions and 71 deletions

View File

@@ -151,6 +151,7 @@ static std::map<std::string, HandlerOptions> g_mapHttpHandlerGet =
{"/queryDevicTypeDef", HandlerOptions(&HttpEntity::queryDevicTypeDef, {})},
{"/queryDevicByCategory", HandlerOptions(&HttpEntity::queryDevicByCategory, {DMStation::STATION_ID, "category"})},
{"/queryDevicCharts", HandlerOptions(&HttpEntity::queryDevicCharts, {DMStation::STATION_ID, "device_id"})},
{"/queryDeviceBCUDetail", HandlerOptions(&HttpEntity::queryDeviceBCUDetail, {DMStation::STATION_ID, "device_id"})},
{"/queryPolicyList", HandlerOptions(&HttpEntity::queryPolicyList, {})},
@@ -305,11 +306,35 @@ Errcode HttpEntity::login(const httplib::Request& req, njson& json, std::string&
DAO::queryRolePermission(dao, roleId, vecPermission);
njson nodePermission = njson::array();
for (auto& item : vecPermission)
std::map<std::string, int> mapParentPos;
for (int i=0; i<vecPermission.size(); ++i)
{
njson node;
FieldsToJson(item, node);
nodePermission.push_back(node);
auto& item = vecPermission[i];
if (item.value("parent_id") == "")
{
mapParentPos[item.value("permission_id")] = i;
njson node;
FieldsToJson(item, node);
node["children"] = njson::array();
nodePermission.push_back(node);
}
}
// 重新遍历处理二级子权限,防止父权限信息还未创建时导致错误
for (int i = 0; i<vecPermission.size(); ++i)
{
auto& item = vecPermission[i];
std::string id = item.value("permission_id");
std::string parentId = item.value("parent_id");
if (parentId != "")
{
auto iter = mapParentPos.find(parentId);
if (iter != mapParentPos.end())
{
njson node;
FieldsToJson(item, node);
nodePermission[iter->second]["children"].push_back(node);
}
}
}
json["permission"] = nodePermission;
}
@@ -406,25 +431,56 @@ Errcode HttpEntity::queryRoleList(const httplib::Request& req, njson& json, std:
{
return err;
}
std::map<std::string, std::vector<Fields>> mapP;
std::map<std::string, std::vector<njson>> mapPermission;
for (auto& fields: vecPermission)
for (int i = 0; i<vecPermission.size(); ++i)
{
std::string roleId = fields.value("role_id");
auto& v = mapPermission[roleId];
njson node;
FieldsToJson(fields, node);
v.push_back(node);
auto& item = vecPermission[i];
std::string roleId = item.value("role_id");
std::string id = item.value("permission_id");
std::string parentId = item.value("parent_id");
mapP[roleId].push_back(vecPermission[i]);
}
HttpHelper::setPagination(pageinfo, result, json);
if (json.contains("data"))
for (auto& item : json["data"])
{
for (auto& item : json["data"])
auto jsonpermission = njson::array();
std::string roleId = item["role_id"];
std::vector<Fields>& vecP = mapP[roleId];
std::map<std::string, int> mapParentPos;
for (int i = 0; i<vecP.size(); ++i)
{
std::string roleId = item["role_id"];
item["permission"] = mapPermission[roleId];
auto& item = vecPermission[i];
if (item.value("parent_id") == "")
{
mapParentPos[item.value("permission_id")] = i;
njson node;
FieldsToJson(item, node);
node["children"] = njson::array();
jsonpermission.push_back(node);
}
}
// 重新遍历处理二级子权限,防止父权限信息还未创建时导致错误
for (int i = 0; i<vecP.size(); ++i)
{
auto& item = vecP[i];
std::string id = item.value("permission_id");
std::string parentId = item.value("parent_id");
if (parentId != "")
{
auto iter = mapParentPos.find(parentId);
if (iter != mapParentPos.end())
{
njson node;
FieldsToJson(item, node);
jsonpermission[iter->second]["children"].push_back(node);
}
}
}
item["permission"] = jsonpermission;
}
}
return err;
@@ -501,7 +557,7 @@ Errcode HttpEntity::insertStation(const httplib::Request& req, njson& json, std:
Errcode HttpEntity::updateStation(const httplib::Request& req, njson& json, std::string& errmsg)
{
Fields params;
GetRequestParam(req, {"station_id", "name", "address", "lon", "lat", "tel", "capacity", "status"}, params);
GetRequestParam(req, {"station_id", "name", "address", "lon", "lat", "tel", "capacity", "status", "work_mode"}, params);
params.check("capacity", "", "0.0");
params.check("lon", "", "0.0");
params.check("lat", "", "0.0");
@@ -739,6 +795,17 @@ Errcode HttpEntity::queryDevicCharts(const httplib::Request& req, njson& json, s
return Errcode::OK;
}
Errcode HttpEntity::queryDeviceBCUDetail(const httplib::Request& req, njson& json, std::string& errmsg)
{
njson jsondata = njson::array();
for (int i = 0; i<=100; ++i)
{
jsondata.push_back({{"SOC", "1"}, {"SOH", "1"}, {"V", "1"}, {"T", "1"}, {"R_i", "1"}});
}
json["data"] = jsondata;
return Errcode::OK;
}
Errcode HttpEntity::queryPolicyList(const httplib::Request& req, njson& json, std::string& errmsg)
{
PageInfo pageinfo;