Files
energy_storage/src/database/dao/DaoSwap.cpp
2025-05-19 09:54:33 +08:00

63 lines
2.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#include "DaoSwap.h"
#include "app/Constant.h"
#include "app/Global.h"
#include "common/spdlogger.h"
#include "common/TimeUtils.h"
#include "common/Snowflake.h"
#include "database/DaoEntity.h"
#include "Device.h"
std::string DaoSwap::create_swap_record(std::string biz_id, DeviceSwapEntity* swap_entity)
{
auto& appdata = Global::data();
if (!swap_entity)
{
Spdlogger::error("create swap record failed: swap_entity is null, biz_id={}", biz_id);
return "";
}
swap_entity->info.biz_id = biz_id;
Spdlogger::info("[SWAP] create swap biz record: biz_id={}", swap_entity->info.biz_id);
DataFields fields;
fields.set(DMSwapRecord::ID, swap_entity->info.biz_id);
fields.set(DMSwapRecord::SWAP_MODE, (int)swap_entity->work_mode);
fields.set(DMSwapRecord::BATT_MODEL, swap_entity->info.car_battery_model);
fields.set(DMSwapRecord::CAR_NUM, swap_entity->info.car_no);
fields.set(DMSwapRecord::USER_ID, swap_entity->info.user_id);
fields.set(DMSwapRecord::BATT_DOWN_ID, swap_entity->info.car_batt_code);
fields.set(DMSwapRecord::BATT_ON_ID, swap_entity->info.new_batt_code);
fields.set(DMSwapRecord::BATT_ON_SOC, swap_entity->info.soc);
fields.set(DMSwapRecord::STATUS, swap_entity->info.status);
fields.set(DMSwapRecord::CAUSE, PV::NODE_CAR_VERIFY);
fields.set(DMSwapRecord::OPEN_TIME, TimeUtils::ts2datetime(swap_entity->info.open_time));
DaoEntity dao(DMSwapRecord::TABLENAME);
bool res = dao.insert_fields(fields);
if (!res)
{
Spdlogger::error("create swap record failed: database error, biz_id={}, car_no={}.", swap_entity->info.biz_id, swap_entity->info.car_no);
}
return swap_entity->info.biz_id;
}
int DaoSwap::update_swap_record(std::string biz_id, DataFields& fields)
{
auto& appdata = Global::data();
if (biz_id.empty())
{
Spdlogger::error("[SWAP] update swap data record errorbizid is NULL");
return 0;
}
if (fields.size() > 0)
{
fields.remove(DMSwapRecord::ID);
string sql_c = " where " + DMSwapRecord::ID + "='" + biz_id + "'";
DaoEntity dao(DMSwapRecord::TABLENAME);
dao.update_fields(fields, sql_c);
Global::request_stat = true;
return 1;
}
return 0;
}