#include "CompareItemData.h" /* 初始化 */ bool CompareItemDataManager::init() { if(m_logger == nullptr) { m_logger = spdlog::get("CompareItemData"); if(m_logger == nullptr) { fmt::print("CompareItemDataManager: 初始化日志失败"); return false; } } return true; } /* 添加一个对比项 */ bool CompareItemDataManager::addCompareItem(const CompareItemInfo_t& item) { if(isCompareItemExist(item.nID)) { SPDLOG_LOGGER_WARN(m_logger, "对比项ID {} 已经存在,无法添加", item.nID); return false; } m_listCompareItems.append(item); return true; } /* 根据对比项ID删除一个对比项 */ bool CompareItemDataManager::removeCompareItem(int nID) { for(auto it = m_listCompareItems.begin(); it != m_listCompareItems.end(); ++it) { if(it->nID == nID) { m_listCompareItems.erase(it); return true; } } SPDLOG_LOGGER_WARN(m_logger, "对比项ID {} 不存在,无法删除", nID); return false; } /* 通过一个ID查找一个对比项 */ CompareItemInfo_t CompareItemDataManager::findCompareItemByID(int nID) const { for(const auto& compareItem : m_listCompareItems) { if(compareItem.nID == nID) { return compareItem; } } SPDLOG_LOGGER_WARN(m_logger, "对比项ID {} 不存在", nID); return CompareItemInfo_t(); // 返回一个默认构造的对比项 } /* 通过一个ID判断该对比项是否存在 */ bool CompareItemDataManager::isCompareItemExist(int nID) const { for(const auto& compareItem : m_listCompareItems) { if(compareItem.nID == nID) { return true; } } return false; } /* 修改一个对比项 */ bool CompareItemDataManager::modifyCompareItem(const CompareItemInfo_t& item) { for(auto& compareItem : m_listCompareItems) { if(compareItem.nID == item.nID) { compareItem = item; // 使用赋值运算符更新对比项 return true; } } SPDLOG_LOGGER_WARN(m_logger, "对比项ID {} 不存在,无法修改", item.nID); return false; } /* 获取一个未使用的对比项ID */ int CompareItemDataManager::getUnusedCompareItemID() const { int nID = 1; // 从1开始 while(isCompareItemExist(nID)) { ++nID; } return nID; }