123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407 |
- #include "StdAfx.h"
- #include "NetShareInfo.h"
- #include <shlwapi.h>
- #include "./helper/ffsco.h"
- BOOL CNetShareInfo::m_bInit = FALSE;
- LPCTSTR CNetShareInfo::m_lpHostName = NULL;
- CString CNetShareInfo::m_lpDomain = _T("");
- CArray<CStringArray,CStringArray>* CNetShareInfo::m_pAryOfNetShareInfo = NULL;
- CNetShareInfo::CNetShareInfo(void)
- {
- }
- CNetShareInfo::~CNetShareInfo(void)
- {
- }
- /************************************************************************/
- /*
- 函数:Initialize
- 描述:初始化;
- 参数:
- IN:lpDomain 域名;
- IN:lpHostName 主机名;
- IN:pAryOfNetShareInfo NetShareInfo表数据;
- 返回:初始化完成返回TRUE;
- 示例:
- */
- /************************************************************************/
- BOOL CNetShareInfo::Initialize(IN LPCTSTR lpDomain, IN LPCTSTR lpHostName, IN CArray<CStringArray,CStringArray> *pAryOfNetShareInfo)
- {
- if ( !m_bInit )
- {
- m_lpDomain = lpDomain;
- m_lpHostName = lpHostName;
- m_pAryOfNetShareInfo = pAryOfNetShareInfo;
- m_bInit = TRUE;
- }
- return m_bInit;
- }
- /************************************************************************/
- /*
- 函数:LoadSpecifiedDirectory
- 描述:加载指定目录及子目录下的全部相片;
- 参数:
- IN:lpSpecifiedDirectory 要加载的目录;
- OUT:AryOfImgPath 返回指定目录下的全部相片路径集合;
- 返回:
- 示例:
- */
- /************************************************************************/
- BOOL CNetShareInfo::LoadSpecifiedDirectory(IN LPCTSTR lpSpecifiedDirectory, OUT CStringArray &AryOfImgPath)
- {
- // 1.判定目录有效性;
- //if ( lpSpecifiedDirectory == NULL || strcmp(lpSpecifiedDirectory,"") == 0 || !PathFileExists(lpSpecifiedDirectory) )
- if( !PathFileExists(lpSpecifiedDirectory) )
- {
- // 目录无效;
- return FALSE;
- }
- using namespace helper_coffs;
- ffsco o;
- o.dirs(1);
- o.find(lpSpecifiedDirectory, LPCSTR("*.*"));
- ffsco::typeT cfs;
- ffsco::typeT::iterator it;
- cfs = o.co_file();
- CString strName;
- for (it = cfs.begin(); cfs.end() != it; it++)
- {
- // 去除目录级文件;
- // 去除ok文件;
- // 去除modifytime文件;
- // 去除s+m缩略图;
- strName = it->c_str();
- strName.MakeLower();
- if ( strName.Find('.') == -1)
- continue;
- else
- {
- CString str = strName.Mid( strName.ReverseFind('\\') + 1 );
- if ( str.Find('.') == -1)
- continue;
- }
- // 如果在相片前或后加修饰,都会有bug,最佳做法是缩略图放在另一子文件夹中;
- // 产生的bug:使用原名导入相片时,相片名可能第一个字母就是s或m;
- if ( strName.GetAt( strName.ReverseFind('\\') + 1 ) == 's' )continue;
- if ( strName.GetAt( strName.ReverseFind('\\') + 1 ) == 'm' )continue;
- if ( strName.Find(_T(".jpg")) == -1 )
- {
- if ( strName.Find(_T(".jpeg")) == -1 )
- continue;
- }
- BOOL bExist = FALSE;
- for ( int i = 0; i < AryOfImgPath.GetSize(); i++ )
- {
- if ( AryOfImgPath.ElementAt(i).CompareNoCase(strName) == 0 )
- {
- bExist = TRUE;
- break;
- }
- }
- if ( !bExist )
- {
- AryOfImgPath.Add(strName);
- }
- }
- return TRUE;
- }
- /************************************************************************/
- /*
- 函数:LoadSelectedImageDirectory
- 描述:加载选中的相片的共享路径;
- 参数:
- IN:lpSpecifiedDirectory 要加载相片的目录;
- IN:AryOfSelectedImages 被选中的相片集合;
- OUT:AryOfImgPath 返回被选中的相片的路径集合;
- 返回:
- 示例:
- */
- /************************************************************************/
- BOOL CNetShareInfo::LoadSelectedImageDirectory(IN LPCTSTR lpSpecifiedDirectory, IN CStringArray &AryOfSelectedImages, OUT CStringArray &AryOfImgPath)
- {
- // 1.判定目录有效性;
- if ( lpSpecifiedDirectory == NULL || strcmp(lpSpecifiedDirectory,_T("")) == 0)
- {
- // 目录无效;
- return FALSE;
- }
- using namespace helper_coffs;
- ffsco o;
- o.dirs(1);
- o.find(lpSpecifiedDirectory, LPCSTR("*.*"));
- ffsco::typeT cfs;
- ffsco::typeT::iterator it;
- cfs = o.co_file();
- CString strName;
- for (it = cfs.begin(); cfs.end() != it;)
- {
- // 去除目录级文件;
- // 去除ok文件;
- // 去除modifytime文件;
- // 去除s+m缩略图;
- strName = it->c_str();
- strName.MakeLower();
- if ( strName.Find('.') == -1)
- {
- it = cfs.erase(it);
- continue;
- }
- else
- {
- CString str = strName.Mid( strName.ReverseFind('\\') + 1 );
- if ( str.Find('.') == -1)
- {
- it = cfs.erase(it);
- continue;
- }
- }
- // 如果在相片前或后加修饰,都会有bug,最佳做法是缩略图放在另一子文件夹中;\
- // 产生的bug:使用原名导入相片时,相片名可能第一个字母就是s或m;
- if ( strName.GetAt( strName.ReverseFind('\\') + 1 ) == 's' ){
- it = cfs.erase(it);
- continue;
- }
- if ( strName.GetAt( strName.ReverseFind('\\') + 1 ) == 'm' ){
- it = cfs.erase(it);
- continue;
- }
- if ( strName.Find(_T(".jpg")) == -1 ){
- if( strName.Find(_T(".jpeg")) == -1)
- {
- it = cfs.erase(it);
- continue;
- }
- }
- it++;
- }
- #if 1 // 删除存在的文件的相片编号,留下没有文件的相片编号;
- TCHAR path_buffer[_MAX_PATH] = {0};
- TCHAR szDrive[_MAX_DRIVE] = {0};
- TCHAR szDir[_MAX_DIR] = {0};
- TCHAR szFname[_MAX_FNAME] = {0};
- TCHAR szExt[_MAX_EXT] = {0};
- #if 1
- for ( int a = 0; a < AryOfSelectedImages.GetSize(); a++ )
- printf("Images8 = %s\n", AryOfSelectedImages.ElementAt(a));
- #endif
- // AryOfImage 从尾部开始查找,查找成功后并删除,最终查找完全部共享目录都没找到的,就是相片不存在;
- for ( it = cfs.begin(); it != cfs.end(); it++ )
- {
- //_splitpath_s(it->c_str(),szDrive,szDir,szFname,szExt);
- _splitpath(it->c_str(), szDrive, szDir, szFname, szExt);
- // printf("szDrive = %s, szDir = %s, szFname = %s, szExt = %s\n", szDrive, szDir, szFname, szExt);
- for ( int i = 0; i < AryOfSelectedImages.GetSize(); i++)
- {
- printf("Images9 = %s\n", AryOfSelectedImages.ElementAt(i));
- if ( AryOfSelectedImages.ElementAt(i).CompareNoCase(szFname) == 0 )
- {
- strName = it->c_str();
- AryOfImgPath.Add(strName);
- AryOfSelectedImages.RemoveAt(i);
- break;
- }
- }
- }
- #endif
- return TRUE;
- }
- #if USE_FIX_SHARE
- /************************************************************************/
- /*
- 函数:GetLoaclShareDirectory
- 描述:获取指定相片类型的本地原始共享目录名;
- 参数:
- IN: nPhotoType 相片类型;
- OUT: lpResultPath 返回指定相片类型的本地原始共享目录;
- 返回:成功返回TRUE;
- 示例:
- */
- /************************************************************************/
- void CNetShareInfo::GetLoaclShareDirectory(IN int const nPhotoType, OUT LPTSTR lpResultPath)
- {
- if ( m_lpHostName == NULL || m_lpHostName[0] == '\0' )
- {
- // 主机名空;
- return;
- }
- switch( nPhotoType )
- {
- case 1:
- _stprintf(lpResultPath, _T("\\\\%s\\%s"), m_lpHostName, _T("客户原片(管理软件)$"));
- break;
- case 2:
- _stprintf(lpResultPath, _T("\\\\%s\\%s"), m_lpHostName, _T("修好的片(管理软件)$"));
- break;
- case 3:
- _stprintf(lpResultPath, _T("\\\\%s\\%s"), m_lpHostName, _T("精修好的片(管理软件)$"));
- break;
- case 4:
- _stprintf(lpResultPath, _T("\\\\%s\\%s"), m_lpHostName, _T("设计好的片(管理软件)$"));
- break;
- #ifdef ENTERPRISE_VERSION
- #ifndef CHILD_VERSION
- case 5:
- _stprintf(lpResultPath, _T("\\\\%s\\%s"), m_lpHostName, _T("客户原片备份(管理软件)$"));
- break;
- case 6:
- _stprintf(lpResultPath, _T("\\\\%s\\%s"), m_lpHostName, _T("修好的片备份(管理软件)$"));
- break;
- case 7:
- _stprintf(lpResultPath, _T("\\\\%s\\%s"), m_lpHostName, _T("精修好的片备份(管理软件)$"));
- break;
- case 8:
- _stprintf(lpResultPath, _T("\\\\%s\\%s"), m_lpHostName, _T("设计好的片备份(管理软件)$"));
- break;
- #else
- case 5:
- _stprintf(lpResultPath, _T("\\\\%s\\%s"), m_lpHostName, _T("客户原片备份(儿童管理软件)$"));
- break;
- case 6:
- _stprintf(lpResultPath, _T("\\\\%s\\%s"), m_lpHostName, _T("修好的片备份(儿童管理软件)$"));
- break;
- case 7:
- _stprintf(lpResultPath, _T("\\\\%s\\%s"), m_lpHostName, _T("精修好的片备份(儿童管理软件)$"));
- break;
- case 8:
- _stprintf(lpResultPath, _T("\\\\%s\\%s"), m_lpHostName, _T("设计好的片备份(儿童管理软件)$"));
- break;
- #endif
- #endif
- default:
- break;
- }
- }
- #endif
- /************************************************************************/
- /*
- 函数:GetDiskSpaceInfo
- 描述:获取指定目录或盘符的容量信息;
- 参数:
- IN: lpRootPathName 根目录名称;
- INOUT: dTotalNum 总容量;
- INOUT: dFreeNum 可用容量;
- 返回:
- 注意:
- GetDiskFreeSpace函数不能满足当前超过2T的硬盘容量,因为里面的数据类型是UINT,最大支持32位(4G);
- GetDiskFreeSpaceEx支持64位(16384P=1024*16384T)
- 只能获取本机硬盘信息,且路径必须包含":"冒号;
- 调用约定:
- */
- /************************************************************************/
- BOOL CNetShareInfo::GetDiskSpaceInfo(IN LPCTSTR lpRootPathName,IN OUT double &dTotalNum, IN OUT double &dFreeNum)
- {
- // 校验参数有效性;
- if(lpRootPathName == NULL || _tcscmp(lpRootPathName,_T("")) == 0)
- {
- //_tprintf_s(_T("根目录为空!"));
- return FALSE;
- }
- // 如果长度==1;
- int nlen = _tcslen(lpRootPathName);
- if((1 == nlen) || ( 2 == nlen && lpRootPathName[nlen-1] != _T(':')))
- {
- //_tprintf_s(_T("根目录无效!\n"));
- return FALSE;
- }
- if ( !PathFileExists(lpRootPathName))
- {
- //_tprintf_s(_T("根目录不存在!\n"));
- 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;
- /*unsigned*/ __int64 i64FreeBytesToCaller;
- /*unsigned*/ __int64 i64TotalBytes;
- /*unsigned*/ __int64 i64FreeBytes;
- // 调用GetDiskFreeSpaceEx失败则调用GetDiskSpace;
- #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 )
- {
- // 将单位由byte转为G byte;
- 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;
- // 将单位由byte转为G byte;
- dTotalNum = (double)i64TotalBytes/1024/1024/1024;
- dFreeNum = (double)i64FreeBytes/1024/1024/1024;
- }
- }
- return fResult;
- }
- /************************************************************************/
- /*
- Date: 2015-04-10
- Author: Jeff
- 函数:GetEnableShareDirectory
- 描述:返回指定相片类型可用的共享目录;
- 参数:
- IN: nPhotoType 相片类型;
- IN: lpOrderNum 订单号;
- IN: lpDomain 分店域名;
- OUT: lpEnableShareDirectory 可用的共享目录;
- 返回:成功返回TRUE;
- 注意:用于导入相片,最后返回的共享目录,使用MakeSuerDirectoryPathExists函数创建目录;
- 调用约定:#
- 测试:通过;
- */
- /************************************************************************/
- BOOL CNetShareInfo::GetEnableShareDirectory(IN const int &nPhotoType, IN LPCTSTR lpOrderNum, IN LPCTSTR lpDomain, OUT LPTSTR lpEnableShareDirectory)
- {
- // 需要判断域名有效性;
- if (lpDomain && strcmp(lpDomain, _T("")) != 0)
- {
- if(_tcsstr(lpDomain, _T(".ly.com")) == NULL)
- {
- // 传入的域名有误;
- return FALSE;
- }
- }
- double dTotalNum = 0.0;
- double dFreeNum = 0.0;
- TCHAR szOrderNum[MAX_PATH] = { 0 };
- TCHAR szLocalOrder[MAX_PATH] = { 0 };
- TCHAR szShareDirectory[MAX_PATH] = { 0 };
- #if USE_FIX_SHARE
- // 1.先判断当前局域网原始共享目录可用大小(是否小于20G);
- GetLoaclShareDirectory(nPhotoType,szShareDirectory);// 获取本地指定相片类型的共享目录;
-
- // 如果订单号存在原始共享目录中,判断目录容量是否有5G大小,如果有则存入,否则存入到别的优先级高的共享目录;
-
- if ( lpDomain == NULL || strcmp(lpDomain, _T("")) == 0)
- {
- // 分店域名为空,则为本店;
- _stprintf(szLocalOrder, _T("%s\\%s"), szShareDirectory, lpOrderNum);
- }
- else
- {// 分店域名不为空;
-
- if ( strcmp(lpDomain, m_lpDomain) == 0)
- {
- // 本店域名;
- _stprintf(szLocalOrder, _T("%s\\%s"), szShareDirectory, lpOrderNum);
- }
- else
- {
- _stprintf(szLocalOrder, _T("%s\\%s\\%s"), szShareDirectory, lpDomain, lpOrderNum);
- }
- }
- if ( !GetDiskSpaceInfo(szShareDirectory,dTotalNum,dFreeNum) )
- {
- // 获取硬盘大小失败;
- return FALSE;
- }
- // 订单文件夹存在且原始共享目录可用大小>5G 或者 订单文件夹不存在时,容量必须大于指定值;
- if ((PathFileExists(szLocalOrder) && dFreeNum > MIN_CAPACITY) || dFreeNum > MAX_CAPACITY)
- {
- // 返回原始共享目录;
- _stprintf(lpEnableShareDirectory, _T("%s"), szLocalOrder);
- return TRUE;
- }
- #endif
- //////////////////////////////////////////////////////////////////////////
- // 原始共享目录不可用,使用其他高优先级共享目录;
- if ( m_pAryOfNetShareInfo->GetSize() == 0)
- {
- // 记录为空,则仍旧使用原始共享目录;
- AfxMessageBox(_T("原共享目录可用大小低于正常容量,请添加新硬盘设置共享!"));
- #if USE_FIX_SHARE
- _stprintf(lpEnableShareDirectory, _T("%s"), szLocalOrder);
- #endif
- return TRUE;
- }
- typedef struct _STNetSharePathInfo__
- {
- BYTE byPhotType;
- BYTE byminCapacity;
- BYTE bymaxCapacity;
- BYTE byPriority;
- CString strBranchId;
- CString strSharePath;
- }STNetSharePathInfo,*pSTNetSharePathInfo;
- BOOL bGetEnable = FALSE;
- BYTE byCurPriority = 0;
- int nSize = m_pAryOfNetShareInfo->GetSize();
- // 如果没找到合适的共享目录,依旧使用原始共享目录或者使用优先级最高的那个;
- for ( int i = 0; i < nSize; i++)
- {
- // 域名是否与本店域名相同;
- if( m_pAryOfNetShareInfo->ElementAt(i).ElementAt(1).CompareNoCase(m_lpDomain) != 0 )
- continue;
- if ( bGetEnable )
- {
- if ( byCurPriority > atoi(m_pAryOfNetShareInfo->ElementAt(i).ElementAt(6)) )
- continue;
- }
- STNetSharePathInfo tempNetShaerInfo;
- // 获取高优先级共享目录,依次取低优先级目录,直到获取可用目录为止;
- tempNetShaerInfo.byPhotType = atoi(m_pAryOfNetShareInfo->ElementAt(i).ElementAt(5));
- tempNetShaerInfo.byminCapacity = atoi(m_pAryOfNetShareInfo->ElementAt(i).ElementAt(3));
- tempNetShaerInfo.bymaxCapacity = atoi(m_pAryOfNetShareInfo->ElementAt(i).ElementAt(4));
- tempNetShaerInfo.byPriority = atoi(m_pAryOfNetShareInfo->ElementAt(i).ElementAt(6));
- tempNetShaerInfo.strBranchId = m_pAryOfNetShareInfo->ElementAt(i).ElementAt(1);
- tempNetShaerInfo.strSharePath = m_pAryOfNetShareInfo->ElementAt(i).ElementAt(2);
- if ( tempNetShaerInfo.byPhotType == nPhotoType )
- {
- //////////////////////////////////////////////////////////////////////////
- // 判断目录下是否有订单文件夹;
- if (lpDomain && strcmp(lpDomain,"") != 0)
- {
- _stprintf(szOrderNum,_T("%s\\%s\\%s"),tempNetShaerInfo.strSharePath, lpDomain ,lpOrderNum);
- }
- else
- {
- _stprintf(szOrderNum,_T("%s\\%s"),tempNetShaerInfo.strSharePath, lpOrderNum);
- }
- // 存在且目录容量仍大于mincapacity可用;
- if ( PathFileExists(szOrderNum) )
- {
- if ( !GetDiskSpaceInfo(tempNetShaerInfo.strSharePath,dTotalNum,dFreeNum) )
- {
- // 获取硬盘大小失败;
- continue;
- }
- if ( dFreeNum > tempNetShaerInfo.byminCapacity )
- {
- bGetEnable = TRUE;
- break;
- }
- }
- // 判断共享路径是否可用;
- if ( GetDiskSpaceInfo(tempNetShaerInfo.strSharePath,dTotalNum,dFreeNum) )
- {
- if ( dFreeNum > tempNetShaerInfo.bymaxCapacity )
- {
- // 获取最高优先级的共享目录;
- if ( byCurPriority < tempNetShaerInfo.byPriority)
- {
- byCurPriority = tempNetShaerInfo.byPriority;
- if (lpDomain && strcmp(lpDomain, "") != 0)
- {
- _stprintf(szOrderNum, _T("%s\\%s\\%s"), tempNetShaerInfo.strSharePath, lpDomain, lpOrderNum);
- }
- else
- {
- _stprintf(szOrderNum, _T("%s\\%s"), tempNetShaerInfo.strSharePath, lpOrderNum);
- }
- bGetEnable = TRUE;
- }
- }
- }
- }
- }
- //////////////////////////////////////////////////////////////////////////
- // 返回结果;
- if(bGetEnable)
- _stprintf(lpEnableShareDirectory,_T("%s"),szOrderNum);
- #if USE_FIX_SHARE
- else
- _stprintf(lpEnableShareDirectory, _T("%s"), szLocalOrder);
- #endif
- return bGetEnable;
- }
- /************************************************************************/
- /*
- 函数:LoadOrderImages
- 描述:加载指定订单的全部共享目录;
- 参数:
- IN:nPhotoType 相片类型;
- IN:lpOrderNum 订单号;
- IN:lpDomain 域名;
- OUT:AryOfOrderImagePaths 要返回所有共享订单目录下的全部相片路径;
- OUT:pAryOfSceneryDirectory 返回所有共享目录订单的目录路径;
- 返回:
- 示例:
- 注意:
- */
- /************************************************************************/
- BOOL CNetShareInfo::LoadOrderImages(IN CONST INT &nPhotoType, IN LPCTSTR lpOrderNum, IN LPCTSTR lpDomain, OUT CStringArray& AryOfOrderImagePaths, OUT CStringArray* pAryOfSceneryDirectory /*= NULL*/)
- {
- // 若域名非空,判断域名有效性;
- if ( lpDomain && strcmp(lpDomain,_T("")) != 0 )
- {
- if(_tcsstr(lpDomain, _T(".ly.com")) == NULL)
- {
- // 传入的域名有误;
- // printf("传入的域名:%s有误\n", lpDomain);
- return FALSE;
- }
- }
- int nSize = 0;
- CString strImage = _T("");
- AryOfOrderImagePaths.RemoveAll(); // 清除数组;
- TCHAR szOrderPath[MAX_PATH] = {0};
- TCHAR szShareDirectory[MAX_PATH] = {0};
-
- #if USE_FIX_SHARE
- // 2.查找早期的固定的原始共享目录;
- GetLoaclShareDirectory(nPhotoType, szShareDirectory);
- // printf("szShareDirectory = %s\n", szShareDirectory);
- // printf("lpDomain1 = %s\n", lpDomain);
- // printf("m_lpDomain2 = %s\n", m_lpDomain);
- if ( lpDomain == NULL || lpDomain[0] == '\0')
- {
- // 分店域名空,代表本店;
- //printf("分店域名空,代表本店\n");
- _stprintf(szOrderPath, _T("%s\\%s"), szShareDirectory, lpOrderNum);
- }
- else
- {
- // 若域名非空,则与本店比较,防止域名仍为本店;
- if ( strcmp(lpDomain, m_lpDomain) == 0 )
- {
- // printf("本店域名\n");
- // 本店域名;
- _stprintf(szOrderPath, _T("%s\\%s"), szShareDirectory, lpOrderNum);
- }
- else
- {
- // printf("分店\n");
- _stprintf(szOrderPath, _T("%s\\%s\\%s"), szShareDirectory, lpDomain, lpOrderNum);
- }
- }
- // printf("szOrderPath=%s\n", szOrderPath);
- if ( PathFileExists(szOrderPath) )
- {
- if ( pAryOfSceneryDirectory )
- pAryOfSceneryDirectory->Add(szOrderPath);
- LoadSpecifiedDirectory(szOrderPath,AryOfOrderImagePaths);
- // printf("size1=%d\n", AryOfOrderImagePaths.GetSize());
- }
- #endif
- //////////////////////////////////////////////////////////////////////////
- // 查找其他共享目录是否存在订单文件夹;
- int i=0;
- nSize = m_pAryOfNetShareInfo->GetSize();
- for ( i = 0; i < nSize; i++)
- {
- if ( nPhotoType == atoi(m_pAryOfNetShareInfo->ElementAt(i).ElementAt(5)) )
- {
- // 逐一加载其他共享目录;
- _stprintf(szShareDirectory, _T("%s"), m_pAryOfNetShareInfo->ElementAt(i).ElementAt(2));
- if (lpDomain && strcmp(lpDomain,"") != 0 && strcmp(lpDomain, m_lpDomain) != 0)
- {
- _stprintf(szOrderPath, _T("%s\\%s\\%s"), szShareDirectory, lpDomain, lpOrderNum);
- }
- else
- {
- _stprintf(szOrderPath, _T("%s\\%s"), szShareDirectory, lpOrderNum);
- }
- // 订单文件夹存在;
- if ( PathFileExists(szOrderPath))
- {
- if ( pAryOfSceneryDirectory )
- {
- pAryOfSceneryDirectory->Add(szOrderPath);
- }
- LoadSpecifiedDirectory(szOrderPath,AryOfOrderImagePaths);
- }
- }
- }
- return TRUE;
- }
- /************************************************************************/
- /*
- 函数:LoadSceneryImages
- 描述:加载指定订单的景点的全部共享目录;
- 参数:
- IN:nPhotoType 相片类型;
- IN:lpOrderNum 订单号;
- IN:lpDomain 域名;
- IN:lpScenery 订单景点或套系名;
- OUT:AryOfSceneryImagePaths 要返回所有共享订单的景点或套系子目录下的全部相片路径;
- OUT:pAryOfSceneryDirectory 返回所有共享目录订单景点或套系的目录路径;
- 返回:
- 示例:
- 注意:
- */
- /************************************************************************/
- BOOL CNetShareInfo::LoadSceneryImages(IN CONST INT &nPhotoType, IN LPCTSTR lpOrderNum, IN LPCTSTR lpDomain, IN LPCTSTR lpScenery, OUT CStringArray& AryOfSceneryImagePaths, OUT CStringArray* pAryOfOrderDirectory /*= NULL*/)
- {
- // 若域名非空,判断域名有效性;
- if ( lpDomain && strcmp(lpDomain,_T("")) != 0 )
- {
- if(_tcsstr(lpDomain, _T(".ly.com")) == NULL)
- {
- // 传入的域名有误;
- return FALSE;
- }
- }
- int nSize = 0;
- CString strImage = _T("");
- AryOfSceneryImagePaths.RemoveAll(); // 清除数组;
- TCHAR szScenery[MAX_PATH] = {0};
- TCHAR szShareDirectory[MAX_PATH] = {0};
- #if USE_FIX_SHARE
- // 2.查找早期的固定的原始共享目录;
- GetLoaclShareDirectory(nPhotoType, szShareDirectory);
- if ( lpDomain == NULL || lpDomain[0] == '\0')
- {
- // 分店域名空,代表本店;
- _stprintf(szScenery, _T("%s\\%s\\%s"), szShareDirectory, lpOrderNum, lpScenery);
- }
- else
- {
- // 若域名非空,则与本店比较,防止域名仍为本店;
- if ( strcmp(lpDomain, m_lpDomain) == 0 )
- {
- // 本店域名;
- _stprintf(szScenery, _T("%s\\%s\\%s"), szShareDirectory, lpOrderNum, lpScenery);
- }
- else
- {
- _stprintf(szScenery, _T("%s\\%s\\%s\\%s"), szShareDirectory, lpDomain, lpOrderNum, lpScenery);
- }
- }
- if ( PathFileExists(szScenery) )
- {
- if ( pAryOfOrderDirectory )
- {
- pAryOfOrderDirectory->Add(szScenery);
- }
- LoadSpecifiedDirectory(szScenery,AryOfSceneryImagePaths);
- }
- #endif
- //////////////////////////////////////////////////////////////////////////
- // 查找其他共享目录是否存在订单文件夹;
- nSize = m_pAryOfNetShareInfo->GetSize();
- for ( int i = 0; i < nSize; i++)
- {
- if ( nPhotoType == atoi(m_pAryOfNetShareInfo->ElementAt(i).ElementAt(5)) )
- {
- // 逐一加载其他共享目录;
- _stprintf(szShareDirectory, _T("%s"), m_pAryOfNetShareInfo->ElementAt(i).ElementAt(2));
- if (lpDomain && strcmp(lpDomain,"") != 0)
- {
- _stprintf(szScenery, _T("%s\\%s\\%s\\%s"), szShareDirectory, lpDomain, lpOrderNum, lpScenery);
- }
- else
- {
- _stprintf(szScenery, _T("%s\\%s\\%s"), szShareDirectory, lpOrderNum, lpScenery);
- }
- // 订单文件夹存在;
- if ( PathFileExists(szScenery))
- {
- if ( pAryOfOrderDirectory )
- {
- pAryOfOrderDirectory->Add(szScenery);
- }
- LoadSpecifiedDirectory(szScenery,AryOfSceneryImagePaths);
- }
- }
- }
- return TRUE;
- }
- /************************************************************************/
- /*
- 函数:LoadSelectedImages
- 描述:加载选中的相片,相片名不带景点名套系名,如:"005"
- 参数:
- IN:nPhotoType 相片类型;
- IN:lpOrderNum 订单号;
- IN:lpDomain 域名;
- IN:AryOfSelectedImages 选中的相片数组;
- OUT:AryOfSelectedImagePaths 返回选中的相片的路径;
- 返回:
- 示例:
- 注意:
- */
- /************************************************************************/
- BOOL CNetShareInfo::LoadSelectedImages(IN CONST INT &nPhotoType, IN LPCTSTR lpOrderNum, IN LPCTSTR lpDomain, IN CStringArray& AryOfSelectedImages, OUT CStringArray& AryOfSelectedImagePaths)
- {
- // 若域名非空,判断域名有效性;
- if ( lpDomain && strcmp(lpDomain,_T("")) != 0 )
- {
- if(_tcsstr(lpDomain, _T(".ly.com")) == NULL)
- {
- // 传入的域名有误;
- return FALSE;
- }
- }
- int nSize = 0;
- CString strImage = _T("");
- AryOfSelectedImagePaths.RemoveAll(); // 清除数组;
- TCHAR szOrderPath[MAX_PATH] = {0};
- TCHAR szShareDirectory[MAX_PATH] = {0};
- #if USE_FIX_SHARE
- // 2.查找早期的固定的原始共享目录;
- GetLoaclShareDirectory(nPhotoType, szShareDirectory);
- if ( lpDomain == NULL || lpDomain[0] == '\0')
- {
- // 分店域名空,代表本店;
- _stprintf(szOrderPath, _T("%s\\%s"), szShareDirectory, lpOrderNum);
- }
- else
- {
- // 若域名非空,则与本店比较,防止域名仍为本店;
- if ( strcmp(lpDomain, m_lpDomain) == 0 )
- {
- // 本店域名;
- _stprintf(szOrderPath, _T("%s\\%s"), szShareDirectory, lpOrderNum);
- }
- else
- {
- _stprintf(szOrderPath, _T("%s\\%s\\%s"), szShareDirectory, lpDomain, lpOrderNum);
- }
- }
- if ( PathFileExists(szOrderPath) )
- {
- LoadSelectedImageDirectory(szOrderPath, AryOfSelectedImages, AryOfSelectedImagePaths);
- }
- #endif
- //////////////////////////////////////////////////////////////////////////
- // 查找其他共享目录是否存在订单文件夹;
- nSize = m_pAryOfNetShareInfo->GetSize();
- for ( int i = 0; i < nSize; i++)
- {
- if ( nPhotoType == atoi(m_pAryOfNetShareInfo->ElementAt(i).ElementAt(5)) )
- {
- // 逐一加载其他共享目录;
- _stprintf(szShareDirectory, _T("%s"), m_pAryOfNetShareInfo->ElementAt(i).ElementAt(2));
- if (lpDomain && strcmp(lpDomain,"") != 0)
- {
- _stprintf(szOrderPath, _T("%s\\%s\\%s"), szShareDirectory, lpDomain, lpOrderNum);
- }
- else
- {
- _stprintf(szOrderPath, _T("%s\\%s"), szShareDirectory, lpOrderNum);
- }
- // 订单文件夹存在;
- if ( PathFileExists(szOrderPath))
- {
- LoadSelectedImageDirectory(szOrderPath, AryOfSelectedImages, AryOfSelectedImagePaths);
- }
- }
- }
- return TRUE;
- }
- /************************************************************************/
- /*
- 函数:LoadOrderBySelectedImages
- 描述:按选中的相片顺序依次加载,相片名不带景点名套系名,如:"005"
- 参数:
- IN:nPhotoType 相片类型;
- IN:lpOrderNum 订单号;
- IN:lpDomain 域名;
- IN:AryOfSelectedImages 选中的相片数组;
- OUT:AryOfSelectedImagePaths 返回选中的相片的路径;
- 返回:
- 示例:
- 注意:
- */
- /************************************************************************/
- BOOL CNetShareInfo::LoadOrderBySelectedImages(
- IN CONST INT &nPhotoType,
- IN LPCTSTR lpOrderNum,
- IN LPCTSTR lpDomain,
- IN CStringArray& AryOfSelectedImages,
- OUT CStringArray& AryOfSelectedImagePaths)
- {
- // 若域名非空,判断域名有效性;
- if ( lpDomain && strcmp(lpDomain,_T("")) != 0 )
- {
- // 传入的域名有误;
- if(_tcsstr(lpDomain, _T(".ly.com")) == NULL)
- return FALSE;
- }
-
- CStringArray strAryTemp; // 与AryOfSelectedImagePaths对应的临时储存;
- CStringArray strAryTemp1; // 与AryOfSelectedImages对应的临时储存;
- strAryTemp1.Copy(AryOfSelectedImages);
- int nSize = 0;
- CString strImage = _T("");
- TCHAR szOrderPath[MAX_PATH] = {0};
- TCHAR szShareDirectory[MAX_PATH] = {0};
- AryOfSelectedImagePaths.RemoveAll(); // 清除数组;
- #if USE_FIX_SHARE
- // 2.查找早期的固定的原始共享目录;
- GetLoaclShareDirectory(nPhotoType, szShareDirectory);
- if ( lpDomain == NULL || lpDomain[0] == '\0')
- {
- // 分店域名空,代表本店;
- _stprintf(szOrderPath, _T("%s\\%s"), szShareDirectory, lpOrderNum);
- }
- else
- {
- // 若域名非空,则与本店比较,防止域名仍为本店;
- if ( strcmp(lpDomain, m_lpDomain) == 0 )
- {
- // 本店域名;
- _stprintf(szOrderPath, _T("%s\\%s"), szShareDirectory, lpOrderNum);
- }
- else
- {
- _stprintf(szOrderPath, _T("%s\\%s\\%s"), szShareDirectory, lpDomain, lpOrderNum);
- }
- }
- if ( PathFileExists(szOrderPath) )
- LoadSelectedImageDirectory(szOrderPath, strAryTemp1, strAryTemp);
- #endif //#if USE_FIX_SHARE
- //////////////////////////////////////////////////////////////////////////
- // 查找其他共享目录是否存在订单文件夹;
- int i = 0;
- nSize = m_pAryOfNetShareInfo->GetSize();
- for ( i = 0; i < nSize; i++)
- {
- if ( nPhotoType == atoi(m_pAryOfNetShareInfo->ElementAt(i).ElementAt(5)) )
- {
- // 逐一加载其他共享目录;
- _stprintf(szShareDirectory, _T("%s"), m_pAryOfNetShareInfo->ElementAt(i).ElementAt(2));
- if (lpDomain && strcmp(lpDomain,"") != 0)
- _stprintf(szOrderPath, _T("%s\\%s\\%s"), szShareDirectory, lpDomain, lpOrderNum);
- else
- _stprintf(szOrderPath, _T("%s\\%s"), szShareDirectory, lpOrderNum);
- // 订单文件夹存在;
- if ( PathFileExists(szOrderPath))
- LoadSelectedImageDirectory(szOrderPath, strAryTemp1, strAryTemp);
- }
- }
- // 再按顺序加入AryOfSelectedImagePaths;
- for ( /*int*/ i = 0; i < AryOfSelectedImages.GetSize(); i++)
- {
- // 先查看
- // 如果某张相片没有找到对应的文件
- BOOL bGetImage = FALSE;
- for ( int n = 0; n < strAryTemp.GetSize(); n++ )
- {
- strImage = strAryTemp.ElementAt(n).Mid( strAryTemp.ElementAt(n).ReverseFind('\\') + 1);
- strImage = strImage.Left(strImage.Find('.'));
- CString strSelImage = AryOfSelectedImages.ElementAt(i);
- if ( strSelImage.CompareNoCase(strImage) == 0 )
- {
- bGetImage = TRUE;
- AryOfSelectedImagePaths.Add(strAryTemp.ElementAt(n));
- break;
- }
- }
- }
- return TRUE;
- }
- /************************************************************************/
- /*
- 函数:LoadSelectedImagesEx
- 描述:加载选中的相片名(相片名前带子目录名,如:"内景\005")
- 参数:
- 返回:
- 示例:
- 注:这个景点名称必须是订单的一级子目录,不能是二级子目录;
- */
- /************************************************************************/
- BOOL CNetShareInfo::LoadSelectedImagesEx(IN CONST INT &nPhotoType, IN LPCTSTR lpOrderNum, IN LPCTSTR lpDomain, IN CStringArray& AryOfSelectedImages, OUT CStringArray& AryOfSelectedImagePaths)
- {
- // 若域名非空,判断域名有效性;
- if ( lpDomain && strcmp(lpDomain,_T("")) != 0 )
- {
- if(_tcsstr(lpDomain, _T(".ly.com")) == NULL)
- {
- // 传入的域名有误;
- return FALSE;
- }
- }
- int nSize = 0;
- CString strImage = _T("");
- AryOfSelectedImagePaths.RemoveAll(); // 清除数组;
- TCHAR szOrderPath[MAX_PATH] = {0};
- TCHAR szShareDirectory[MAX_PATH] = {0};
- #if USE_FIX_SHARE
- // 2.查找早期的固定的原始共享目录;
- GetLoaclShareDirectory(nPhotoType, szShareDirectory);
- if ( lpDomain == NULL || lpDomain[0] == '\0')
- {
- // 分店域名空,代表本店;
- _stprintf(szOrderPath, _T("%s\\%s"), szShareDirectory, lpOrderNum);
- }
- else
- {
- // 若域名非空,则与本店比较,防止域名仍为本店;
- if ( strcmp(lpDomain, m_lpDomain) == 0 )
- {
- // 本店域名;
- _stprintf(szOrderPath, _T("%s\\%s"), szShareDirectory, lpOrderNum);
- }
- else
- {
- _stprintf(szOrderPath, _T("%s\\%s\\%s"), szShareDirectory, lpDomain, lpOrderNum);
- }
- }
- printf("szOrderPath1 = %s\n", szOrderPath);
- if ( PathFileExists(szOrderPath) )
- {
- //LoadSelectedImageDirectory(szOrderPath, AryOfSelectedImages, AryOfSelectedImagePaths);
- nSize = AryOfSelectedImages.GetSize();
- for ( int i = 0; i < nSize; i++ )
- {
- strImage.Format(_T("%s\\%s.jpg"), szOrderPath, AryOfSelectedImages.ElementAt(i));
- printf("strImage1 = %s\n", strImage);
- if ( PathFileExists(strImage) )
- {
- AryOfSelectedImagePaths.Add(strImage);
- }
- else
- {
- //查找所有子目录
- CString strFilePath = _T("");
- if(FindPhotoFromNo(AryOfSelectedImages.ElementAt(i), szOrderPath, strFilePath))
- AryOfSelectedImagePaths.Add(strFilePath);
- }
- }
- }
- #endif
-
- //////////////////////////////////////////////////////////////////////////
- // 查找其他共享目录是否存在订单文件夹;
- int i=0;
- /*
- for(i=0; i<AryOfSelectedImagePaths.GetSize(); i++)
- printf("image path = %s\n", AryOfSelectedImagePaths.ElementAt(i));
- */
- nSize = m_pAryOfNetShareInfo->GetSize();
- for ( i = 0; i < nSize; i++)
- {
- if ( nPhotoType == atoi(m_pAryOfNetShareInfo->ElementAt(i).ElementAt(5)) )
- {
- // 逐一加载其他共享目录;
- _stprintf(szShareDirectory, _T("%s"), m_pAryOfNetShareInfo->ElementAt(i).ElementAt(2));
- if (lpDomain && strcmp(lpDomain,"") != 0)
- {
- _stprintf(szOrderPath, _T("%s\\%s\\%s"), szShareDirectory, lpDomain, lpOrderNum);
- }
- else
- {
- _stprintf(szOrderPath, _T("%s\\%s"), szShareDirectory, lpOrderNum);
- }
- // printf("szOrderPath2 = %s\n", szOrderPath);
- // 订单文件夹存在;
- if ( PathFileExists(szOrderPath))
- {
- //LoadSelectedImageDirectory(szOrderPath, AryOfSelectedImages, AryOfSelectedImagePaths);
- for ( int n = 0; n < AryOfSelectedImages.GetSize(); n++)
- {
- strImage.Format("%s\\%s.jpg",szOrderPath, AryOfSelectedImages.ElementAt(n));
- // printf("strImage2 = %s\n", strImage);
- if ( PathFileExists(strImage) )
- {
- AryOfSelectedImagePaths.Add(strImage);
- }
- else
- {
- //查找所有子目录
- CString strFilePath = _T("");
- if(FindPhotoFromNo(AryOfSelectedImages.ElementAt(n), szOrderPath, strFilePath))
- AryOfSelectedImagePaths.Add(strFilePath);
- }
- }
- }
- }
- }
- return TRUE;
- }
- /************************************************************************/
- /*
- 函数:GetOrderDirectory
- 描述:获取指定订单的全部共享路径;
- 参数:
- IN:nPhotoType 相片类型;
- IN:lpOrderNum 订单号;
- IN:lpDomain 域名;
- OUT:AryOfOrderDirectory 返回订单的全部共享路径;
- 返回:
- 示例:
- 注意:
- */
- /************************************************************************/
- BOOL CNetShareInfo::GetOrderDirectory(IN CONST INT &nPhotoType, IN LPCTSTR lpOrderNum, IN LPCTSTR lpDomain, OUT CStringArray &AryOfOrderDirectory)
- {
- // 若域名非空,判断域名有效性;
- if ( lpDomain && strcmp(lpDomain,_T("")) != 0 )
- {
- if(_tcsstr(lpDomain, _T(".ly.com")) == NULL)
- {
- // 传入的域名有误;
- return FALSE;
- }
- }
- int nSize = 0;
- CString strImage = _T("");
- AryOfOrderDirectory.RemoveAll();
- TCHAR szOrderPath[MAX_PATH] = {0};
- TCHAR szShareDirectory[MAX_PATH] = {0};
- #if USE_FIX_SHARE
- // 2.查找早期的固定的原始共享目录;
- GetLoaclShareDirectory(nPhotoType, szShareDirectory);
- if ( lpDomain == NULL || lpDomain[0] == '\0')
- {
- // 分店域名空,代表本店;
- _stprintf(szOrderPath, _T("%s\\%s"), szShareDirectory, lpOrderNum);
- }
- else
- {
- // 若域名非空,则与本店比较,防止域名仍为本店;
- if ( strcmp(lpDomain, m_lpDomain) == 0 )
- {
- // 本店域名;
- _stprintf(szOrderPath, _T("%s\\%s"), szShareDirectory, lpOrderNum);
- }
- else
- {
- _stprintf(szOrderPath, _T("%s\\%s\\%s"), szShareDirectory, lpDomain, lpOrderNum);
- }
- }
- if ( PathFileExists(szOrderPath) )
- {
- AryOfOrderDirectory.Add(szOrderPath);
- }
- #endif
- //////////////////////////////////////////////////////////////////////////
- // 查找其他共享目录是否存在订单文件夹;
- nSize = m_pAryOfNetShareInfo->GetSize();
- for ( int i = 0; i < nSize; i++)
- {
- if ( nPhotoType == atoi(m_pAryOfNetShareInfo->ElementAt(i).ElementAt(5)) )
- {
- // 逐一加载其他共享目录;
- _stprintf(szShareDirectory, _T("%s"), m_pAryOfNetShareInfo->ElementAt(i).ElementAt(2));
- if (lpDomain && strcmp(lpDomain,"") != 0)
- {
- _stprintf(szOrderPath, _T("%s\\%s\\%s"), szShareDirectory, lpDomain, lpOrderNum);
- }
- else
- {
- _stprintf(szOrderPath, _T("%s\\%s"), szShareDirectory, lpOrderNum);
- }
- // 订单文件夹存在;
- if ( PathFileExists(szOrderPath))
- {
- AryOfOrderDirectory.Add(szOrderPath);
- }
- }
- }
- return TRUE;
- }
- /************************************************************************/
- /*
- 函数:GetSceneryDirectory
- 描述:获取指定订单景点或套系名的全部共享路径;
- 参数:
- IN:nPhotoType 相片类型;
- IN:lpOrderNum 订单号;
- IN:lpScenery 景点或套系名;
- IN:lpDomain 域名;
- OUT:AryOfOrderDirectory 返回订单景点或套系名的全部共享路径;
- 返回:
- 示例:
- 注意:
- */
- /************************************************************************/
- BOOL CNetShareInfo::GetSceneryDirectory(IN CONST INT &nPhotoType, IN LPCTSTR lpOrderNum, IN LPCTSTR lpScenery, IN LPCTSTR lpDomain, OUT CStringArray &AryOfSceneryDirectory)
- {
- // 若域名非空,判断域名有效性;
- if ( lpDomain && strcmp(lpDomain,_T("")) != 0 )
- {
- if(_tcsstr(lpDomain, _T(".ly.com")) == NULL)
- {
- // 传入的域名有误;
- return FALSE;
- }
- }
- int nSize = 0;
- CString strImage = _T("");
- AryOfSceneryDirectory.RemoveAll();
- TCHAR szOrderPath[MAX_PATH] = {0};
- TCHAR szShareDirectory[MAX_PATH] = {0};
- #if USE_FIX_SHARE
- // 2.查找早期的固定的原始共享目录;
- GetLoaclShareDirectory(nPhotoType, szShareDirectory);
- if ( lpDomain == NULL || lpDomain[0] == '\0')
- {
- // 分店域名空,代表本店;
- _stprintf(szOrderPath, _T("%s\\%s\\%s"), szShareDirectory, lpOrderNum, lpScenery);
- }
- else
- {
- // 若域名非空,则与本店比较,防止域名仍为本店;
- if ( strcmp(lpDomain, m_lpDomain) == 0 )
- {
- // 本店域名;
- _stprintf(szOrderPath, _T("%s\\%s\\%s"), szShareDirectory, lpOrderNum, lpScenery);
- }
- else
- {
- _stprintf(szOrderPath, _T("%s\\%s\\%s\\%s"), szShareDirectory, lpDomain, lpOrderNum, lpScenery);
- }
- }
- if ( PathFileExists(szOrderPath) )
- {
- AryOfSceneryDirectory.Add(szOrderPath);
- }
- #endif
- //////////////////////////////////////////////////////////////////////////
- // 查找其他共享目录是否存在订单文件夹;
- nSize = m_pAryOfNetShareInfo->GetSize();
- for ( int i = 0; i < nSize; i++)
- {
- if ( nPhotoType == atoi(m_pAryOfNetShareInfo->ElementAt(i).ElementAt(5)) )
- {
- // 逐一加载其他共享目录;
- _stprintf(szShareDirectory, _T("%s"), m_pAryOfNetShareInfo->ElementAt(i).ElementAt(2));
- if (lpDomain && strcmp(lpDomain,"") != 0)
- {
- _stprintf(szOrderPath, _T("%s\\%s\\%s\\%s"), szShareDirectory, lpDomain, lpOrderNum, lpScenery);
- }
- else
- {
- _stprintf(szOrderPath, _T("%s\\%s\\%s"), szShareDirectory, lpOrderNum, lpScenery);
- }
- // 订单文件夹存在;
- if ( PathFileExists(szOrderPath))
- {
- AryOfSceneryDirectory.Add(szOrderPath);
- }
- }
- }
- return TRUE;
- }
- /************************************************************************/
- /*
- 函数:LoadSpecifiedDirectories
- 描述:加载指定目录集下的全部相片;
- 参数:
- IN:AryOfDirectories 指定目录集合;
- IN:AryOfRetval 返回目录集合下的所有相片路径;
- 返回:
- 示例:
- 注意:
- */
- /************************************************************************/
- BOOL CNetShareInfo::LoadSpecifiedDirectories(IN CStringArray &AryOfDirectories, IN CStringArray &AryOfRetval)
- {
- CString str = _T("");
- int nSize = AryOfDirectories.GetSize();
- for ( int i = 0; i < nSize; i++ )
- {
- str = AryOfDirectories.ElementAt(i);
- LoadSpecifiedDirectory(str,AryOfRetval);
- }
- return TRUE;
- }
- //
- /************************************************************************/
- /*
- 函数:FindPhotoFromNo
- 描述:查找订单目录下的相片是否存在;
- 参数:
- IN CString& strName, 相片名
- IN LPCTSTR strDir 目录
- 返回:
- 示例:
- 注意:
- */
- /************************************************************************/
- BOOL CNetShareInfo::FindPhotoFromNo(IN CString& strName, IN LPCTSTR lpDir, OUT CString& strFilePath)
- {
- BOOL bFind = FALSE;
- if(strName == _T("") || lpDir == NULL)
- return bFind;
- using namespace helper_coffs;
- ffsco o;
- o.dirs(1);
- o.find(lpDir, LPCSTR("*.*"));
- ffsco::typeT cfs;
- ffsco::typeT::iterator it;
- cfs = o.co_file();
-
- // printf("strName = %s\n", strName);
- CString strFile = _T("");
- for (it = cfs.begin(); cfs.end() != it; it++)
- {
- // 去除目录级文件;
- // 去除ok文件;
- // 去除modifytime文件;
- // 去除s+m缩略图;
- strFile = it->c_str();
- strFile.MakeLower();
- if ( strFile.Find('.') == -1)
- {
- it = cfs.erase(it);
- continue;
- }
- CString str = strFile.Mid( strFile.ReverseFind('\\') + 1 );
- if ( str.Find('.') == -1)
- {
- it = cfs.erase(it);
- continue;
- }
-
- // 如果在相片前或后加修饰,都会有bug,最佳做法是缩略图放在另一子文件夹中;\
- // 产生的bug:使用原名导入相片时,相片名可能第一个字母就是s或m;
- if ( str.GetAt(0) == 's' || str.GetAt(0) == 'm')
- {
- it = cfs.erase(it);
- continue;
- }
-
- // printf("str = %s, strName = %s\n", str, strName + _T(".jpg"));
- if(str.CompareNoCase(strName + _T(".jpg")) == 0)
- bFind = TRUE;
- else if(str.CompareNoCase(strName + _T(".jpeg")) == 0)
- bFind = TRUE;
- else if(str.CompareNoCase(strName + _T(".cr2")) == 0)
- bFind = TRUE;
- else if(str.CompareNoCase(strName + _T(".raw")) == 0)
- bFind = TRUE;
- else if(str.CompareNoCase(strName + _T(".nef")) == 0)
- bFind = TRUE;
-
- if(bFind == TRUE)
- {
- // printf("it = %s, strName = %s\n", it->c_str(), strName);
- strFilePath = it->c_str();
- return bFind;
- }
- }
- return bFind;
- }
|