123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706 |
- #include "StdAfx.h"
- #include "BranchInfo.h"
- #include "Implffsco.h"
- #include <shlwapi.h>
- #include <Dbghelp.h>
- #pragma comment(lib,"Dbghelp.lib")
- #include <strsafe.h >
- #include <Winbase.h>
- #include "CharacterConvert.h"
- #include "BakPhotoModel\BackupFactory.h"
- #include "BakPhotoModel\BackupInterface.h"
- #include "mysqldata.h"
- #define IS_USE_VER1 1
- TblVersion CBranchInfo::m_TblVersion;
- vector<TblCatalogInfo*> CBranchInfo::m_TblCatalogInfo;
- vector<TblNetShareInfo*> CBranchInfo::m_TblNetShareInfo;
- typedef HRESULT (WINAPI *GetClassBackupObject)(REFCLSID, REFIID, LPVOID*);
- CBranchInfo::CBranchInfo()
- {
- m_bIsOur = FALSE;
- memset(m_szBranchName, 0, sizeof(TCHAR)*MAX_PATH);
- memset(m_szBranchDoMain, 0, sizeof(TCHAR)*MAX_PATH);
- memset(m_szBranchIP, 0, sizeof(TCHAR)*MAX_PATH);
- m_strBranchId.Empty();
-
- m_hIncrement = NULL;
- m_hIncrementCtrl = NULL;
- m_hIncrementWaitableTm = NULL;
- m_hRemove = NULL;
- m_hRemoveCtrl = NULL;
- m_hRemoveWaitableTm = NULL;
- }
- CBranchInfo::CBranchInfo(LPCTSTR lpBranchName, LPCTSTR lpBranchDoMain, LPCTSTR lpBranchIP)
- {
- m_bIsOur = FALSE;
- if (_tcscmp(lpBranchName, _T("")) != 0 && lpBranchName)
- {
- _tcscpy_s(m_szBranchName, lpBranchName);
- }
- if (_tcscmp(lpBranchDoMain, _T("")) != 0 && lpBranchDoMain)
- {
- _tcscpy_s(m_szBranchDoMain, lpBranchDoMain);
- }
- if (_tcscmp(lpBranchIP, _T("")) != 0 && lpBranchIP)
- {
- _tcscpy_s(m_szBranchIP, lpBranchIP);
- }
- }
- CBranchInfo::~CBranchInfo(void)
- {
- EndOfThread();
- }
- void CBranchInfo::RemoveNetShareInfo()
- {
- TblNetShareInfo *pNetShareInfo = NULL;
- for ( NETSHAREINFO::iterator it = m_TblNetShareInfo.begin(); it != m_TblNetShareInfo.end();)
- {
- pNetShareInfo = *it;
- delete pNetShareInfo;
- pNetShareInfo = NULL;
- it = m_TblNetShareInfo.erase(it);
- }
- }
- void CBranchInfo::RemvoeCatalogInfo()
- {
- TblCatalogInfo *pCatalogInfo = NULL;
- for ( CATALOGINFO::iterator it = m_TblCatalogInfo.begin(); it != m_TblCatalogInfo.end();)
- {
- pCatalogInfo = *it;
- delete pCatalogInfo;
- pCatalogInfo = NULL;
- it = m_TblCatalogInfo.erase(it);
- }
- }
- BOOL CBranchInfo::IsValidDate(IN LPCTSTR lpDate)
- {
- if(lpDate == NULL || _tcscmp(lpDate,_T("")) == 0)
- return FALSE;
- CString strDate = lpDate;
- if (strDate.IsEmpty()) return FALSE;
-
- static int nYear = 0;
- static int nMonth = 0;
- static int nDay = 0;
- nYear = nMonth = nDay = 0;
- nYear = _ttoi(strDate.Left(4));
- nMonth = _ttoi(strDate.Mid(5, 2));
- nDay = _ttoi(strDate.Mid(8, 2));
- CONST static INT nNormalMonth[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
- CONST static INT nLeapMonth[12] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
- if ((nDay <= 0) || (nDay > 31) || (nMonth <= 0) || (nMonth > 12)) return FALSE;
- if ((nYear % 400 == 0) || (nYear % 4 == 0 && nYear % 100 != 0))
- {
- if (nDay > nLeapMonth[nMonth - 1]) return FALSE;
- }
- else
- {
- if (nDay > nNormalMonth[nMonth - 1]) return FALSE;
- }
- return TRUE;
- }
- UINT64 CBranchInfo::EasyGetFileSize(IN LPCTSTR lpFile)
- {
-
-
-
-
- WIN32_FIND_DATA fileinfo;
- UINT64 dwSize = 0;
- HANDLE hFind = FindFirstFile(lpFile,&fileinfo);
- if ( hFind != INVALID_HANDLE_VALUE)
- {
- dwSize = fileinfo.nFileSizeLow;
- FindClose(hFind);
- }
- return dwSize;
- }
- UINT64 CBranchInfo::EasyGetFileSpacesSzie(IN LPCTSTR lpFileName)
- {
-
- if ( !PathFileExists(lpFileName) )
- {
-
- return -1;
- }
-
- HANDLE hFile = ::CreateFile(lpFileName, GENERIC_READ , FILE_SHARE_READ,
- NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
- if (hFile == INVALID_HANDLE_VALUE)
- {
-
- return -1;
- }
- #if 0
-
- UINT64 uFileSize = 0;
- ::GetFileSizeEx(hFile, reinterpret_cast<PLARGE_INTEGER>(&uFileSize));
- #endif
- FILE_STANDARD_INFO fsi = {0};
- if (!::GetFileInformationByHandleEx(hFile, FileStandardInfo, &fsi, sizeof(FILE_STANDARD_INFO)))
- {
- CloseHandle(hFile);
-
- return -1;
- }
- UINT64 uFileSpacesSize = fsi.AllocationSize.HighPart;
- CloseHandle(hFile);
- return uFileSpacesSize;
- }
- UINT64 CBranchInfo::EasyGetSizeOfFiles(IN CStringArray &strAryOfFile)
- {
- UINT64 uSizeOfFiles = 0;
- int nSize = strAryOfFile.GetSize();
- for ( int i = 0; i < nSize; i++)
- {
- CString strFile = strAryOfFile.ElementAt(i);
- if ( PathFileExists(strFile) )
- {
- uSizeOfFiles += EasyGetFileSize(strFile);
- }
- }
- return uSizeOfFiles;
- }
- BOOL CBranchInfo::GetDiskSpaceInfo(IN LPCTSTR lpRootPathName,IN OUT double &dTotalNum, IN OUT double &dFreeNum)
- {
-
- if(lpRootPathName == NULL || _tcscmp(lpRootPathName,_T("")) == 0)
- {
-
- return FALSE;
- }
-
- int nlen = _tcslen(lpRootPathName);
- if((1 == nlen) || ( 2 == nlen && lpRootPathName[nlen-1] != _T(':')))
- {
-
- return FALSE;
- }
- if ( !PathFileExists(lpRootPathName))
- {
-
- return FALSE;
- }
- BOOL fResult = FALSE;
- DWORD dwSectPerClust;
- DWORD dwBytesPerSect;
- DWORD dwFreeClusters;
- DWORD dwTotalClusters;
- typedef BOOL (WINAPI *P_GDFSE)(LPCTSTR, PULARGE_INTEGER,PULARGE_INTEGER, PULARGE_INTEGER);
- P_GDFSE pGetDiskFreeSpaceEx = NULL;
- __int64 i64FreeBytesToCaller;
- __int64 i64TotalBytes;
- __int64 i64FreeBytes;
-
- #ifdef UNICODE
- pGetDiskFreeSpaceEx = (P_GDFSE)GetProcAddress(GetModuleHandle(_T("kernel32.dll")),"GetDiskFreeSpaceExW");
- #else
- pGetDiskFreeSpaceEx = (P_GDFSE)GetProcAddress(GetModuleHandle("kernel32.dll"),"GetDiskFreeSpaceExA");
- #endif
- if ( pGetDiskFreeSpaceEx )
- {
- fResult = pGetDiskFreeSpaceEx(lpRootPathName,
- (PULARGE_INTEGER)&i64FreeBytesToCaller,
- (PULARGE_INTEGER)&i64TotalBytes,
- (PULARGE_INTEGER)&i64FreeBytes);
- if ( fResult )
- {
-
- dTotalNum = (double)i64TotalBytes/1024/1024/1024;
- dFreeNum = (double)i64FreeBytes/1024/1024/1024;
- }
- }
- else
- {
- fResult = GetDiskFreeSpace(lpRootPathName,
- &dwSectPerClust,
- &dwBytesPerSect,
- &dwFreeClusters,
- &dwTotalClusters);
- if ( fResult )
- {
-
- i64TotalBytes = (__int64)dwTotalClusters * dwSectPerClust * dwBytesPerSect;
- i64FreeBytes = (__int64)dwFreeClusters * dwSectPerClust * dwBytesPerSect;
-
- dTotalNum = (double)i64TotalBytes/1024/1024/1024;
- dFreeNum = (double)i64FreeBytes/1024/1024/1024;
- }
- }
- return fResult;
- }
- BOOL CBranchInfo::GetEnableShareDirectory(OUT double &dFreeNum, IN const int &nPhotoType, IN LPCTSTR lpBranchId, IN LPCTSTR lpOrderNum, OUT LPTSTR lpEnableShareDirectory)
- {
- if ( m_TblNetShareInfo.size() == 0)
- {
-
-
- return FALSE;
- }
- double dTotalNum = 0.0;
- BOOL bGetEnable = FALSE;
- BYTE byCurPriority = 0;
- TCHAR szOrderPath[MAX_PATH] = {0};
-
- for ( NETSHAREINFO::const_iterator it = m_TblNetShareInfo.begin(); it != m_TblNetShareInfo.end(); it++)
- {
-
- if ( _tcscmp((*it)->szBranchId,lpBranchId) == 0 )
- {
- if ( (*it)->byPhotoType == nPhotoType )
- {
-
- _stprintf_s(szOrderPath,_T("%s\\%s\\"),(*it)->szShareDirectory,lpOrderNum);
-
- if ( PathFileExists(szOrderPath) )
- {
- if ( !GetDiskSpaceInfo((*it)->szShareDirectory,dTotalNum,dFreeNum) )
- {
-
-
-
- continue;
- }
- if ( dFreeNum > (*it)->byMinCapacity )
- {
- bGetEnable = TRUE;
- break;
- }
- }
-
- if ( GetDiskSpaceInfo((*it)->szShareDirectory,dTotalNum,dFreeNum) )
- {
- if ( dFreeNum > (*it)->byMaxCapacity )
- {
- if ( byCurPriority < (*it)->byPriority )
- {
-
- byCurPriority = (*it)->byPriority;
-
- bGetEnable = TRUE;
- }
- }
- }
- }
- }
- }
-
-
- if(bGetEnable)
- {
- #ifdef UNICODE
- CHAR szShareDirectory[MAX_PATH] = {0};
- unicode2acsii(szOrderPath,szShareDirectory);
- MakeSureDirectoryPathExists(szShareDirectory);
- #else
- MyMakeSureDirectoryPathExists(szOrderPath);
- #endif
- _stprintf_s(lpEnableShareDirectory,_tcslen(szOrderPath)+1,_T("%s"),szOrderPath);
- }
- else
- {
-
-
- }
- return bGetEnable;
- }
- BOOL CBranchInfo::EasyCopyFile(IN LPCTSTR lpOrderNum, IN LPCTSTR lpExistingFileName, IN LPCTSTR lpTargetDirectory, IN BOOL bFailIfExists )
- {
- if ( !PathFileExists(lpTargetDirectory) )
- {
- return FALSE;
- }
- TCHAR szNewFileName[_MAX_PATH] = { 0 };
- TCHAR szDrive[_MAX_DRIVE] = { 0 };
- TCHAR szDir[_MAX_DIR] = { 0 };
- TCHAR szFna[_MAX_FNAME] = { 0 };
- TCHAR szExt[_MAX_EXT] = { 0 };
- StringCchPrintf(szNewFileName, _MAX_PATH, _T("%s"), lpExistingFileName);
- _tsplitpath_s(szNewFileName, szDrive, szDir, szFna, szExt);
-
- int nIndex = 0;
- CString strDir = szDir;
- if ( (nIndex = strDir.Find(lpOrderNum)) != -1)
- {
- strDir = strDir.Mid(nIndex+_tcslen(lpOrderNum)+1);
- strDir.TrimRight(_T('\\'));
- if ( lpTargetDirectory[_tcslen(lpTargetDirectory) - 1] != _T('\\') )
- {
- if(!strDir.IsEmpty())
- {
- StringCchPrintf(szNewFileName, _MAX_PATH, _T("%s\\%s\\"), lpTargetDirectory, strDir);
- }
- }
- else
- {
- if(!strDir.IsEmpty())
- {
- StringCchPrintf(szNewFileName, _MAX_PATH, _T("%s%s\\"), lpTargetDirectory, strDir);
- }
- }
- CreateDirectory(szNewFileName,NULL);
- }
- else
- {
-
-
- }
- if ( lpTargetDirectory[_tcslen(lpTargetDirectory) - 1] != _T('\\') )
- {
- if(strDir.IsEmpty())
- StringCchPrintf(szNewFileName, _MAX_PATH, _T("%s\\%s%s"), lpTargetDirectory, szFna, szExt);
- else
- StringCchPrintf(szNewFileName, _MAX_PATH, _T("%s\\%s\\%s%s"), lpTargetDirectory, strDir, szFna, szExt);
- }
- else
- {
- if(strDir.IsEmpty())
- StringCchPrintf(szNewFileName, _MAX_PATH, _T("%s%s%s"), lpTargetDirectory, szFna, szExt);
- else
- StringCchPrintf(szNewFileName, _MAX_PATH, _T("%s%s\\%s%s"), lpTargetDirectory, strDir, szFna, szExt);
- }
- return CopyFile(lpExistingFileName, szNewFileName, bFailIfExists);
- }
- BOOL CBranchInfo::IsValideDiretory(IN LPCTSTR lpDirectory)
- {
- BOOL bResult = TRUE;
- for ( NETSHAREINFO::const_iterator it = m_TblNetShareInfo.begin(); it != m_TblNetShareInfo.end(); it++)
- {
- if ( _tcscmp((*it)->szShareDirectory,lpDirectory) == 0)
- {
- bResult = FALSE;
- break;
- }
- }
- return bResult;
- }
- BOOL CBranchInfo::DeleteDirectory(IN LPCTSTR lpDiretory)
- {
-
- if ( lpDiretory == NULL || _tcscmp(lpDiretory,_T("")) == 0)
- return FALSE;
- #if 1
- if( !PathFileExists(lpDiretory))
- return FALSE;
- #endif
- TString strPath = lpDiretory;
- if ( lpDiretory[_tcslen(lpDiretory)-1] != _T('\\'))
- strPath += _T("\\");
- TString strTempPath = strPath;
- strTempPath += _T("*");
- WIN32_FIND_DATA fileinfo = { 0 };
- HANDLE handle = FindFirstFile(strTempPath.c_str(), &fileinfo);
- if (NULL == handle && INVALID_HANDLE_VALUE == handle)
- return FALSE;
- do
- {
-
- if (_T('.') != fileinfo.cFileName[0])
- {
- TString strTemp = strPath + fileinfo.cFileName;
- SetFileAttributes(strTemp.c_str(), FILE_ATTRIBUTE_NORMAL);
- if ((FILE_ATTRIBUTE_DIRECTORY & fileinfo.dwFileAttributes) == FILE_ATTRIBUTE_DIRECTORY)
- {
- DeleteDirectory(strTemp.c_str());
- }
- else
- {
- if(!DeleteFile(strTemp.c_str()))
- {
- DWORD dwError = GetLastError();
-
- }
- }
- }
- } while (FindNextFile(handle, &fileinfo));
- FindClose(handle);
- if(!RemoveDirectory(strPath.c_str()))
- {
- DWORD dwError = GetLastError();
-
-
- return FALSE;
- }
- return TRUE;
- }
- BOOL CBranchInfo::ReadOtherBranchOrderInfo()
- {
- CString strOrderFile;
- strOrderFile.Format(_T("%s\\%s"),g_ModulePath,_T("branchdindan.dat"));
- if ( !PathFileExists(strOrderFile) )
- {
-
-
- return FALSE;
- }
- CFile fOrder;
- if (!fOrder.Open(strOrderFile, CFile::modeRead))
- {
-
-
- return FALSE;
- }
- int nMessageLen = fOrder.GetLength();
- BYTE *pData = new BYTE[nMessageLen];
- fOrder.Read(pData, nMessageLen);
- fOrder.Close();
- BYTE *szChatMessage = pData;
- int nSize = 0;
- memcpy(&nSize, szChatMessage + (nMessageLen - sizeof(int)), sizeof(int));
- CMemFile memfile;
- memfile.Attach(szChatMessage, nMessageLen);
- CArchive ar(&memfile, CArchive::load);
- CArray<CStringArray,CStringArray> AryOtherBranchOrderInfo;
- AryOtherBranchOrderInfo.SetSize(nSize);
- for (int i = 0; i < AryOtherBranchOrderInfo.GetSize(); i++)
- {
-
- AryOtherBranchOrderInfo.ElementAt(i).Serialize(ar);
- }
- ar.Close();
- memfile.Detach();
- delete[] pData;
- nSize = AryOtherBranchOrderInfo.GetSize();
- for ( int i = 0; i < nSize; i++)
- {
- CStringArray &AryOrder = AryOtherBranchOrderInfo.ElementAt(i);
- GetRemvoeOrderInfoAndRemove(AryOrder.ElementAt(0),AryOrder.ElementAt(1),AryOrder.ElementAt(2),1);
- GetRemvoeOrderInfoAndRemove(AryOrder.ElementAt(0),AryOrder.ElementAt(1),AryOrder.ElementAt(2),2);
- GetRemvoeOrderInfoAndRemove(AryOrder.ElementAt(0),AryOrder.ElementAt(1),AryOrder.ElementAt(2),3);
- GetRemvoeOrderInfoAndRemove(AryOrder.ElementAt(0),AryOrder.ElementAt(1),AryOrder.ElementAt(2),4);
- GetRemvoeOrderInfoAndRemove(AryOrder.ElementAt(0),AryOrder.ElementAt(1),AryOrder.ElementAt(2),5);
- GetRemvoeOrderInfoAndRemove(AryOrder.ElementAt(0),AryOrder.ElementAt(1),AryOrder.ElementAt(2),6);
- GetRemvoeOrderInfoAndRemove(AryOrder.ElementAt(0),AryOrder.ElementAt(1),AryOrder.ElementAt(2),7);
- GetRemvoeOrderInfoAndRemove(AryOrder.ElementAt(0),AryOrder.ElementAt(1),AryOrder.ElementAt(2),8);
- Sleep(0);
- }
-
- DeleteFile(strOrderFile);
- return TRUE;
- }
- void CBranchInfo::InitBranchInfo(IN LPCTSTR lpBranchDoMain, IN LPCTSTR lpBranchName, IN LPCTSTR lpBranchIP)
- {
-
- if (_tcscmp(lpBranchName, _T("")) != 0 && lpBranchName)
- _tcscpy_s(m_szBranchName, lpBranchName);
- if (_tcscmp(lpBranchDoMain, _T("")) != 0 && lpBranchDoMain)
- _tcscpy_s(m_szBranchDoMain, lpBranchDoMain);
- if (_tcscmp(lpBranchIP, _T("")) != 0 && lpBranchIP)
- _tcscpy_s(m_szBranchIP, lpBranchIP);
- }
- BOOL CBranchInfo::InitCatalog(IN CONST DWORD &dwCatalogPort, IN LPCTSTR lpCatalogSource, IN LPCTSTR lpCatalogAccount, IN LPCTSTR lpCatalogPsw, IN LPCTSTR lpCatalogName)
- {
- if ( IsOpen() )
- return TRUE;
-
- TCHAR szSQLConnt[MAX_PATH] = _T("");
- if (dwCatalogPort)
- {
- if ( _tcscmp(g_szDBAccount, _T("")) == 0 )
- _stprintf_s(szSQLConnt, DB_SW_CONN_WITH_PORT,lpCatalogSource, dwCatalogPort, lpCatalogName);
- else
- _stprintf_s(szSQLConnt, DB_SS_CONN_WITH_PORT,lpCatalogSource, dwCatalogPort, lpCatalogName, lpCatalogAccount, lpCatalogPsw);
- }
- else
- {
- if ( _tcscmp(g_szDBAccount, _T("")) == 0 )
- _stprintf_s(szSQLConnt, DB_SW_CONN_WITHOUT_PORT,lpCatalogSource, lpCatalogName);
- else
- _stprintf_s(szSQLConnt, DB_SS_CONN_WITHOUT_PORT,lpCatalogSource, lpCatalogName, lpCatalogAccount, lpCatalogPsw);
- }
- SetConn(szSQLConnt);
- BOOL bResult = OpenCatalog();
- if( !bResult )
- {
-
-
- }
- else
- {
- if( !GetTblBranchId() )
- {
-
-
- }
- }
- return bResult;
- }
- BOOL CBranchInfo::CheckShareDirExistInTbl(const int nType, const CString& strDir)
- {
- if(strDir == _T(""))
- return FALSE;
- if(nType == 1 || nType == 2)
- {
- int ncount = GetSelectCount(_T("NetShareInfo"), strDir);
- if(ncount != 0)
- return TRUE;
- }
- return FALSE;
- }
- BOOL CBranchInfo::GetTblBranchId()
- {
- CStringArray AryOfFields;
- AryOfFields.Add(_T("path1"));
- CArray<CStringArray, CStringArray> AryOfValues;
- if ( !GetTableValues(_T("path"), NULL, AryOfFields, AryOfValues) || !AryOfValues.GetSize())
- {
-
-
- return FALSE;
- }
- StringCchPrintf(m_szBranchDoMain,MAX_PATH,_T("%s"),AryOfValues.ElementAt(0).ElementAt(0));
- return TRUE;
- }
- BOOL CBranchInfo::GetTblVersion()
- {
- CStringArray AryOfFields;
- AryOfFields.Add(_T("version"));
- AryOfFields.Add(_T("check1"));
- AryOfFields.Add(_T("check2"));
- AryOfFields.Add(_T("check3"));
- AryOfFields.Add(_T("check4"));
- AryOfFields.Add(_T("edit1"));
- AryOfFields.Add(_T("edit2"));
- AryOfFields.Add(_T("edit3"));
- AryOfFields.Add(_T("edit4"));
- AryOfFields.Add(_T("bak1"));
- AryOfFields.Add(_T("bak2"));
- AryOfFields.Add(_T("bak3"));
- AryOfFields.Add(_T("bak4"));
- AryOfFields.Add(_T("bak5"));
- AryOfFields.Add(_T("bak6"));
- AryOfFields.Add(_T("bakserver1"));
- AryOfFields.Add(_T("bakserver2"));
- AryOfFields.Add(_T("bakserver3"));
- AryOfFields.Add(_T("bakserver4"));
- AryOfFields.Add(_T("bakserver5"));
- AryOfFields.Add(_T("baktime"));
- AryOfFields.Add(_T("delcheck1"));
- AryOfFields.Add(_T("delcheck2"));
- AryOfFields.Add(_T("delcheck3"));
- AryOfFields.Add(_T("delcheck4"));
- AryOfFields.Add(_T("deledit1"));
- AryOfFields.Add(_T("deledit2"));
- AryOfFields.Add(_T("deledit3"));
- AryOfFields.Add(_T("deledit4"));
- AryOfFields.Add(_T("bak11"));
- AryOfFields.Add(_T("bak22"));
- AryOfFields.Add(_T("bak33"));
- AryOfFields.Add(_T("bak44"));
- CArray<CStringArray, CStringArray> AryOfValues;
- if (!GetTableValues(_T("version"), NULL, AryOfFields, AryOfValues))
- {
-
-
- return FALSE;
- }
-
- _stprintf_s(m_TblVersion.szVersion, _T("%s"), AryOfValues.ElementAt(0).ElementAt(0));
- m_TblVersion.bCheck1 = _ttoi(AryOfValues.ElementAt(0).ElementAt(1));
- m_TblVersion.bCheck2 = _ttoi(AryOfValues.ElementAt(0).ElementAt(2));
- m_TblVersion.bCheck3 = _ttoi(AryOfValues.ElementAt(0).ElementAt(3));
- m_TblVersion.bCheck4 = _ttoi(AryOfValues.ElementAt(0).ElementAt(4));
- m_TblVersion.nCheckMonth1 = _ttoi(AryOfValues.ElementAt(0).ElementAt(5));
- m_TblVersion.nCheckMonth2 = _ttoi(AryOfValues.ElementAt(0).ElementAt(6));
- m_TblVersion.nCheckMonth3 = _ttoi(AryOfValues.ElementAt(0).ElementAt(7));
- m_TblVersion.nCheckMonth4 = _ttoi(AryOfValues.ElementAt(0).ElementAt(8));
- m_TblVersion.bCheckbak1 = _ttoi(AryOfValues.ElementAt(0).ElementAt(9));
- m_TblVersion.bCheckbak2 = _ttoi(AryOfValues.ElementAt(0).ElementAt(10));
- m_TblVersion.bCheckbak3 = _ttoi(AryOfValues.ElementAt(0).ElementAt(11));
- m_TblVersion.bCheckbak4 = _ttoi(AryOfValues.ElementAt(0).ElementAt(12));
-
-
- _stprintf_s(m_TblVersion.szbakServer1, _T("%s"), AryOfValues.ElementAt(0).ElementAt(15));
- _stprintf_s(m_TblVersion.szbakServer2, _T("%s"), AryOfValues.ElementAt(0).ElementAt(16));
- _stprintf_s(m_TblVersion.szbakServer3, _T("%s"), AryOfValues.ElementAt(0).ElementAt(17));
- _stprintf_s(m_TblVersion.szbakServer4, _T("%s"), AryOfValues.ElementAt(0).ElementAt(18));
-
-
- m_TblVersion.bCheckbakdel1 = _ttoi(AryOfValues.ElementAt(0).ElementAt(21));
- m_TblVersion.bCheckbakdel2 = _ttoi(AryOfValues.ElementAt(0).ElementAt(22));
- m_TblVersion.bCheckbakdel3 = _ttoi(AryOfValues.ElementAt(0).ElementAt(23));
- m_TblVersion.bCheckbakdel4 = _ttoi(AryOfValues.ElementAt(0).ElementAt(24));
- m_TblVersion.nCheckbdMonth1 = _ttoi(AryOfValues.ElementAt(0).ElementAt(25));
- m_TblVersion.nCheckbdMonth2 = _ttoi(AryOfValues.ElementAt(0).ElementAt(26));
- m_TblVersion.nCheckbdMonth3 = _ttoi(AryOfValues.ElementAt(0).ElementAt(27));
- m_TblVersion.nCheckbdMonth4 = _ttoi(AryOfValues.ElementAt(0).ElementAt(28));
- m_TblVersion.bSubCheck1 = _ttoi(AryOfValues.ElementAt(0).ElementAt(29));
- m_TblVersion.bSubCheck2 = _ttoi(AryOfValues.ElementAt(0).ElementAt(30));
- m_TblVersion.bSubCheck3 = _ttoi(AryOfValues.ElementAt(0).ElementAt(31));
- m_TblVersion.bSubCheck4 = _ttoi(AryOfValues.ElementAt(0).ElementAt(32));
- #if !IS_USE_VER1
-
- AddLocalShareDirectory();
- #endif
- return TRUE;
- }
- BOOL CBranchInfo::GetTblCatalogInfo()
- {
- CStringArray AryOfFields;
- AryOfFields.Add(_T("enable"));
- AryOfFields.Add(_T("branch"));
- AryOfFields.Add(_T("branchid"));
- AryOfFields.Add(_T("clgname"));
- AryOfFields.Add(_T("clgport"));
- AryOfFields.Add(_T("clgsource"));
- AryOfFields.Add(_T("clgaccount"));
- AryOfFields.Add(_T("clgpassword"));
- CArray<CStringArray, CStringArray> AryOfValues;
- if (!GetTableValues(_T("CatalogInfo"), NULL, AryOfFields, AryOfValues))
- {
-
-
- return FALSE;
- }
-
- for (int i = 0; i < AryOfValues.GetSize(); i++)
- {
- if( IsCatalogInfoExists(AryOfValues.ElementAt(i).ElementAt(2)) )
- continue;
- TblCatalogInfo *pCatalogInfo = new TblCatalogInfo;
- pCatalogInfo->bEnable = _ttoi(AryOfValues.ElementAt(i).ElementAt(0));
- _stprintf_s(pCatalogInfo->szBranch, _T("%s"), AryOfValues.ElementAt(i).ElementAt(1));
- _stprintf_s(pCatalogInfo->szBranchId, _T("%s"), AryOfValues.ElementAt(i).ElementAt(2));
- _stprintf_s(pCatalogInfo->szCatalogName, _T("%s"), AryOfValues.ElementAt(i).ElementAt(3));
- pCatalogInfo->dwCatalogPort = _ttoi(AryOfValues.ElementAt(i).ElementAt(4));
- _stprintf_s(pCatalogInfo->szCatalogSource, _T("%s"), AryOfValues.ElementAt(i).ElementAt(5));
- _stprintf_s(pCatalogInfo->szCatalogAccount, _T("%s"), AryOfValues.ElementAt(i).ElementAt(6));
- _stprintf_s(pCatalogInfo->szCatalogPassWord, _T("%s"), AryOfValues.ElementAt(i).ElementAt(7));
-
- m_TblCatalogInfo.push_back(pCatalogInfo);
- }
- return TRUE;
- }
- BOOL CBranchInfo::GetTblNetShareInfo()
- {
-
- RemoveNetShareInfo();
- AddLocalShareDirectory();
- CStringArray AryOfFields;
- AryOfFields.Add(_T("enable"));
- AryOfFields.Add(_T("branchid"));
- AryOfFields.Add(_T("sharePath"));
- AryOfFields.Add(_T("mincapacity"));
- AryOfFields.Add(_T("maxcapacity"));
- AryOfFields.Add(_T("photoType"));
- AryOfFields.Add(_T("priority"));
- CArray<CStringArray, CStringArray> AryOfValues;
- if (!GetTableValues(_T("NetShareInfo"), NULL, AryOfFields, AryOfValues))
- {
-
-
- return FALSE;
- }
-
- for (int i = 0; i < AryOfValues.GetSize(); i++)
- {
- if( IsNetShareInfoExists(AryOfValues.ElementAt(i).ElementAt(1),AryOfValues.ElementAt(i).ElementAt(2)) )
- continue;
- TblNetShareInfo *pNetShareInfo = new TblNetShareInfo;
- pNetShareInfo->bEnable = _ttoi(AryOfValues.ElementAt(i).ElementAt(0));
- _stprintf_s(pNetShareInfo->szBranchId, _T("%s"), AryOfValues.ElementAt(i).ElementAt(1));
- _stprintf_s(pNetShareInfo->szShareDirectory, _T("%s"), AryOfValues.ElementAt(i).ElementAt(2));
- pNetShareInfo->byMinCapacity = _ttoi(AryOfValues.ElementAt(i).ElementAt(3));
- pNetShareInfo->byMaxCapacity = _ttoi(AryOfValues.ElementAt(i).ElementAt(4));
- pNetShareInfo->byPhotoType = _ttoi(AryOfValues.ElementAt(i).ElementAt(5));
- pNetShareInfo->byPriority = _ttoi(AryOfValues.ElementAt(i).ElementAt(6));
- m_TblNetShareInfo.push_back(pNetShareInfo);
- }
- return TRUE;
- }
- BOOL CBranchInfo::IsNetShareInfoExists(IN LPCTSTR lpBranchId, IN LPCTSTR lpShareDirectory)
- {
- BOOL bExists = FALSE;
- for ( NETSHAREINFO::const_iterator it = m_TblNetShareInfo.begin(); it != m_TblNetShareInfo.end(); it++)
- {
- if ( _tcscmp((*it)->szBranchId,lpBranchId) == 0 && _tcscmp((*it)->szShareDirectory,lpShareDirectory) == 0)
- {
- bExists = TRUE;
- break;
- }
- }
- return bExists;
- }
- BOOL CBranchInfo::IsCatalogInfoExists(IN LPCTSTR lpBranchId)
- {
- BOOL bExists = FALSE;
- for ( CATALOGINFO::const_iterator it = m_TblCatalogInfo.begin(); it != m_TblCatalogInfo.end(); it++)
- {
- if ( _tcscmp((*it)->szBranchId,lpBranchId) == 0 )
- {
- bExists = TRUE;
- break;
- }
- }
- return bExists;
- }
- BOOL CBranchInfo::GetTblIncrementBackup(OUT CArray<CStringArray, CStringArray> &AryOfValues, IN BOOL bIsBackup )
- {
- CStringArray AryOfFields;
- AryOfFields.Add(_T("isbackup"));
- AryOfFields.Add(_T("branchid"));
- AryOfFields.Add(_T("opttime"));
- AryOfFields.Add(_T("[order]"));
- AryOfFields.Add(_T("photoType"));
- AryOfFields.Add(_T("[content]"));
- AryOfFields.Add(_T("userid"));
- AryOfFields.Add(_T("username"));
- AryOfFields.Add(_T("baktime"));
- if (!GetTableValues(_T("IncrementalBackup"), bIsBackup ? _T("isbackup = 1") : _T("isbackup = 0"), AryOfFields, AryOfValues))
- {
-
-
- return FALSE;
- }
- return TRUE;
- }
- #if TEST_CREATE_DIRECTORY
- BOOL CBranchInfo::GetTblPhotoManager(OUT CArray<CStringArray, CStringArray> &AryOfValues)
- {
- CStringArray AryOfFields;
- AryOfFields.Add(_T("[order]"));
- if (!GetTableValues(_T("PhotoManager"),NULL, AryOfFields, AryOfValues))
- {
-
- return FALSE;
- }
- return TRUE;
- }
- void CBranchInfo::CreateOrderDirectory(IN LPCTSTR lpOrderNum)
- {
- for (vector<TblNetShareInfo*>::const_iterator it = m_TblNetShareInfo.begin(); it != m_TblNetShareInfo.end(); it++)
- {
- if ( _tcscmp(m_szBranchDoMain,(*it)->szBranchId) == 0 )
- {
- CString strOrderPath = _T("");
- strOrderPath.Format(_T("%s\\%s"),(*it)->szShareDirectory,lpOrderNum);
-
- if(!PathFileExists((*it)->szShareDirectory))continue;
- strOrderPath += _T("\\");
-
-
- #ifdef UNICODE
- CHAR szShareDirectory[MAX_PATH] = {0};
- unicode2acsii(strOrderPath,szShareDirectory);
- MakeSureDirectoryPathExists(szShareDirectory);
- #else
- MyMakeSureDirectoryPathExists(strOrderPath);
- #endif
- LOG4C_NO_FILENUM((LOG_NOTICE,"创建目录[%s]成功",CW2A(strOrderPath)));
- }
- }
- }
- #endif
- BOOL CBranchInfo::GetTblAllPhotoManager(OUT CArray<CStringArray, CStringArray> &AryOfValues)
- {
- CStringArray AryOfFields;
- AryOfFields.Add(_T("branchid"));
- AryOfFields.Add(_T("[order]"));
- AryOfFields.Add(_T("takestatus"));
- AryOfFields.Add(_T("taketime"));
- AryOfFields.Add(_T("opdel"));
- AryOfFields.Add(_T("epdel"));
- AryOfFields.Add(_T("fpdel"));
- AryOfFields.Add(_T("dpdel"));
- AryOfFields.Add(_T("opbdel"));
- AryOfFields.Add(_T("epbdel"));
- AryOfFields.Add(_T("fpbdel"));
- AryOfFields.Add(_T("dpbdel"));
- AryOfFields.Add(_T("opdeltm"));
- AryOfFields.Add(_T("epdeltm"));
- AryOfFields.Add(_T("fpdeltm"));
- AryOfFields.Add(_T("dpdeltm"));
- AryOfFields.Add(_T("opbdeltm"));
- AryOfFields.Add(_T("epbdeltm"));
- AryOfFields.Add(_T("fpbdeltm"));
- AryOfFields.Add(_T("dpbdeltm"));
- if (!GetTableValues(_T("PhotoManager"), NULL, AryOfFields, AryOfValues))
- {
-
-
- return FALSE;
- }
- return TRUE;
- }
- BOOL CBranchInfo::GetTblPhotoManager1(OUT CArray<CStringArray, CStringArray> &AryOfValues)
- {
- CStringArray AryOfFields;
- AryOfFields.Add(_T("[branchid]"));
- AryOfFields.Add(_T("[order]"));
- AryOfFields.Add(_T("takestatus"));
- AryOfFields.Add(_T("taketime"));
- AryOfFields.Add(_T("opdel"));
- if (!GetTableValues(_T("PhotoManager"), _T("takestatus = 1 and opdel = 0"), AryOfFields, AryOfValues))
- {
-
-
- return FALSE;
- }
- return TRUE;
- }
- BOOL CBranchInfo::GetTblPhotoManager2(OUT CArray<CStringArray, CStringArray> &AryOfValues)
- {
- CStringArray AryOfFields;
- AryOfFields.Add(_T("[branchid]"));
- AryOfFields.Add(_T("[order]"));
- AryOfFields.Add(_T("takestatus"));
- AryOfFields.Add(_T("taketime"));
- AryOfFields.Add(_T("epdel"));
- if (!GetTableValues(_T("PhotoManager"), _T("takestatus = 1 and epdel = 0"), AryOfFields, AryOfValues))
- {
-
-
- return FALSE;
- }
- return TRUE;
- }
- BOOL CBranchInfo::GetTblPhotoManager3(OUT CArray<CStringArray, CStringArray> &AryOfValues)
- {
- CStringArray AryOfFields;
- AryOfFields.Add(_T("[branchid]"));
- AryOfFields.Add(_T("[order]"));
- AryOfFields.Add(_T("takestatus"));
- AryOfFields.Add(_T("taketime"));
- AryOfFields.Add(_T("fpdel"));
- if (!GetTableValues(_T("PhotoManager"), _T("takestatus = 1 and fpdel = 0"), AryOfFields, AryOfValues))
- {
-
-
- return FALSE;
- }
- return TRUE;
- }
- BOOL CBranchInfo::GetTblPhotoManager4(OUT CArray<CStringArray, CStringArray> &AryOfValues)
- {
- CStringArray AryOfFields;
- AryOfFields.Add(_T("[branchid]"));
- AryOfFields.Add(_T("[order]"));
- AryOfFields.Add(_T("takestatus"));
- AryOfFields.Add(_T("taketime"));
- AryOfFields.Add(_T("dpdel"));
- if (!GetTableValues(_T("PhotoManager"), _T("takestatus = 1 and dpdel = 0"), AryOfFields, AryOfValues))
- {
-
-
- return FALSE;
- }
- return TRUE;
- }
- BOOL CBranchInfo::GetTblPhotoManager5(OUT CArray<CStringArray, CStringArray> &AryOfValues)
- {
- CStringArray AryOfFields;
- AryOfFields.Add(_T("[branchid]"));
- AryOfFields.Add(_T("[order]"));
- AryOfFields.Add(_T("takestatus"));
- AryOfFields.Add(_T("taketime"));
- AryOfFields.Add(_T("opbdel"));
- if (!GetTableValues(_T("PhotoManager"), _T("takestatus = 1 and opbdel = 0"), AryOfFields, AryOfValues))
- {
-
-
- return FALSE;
- }
- return TRUE;
- }
- BOOL CBranchInfo::GetTblPhotoManager6(OUT CArray<CStringArray, CStringArray> &AryOfValues)
- {
- CStringArray AryOfFields;
- AryOfFields.Add(_T("[branchid]"));
- AryOfFields.Add(_T("[order]"));
- AryOfFields.Add(_T("takestatus"));
- AryOfFields.Add(_T("taketime"));
- AryOfFields.Add(_T("epbdel"));
- if (!GetTableValues(_T("PhotoManager"), _T("takestatus = 1 and epbdel = 0"), AryOfFields, AryOfValues))
- {
-
-
- return FALSE;
- }
- return TRUE;
- }
- BOOL CBranchInfo::GetTblPhotoManager7(OUT CArray<CStringArray, CStringArray> &AryOfValues)
- {
- CStringArray AryOfFields;
- AryOfFields.Add(_T("[branchid]"));
- AryOfFields.Add(_T("[order]"));
- AryOfFields.Add(_T("takestatus"));
- AryOfFields.Add(_T("taketime"));
- AryOfFields.Add(_T("fpbdel"));
- if (!GetTableValues(_T("PhotoManager"), _T("takestatus = 1 and fpbdel = 0"), AryOfFields, AryOfValues))
- {
-
-
- return FALSE;
- }
- return TRUE;
- }
- BOOL CBranchInfo::GetTblPhotoManager8(OUT CArray<CStringArray, CStringArray> &AryOfValues)
- {
- CStringArray AryOfFields;
- AryOfFields.Add(_T("[branchid]"));
- AryOfFields.Add(_T("[order]"));
- AryOfFields.Add(_T("takestatus"));
- AryOfFields.Add(_T("taketime"));
- AryOfFields.Add(_T("dpbdel"));
- if (!GetTableValues(_T("PhotoManager"), _T("takestatus = 1 and dpbdel = 0"), AryOfFields, AryOfValues))
- {
-
-
- return FALSE;
- }
- return TRUE;
- }
- void CBranchInfo::AddLocalShareDirectory()
- {
-
- DWORD dwLeng = 0;
- TCHAR szHost[MAX_PATH] = _T("");
- GetComputerName(NULL, &dwLeng);
- GetComputerName(szHost, &dwLeng);
-
- TCHAR szShareDirectory[MAX_PATH] = { 0 };
- #if 1
- _stprintf_s(szShareDirectory, _T("\\\\%s\\%s"), szHost, ORIGINAL);
- InsertNetShareInfo(szShareDirectory, _T("需要读取加密狗的域名"), 5, 35, 1, 255);
- _stprintf_s(szShareDirectory, _T("\\\\%s\\%s"), szHost, EARLY);
- InsertNetShareInfo(szShareDirectory, _T("需要读取加密狗的域名"), 5, 35, 2, 255);
- _stprintf_s(szShareDirectory, _T("\\\\%s\\%s"), szHost, FUTHER);
- InsertNetShareInfo(szShareDirectory, _T("需要读取加密狗的域名"), 5, 35, 3, 255);
- _stprintf_s(szShareDirectory, _T("\\\\%s\\%s"), szHost, DESIGN);
- InsertNetShareInfo(szShareDirectory, _T("需要读取加密狗的域名"), 5, 35, 4, 255);
- #endif
- #ifdef CHILD_VERSION
-
-
- _stprintf_s(szShareDirectory, _T("\\\\%s\\%s"), m_TblVersion.szbakServer1, _T("客户原片备份(儿童管理软件)$"));
- InsertNetShareInfo(szShareDirectory, _T("需要读取加密狗的域名"), 5, 35, 5, 255);
- _stprintf_s(szShareDirectory, _T("\\\\%s\\%s"), m_TblVersion.szbakServer2, _T("修好的片备份(儿童管理软件)$"));
- InsertNetShareInfo(szShareDirectory, _T("需要读取加密狗的域名"), 5, 35, 6, 255);
- _stprintf_s(szShareDirectory, _T("\\\\%s\\%s"), m_TblVersion.szbakServer3, _T("精修好的片备份(儿童管理软件)$"));
- InsertNetShareInfo(szShareDirectory, _T("需要读取加密狗的域名"), 5, 35, 7, 255);
- _stprintf_s(szShareDirectory, _T("\\\\%s\\%s"), m_TblVersion.szbakServer4, _T("设计好的片备份(儿童管理软件)$"));
- InsertNetShareInfo(szShareDirectory, _T("需要读取加密狗的域名"), 5, 35, 8, 255);
- #else
-
- _stprintf_s(szShareDirectory, _T("\\\\%s\\%s"), m_TblVersion.szbakServer1, _T("客户原片备份(管理软件)$"));
- InsertNetShareInfo(szShareDirectory, _T("需要读取加密狗的域名"), 5, 35, 5, 255);
- _stprintf_s(szShareDirectory, _T("\\\\%s\\%s"), m_TblVersion.szbakServer2, _T("修好的片备份(管理软件)$"));
- InsertNetShareInfo(szShareDirectory, _T("需要读取加密狗的域名"), 5, 35, 6, 255);
- _stprintf_s(szShareDirectory, _T("\\\\%s\\%s"), m_TblVersion.szbakServer3, _T("精修好的片备份(管理软件)$"));
- InsertNetShareInfo(szShareDirectory, _T("需要读取加密狗的域名"), 5, 35, 7, 255);
- _stprintf_s(szShareDirectory, _T("\\\\%s\\%s"), m_TblVersion.szbakServer4, _T("设计好的片备份(管理软件)$"));
- InsertNetShareInfo(szShareDirectory, _T("需要读取加密狗的域名"), 5, 35, 8, 255);
- #endif
- }
- BOOL CBranchInfo::InsertNetShareInfo(IN LPCTSTR lpShareDirectory, IN LPCTSTR lpBranchId, IN CONST BYTE &nMinCapacity, IN CONST BYTE &nMaxCapacity, IN CONST BYTE &nPhotoType, IN CONST BYTE &nPriority)
- {
- if (PathFileExists(lpShareDirectory))
- {
- TblNetShareInfo *pNetShareInfo = new TblNetShareInfo;
- pNetShareInfo->bEnable = TRUE;
- _stprintf_s(pNetShareInfo->szBranchId, _T("%s"), m_szBranchDoMain);
- _stprintf_s(pNetShareInfo->szShareDirectory, _T("%s"), lpShareDirectory);
- pNetShareInfo->byMinCapacity = nMinCapacity;
- pNetShareInfo->byMaxCapacity = nMaxCapacity;
- pNetShareInfo->byPhotoType = nPhotoType;
- pNetShareInfo->byPriority = nPriority;
- m_TblNetShareInfo.push_back(pNetShareInfo);
- return TRUE;
- }
- return FALSE;
- }
- BOOL CBranchInfo::StartThread()
- {
-
- m_bakDirArr.RemoveAll();
- GetBackupOfSaveDir(m_bakDirArr);
-
-
- if ( m_hIncrementCtrl == NULL )
- {
- m_hIncrementCtrl = CreateEvent(NULL, TRUE, FALSE, NULL);
- if ( m_hIncrementCtrl == NULL )
- {
-
-
-
- return FALSE;
- }
- }
- if ( m_hIncrement == NULL )
- {
- m_hIncrement = CreateThread(NULL, 0, ThreadOfIncrement, this, 0, NULL);
- if ( m_hIncrement == NULL )
- {
-
-
-
- return FALSE;
- }
- }
-
- return TRUE;
- }
- BOOL CBranchInfo::StartThread_Tm()
- {
-
- SYSTEMTIME st;
- FILETIME ftLocal, ftUTC;
- LARGE_INTEGER liUTC;
- st.wYear = 2015;
- st.wMonth = 4;
- st.wDayOfWeek = 0;
- st.wDay = 1;
- st.wHour = 23;
- st.wMinute = 0;
- st.wSecond = 0;
- st.wMilliseconds = 0;
- SystemTimeToFileTime(&st, &ftLocal);
-
- LocalFileTimeToFileTime(&ftLocal, &ftUTC);
-
- liUTC.LowPart = ftUTC.dwLowDateTime;
- liUTC.HighPart = ftUTC.dwHighDateTime;
- liUTC.QuadPart = -(2 * 10000000);
- const int nTimerUnitsPerSecond = 10000000;
-
-
- m_bIncrementTm = FALSE;
- m_hIncrementWaitableTm = CreateWaitableTimer(NULL, FALSE, NULL);
-
- #if _DEBUG
- SetWaitableTimer(m_hIncrementWaitableTm, &liUTC, 3 * 1000, NULL, NULL, FALSE);
- #else
- SetWaitableTimer(m_hIncrementWaitableTm, &liUTC, 3 * 60 * 60 * 1000, NULL, NULL, FALSE);
- #endif
-
- m_hIncrement = CreateThread(NULL, 0, ThreadOfIncrement_Tm, this, 0, NULL);
- if (m_hIncrement == NULL)
- {
-
-
- return FALSE;
- }
- return TRUE;
- }
- VOID CBranchInfo::EndOfThread()
- {
-
-
- if ( m_hIncrementCtrl )
- SetEvent(m_hIncrementCtrl);
- if ( m_hIncrement )
- {
- WaitForSingleObject(m_hIncrement, INFINITE);
- CloseHandle(m_hIncrement);
- m_hIncrement = NULL;
- }
- if ( m_hIncrementCtrl )
- {
- CloseHandle(m_hIncrementCtrl);
- m_hIncrementCtrl = NULL;
- }
-
- }
- VOID CBranchInfo::EndOfThread_Tm()
- {
-
- LARGE_INTEGER li;
- const int nTimerUnitsPerSecond = 10000000;
- li.QuadPart = 1 * nTimerUnitsPerSecond;
-
-
- m_bIncrementTm = TRUE;
- SetWaitableTimer(m_hIncrementWaitableTm, &li, NULL, NULL, NULL, FALSE);
- if (m_hIncrement)
- {
- WaitForSingleObject(m_hIncrement, INFINITE);
- CloseHandle(m_hIncrement);
- m_hIncrement = NULL;
- }
- if (m_hIncrementWaitableTm)
- {
- CloseHandle(m_hIncrementWaitableTm);
- m_hIncrementWaitableTm = NULL;
- }
-
- }
- DWORD CBranchInfo::ThreadOfIncrement(LPVOID lpParameter)
- {
-
-
- return 0L;
- }
- DWORD CBranchInfo::ThreadRemove(LPVOID lpParameter)
- {
-
- int nSize = 0;
- CBranchInfo *pInstance = (CBranchInfo*)lpParameter;
- do
- {
-
- CArray<CStringArray, CStringArray> AryOfRemvoeOrder;
- #if TEST_CREATE_DIRECTORY
- pInstance->GetTblPhotoManager(AryOfRemvoeOrder);
- nSize = AryOfRemvoeOrder.GetSize();
- for ( int i = 0; i < nSize; i++)
- {
- pInstance->CreateOrderDirectory(AryOfRemvoeOrder.ElementAt(i).ElementAt(0));
- Sleep(0);
- }
- SetEvent(pInstance->m_hRemoveCtrl);
- LOG4C_NO_FILENUM((LOG_NOTICE,"创建目录结束,线程退出~~"));
- #else
- AryOfRemvoeOrder.RemoveAll();
- pInstance->GetTblPhotoManager1(AryOfRemvoeOrder);
- nSize = AryOfRemvoeOrder.GetSize();
- for ( int i = 0; i < nSize; i++)
- {
- pInstance->GetRemvoeOrderInfoAndRemove(AryOfRemvoeOrder.ElementAt(i).ElementAt(0),AryOfRemvoeOrder.ElementAt(i).ElementAt(1),AryOfRemvoeOrder.ElementAt(i).ElementAt(3),1);
- Sleep(0);
- }
- AryOfRemvoeOrder.RemoveAll();
- pInstance->GetTblPhotoManager2(AryOfRemvoeOrder);
- nSize = AryOfRemvoeOrder.GetSize();
- for ( int i = 0; i < nSize; i++)
- {
- pInstance->GetRemvoeOrderInfoAndRemove(AryOfRemvoeOrder.ElementAt(i).ElementAt(0),AryOfRemvoeOrder.ElementAt(i).ElementAt(1),AryOfRemvoeOrder.ElementAt(i).ElementAt(3),2);
- Sleep(0);
- }
- AryOfRemvoeOrder.RemoveAll();
- pInstance->GetTblPhotoManager3(AryOfRemvoeOrder);
- nSize = AryOfRemvoeOrder.GetSize();
- for ( int i = 0; i < nSize; i++)
- {
- pInstance->GetRemvoeOrderInfoAndRemove(AryOfRemvoeOrder.ElementAt(i).ElementAt(0),AryOfRemvoeOrder.ElementAt(i).ElementAt(1),AryOfRemvoeOrder.ElementAt(i).ElementAt(3),3);
- Sleep(0);
- }
- AryOfRemvoeOrder.RemoveAll();
- pInstance->GetTblPhotoManager4(AryOfRemvoeOrder);
- nSize = AryOfRemvoeOrder.GetSize();
- for ( int i = 0; i < nSize; i++)
- {
- pInstance->GetRemvoeOrderInfoAndRemove(AryOfRemvoeOrder.ElementAt(i).ElementAt(0),AryOfRemvoeOrder.ElementAt(i).ElementAt(1),AryOfRemvoeOrder.ElementAt(i).ElementAt(3),4);
- Sleep(0);
- }
- AryOfRemvoeOrder.RemoveAll();
- pInstance->GetTblPhotoManager5(AryOfRemvoeOrder);
- nSize = AryOfRemvoeOrder.GetSize();
- for ( int i = 0; i < nSize; i++)
- {
- pInstance->GetRemvoeOrderInfoAndRemove(AryOfRemvoeOrder.ElementAt(i).ElementAt(0),AryOfRemvoeOrder.ElementAt(i).ElementAt(1),AryOfRemvoeOrder.ElementAt(i).ElementAt(3),5);
- Sleep(0);
- }
- AryOfRemvoeOrder.RemoveAll();
- pInstance->GetTblPhotoManager6(AryOfRemvoeOrder);
- nSize = AryOfRemvoeOrder.GetSize();
- for ( int i = 0; i < nSize; i++)
- {
- pInstance->GetRemvoeOrderInfoAndRemove(AryOfRemvoeOrder.ElementAt(i).ElementAt(0),AryOfRemvoeOrder.ElementAt(i).ElementAt(1),AryOfRemvoeOrder.ElementAt(i).ElementAt(3),6);
- Sleep(0);
- }
- AryOfRemvoeOrder.RemoveAll();
- pInstance->GetTblPhotoManager7(AryOfRemvoeOrder);
- nSize = AryOfRemvoeOrder.GetSize();
- for ( int i = 0; i < nSize; i++)
- {
- pInstance->GetRemvoeOrderInfoAndRemove(AryOfRemvoeOrder.ElementAt(i).ElementAt(0),AryOfRemvoeOrder.ElementAt(i).ElementAt(1),AryOfRemvoeOrder.ElementAt(i).ElementAt(3),7);
- Sleep(0);
- }
- AryOfRemvoeOrder.RemoveAll();
- pInstance->GetTblPhotoManager8(AryOfRemvoeOrder);
- nSize = AryOfRemvoeOrder.GetSize();
- for ( int i = 0; i < nSize; i++)
- {
- pInstance->GetRemvoeOrderInfoAndRemove(AryOfRemvoeOrder.ElementAt(i).ElementAt(0),AryOfRemvoeOrder.ElementAt(i).ElementAt(1),AryOfRemvoeOrder.ElementAt(i).ElementAt(3),8);
- Sleep(0);
- }
- #endif
- } while (WAIT_TIMEOUT == WaitForSingleObject(pInstance->m_hRemoveCtrl, 15000) );
-
- return 0L;
- }
- DWORD CBranchInfo::ThreadOfIncrement_Tm(LPVOID lpParameter)
- {
- CBranchInfo *pInstance = (CBranchInfo*)lpParameter;
- while (!pInstance->m_bIncrementTm)
- {
- WaitForSingleObject(pInstance->m_hIncrementWaitableTm, INFINITE);
- }
- return 0L;
- }
- DWORD CBranchInfo::ThreadRemove_Tm(LPVOID lpParameter)
- {
- CBranchInfo *pInstance = (CBranchInfo*)lpParameter;
- while (!pInstance->m_bRemoveTm)
- {
- WaitForSingleObject(pInstance->m_hRemoveWaitableTm, INFINITE);
- }
- return 0L;
- }
- void CBranchInfo::Separator(IN LPCTSTR lpSeparator, IN LPCTSTR lpString, OUT CStringArray &ResultArray)
- {
- CString strSrc = lpString;
- strSrc.TrimLeft(lpSeparator);
- strSrc.TrimRight(lpSeparator);
- strSrc += lpSeparator;
- int nIndex = 0;
- do
- {
- nIndex = strSrc.Find(lpSeparator);
- if ( -1 != nIndex )
- {
- CString strImage = strSrc.Left(nIndex);
- strSrc = strSrc.Mid(nIndex+1);
- if ( PathFileExists(strImage) )
- {
- ResultArray.Add(strImage);
- }
- }
- } while ( -1 != nIndex );
- }
- BOOL CBranchInfo::FindImageShareDirectory(IN LPCTSTR lpBranchId, IN const BYTE &byPhotoType, IN LPCTSTR lpImage, IN LPCTSTR lpOrderNum, OUT LPTSTR lpShareDirectory)
- {
- BOOL bExists = FALSE;
- TblNetShareInfo *pNetShareInfo = NULL;
- for (NETSHAREINFO::const_iterator it = m_TblNetShareInfo.begin(); it != m_TblNetShareInfo.end(); it++)
- {
- pNetShareInfo = *it;
- if ( _tcscmp(pNetShareInfo->szBranchId,lpBranchId) == 0 )
- {
- if ( pNetShareInfo->byPhotoType == byPhotoType )
- {
- CString strImagePath = _T("");
- strImagePath.Format(_T("%s\\%s"),pNetShareInfo->szShareDirectory,lpOrderNum);
-
- TCHAR szDirectory[MAX_PATH] = {0};
- if( FindFileNameFromSpecialDirectory(strImagePath,lpImage,szDirectory) )
- {
-
- strImagePath.Format(_T("%s\\%s"),szDirectory,lpImage);
- if ( PathFileExists(strImagePath + _T(".jpg")) )
- {
- bExists = TRUE;
- _stprintf_s(lpShareDirectory, MAX_PATH, _T("%s.jpg"), strImagePath);
- }
- else if ( PathFileExists(strImagePath + _T(".raw")) )
- {
- bExists = TRUE;
- _stprintf_s(lpShareDirectory, MAX_PATH, _T("%s.raw"), strImagePath);
- }
- else if ( PathFileExists(strImagePath + _T(".cr2")) )
- {
- bExists = TRUE;
- _stprintf_s(lpShareDirectory, MAX_PATH, _T("%s.cr2"), strImagePath);
- }
- else if ( PathFileExists(strImagePath + _T(".nef")) )
- {
- bExists = TRUE;
- _stprintf_s(lpShareDirectory, MAX_PATH, _T("%s.nef"), strImagePath);
- }
- if ( bExists )
- {
- break;
- }
- }
- }
- }
- }
- return bExists;
- }
- BOOL CBranchInfo::FindImageShareDirectory(IN const BYTE &byPhotoType, IN LPCTSTR lpImage, IN LPCTSTR lpOrderNum, OUT CStringArray &AryOfShareDirectory)
- {
-
- BOOL bExists = FALSE;
- TblNetShareInfo *pNetShareInfo = NULL;
- for (NETSHAREINFO::const_iterator it = m_TblNetShareInfo.begin(); it != m_TblNetShareInfo.end(); it++)
- {
- pNetShareInfo = *it;
- if ( _tcscmp(pNetShareInfo->szBranchId,m_szBranchDoMain) == 0 )
- {
- if ( pNetShareInfo->byPhotoType == byPhotoType )
- {
- CString strImagePaht = _T("");
- strImagePaht.Format(_T("%s\\%s\\%s"),pNetShareInfo->szShareDirectory,lpOrderNum,lpImage);
- if ( PathFileExists(strImagePaht + _T(".jpg")) )
- {
- bExists = TRUE;
- AryOfShareDirectory.Add(CString(strImagePaht + _T(".jpg")));
- }
- if ( PathFileExists(strImagePaht + _T(".raw")) )
- {
- bExists = TRUE;
- AryOfShareDirectory.Add(CString(strImagePaht + _T(".raw")));
- }
- if ( PathFileExists(strImagePaht + _T(".cr2")) )
- {
- bExists = TRUE;
- AryOfShareDirectory.Add(CString(strImagePaht + _T(".cr2")));
- }
- if ( PathFileExists(strImagePaht + _T(".nef")) )
- {
- bExists = TRUE;
- AryOfShareDirectory.Add(CString(strImagePaht + _T(".nef")));
- }
- if(bExists) break;
- }
- }
- }
- return bExists;
- }
- BOOL CBranchInfo::GetIncrementContentAndBackup(IN LPCTSTR lpBranchId, IN LPCTSTR lpOpTm, IN LPCTSTR lpOrder, IN CONST BYTE &byPhotoType, IN LPCTSTR lpIncrementContent)
- {
- if ( byPhotoType > 8) return FALSE;
- if ( lpOrder == NULL || lpOrder[0] == '\0')
- {
-
- return FALSE;
- }
-
- CStringArray AryOfImagePath;
- CString strIncrementContent;
- strIncrementContent.Format(_T("%s"), lpIncrementContent);
- #if 1
-
-
- strIncrementContent.TrimLeft(_T("|"));
- strIncrementContent.TrimRight(_T("|"));
- strIncrementContent += _T("|");
- int nIndex = 0;
- do
- {
- nIndex = strIncrementContent.Find(_T('|'));
- if ( nIndex != -1 )
- {
- CString strImage = strIncrementContent.Left(nIndex);
- strIncrementContent = strIncrementContent.Mid(nIndex+1);
-
- #if 1
- TCHAR szShareDirectory[MAX_PATH] = {0};
-
-
- if (FindImageShareDirectory(lpBranchId,byPhotoType,strImage,lpOrder,szShareDirectory))
- {
- AryOfImagePath.Add(szShareDirectory);
- }
- #else
- FindImageShareDirectory(byPhotoType,strImage,lpOrder,AryOfImagePath);
- #endif
- }
- } while ( nIndex != -1);
- #endif
- #if 0
- strIncrementContent.TrimLeft(_T("|"));
- strIncrementContent.TrimRight(_T("|"));
- strIncrementContent += _T("|");
- int nIndex = 0;
- do
- {
- nIndex = strIncrementContent.Find(_T('|'));
- if ( nIndex != -1 )
- {
- CString strImage = strIncrementContent.Left(nIndex);
- strIncrementContent = strIncrementContent.Mid(nIndex+1);
- if (PathFileExists(strImage))
- {
- AryOfImagePath.Add(strImage);
- }
- }
- } while ( nIndex != -1);
- #endif
- #if 0
-
- strIncrementContent.TrimLeft(_T("?"));
- strIncrementContent.TrimRight(_T("?"));
- strIncrementContent += _T("?");
- int nIndex = 0;
- do
- {
- nIndex = strIncrementContent.Find(_T('?'));
- if ( -1 != nIndex )
- {
- CString strSubIncrement = strIncrementContent.Left(nIndex);
- strIncrementContent = strSubIncrement.Mid(nIndex+1);
- CString strShareDirectory;
- nIndex = strSubIncrement.Find(_T(':'));
- if ( -1 != nIndex )
- {
- strShareDirectory = strSubIncrement.Left(nIndex);
- strShareDirectory.TrimRight(_T('\\'));
- strShareDirectory += _T("\\");
- strShareDirectory += lpOrder;
- strShareDirectory += _T("\\");
- strSubIncrement = strSubIncrement.Mid(nIndex+1);
- strSubIncrement.TrimRight(_T('|'));
- strSubIncrement += _T("|");
- do
- {
- nIndex = strSubIncrement.Find(_T('|'));
- if ( -1 != nIndex)
- {
- CString strImage = strSubIncrement.Left(nIndex);
- strSubIncrement = strSubIncrement.Mid(nIndex+1);
- if ( PathFileExists(strShareDirectory+strImage) )
- {
- AryOfImagePath.Add(strShareDirectory+strImage);
- }
- }
- } while ( -1 != nIndex );
- }
- }
- } while (-1 != nIndex);
- #endif
- if ( AryOfImagePath.GetSize() == 0)
- return FALSE;
-
-
- UINT64 uFilesSize = EasyGetSizeOfFiles(AryOfImagePath);
- UINT64 nCapacity = uFilesSize/(1024*1024*1024);
-
- double dFreeNum;
- TCHAR szEnableShareDirectory[MAX_PATH] = {0};
- if ( !GetEnableShareDirectory(dFreeNum,byPhotoType+4,lpBranchId,lpOrder,szEnableShareDirectory) )
- {
-
-
- return FALSE;
- }
- if ( dFreeNum > nCapacity )
- {
-
- CString strDate = lpOpTm;
- strDate = strDate.Left(10);
- CString strDatePath = szEnableShareDirectory;
- strDatePath += strDate;
- strDatePath += _T("\\");
- #ifdef UNICODE
- CHAR szShareDirectory[MAX_PATH] = {0};
- unicode2acsii(strDatePath,szShareDirectory);
- MakeSureDirectoryPathExists(szShareDirectory);
- #else
- MyMakeSureDirectoryPathExists(strDatePath);
- #endif
- for ( int i = 0; i < AryOfImagePath.GetSize(); i++)
- {
-
- EasyCopyFile(lpOrder, AryOfImagePath.ElementAt(i), strDatePath);
- }
-
-
- if ( m_bIsOur )
- {
- strDate.Format(_T("update [IncrementalBackup] set [isbackup] = 1,[baktime] = getdate() where [branchid] = '%s' and [order] = '%s' and photoType = %d and content = '%s|'"),lpBranchId,lpOrder,byPhotoType,lpIncrementContent);
- Execute(strDate);
- }
- }
- return TRUE;
- }
- BOOL CBranchInfo::GetRemvoeOrderInfoAndRemove(IN LPCTSTR lpBranchId, IN LPCTSTR lpOrderNum, IN LPCTSTR lpOpTm, IN const BYTE &byPhotoType)
- {
-
- if ( lpOrderNum == NULL || _tcscmp(lpOrderNum,_T("")) == 0)
- {
-
-
- return FALSE;
- }
-
- if (!IsValidDate(lpOpTm))
- {
-
-
- return FALSE;
- }
-
- int nMonths = 0;
- switch ( byPhotoType )
- {
- case 1:
- nMonths = m_TblVersion.nCheckMonth1;
- if ( !m_TblVersion.bCheck1 )return FALSE;
- break;
- case 2:
- nMonths = m_TblVersion.nCheckMonth2;
- if ( !m_TblVersion.bCheck2 )return FALSE;
- break;
- case 3:
- nMonths = m_TblVersion.nCheckMonth3;
- if ( !m_TblVersion.bCheck3 )return FALSE;
- break;
- case 4:
- nMonths = m_TblVersion.nCheckMonth4;
- if ( !m_TblVersion.bCheck4 )return FALSE;
- break;
-
- case 5:
- nMonths = m_TblVersion.nCheckbdMonth1;
- if ( !m_TblVersion.bCheckbak1 )return FALSE;
- break;
- case 6:
- nMonths = m_TblVersion.nCheckbdMonth2;
- if ( !m_TblVersion.bCheckbak2 )return FALSE;
- break;
- case 7:
- nMonths = m_TblVersion.nCheckbdMonth3;
- if ( !m_TblVersion.bCheckbak3 )return FALSE;
- break;
- case 8:
- nMonths = m_TblVersion.nCheckbdMonth4;
- if ( !m_TblVersion.bCheckbak4 )return FALSE;
- break;
- default:
- break;
- }
- if ( nMonths <= 0)
- {
- return FALSE;
- }
- CString strTakeTime = lpOpTm;
- COleDateTime reachtm(_ttoi(strTakeTime.Left(4)), _ttoi(strTakeTime.Mid(5,2)),_ttoi(strTakeTime.Mid(8,2)),0,0,0);
- COleDateTimeSpan sp(nMonths * 30, 0, 0, 0);
- reachtm += sp;
- COleDateTime curtm = COleDateTime::GetCurrentTime();
-
-
- if (reachtm > curtm )
- {
-
-
-
- return FALSE;
- }
-
-
-
-
-
- BOOL bRemove = TRUE;
- for (NETSHAREINFO::const_iterator it = m_TblNetShareInfo.begin(); it != m_TblNetShareInfo.end(); it++)
- {
-
- if ( _tcscmp(lpBranchId,(*it)->szBranchId) == 0 )
- {
- if ( (*it)->byPhotoType != byPhotoType)continue;
- CString strOrderPath = _T("");
- strOrderPath.Format(_T("%s\\%s"),(*it)->szShareDirectory,lpOrderNum);
- if ( PathFileExists(strOrderPath) )
- {
- if( DeleteDirectory(strOrderPath) )
- {
- bRemove = FALSE;
- }
- #if 0
- strOrderPath += _T("\0\0");
- SHFILEOPSTRUCT lpsh;
- ZeroMemory(&lpsh, sizeof(lpsh));
- lpsh.hwnd = HWND_DESKTOP;
- lpsh.fFlags = FOF_NOCONFIRMATION | FOF_SIMPLEPROGRESS;
- lpsh.wFunc = FO_DELETE;
- lpsh.pFrom = strOrderPath;
-
- int nResult = SHFileOperation(&lpsh);
-
- if ( nResult == 0)
- {
- OutputDebugString(_T("删除订单目录成功\n"));
- }
- else
- {
- DWORD dw = GetLastError();
- bRemove = FALSE;
- }
- #endif
- }
- else
- {
-
-
-
-
- }
- }
- }
-
- if ( !bRemove && m_bIsOur )
- {
- switch ( byPhotoType )
- {
- case 1:
- strTakeTime.Format(_T("update [PhotoManager] set [opdel] = 1,[opdeltm] = getdate() where [order] = '%s'"), lpOrderNum);
- break;
- case 2:
- strTakeTime.Format(_T("update [PhotoManager] set [epdel] = 1,[epdeltm] = getdate() where [order] = '%s'"), lpOrderNum);
- break;
- case 3:
- strTakeTime.Format(_T("update [PhotoManager] set [fpdel] = 1,[fpdeltm] = getdate() where [order] = '%s'"), lpOrderNum);
- break;
- case 4:
- strTakeTime.Format(_T("update [PhotoManager] set [dpdel] = 1,[dpdeltm] = getdate() where [order] = '%s'"), lpOrderNum);
- break;
-
- case 5:
- strTakeTime.Format(_T("update [PhotoManager] set [opbdel] = 1,[opbdeltm] = getdate() where [order] = '%s'"), lpOrderNum);
- break;
- case 6:
- strTakeTime.Format(_T("update [PhotoManager] set [epbdel] = 1,[epbdeltm] = getdate() where [order] = '%s'"), lpOrderNum);
- break;
- case 7:
- strTakeTime.Format(_T("update [PhotoManager] set [fpbdel] = 1,[fpbdeltm] = getdate() where [order] = '%s'"), lpOrderNum);
- break;
- case 8:
- strTakeTime.Format(_T("update [PhotoManager] set [dpbdel] = 1,[dpbdeltm] = getdate() where [order] = '%s'"), lpOrderNum);
- break;
- default:
- break;
- }
-
- Execute(strTakeTime);
- }
-
- return TRUE;
- }
- BOOL CBranchInfo::FindFileNameFromSpecialDirectory(IN LPCTSTR lpSpecialDirectory, IN LPCTSTR lpFileName, OUT LPTSTR lpResult)
- {
- if ( lpSpecialDirectory == NULL || _tcscmp(lpSpecialDirectory,_T("")) == 0 ){
- return FALSE;
- }
- CString strPath = lpSpecialDirectory;
- if ( !PathFileExists(strPath) ){
- return FALSE;
- }
- strPath.TrimRight(_T("\\"));
- strPath += _T("\\*");
- WIN32_FIND_DATA fileInfo = {0};
- HANDLE handle = FindFirstFile(strPath,&fileInfo);
- BOOL bFind = FALSE;
- if ( NULL != handle && INVALID_HANDLE_VALUE != handle )
- {
- do
- {
-
- if (_T('.') != fileInfo.cFileName[0])
- {
- if ((FILE_ATTRIBUTE_DIRECTORY & fileInfo.dwFileAttributes) != FILE_ATTRIBUTE_DIRECTORY)
- {
- strPath.Format(_T("%s"),fileInfo.cFileName);
- strPath = strPath.Left(strPath.ReverseFind(_T('.')));
- if ( strPath.CompareNoCase(lpFileName) == 0 )
- {
- _stprintf_s(lpResult,MAX_PATH,_T("%s"),lpSpecialDirectory);
- bFind = TRUE;
- break;
- }
- }
- else
- {
- strPath.Format(_T("%s\\%s"),lpSpecialDirectory,fileInfo.cFileName);
- if( FindFileNameFromSpecialDirectory(strPath,lpFileName,lpResult) )
- {
- bFind = TRUE;
- break;
- }
- }
- }
- } while ( FindNextFile(handle,&fileInfo) );
- FindClose(handle);
- }
- return bFind;
- }
- BOOL CBranchInfo::GetBackupOfSaveDir(OUT CArray<CStringArray, CStringArray> &AryOfValues)
- {
-
- CStringArray AryOfFields;
- AryOfFields.Add(_T("bakserver1"));
- AryOfFields.Add(_T("bakserver2"));
- AryOfFields.Add(_T("bakserver3"));
- AryOfFields.Add(_T("bakserver4"));
- if (!GetTableValues(_T("[version]"), NULL, AryOfFields, AryOfValues))
- {
-
- return FALSE;
- }
- return TRUE;
- }
|