Files
energy_storage/src/database/dao/DaoSwap.cpp

63 lines
2.2 KiB
C++
Raw Normal View History

2025-05-19 09:54:33 +08:00
#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;
}