#include "DictItem.h" #include "M_DictItemDAO.h" #include "M_DictDataDAO.h" #include "DictData.h" DictItem::DictItem() { } DictItem::~DictItem() { } bool DictItem::deleteChild(unsigned int id) { if (_dataMap.remove(id)) { return true; } return false; } bool DictItem::addChild(DPData* pNewData) { using namespace DBPlatformSpace; ResultMsg rm; M_DictItemDAO* pDictItemDao = dynamic_cast(_pDBDAO); pNewData->saveToDao(); M_DictDataDAO* pDictDataDao = dynamic_cast(pNewData->_pDBDAO); rm = pDictItemDao->addDictData(pDictDataDao); if (rm.rCode == 0) { LOG(INFO) << CommonHelper::utf8ToStdString("M_DictItemDAO::addDictData success"); pNewData->_id = pDictDataDao->_ID; pNewData->_parent = this; _dataMap.insert(pNewData->_id, qobject_cast(pNewData)); return true; } else { LOG(INFO) << CommonHelper::utf8ToStdString("M_DictItemDAO::addDictData failed"); return false; } } void DictItem::loadData(DBPlatformSpace::DAO* pDao) { _pDBDAO = pDao; DBPlatformSpace::M_DictItemDAO* pDictItemDAO = dynamic_cast(_pDBDAO); setID(pDictItemDAO->_ID); _innerName = CommonHelper::stringToQstring(pDictItemDAO->_innerName); _ItemName = CommonHelper::stringToQstring(pDictItemDAO->_dictName); } void DictItem::getAllChildren(DPData*) { using namespace DBPlatformSpace; ResultMsg rm; M_DictItemDAO* pDictItemDao = dynamic_cast(_pDBDAO); list dictDataList; rm = pDictItemDao->getDictDataList(dictDataList); if (rm.rCode == 0) { LOG(INFO) << CommonHelper::utf8ToStdString("M_DictItemDAO::getDictDataList success"); for (list::iterator it = dictDataList.begin(); it != dictDataList.end(); it++) { DictData* pDictData; if (_dataMap.contains((*it)->_ID)) { //´ÓÊý¾Ý¿â¸²¸Ç pDictData = _dataMap.value((*it)->_ID); pDictData->loadData(*it); } else { pDictData = new DictData(); pDictData->loadData(*it); _dataMap.insert(pDictData->_id, pDictData); pDictData->_parent = this; } } } else { LOG(INFO) << CommonHelper::utf8ToStdString("M_DictItemDAO::getDictDataList failed"); } } void DictItem::toJson(json& jsonObj, bool recursive) { jsonObj["id"] = _id; jsonObj["name"] = CommonHelper::qstringToUtf8(_ItemName); jsonObj["innerName"] = CommonHelper::qstringToUtf8(_innerName); jsonObj["default"] = true; jsonObj["code"] = 0; if (recursive) { json subData; QMap::iterator it = _dataMap.begin(); while (it != _dataMap.end()) { json child; (*it)->toJson(child); subData.push_back(child); it++; } jsonObj["children"] = subData; } }