* -------------------------------------------------------------------------
* This file is part of the MindStudio project.
* Copyright (c) 2025 Huawei Technologies Co.,Ltd.
*
* MindStudio is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
*
* http://license.coscl.org.cn/MulanPSL2
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
* -------------------------------------------------------------------------
*/
#include "IEProtocolResquest.h"
#include "IEProtocolResponse.h"
#include "ServerLog.h"
#include "WsSessionManager.h"
#include "IECurveTableDatailHandler.h"
namespace Dic::Module::IE {
bool IECurveTableDatailHandler::HandleRequest(std::unique_ptr<Dic::Protocol::Request> requestPtr) {
auto &request = dynamic_cast<IETableRequest &>(*requestPtr);
std::unique_ptr<IETableViewResponse> responsePtr = std::make_unique<IETableViewResponse>();
IETableViewResponse &response = *responsePtr;
SetBaseResponse(request, response);
PageQuery query;
query.fileId = request.params.rankId;
query.curPage = request.params.currentPage;
query.size = request.params.pageSize;
query.viewName = request.params.type;
query.start = request.params.startTime;
query.end = request.params.endTime;
query.order = request.params.order;
query.orderBy = request.params.orderBy;
if (!std::empty(request.params.type)) {
QueryViewData(response, query);
}
SendResponse(std::move(responsePtr), true);
return true;
}
void IECurveTableDatailHandler::QueryViewData(IETableViewResponse &response, const PageQuery &query) {
TableData tableData;
tableData.att = repo->QueryTableInfoByName(query.fileId, query.viewName);
if (tableData.att.empty()) {
return;
}
tableData.dataItems = repo->QueryDataByColumnPage(query, tableData.att);
tableData.count = repo->QueryCountByTableName(query, tableData.att[0].key);
for (const auto &item : tableData.att) {
Column column;
column.name = item.name;
column.type = item.type;
column.key = item.key;
response.data.columnAttr.emplace_back(column);
}
for (const auto &item : tableData.dataItems) {
response.data.columnData.emplace_back(item);
}
response.data.totalNum = tableData.count;
}
}