#include "StdAfx.h"
|
#include "MBTNXXXObjMgr2.h"
|
|
|
CMBTNXXXObjMgr2::CMBTNXXXObjMgr2(void)
|
{
|
RemoveAllObj();
|
m_nRecords = 0;
|
m_nTotalPages = 0;
|
m_nCurPage = 0;
|
m_nPageSize = 0;
|
}
|
|
|
CMBTNXXXObjMgr2::~CMBTNXXXObjMgr2(void)
|
{
|
RemoveAllObj();
|
}
|
|
void CMBTNXXXObjMgr2::GetObjVector( CMBTNXXXObjVector &vectorObj)
|
{
|
vectorObj.clear();
|
vectorObj = m_vectorObj;
|
}
|
|
CMBTNXXXObj *CMBTNXXXObjMgr2::GetObj( CString strMID,CString strObjID )
|
{
|
if( strObjID.IsEmpty() )
|
return NULL;
|
|
CMBTNXXXObjVector::iterator it;
|
CMBTNXXXObj *pObj = NULL;
|
|
for( it = m_vectorObj.begin();it != m_vectorObj.end();it++ )
|
{
|
pObj = *it;
|
if( pObj->m_strMID == strMID && pObj->m_strObjID == strObjID )
|
return pObj;
|
}
|
|
return NULL;
|
}
|
|
bool CMBTNXXXObjMgr2::AddObj( CMBTNXXXObj *pObj )
|
{
|
if( NULL == pObj || pObj->m_strObjID.IsEmpty() )
|
return false;
|
|
m_vectorObj.push_back(pObj);
|
|
return true;
|
}
|
|
bool CMBTNXXXObjMgr2::RemoveAllObj()
|
{
|
CMBTNXXXObjVector::iterator it;
|
CMBTNXXXObj *pObj = NULL;
|
|
for( it = m_vectorObj.begin();it != m_vectorObj.end();it++ )
|
{
|
pObj = *it;
|
delete pObj;
|
pObj = NULL;
|
}
|
|
m_vectorObj.clear();
|
|
return true;
|
}
|
|
|
bool CMBTNXXXObjMgr2::ParseXml2(CString strXml,CString &strErrInfo)
|
{
|
if( strXml.IsEmpty() )
|
return true;
|
|
CString strRecords,strTotalPages,
|
strCurPage,strPageSize;
|
|
pugi::xml_document xmlDoc;
|
if (!xmlDoc.load(strXml))
|
{
|
return false;
|
}
|
pugi::xml_node bodyNode = xmlDoc.child(_T("Body"));
|
|
m_strSessionID = bodyNode.child_value(_T("SessionID"));
|
strRecords = bodyNode.child_value(_T("Records"));
|
strTotalPages = bodyNode.child_value(_T("TotalPages"));
|
strCurPage = bodyNode.child_value(_T("CurPage"));
|
strPageSize = bodyNode.child_value(_T("PageSize"));
|
|
m_nRecords = _ttoi(strRecords);
|
m_nTotalPages = _ttoi(strTotalPages);
|
m_nCurPage = _ttoi(strCurPage);
|
m_nPageSize = _ttoi(strPageSize);
|
|
|
pugi::xml_node objNode = xmlDoc.child(_T("Body")).child(_T("ObjList")).child(_T("Obj"));
|
|
for(pugi::xml_node node = objNode; node; node = node.next_sibling(_T("Obj")))
|
{
|
CMBTNXXXObj *pObj = new CMBTNXXXObj();
|
pObj->m_strObjID = node.attribute(_T("SID")).value();
|
pObj->m_strSVID = node.attribute(_T("SVID")).value();
|
pObj->m_strMID = node.attribute(_T("MID")).value();
|
|
pugi::xml_node nodeAttr = node.child(_T("ObjAttr")).child(_T("Attr"));
|
|
for(pugi::xml_node nodeTmp = nodeAttr; nodeTmp; nodeTmp = nodeTmp.next_sibling(_T("Attr")))
|
{
|
CMBTNXXXAttr *pAttr = new CMBTNXXXAttr();
|
pAttr->m_strName = nodeTmp.attribute(_T("Name")).value();
|
pAttr->m_strType = nodeTmp.attribute(_T("Type")).value();
|
pAttr->m_strDispName = nodeTmp.child_value(_T("DispName"));
|
pAttr->m_strVaule = nodeTmp.child_value(_T("Value"));
|
pAttr->m_strTabLable = nodeTmp.attribute(_T("TabLable")).value();
|
if( !pObj->AddAttr(pAttr) )
|
{
|
delete pAttr;
|
pAttr = NULL;
|
}
|
}
|
|
if( !AddObj( pObj ) )
|
{
|
delete pObj;
|
pObj = NULL;
|
}
|
}
|
|
return true;
|
}
|
|
|
|
// ¿ÉÒÔÏÂÔØ
|
//S_ID CHAR (36),
|
//S_FILE_SERVER CHAR (32),
|
//S_FILE_NAME VARCHAR (256),
|
//G_FILE_ID CHAR (36),
|
//S_FILE_TYPE CHAR (10),
|
//N_FILE_SIZE INTERGER (8),
|
//G_PDF_FILE_ID CHAR (36),
|
//G_FLASH_FILE_ID CHAR (36),
|
//G_THUMB_IMAGE_ID CHAR (36),
|
//S_FILE_MD5 CHAR (32),
|
CString CMBTNXXXObjMgr2::GenDldXml()
|
{
|
CMBTNXXXObjVector::iterator it;
|
CMBTNXXXObj *pObj = NULL;
|
CMBTNXXXAttr *pTNXXXAttr = NULL;
|
|
CString strID,strFileSvr,strFileName,strFileID,strFileType,strFileSize,strFileMD5;
|
CString strXml,strObjXml,strObjsXml;
|
|
|
for( it = m_vectorObj.begin();it != m_vectorObj.end();it++ )
|
{
|
pObj = *it;
|
|
// ÏÂÔØÎļþ
|
if( !pObj->m_bDldFile )
|
continue;
|
|
strID = pObj->m_strObjID;
|
|
pTNXXXAttr = pObj->GetAttr( _T("S_FILE_SERVER") );
|
if( pTNXXXAttr != NULL ){
|
strFileSvr = pTNXXXAttr->m_strVaule;
|
}
|
|
pTNXXXAttr = pObj->GetAttr( _T("S_FILE_NAME") );
|
if( pTNXXXAttr != NULL ){
|
strFileName = pTNXXXAttr->m_strVaule;
|
}
|
|
pTNXXXAttr = pObj->GetAttr( _T("G_FILE_ID") );
|
if( pTNXXXAttr != NULL ){
|
strFileID = pTNXXXAttr->m_strVaule;
|
}
|
|
pTNXXXAttr = pObj->GetAttr( _T("S_FILE_TYPE") );
|
if( pTNXXXAttr != NULL ){
|
strFileType = pTNXXXAttr->m_strVaule;
|
}
|
|
pTNXXXAttr = pObj->GetAttr( _T("N_FILE_SIZE") );
|
if( pTNXXXAttr != NULL ){
|
strFileSize = pTNXXXAttr->m_strVaule;
|
}
|
|
pTNXXXAttr = pObj->GetAttr( _T("G_PDF_FILE_ID") );
|
if( pTNXXXAttr != NULL ){
|
|
}
|
|
pTNXXXAttr = pObj->GetAttr( _T("G_THUMB_IMAGE_ID") );
|
if( pTNXXXAttr != NULL ){
|
|
}
|
|
pTNXXXAttr = pObj->GetAttr( _T("S_FILE_MD5") );
|
if( pTNXXXAttr != NULL ){
|
strFileMD5 = pTNXXXAttr->m_strVaule;
|
}
|
if( strFileSvr.IsEmpty() || strFileID.IsEmpty() )
|
continue;
|
|
strObjXml.Format(_T("<Obj ID='%s' FileServer='%s' FileID='%s' FileType='%s' FileSize='%s' FileMD5='%s'><FileName><![CDATA[%s]]></FileName></Obj>"),strID,strFileSvr,strFileID,strFileType,strFileSize,strFileMD5,strFileName);
|
|
strObjsXml += strObjXml;
|
}
|
|
if( strObjsXml.IsEmpty() )
|
return _T("");
|
|
strXml.Format(_T("<ObjList>%s</ObjList>"),strObjsXml);
|
|
return strXml;
|
}
|