#include "StdAfx.h" #include "Config.h" #include "DBCtrl.h" #include "Logger.h" #include "CtiDataDef.h" SINGLETON_IMPLEMENT(CConfig) CConfig::CConfig(void) : m_RecFilePath(_T("")), m_RecType(RECORD_TYPE_TRUNK), m_ListenPort(CTI_LISTEN_PORT), m_DevType(DEV_TYPE_IPO), m_IvrFlowNum(0) { } CConfig::~CConfig(void) { } /***************************************************************** **【函数名称】 loadConfig **【函数功能】 加载配置 **【参数】 **【返回值】 成功TRUE,失败FALSE ****************************************************************/ bool CConfig::loadConfig() { char buff[MAX_BUFF_SIZE] = { 0 }; IOtlConnection* pDbConn = IOtlConnection::getInstance(); // 读取是否使用TTS //CString strTts = pDbConn->GetSingleDataStr(_T("SELECT value FROM conf_system WHERE name = 'UseTts'")); //m_IsUseTts = atoi(strTts.GetBuffer(0)); // 读取录音类型 m_RecType = (RECORD_TYPE)pDbConn->GetSingleDataStr2Int(_T("SELECT value FROM conf_system WHERE name = 'RecType'")); // 读取录音文件路径 m_RecFilePath = pDbConn->GetSingleDataStr(_T("SELECT value FROM conf_system WHERE name = 'RecPath'")); if(m_RecFilePath == "") m_RecFilePath = DEFAULT_RECORD_PATH; // 读取日志文件路径 m_LogFilePath = pDbConn->GetSingleDataStr(_T("SELECT value FROM conf_system WHERE name = 'LogPath'")); // 读取Cti监听端口 m_ListenPort = pDbConn->GetSingleDataStr2Int(_T("SELECT value FROM conf_system WHERE name = 'CtiPort'")); // 读取底层设备类型 m_DevType = (DEV_TYPE)pDbConn->GetSingleDataStr2Int(_T("SELECT value FROM conf_system WHERE name = 'DevType'")); // 读取IVR流程个数 m_IvrFlowNum = pDbConn->GetSingleDataStr2Int(_T("SELECT value FROM conf_system WHERE name = 'IvrFlowCount'")); if (m_IvrFlowNum <= 0) { ILogger::getInstance().log(LOG_CLASS_GENERAL, LOG_LEVEL_ERROR, _T("{Config}: 获取流程数量错误")); } return true; } /***************************************************************** **【函数名称】 queryLastCallId **【函数功能】 从数据库查询CALLID **【参数】 **【返回值】 CallId ****************************************************************/ ULONG CConfig::queryLastCallId() { CString strQuery = "select value from stat_callid where name = 'callid'"; return IOtlConnection::getInstance()->GetSingleDataInt(strQuery); } /***************************************************************** **【函数名称】 updateCallId **【函数功能】 更新数据库中的CALLID **【参数】 CallId:新的CallID **【返回值】 ****************************************************************/ void CConfig::updateCallId( ULONG CallId ) { CString strQuery; strQuery.Format("update stat_callid set value = %ld where name = 'callid'", CallId); IOtlConnection::getInstance()->ExecCommand(strQuery); }