| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #include "DepttelextOffice.h"
- #include <iostream>
- #include <json/json.h>
- #include "Log.h"
- #include "JdbcHelper.h"
- CDepttelextOffice::~CDepttelextOffice()
- {
- std::unique_lock<std::mutex>lock(mut);
- auto it = m_DeptTelextmap.begin();
- DeptTelext *pDeptTelext = nullptr;
- while (it != m_DeptTelextmap.end())
- {
- pDeptTelext = it->second;
- if (pDeptTelext) {
- delete pDeptTelext;
- pDeptTelext = nullptr;
- }
- ++it;
- }
- }
- bool CDepttelextOffice::InitDepttelext()
- {
- LOG_INFO("督办分机号码列表开始初始化");
- std::string strSQL = "SELECT id,Name,Telephone,Extension FROM rep_video_depttelext";
- std::unique_lock<std::mutex>lock(mut);
- JdbcHelper::GetInstance()->jdbc_executeQuery(strSQL, NULL, [this](sql::ResultSet* result) {
- while (result->next()){
- DeptTelext *pDeptTelext = new DeptTelext();
- pDeptTelext->Name = result->getString("Name");
- pDeptTelext->Telephone = result->getString("Telephone");
- pDeptTelext->Extension = result->getString("Extension");
- pDeptTelext->State = 0;// 默认不可用
-
- auto extenId = std::stoul(pDeptTelext->Extension);
- m_DeptTelextmap.insert(std::make_pair(extenId, pDeptTelext));
- }
- }, NULL);
- LOG_INFO("督办分机号码列表结束初始化");
- return true;
- }
- bool CDepttelextOffice::UpdateDepttelext(uint32_t extno, int state)
- {
- std::unique_lock<std::mutex>lock(mut);
- auto it = m_DeptTelextmap.find(extno);
- if (it == m_DeptTelextmap.end()) return false;
- if (it->second) {
- it->second->UpdateState(state);
- }
- return true;
- }
- std::string CDepttelextOffice::GetAllDeptTelext()
- {
- Json::Value root;
- Json::Value person;
-
- Json::FastWriter writer;
- person["Type"] = "";
- person["Result"] = true;
- std::unique_lock<std::mutex>lock(mut);
- auto it = m_DeptTelextmap.begin();
- DeptTelext *pDeptTelext = nullptr;
- while (it != m_DeptTelextmap.end()) {
- pDeptTelext = it->second;
- if (pDeptTelext) {
- Json::Value body;
- body["Name"] = pDeptTelext->Name;
- body["Telephone"] = pDeptTelext->Telephone;
- body["AgentExten"] = pDeptTelext->Extension;
- body["State"] = pDeptTelext->State;
- person["ExtenList"].append(body);
- }
- ++it;
- }
- lock.unlock();
- root.append(person);
- return writer.write(root);
- }
|