#include "Dao.h" #include "common/Utils.h" std::string DAO::sqlPageLimit(int index, int size) { int startIndex = index * size; if (startIndex < 0) { startIndex = 0; } return " LIMIT " + std::to_string(startIndex) + "," + std::to_string(size); } bool DAO::count(DaoEntity& dao, std::string tableName, std::string condition, int& count) { std::string sql = "SELECT COUNT(*) count FROM " + tableName; if (!condition.empty()) { sql += " WHERE " + condition; }; sql += ";"; std::vector result; bool ret = dao.exec(sql, result); if (ret) { count = (result.size() > 0) ? result[0].getInt("count") : 0; } return ret; } static bool QueryCount(DaoEntity& dao, std::string sqlFrom, int& count) { std::vector result; bool ret = dao.exec("SELECT COUNT(*) count " + sqlFrom, result); if (ret) { count = (result.size() > 0) ? result[0].getInt("count") : 0; } return ret; } static bool QueryPagination(std::string sqlFrom, PageInfo& pageInfo, vector& result) { DaoEntity dao(""); int count {0}; if (!QueryCount(dao, sqlFrom, count)) { return false; } pageInfo.total = count; std::string sql = "SELECT * " + sqlFrom + DAO::sqlPageLimit(pageInfo.pageIndex, pageInfo.pageSize); bool ret = dao.exec(sql, result); if (!ret) { XLOGE() << "DAO database error: sql=" << sql; } return ret; } bool DAO::queryUserList(PageInfo& pageInfo, vector& result) { DaoEntity dao(""); std::string sqlFrom = "FROM " + DMUser::TABLENAME; bool ret = QueryPagination(sqlFrom, pageInfo, result); if (!ret) { XLOGE() << "DAO database error: queryUserList failed."; } return ret; } bool DAO::updateUserById(DataFields& params) { std::string userId = params.getStr(DMUser::USER_ID); params.remove(DMUser::USER_ID); DaoEntity dao(DMUser::TABLENAME); return dao.updateFields(params, "WHERE " + DMUser::USER_ID + "='" + userId + "'"); } bool DAO::queryRoleList(PageInfo& pageInfo, vector& result) { DaoEntity dao(""); std::string sqlFrom = "FROM " + DMRole::TABLENAME; bool ret = QueryPagination(sqlFrom, pageInfo, result); if (!ret) { XLOGE() << "DAO database error: queryRoleList failed."; } return ret; } bool DAO::queryPermissionList(PageInfo& pageInfo, vector& result) { DaoEntity dao(""); std::string sqlFrom = "FROM " + DMPermission::TABLENAME; bool ret = QueryPagination(sqlFrom, pageInfo, result); if (!ret) { XLOGE() << "DAO database error: queryPermissionList failed."; } return ret; } // 查询场站信息列表 bool DAO::queryStationList(vector& result) { std::string sql = "SELECT * FROM " + DMStation::TABLENAME; return DaoEntity::execOnce(sql, result); } // 分页查询场站信息列表 bool DAO::queryStationList(PageInfo& pageInfo, vector& result) { DaoEntity dao(""); std::string sqlFrom = "FROM " + DMStation::TABLENAME; bool ret = QueryPagination(sqlFrom, pageInfo, result); if (!ret) { XLOGE() << "DAO database error: queryStationList failed."; } return ret; } // 查询设备信息列表 bool DAO::queryDeviceList(vector& result) { std::string sql = "SELECT * FROM " + DMDevice::TABLENAME; return DaoEntity::execOnce(sql, result); } // 分页查询设备信息列表 bool DAO::queryDeviceList(PageInfo& pageInfo, vector& result) { DaoEntity dao(""); std::string sqlFrom = "FROM " + DMDevice::TABLENAME; bool ret = QueryPagination(sqlFrom, pageInfo, result); if (!ret) { XLOGE() << "DAO database error: queryDeviceList failed."; } return ret; } // 策略管理 bool DAO::queryPolicyList(PageInfo& pageInfo, vector& result) { DaoEntity dao(""); std::string sqlFrom = "FROM " + DMPolicy::TABLENAME; bool ret = QueryPagination(sqlFrom, pageInfo, result); if (!ret) { XLOGE() << "DAO database error: queryPolicyList failed."; } return ret; } // 系统日志管理 bool DAO::querySystemLogList(PageInfo& pageInfo, vector& result) { DaoEntity dao(""); std::string sqlFrom = "FROM " + DMSystemLog::TABLENAME; bool ret = QueryPagination(sqlFrom, pageInfo, result); if (!ret) { XLOGE() << "DAO database error: querySystemLogList failed."; } return ret; } bool DAO::queryStatDataList(std::string startDate, std::string endDate, vector& result) { std::string sql = "SELECT * FROM " + DMStatStation::TABLENAME + " WHERE dt BETWEEN '" + startDate + "' AND '" + endDate + "';"; return DaoEntity::execOnce(sql, result); }