123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431 |
- // PhotoDelMgr.cpp : 实现文件
- //
- #include "stdafx.h"
- #include "DBServer.h"
- #include "PhotoDelMgr.h"
- #include "Global.h"
- #include "BranchInfo.h"
- #include "PhotoDelLog.h"
- #include "mysqldata.h"
- #include "DelPhotoModel\DelFilesFactory.h"
- #include "DelPhotoModel\DelFilesInterface.h"
- typedef HRESULT (WINAPI *GetClassDelFileObject)(REFCLSID, REFIID, LPVOID*);
- CPhotoDelMgr* g_pPhotoDelMgr;
- #define MSG_SHOWPROMPTING WM_USER + 101
- // CPhotoDelMgr 对话框
- IMPLEMENT_DYNAMIC(CPhotoDelMgr, CDialog)
- CPhotoDelMgr::CPhotoDelMgr(CWnd* pParent /*=NULL*/)
- : CDialog(CPhotoDelMgr::IDD, pParent)
- {
- m_pFactory = NULL;
- m_pInterface = NULL;
- m_lpCurrSel = NULL;
- m_pdb = NULL;
- memset(m_szConnect, 0, sizeof(TCHAR)*MAX_PATH);
- }
- CPhotoDelMgr::~CPhotoDelMgr()
- {
- if(m_pInterface)
- m_pInterface->Release();
- if(m_pFactory)
- m_pFactory->Release();
- m_vCurrSelLog.clear();
- CleareLog(m_vPickupLog);
- ClearBakDirInfo();
- if(m_pdb)
- delete m_pdb;
- m_pdb = NULL;
- }
- void CPhotoDelMgr::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- DDX_Control(pDX, IDC_DelInfo_List, m_DelList);
- DDX_Control(pDX, IDC_DelType_LIST, m_PhotoTypeList);
- DDX_Control(pDX, IDC_Start_Date, m_StartTime);
- DDX_Control(pDX, IDC_End_Date, m_EndTime);
- DDX_Control(pDX, IDC_DELTIPS_RICHEDIT, m_DelTips);
- }
- BEGIN_MESSAGE_MAP(CPhotoDelMgr, CDialog)
- ON_BN_CLICKED(IDC_StartDel_Btn, &CPhotoDelMgr::OnBnClickedStartdelBtn)
- ON_BN_CLICKED(IDC_SelectAll_Btn, &CPhotoDelMgr::OnBnClickedSelectallBtn)
- ON_BN_CLICKED(IDC_DeleteLog_Btn, &CPhotoDelMgr::OnBnClickedDeletelogBtn)
- ON_BN_CLICKED(IDC_UnAllSel_Btn, &CPhotoDelMgr::OnBnClickedUnallselBtn)
- ON_BN_CLICKED(IDC_SetAutoDel_Btn, &CPhotoDelMgr::OnBnClickedSetAutodelBtn)
- ON_BN_CLICKED(IDC_Refresh_Btn, &CPhotoDelMgr::OnBnClickedRefreshBtn)
- ON_NOTIFY(NM_CLICK, IDC_DelInfo_List, &CPhotoDelMgr::OnNMClickDelinfoList)
- ON_NOTIFY(NM_CLICK, IDC_DelType_LIST, &CPhotoDelMgr::OnNMClickDeltypeList)
- ON_MESSAGE(MSG_SHOWPROMPTING, &CPhotoDelMgr::ShowPrompting)
- END_MESSAGE_MAP()
- BOOL CPhotoDelMgr::OnInitDialog()
- {
- CDialog::OnInitDialog();
- g_pPhotoDelMgr = this;
- #ifndef ENTERPRISE_VERSION
- m_DelList.InsertColumn( 0, TEXT("主机名"), LVCFMT_LEFT, 100 );
- #else
- m_DelList.InsertColumn( 0, TEXT("店名"), LVCFMT_LEFT, 100 );
- #endif
- m_DelList.InsertColumn( 1, TEXT("域名"), LVCFMT_LEFT, 200 );
- m_DelList.InsertColumn( 2, TEXT("订单号"), LVCFMT_LEFT, 70 );
- m_DelList.InsertColumn( 3, TEXT("取件"), LVCFMT_LEFT, 70 );
- m_DelList.InsertColumn( 4, TEXT("时间"), LVCFMT_LEFT, 70 );
- m_DelList.SetExtendedStyle(LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT | LVS_EX_ONECLICKACTIVATE | LVS_EX_GRIDLINES);
- m_PhotoTypeList.InsertColumn( 0, TEXT("类型"), LVCFMT_LEFT, 100 );
- m_PhotoTypeList.InsertColumn( 1, TEXT("已删除"), LVCFMT_LEFT, 70 );
- m_PhotoTypeList.SetExtendedStyle(LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT | LVS_EX_ONECLICKACTIVATE | LVS_EX_GRIDLINES);
- CTime currtime = CTime::GetCurrentTime();
- m_EndTime.SetTime(&currtime);
- CTimeSpan timespan(30,0,0,0);
- CTime endtime = currtime - timespan;
- m_StartTime.SetTime(&endtime);
-
- GetBranchInfo(m_BranchArr);
- OnBnClickedRefreshBtn();
- LoadDelPhotoModule(g_hDllInst);
- GetShareBackupDir();
- return TRUE;
- }
- // CPhotoDelMgr 消息处理程序
- //开始删除
- void CPhotoDelMgr::OnBnClickedStartdelBtn()
- {
- if(m_pInterface && m_pInterface->IsDeleting())
- {
- MessageBox(_T("正在处理删除工作中,请稍后再试"));
- return;
- }
- // TODO: 在此添加控件通知处理程序代码
- if (AfxMessageBox("是否删除选中的已取件相片?", MB_YESNO | MB_ICONINFORMATION) != IDYES)
- return;
- int nCount = m_DelList.GetItemCount();
- for(int i = 0; i<nCount; i++)
- {
- if(m_DelList.GetCheck(i) == TRUE)
- {
- CString strDomain = m_DelList.GetItemText(i, 1);
- CString strOrder = m_DelList.GetItemText(i, 2);
- std::vector<LPSPICKUPINFO>::iterator iter = m_vPickupLog.begin();
- for(; iter != m_vPickupLog.end();)
- {
- LPSPICKUPINFO lp = (*iter);
- if(lp != NULL && lp->bTakestatus && lp->strBranchid == strDomain && lp->strOrder == strOrder)
- {
-
- //把勾选了的已取件订单添加到删除集里
- if(lp->bOpNeedDel)
- AddDelData(strDomain, strOrder, 1);
- if(lp->bEpNeedDel)
- AddDelData(strDomain, strOrder, 2);
- if(lp->bFpNeedDel)
- AddDelData(strDomain, strOrder, 3);
- if(lp->bDpNeedDel)
- AddDelData(strDomain, strOrder, 4);
- if(lp->bOpbNeedDel)
- AddDelData(strDomain, strOrder, 5);
- if(lp->bEpbNeedDel)
- AddDelData(strDomain, strOrder, 6);
- if(lp->bFpbNeedDel)
- AddDelData(strDomain, strOrder, 7);
- if(lp->bDpbNeedDel)
- AddDelData(strDomain, strOrder, 8);
- }
- ++iter;
- }
- }
- }
- //开始删除相片
- if(m_pInterface && !m_pInterface->IsDeleting())
- m_pInterface->StartDelFiles(DelFinish);
- }
- //去掉全选
- void CPhotoDelMgr::OnBnClickedUnallselBtn()
- {
- // TODO: 在此添加控件通知处理程序代码
- int nNum = m_DelList.GetItemCount();
- for(int i=0; i<nNum; i++)
- m_DelList.SetCheck(i, FALSE);
- m_vCurrSelLog.clear();
- }
- //全选
- void CPhotoDelMgr::OnBnClickedSelectallBtn()
- {
- // TODO: 在此添加控件通知处理程序代码
- int nNum = m_DelList.GetItemCount();
- for(int i=0; i<nNum; i++)
- m_DelList.SetCheck(i, TRUE);
- m_vCurrSelLog.clear();
- std::vector<LPSPICKUPINFO>::iterator it = m_vPickupLog.begin();
- for(;it != m_vPickupLog.end();)
- {
- if((*it) != NULL)
- m_vCurrSelLog.push_back((*it));
- ++it;
- }
- }
- //查看删除记录
- void CPhotoDelMgr::OnBnClickedDeletelogBtn()
- {
- // TODO: 在此添加控件通知处理程序代码
- PhotoDelLog dlg;
- dlg.m_pBranchArr = &m_BranchArr;
- dlg.m_pdb = m_pdb;
- dlg.m_plock = &m_lock;
- dlg.DoModal();
- }
- void CPhotoDelMgr::OnDestroy()
- {
-
- }
- //加载列表数据
- void CPhotoDelMgr::LoadListData()
- {
- m_lock.lock();
- if(m_pdb == NULL)
- {
- m_lock.unlock();
- return;
- }
- CleareLog(m_vPickupLog);
- CString strTimeFielded = _T("");
- if(!GetTimeField(strTimeFielded))
- {
- m_lock.unlock();
- return;
- }
- //已取件记录
- CString sql = _T("");
- sql = _T("SELECT [branchid],[order],[takestatus],[taketime],\
- [opdel],[epdel],[fpdel],[dpdel],\
- [opbdel],[epbdel],[fpbdel],[dpbdel],\
- [opdeltm],[epdeltm],[fpdeltm],[dpdeltm],\
- [opbdeltm],[epbdeltm],[fpbdeltm],[dpbdeltm] FROM [PhotoManager] where [takestatus]='True' and ") + strTimeFielded;
- try
- {
- CRecordset myset;
- myset.m_pDatabase = m_pdb;
- myset.Open(CRecordset::forwardOnly, sql);
- int ii = 0;
- while (!myset.IsEOF())
- {
- LPSPICKUPINFO lp = new SPICKUPINFO;
- CString strValue = _T("");
- myset.GetFieldValue(_T("branchid"), lp->strBranchid); /* 分店id 域名*/
- lp->strName = CPhotoDelMgr::GetBranchNameForDomain(&m_BranchArr, lp->strBranchid);
- myset.GetFieldValue(_T("order"), lp->strOrder); /* 主键订单号(唯一) */
- myset.GetFieldValue(_T("takestatus"), strValue); /* 取件状态:0未取,1已取 */
- lp->bTakestatus = _ttoi(strValue);
- myset.GetFieldValue(_T("taketime"), lp->strTaketime); /* 整个订单的取件时间 */
- myset.GetFieldValue(_T("opdel"), strValue); /* 原片删除状态 */
- lp->bOpdel = _ttoi(strValue);
- myset.GetFieldValue(_T("epdel"), strValue); /* 初修删除状态 */
- lp->bEpdel = _ttoi(strValue);
- myset.GetFieldValue(_T("fpdel"), strValue); /* 精修删除状态 */
- lp->bFpdel = _ttoi(strValue);
- myset.GetFieldValue(_T("dpdel"), strValue); /* 设计删除状态 */
- lp->bDpdel = _ttoi(strValue);
- myset.GetFieldValue(_T("opbdel"), strValue); /* 原片备份删除状态 */
- lp->bOpbdel = _ttoi(strValue);
- myset.GetFieldValue(_T("epbdel"), strValue); /* 初修备份删除状态 */
- lp->bEpbdel = _ttoi(strValue);
- myset.GetFieldValue(_T("fpbdel"), strValue); /* 精修备份删除状态 */
- lp->bFpbdel = _ttoi(strValue);
- myset.GetFieldValue(_T("dpbdel"), strValue); /* 设计备份删除状态 */
- lp->bDpbdel = _ttoi(strValue);
- myset.GetFieldValue(_T("opdeltm"), lp->strOpdeltm); /* 原片删除时间 */
- myset.GetFieldValue(_T("epdeltm"), lp->strEpdeltm); /* 初修删除时间 */
- myset.GetFieldValue(_T("fpdeltm"), lp->strFpdeltm); /* 精修删除时间 */
- myset.GetFieldValue(_T("dpdeltm"), lp->strDpdeltm); /* 设计删除时间 */
- myset.GetFieldValue(_T("opbdeltm"), lp->strOpbdeltm); /* 原片备份删除时间 */
- myset.GetFieldValue(_T("epbdeltm"), lp->strEpbdeltm); /* 初修备份删除时间 */
- myset.GetFieldValue(_T("fpbdeltm"), lp->strFpbdeltm); /* 精修备份删除时间 */
- myset.GetFieldValue(_T("dpbdeltm"), lp->strDpbdeltm); /* 设计备份删除时间 */
- //是否已取件
- if(!lp->bTakestatus)
- {
- delete lp;
- myset.MoveNext();
- continue;
- }
- //是否全部已删除
- if(lp->bOpdel && lp->bEpdel && lp->bFpdel && lp->bDpdel && lp->bOpbdel && lp->bEpbdel && lp->bFpbdel && lp->bDpbdel)
- {
- delete lp;
- myset.MoveNext();
- continue;
- }
- m_vPickupLog.push_back(lp);
- myset.MoveNext();
- }
- }
- catch (CException* e)
- {
- m_lock.unlock();
- CleareLog(m_vPickupLog);
- TCHAR szError[1024] = { 0 };
- e->GetErrorMessage(szError, 1024);
- WriteLogin(CString(szError));
- e->Delete();
- }
- m_lock.unlock();
- }
- void CPhotoDelMgr::FillData()
- {
- if(m_vPickupLog.size() == 0)
- return;
- m_DelList.DeleteAllItems();
- std::vector<LPSPICKUPINFO>::iterator iter = m_vPickupLog.begin();
- for(;iter != m_vPickupLog.end();)
- {
- LPSPICKUPINFO lp = (*iter);
- if(lp != NULL)
- {
- CString strName = GetBranchNameForDomain(&m_BranchArr, lp->strBranchid);
- int nRow = m_DelList.InsertItem(LVIF_TEXT|LVIF_PARAM, 0, strName,0,0,2,0);
- m_DelList.SetItemText(nRow, 1, lp->strBranchid);
- m_DelList.SetItemText(nRow, 2, lp->strOrder);
- m_DelList.SetItemText(nRow, 3, TEXT("已取"));
- m_DelList.SetItemText(nRow, 4, lp->strTaketime);
- }
- ++iter;
- }
- if(m_DelList.GetItemCount() == 0)
- return;
- //FillPhotoType(0);
- }
- /************************************************************************/
- /*
- 函数:FillPhotoType
- 描述:填充类型列表
- 参数:
- IN const int nIdx 数组索引
- 返回:
- */
- /************************************************************************/
- void CPhotoDelMgr::FillPhotoType(IN const int nIdx)
- {
- LPSPICKUPINFO lp = m_vPickupLog[nIdx];
- if(lp == NULL)
- return;
- m_PhotoTypeList.DeleteAllItems();
- int nRow = 0;
- nRow = m_PhotoTypeList.InsertItem(LVIF_TEXT|LVIF_PARAM, 0, _T("原片"),0,0,2,0);
- m_PhotoTypeList.SetItemText(nRow, 1, ((lp->bEpdel == TRUE)?_T("已删"):_T("未删")));
- m_PhotoTypeList.SetCheck(nRow, lp->bEpNeedDel);
- ++nRow;
- m_PhotoTypeList.InsertItem(LVIF_TEXT|LVIF_PARAM, nRow, _T("初修"),0,0,2,0);
- m_PhotoTypeList.SetItemText(nRow, 1, ((lp->bEpdel == TRUE)?_T("已删"):_T("未删")));
- m_PhotoTypeList.SetCheck(nRow, lp->bEpNeedDel);
- ++nRow;
- m_PhotoTypeList.InsertItem(LVIF_TEXT|LVIF_PARAM, nRow, _T("精修"),0,0,2,0);
- m_PhotoTypeList.SetItemText(nRow, 1, ((lp->bFpdel == TRUE)?_T("已删"):_T("未删")));
- m_PhotoTypeList.SetCheck(nRow, lp->bFpNeedDel);
- ++nRow;
- m_PhotoTypeList.InsertItem(LVIF_TEXT|LVIF_PARAM, nRow, _T("设计"),0,0,2,0);
- m_PhotoTypeList.SetItemText(nRow, 1, ((lp->bDpdel == TRUE)?_T("已删"):_T("未删")));
- m_PhotoTypeList.SetCheck(nRow, lp->bDpNeedDel);
- ++nRow;
- m_PhotoTypeList.InsertItem(LVIF_TEXT|LVIF_PARAM, nRow, _T("原片备份"),0,0,2,0);
- m_PhotoTypeList.SetItemText(nRow, 1, ((lp->bOpbdel == TRUE)?_T("已删"):_T("未删")));
- m_PhotoTypeList.SetCheck(nRow, lp->bOpbNeedDel);
- ++nRow;
- m_PhotoTypeList.InsertItem(LVIF_TEXT|LVIF_PARAM, nRow, _T("初修备份"),0,0,2,0);
- m_PhotoTypeList.SetItemText(nRow, 1, ((lp->bEpbdel == TRUE)?_T("已删"):_T("未删")));
- m_PhotoTypeList.SetCheck(nRow, lp->bEpbNeedDel);
- ++nRow;
- m_PhotoTypeList.InsertItem(LVIF_TEXT|LVIF_PARAM, nRow, _T("精修备份"),0,0,2,0);
- m_PhotoTypeList.SetItemText(nRow, 1, ((lp->bFpbdel == TRUE)?_T("已删"):_T("未删")));
- m_PhotoTypeList.SetCheck(nRow, lp->bFpbNeedDel);
- ++nRow;
- m_PhotoTypeList.InsertItem(LVIF_TEXT|LVIF_PARAM, 0, _T("设计备份"),0,0,2,0);
- m_PhotoTypeList.SetItemText(nRow, 1, ((lp->bDpbdel == TRUE)?_T("已删"):_T("未删")));
- m_PhotoTypeList.SetCheck(nRow, lp->bDpbNeedDel);
- }
- /************************************************************************/
- /*
- 函数:FillPhotoType
- 描述:填充类型列表
- 参数:
- IN const LPSPICKUPINFO lp 取件信息
- 返回:
- */
- /************************************************************************/
- void CPhotoDelMgr::FillPhotoType(IN const LPSPICKUPINFO lp)
- {
- m_PhotoTypeList.DeleteAllItems();
- if(lp == NULL)
- return;
- int nRow = 0;
- nRow = m_PhotoTypeList.InsertItem(LVIF_TEXT|LVIF_PARAM, 0, _T("原片"),0,0,2,0);
- m_PhotoTypeList.SetItemText(nRow, 1, ((lp->bOpdel == TRUE)?_T("已删"):_T("未删")));
- m_PhotoTypeList.SetCheck(nRow, lp->bOpNeedDel);
- ++nRow;
- m_PhotoTypeList.InsertItem(LVIF_TEXT|LVIF_PARAM, nRow, _T("初修"),0,0,2,0);
- m_PhotoTypeList.SetItemText(nRow, 1, ((lp->bEpdel == TRUE)?_T("已删"):_T("未删")));
- m_PhotoTypeList.SetCheck(nRow, lp->bEpNeedDel);
- ++nRow;
- m_PhotoTypeList.InsertItem(LVIF_TEXT|LVIF_PARAM, nRow, _T("精修"),0,0,2,0);
- m_PhotoTypeList.SetItemText(nRow, 1, ((lp->bFpdel == TRUE)?_T("已删"):_T("未删")));
- m_PhotoTypeList.SetCheck(nRow, lp->bFpNeedDel);
- ++nRow;
- m_PhotoTypeList.InsertItem(LVIF_TEXT|LVIF_PARAM, nRow, _T("设计"),0,0,2,0);
- m_PhotoTypeList.SetItemText(nRow, 1, ((lp->bDpdel == TRUE)?_T("已删"):_T("未删")));
- m_PhotoTypeList.SetCheck(nRow, lp->bDpNeedDel);
- ++nRow;
- m_PhotoTypeList.InsertItem(LVIF_TEXT|LVIF_PARAM, nRow, _T("原片备份"),0,0,2,0);
- m_PhotoTypeList.SetItemText(nRow, 1, ((lp->bOpbdel == TRUE)?_T("已删"):_T("未删")));
- m_PhotoTypeList.SetCheck(nRow, lp->bOpbNeedDel);
- ++nRow;
- m_PhotoTypeList.InsertItem(LVIF_TEXT|LVIF_PARAM, nRow, _T("初修备份"),0,0,2,0);
- m_PhotoTypeList.SetItemText(nRow, 1, ((lp->bEpbdel == TRUE)?_T("已删"):_T("未删")));
- m_PhotoTypeList.SetCheck(nRow, lp->bEpbNeedDel);
- ++nRow;
- m_PhotoTypeList.InsertItem(LVIF_TEXT|LVIF_PARAM, nRow, _T("精修备份"),0,0,2,0);
- m_PhotoTypeList.SetItemText(nRow, 1, ((lp->bFpbdel == TRUE)?_T("已删"):_T("未删")));
- m_PhotoTypeList.SetCheck(nRow, lp->bFpbNeedDel);
- ++nRow;
- m_PhotoTypeList.InsertItem(LVIF_TEXT|LVIF_PARAM, nRow, _T("设计备份"),0,0,2,0);
- m_PhotoTypeList.SetItemText(nRow, 1, ((lp->bDpbdel == TRUE)?_T("已删"):_T("未删")));
- m_PhotoTypeList.SetCheck(nRow, lp->bDpbNeedDel);
- }
- /************************************************************************/
- /*
- 函数:GetTimeField
- 描述:获取日期限制条件
- 参数:
- OUT CString& strField 输出条件
- 返回:
- */
- /************************************************************************/
- int CPhotoDelMgr::GetTimeField(OUT CString& strField)
- {
- CTime startTime, endTime, currTime;
- CString strStart(_T("")), strEnd(_T(""));
- m_StartTime.GetTime(startTime);
- strStart = startTime.Format(_T("%Y-%m-%d"));
- m_EndTime.GetTime(endTime);
- strEnd = endTime.Format(_T("%Y-%m-%d"));
- currTime = CTime::GetCurrentTime();
- if(startTime > currTime || endTime > currTime)
- {
- MessageBox(_T("设置的日期不能比当前大"));
- return 0;
- }
- if(startTime > endTime)
- {
- MessageBox(_T("起始日期不能比结束日期"));
- return 0;
- }
- strField = _T("(taketime>='") + strStart + _T("' and taketime<='") + strEnd + _T("')");
- return 1;
- }
- /************************************************************************/
- /*
- 函数:CleareLog
- 描述:清除
- 参数:
- N std::vector<LPSPICKUPINFO>& vLog 清除已取件集
- 返回:
- */
- /************************************************************************/
- void CPhotoDelMgr::CleareLog(IN std::vector<LPSPICKUPINFO>& vLog)
- {
- std::vector<LPSPICKUPINFO>::iterator iter = vLog.begin();
- for(;iter != vLog.end();)
- {
- if((*iter) != NULL)
- delete (*iter);
- ++iter;
- }
- vLog.clear();
- }
- /************************************************************************/
- /*
- 函数:LoadDelPhotoModule
- 描述:加载删除管理模块
- 参数:
- IN HINSTANCE hInstance dll实例句柄
- 返回:1成功,0失败
- */
- /************************************************************************/
- int CPhotoDelMgr::LoadDelPhotoModule(IN HINSTANCE hInstance)
- {
- if(hInstance == NULL)
- return 0;
- HRESULT hr = NULL;
- if(hInstance && m_pFactory && m_pInterface)
- return 1;
- GetClassDelFileObject getDelFileObj = NULL;
- getDelFileObj = (GetClassDelFileObject)GetProcAddress(hInstance, "GetClassDelFileObject");
- if(getDelFileObj == NULL)
- {
- OutputDebugString(_T("打开GetClassDelFileObject失败\n"));
- return 0;
- }
- if(m_pFactory == NULL)
- {
- hr = getDelFileObj(CLSID_SC_DELFILESINTERFACE, IID_IClassFactory, (void**)&m_pFactory);
- if(FAILED(hr))
- {
- OutputDebugString(_T("获取CSC_DelfilesFactory指针失败\n"));
- return 0;
- }
- }
- if(m_pInterface == NULL)
- {
- hr = m_pFactory->CreateInstance(NULL, IID_IUnknown, (void**)&m_pInterface);
- if(FAILED(hr))
- {
- OutputDebugString(_T("创建ISC_DelFilesInterface失败\n"));
- m_pFactory->Release();
- return 0;
- }
- }
- return 1;
- }
- /************************************************************************/
- /*
- 函数:OnBnClickedSetAutodelBtn
- 描述:设置自动删除
- 参数:
- 返回:1成功,0失败
- */
- /************************************************************************/
- void CPhotoDelMgr::OnBnClickedSetAutodelBtn()
- {
- // TODO: 在此添加控件通知处理程序代码
- }
- /************************************************************************/
- /*
- 函数:OnBnClickedRefreshBtn
- 描述:刷新信息
- 参数:
- 返回:1成功,0失败
- */
- /************************************************************************/
- void CPhotoDelMgr::OnBnClickedRefreshBtn()
- {
- // TODO: 在此添加控件通知处理程序代码
- LoadListData();
- FillData();
- }
- /************************************************************************/
- /*
- 函数:OnNMClickDeltypeList
- 描述:点击取件列表
- 参数:
- 返回:
- */
- /************************************************************************/
- void CPhotoDelMgr::OnNMClickDelinfoList(NMHDR *pNMHDR, LRESULT *pResult)
- {
- LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
- // TODO: 在此添加控件通知处理程序代码
- m_PhotoTypeList.DeleteAllItems();
- if(pNMItemActivate->iItem != -1)
- {
- //选取才显示相片类型
- CString strDomain = m_DelList.GetItemText(pNMItemActivate->iItem, 1);
- CString strOrder = m_DelList.GetItemText(pNMItemActivate->iItem, 2);
-
- std::vector<LPSPICKUPINFO>::iterator it = m_vPickupLog.begin();
- for(;it != m_vPickupLog.end();)
- {
- if((*it) != NULL && (*it)->bTakestatus && (*it)->strBranchid == strDomain && (*it)->strOrder == strOrder)
- {
- m_lpCurrSel = (*it);
- FillPhotoType(m_lpCurrSel);
- break;
- }
- ++it;
- }
- }
- else
- m_lpCurrSel = NULL;
- if(m_lpCurrSel == NULL)
- {
- *pResult = 0;
- return;
- }
- //判断是否点击在listctrl的checkbox上
- DWORD dwPos = GetMessagePos();
- CPoint point(LOWORD(dwPos), HIWORD(dwPos));
- m_DelList.ScreenToClient(&point);
- LVHITTESTINFO lvinfo;
- lvinfo.pt = point;
- lvinfo.flags = LVHT_ABOVE;
- UINT nFlag;
- int nItem = m_DelList.HitTest(point, &nFlag);
- //判断是否点在checkbox上
- if(nFlag == LVHT_ONITEMSTATEICON)
- {
- //选取才显示相片类型
- BOOL bFind = FALSE;
- std::vector<LPSPICKUPINFO>::iterator iter = m_vCurrSelLog.begin();
- for(;iter != m_vCurrSelLog.end();)
- {
- //是否已存在当前选择并且勾选的记录集
- if(m_lpCurrSel->strBranchid == (*iter)->strBranchid && m_lpCurrSel->strOrder == (*iter)->strOrder)
- {
- //存在不添加
- bFind = TRUE;
- break;
- }
- ++iter;
- }
- //非为勾选
- if(!m_DelList.GetCheck(pNMItemActivate->iItem))
- {
- //勾选上,数组里没找到才添加
- if(!bFind)
- m_vCurrSelLog.push_back(m_lpCurrSel);
- }
- else
- {
- //去掉勾选,同时在当前选择数组里删除
- if(bFind)
- m_vCurrSelLog.erase(iter);
- }
- }
- *pResult = 0;
- }
- /************************************************************************/
- /*
- 函数:OnNMClickDeltypeList
- 描述:点击类型列表
- 参数:
- 返回:
- */
- /************************************************************************/
- void CPhotoDelMgr::OnNMClickDeltypeList(NMHDR *pNMHDR, LRESULT *pResult)
- {
- LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
- // TODO: 在此添加控件通知处理程序代码
- if(!m_lpCurrSel)
- {
- *pResult = 0;
- return;
- }
- //判断是否点击在listctrl的checkbox上
- DWORD dwPos = GetMessagePos();
- CPoint point(LOWORD(dwPos), HIWORD(dwPos));
- m_PhotoTypeList.ScreenToClient(&point);
- LVHITTESTINFO lvinfo;
- lvinfo.pt = point;
- lvinfo.flags = LVHT_ABOVE;
- UINT nFlag;
- int nItem = m_PhotoTypeList.HitTest(point, &nFlag);
- //判断是否点在checkbox上
- if(nFlag == LVHT_ONITEMSTATEICON)
- {
- BOOL bDeled = FALSE;
- //设置是否需要删除
- BOOL bNeedDel = !m_PhotoTypeList.GetCheck(pNMItemActivate->iItem);
- int nType = pNMItemActivate->iItem + 1;
- switch(nType)
- {
- case 1:
- //勾选了已删除过的相片类型无效
- if(bNeedDel && m_lpCurrSel->bOpdel)
- bDeled = TRUE;
- else
- m_lpCurrSel->bOpNeedDel = bNeedDel;
- break;
- case 2:
- if(bNeedDel && m_lpCurrSel->bEpdel)
- bDeled = TRUE;
- else
- m_lpCurrSel->bEpNeedDel = bNeedDel;
- break;
- case 3:
- if(bNeedDel && m_lpCurrSel->bFpdel)
- bDeled = TRUE;
- else
- m_lpCurrSel->bFpNeedDel = bNeedDel;
- break;
- case 4:
- if(bNeedDel && m_lpCurrSel->bDpdel)
- bDeled = TRUE;
- else
- m_lpCurrSel->bDpNeedDel = bNeedDel;
- break;
- case 5:
- if(bNeedDel && m_lpCurrSel->bOpbdel)
- bDeled = TRUE;
- else
- m_lpCurrSel->bOpbNeedDel = bNeedDel;
- break;
- case 6:
- if(bNeedDel && m_lpCurrSel->bEpbdel)
- bDeled = TRUE;
- else
- m_lpCurrSel->bEpbNeedDel = bNeedDel;
- break;
- case 7:
- if(bNeedDel && m_lpCurrSel->bFpbdel)
- bDeled = TRUE;
- else
- m_lpCurrSel->bFpbNeedDel = bNeedDel;
- break;
- case 8:
- if(bNeedDel && m_lpCurrSel->bDpbdel)
- bDeled = TRUE;
- else
- m_lpCurrSel->bDpbNeedDel = bNeedDel;
- break;
- }
- if(bDeled)
- {
- m_PhotoTypeList.SetCheck(pNMItemActivate->iItem, TRUE);
- MessageBox(_T("此选项的相片已删"));
- }
- }
- *pResult = 0;
- }
- /************************************************************************/
- /*
- 函数:AddDelData
- 描述:添加删除数据
- 参数:
- 返回:
- */
- /************************************************************************/
- void CPhotoDelMgr::AddDelData(IN LPCTSTR lpDomain, IN LPCTSTR lpOrder, IN const BYTE nType)
- {
- if(m_pInterface == NULL)
- return;
- if(lpDomain == NULL || (_tcscmp(lpDomain, _T("")) == 0) || lpOrder == NULL || (_tcscmp(lpOrder, _T("")) == 0))
- return;
- if(nType > 4)
- {
- std::vector<LPSBAKDIRINFO>::iterator it = m_vBackupDirInfos.begin();
- for(;it != m_vBackupDirInfos.end(); ++it)
- {
- LPSBAKDIRINFO lp = (*it);
- if(lp == NULL)
- continue;
-
- if(lp->byPhotoType != nType)
- continue;
- TCHAR szDir[MAX_PATH] = {0};
- memset(szDir, 0, sizeof(TCHAR)*MAX_PATH);
- #ifndef ENTERPRISE_VERSION
- if( _tcscmp(lpDomain, g_sdomain) == 0)
- _stprintf(szDir, _T("%s\\%s"), lp->strDir, lpOrder);
- #else
- //集团版
- //域名相同为本店订单,不同为分店
- if( _tcscmp(lpDomain, g_sdomain) == 0)
- _stprintf(szDir, _T("%s\\%s"), lp->strDir, lpOrder);
- else
- _stprintf(szDir, _T("%s\\%s\\%s"), lp->strDir, lpDomain, lpOrder);
- #endif //#ifndef ENTERPRISE_VERSION
- m_pInterface->AddDelData(lpDomain, lpOrder, szDir, nType, TRUE);
- }
- }
- else
- {
- //获取共享目录
- vector<TblNetShareInfo*>::iterator it = CBranchInfo::GetInstance()->m_TblNetShareInfo.begin();
- for(; it != CBranchInfo::GetInstance()->m_TblNetShareInfo.end(); it++)
- {
- TblNetShareInfo* p = (*it);
- if(p != NULL)
- {
- if (p->byPhotoType != nType)
- continue;
- if(_tcscmp(_T(""), p->szBranchId) == 0)
- continue;
- TCHAR szDir[MAX_PATH] = {0};
- memset(szDir, 0, sizeof(TCHAR)*MAX_PATH);
- #ifndef ENTERPRISE_VERSION
- if( _tcscmp(lpDomain, p->szBranchId) != 0)
- continue;
- _stprintf(szDir, _T("%s\\%s"), p->szShareDirectory, lpOrder);
- #else
- //集团版
- //域名相同为本店订单,不同为分店
- if( _tcscmp(lpDomain, p->szBranchId) == 0)
- _stprintf(szDir, _T("%s\\%s"), p->szShareDirectory, lpOrder);
- else
- _stprintf(szDir, _T("%s\\%s\\%s"), p->szShareDirectory, lpDomain, lpOrder);
- #endif //#ifndef ENTERPRISE_VERSION
- m_pInterface->AddDelData(lpDomain, lpOrder, szDir, nType, TRUE);
- }
- }
- }
- }
- /************************************************************************/
- /*
- 函数:GetBranchInfo
- 描述:获取分店信息
- 参数:
- OUT CArray<CStringArray, CStringArray>& arr 返回分店组
- 返回:
- */
- /************************************************************************/
- void CPhotoDelMgr::GetBranchInfo(OUT CArray<CStringArray, CStringArray>& arr)
- {
- #ifndef ENTERPRISE_VERSION
- arr.SetSize(1, 1);
- arr.ElementAt(0).Add(g_sdomain);
- arr.ElementAt(0).Add(g_localname);
- //添加4个空字符只是匹配branchinfo.dat读以的格式
- arr.ElementAt(0).Add(_T(""));
- arr.ElementAt(0).Add(_T(""));
- arr.ElementAt(0).Add(_T(""));
- arr.ElementAt(0).Add(_T(""));
- #else
- try
- {
- CFile fp;
- CString path = g_mainpath + _T("\\branchinfo.dat");
- if (::PathFileExists(path) == 0)
- return;
- fp.Open(path, CFile::modeRead);
- DWORD leng = fp.GetLength();
- if (leng < sizeof(DWORD) * 2)
- {
- fp.Close();
- return;
- }
- DWORD flag = 0;
- //fp.Seek(-sizeof(DWORD), CFile::end);
- fp.Seek(-(int)sizeof(DWORD), CFile::end);
- fp.Read(&flag, sizeof(DWORD));
- if (flag != 889900)
- {
- fp.Close();
- return;
- }
- fp.SeekToBegin();
- DWORD arraysize;
- fp.Read(&arraysize, sizeof(DWORD));
- if (arraysize > 20)
- {
- fp.Close();
- return;
- }
- BYTE *pData = new BYTE[leng - sizeof(DWORD)];
- fp.Read(pData, leng - sizeof(DWORD));
- fp.Close();
- CMemFile memfile;
- memfile.Attach(pData, leng - sizeof(DWORD));
- CArchive ar(&memfile, CArchive::load);
- arr.SetSize(arraysize, 1);
- for (int ii = 0; ii < arr.GetSize(); ii++)
- arr.ElementAt(ii).Serialize(ar);
- ar.Close();
- memfile.Detach();
- delete[]pData;
- }
- catch (...)
- {
- }
- #endif
- }
- /************************************************************************/
- /*
- 函数:GetBranchInfo
- 描述:获取分店信息
- 参数:
- IN CArray<CStringArray, CStringArray>& arr, 分店组
- IN const CString& strDomain 域名
- 返回:CString 店名
- */
- /************************************************************************/
- CString CPhotoDelMgr::GetBranchNameForDomain(IN CArray<CStringArray, CStringArray>* pArr, IN const CString& strDomain)
- {
- if(pArr == NULL)
- return _T("");
- for(int i=0; i<pArr->GetSize(); i++)
- {
- if(pArr->ElementAt(i).ElementAt(0) == strDomain)
- return pArr->ElementAt(i).ElementAt(1);
- }
- return _T("");
- }
- /************************************************************************/
- /*
- 函数:GetBranchInfo
- 描述:获取分店信息
- 参数:
- IN CArray<CStringArray, CStringArray>& arr, 分店组
- IN const CString& strName 店名
- 返回:CString 域名
- */
- /************************************************************************/
- CString CPhotoDelMgr::GetDomainForBranchName(IN CArray<CStringArray, CStringArray>* pArr, IN const CString& strName)
- {
- if(pArr == NULL)
- return _T("");
- for(int i=0; i<pArr->GetSize(); i++)
- {
- if(pArr->ElementAt(i).ElementAt(1) == strName)
- return pArr->ElementAt(i).ElementAt(1);
- }
- return _T("");
- }
- /************************************************************************/
- /*
- 函数:OpenDb
- 描述:连接数据库
- 参数:
- IN LPCTSTR lpConnect 连接数据库字串
- 返回:1成功,0失败
- */
- /************************************************************************/
- int CPhotoDelMgr::OpenDb(IN LPCTSTR lpConnect)
- {
- #ifdef _UNICODE
- if(lpConnect == NULL || wcscmp(lpConnect, _T("")) == 0)
- return 0;
- #else
- if(lpConnect == NULL || strcmp(lpConnect, "") == 0)
- return 0;
- #endif //#ifdef _UNICODE
- m_lock.lock();
- if(m_pdb)
- {
- m_lock.unlock();
- return 1;
- }
-
- #ifdef _UNICODE
- wcscpy(m_szConnect, lpConnect);
- #else
- strcpy(m_szConnect, lpConnect);
- #endif //#ifdef _UNICODE
- if (m_pdb == NULL)
- {
- try
- {
- m_pdb = new CDatabase;
- m_pdb->OpenEx(m_szConnect, CDatabase::noOdbcDialog);
- }
- catch (CDBException* e)
- {
- //m_strConnectErrorDescriptor = e->m_strError;
- m_lock.unlock();
- delete m_pdb;
- m_pdb = NULL;
- //OutputDebugString(e->m_strError);
- //LOG4C_NO_FILENUM((LOG_NOTICE,"打开数据库失败:%s",CW2A(e->m_strError)));
- #ifdef _DEBUG
- e->ReportError();
- #endif //#ifdef _DEBUG
- e->Delete();
- return FALSE;
- }
- }
- m_lock.unlock();
- return 1;
- }
- /************************************************************************/
- /*
- 函数:DelFinish
- 描述:删除完成回调函数
- 参数:
- LPVOID, 回调传回值
- LPVOID,
- LPVOID,
- LPVOID,
- LPVOID
- 返回:1成功,0失败
- */
- /************************************************************************/
- int CPhotoDelMgr::DelFinish(IN LPVOID lpParam1, IN LPVOID lpParam2, IN LPVOID lpParam3, IN LPVOID lpParam4, IN LPVOID lpParam5, IN LPVOID lpParam6)
- {
- AfxSetResourceHandle(g_Instance);
- return g_pPhotoDelMgr->DelFinishPro(lpParam1, lpParam2, lpParam3, lpParam4, lpParam5, lpParam6);
- }
- /************************************************************************/
- /*
- 函数:DelFinishPro
- 描述:删除完成回调函数
- 参数:
- LPVOID, 回调传回值
- LPVOID,
- LPVOID,
- LPVOID,
- LPVOID
- 返回:1成功,0失败
- */
- /************************************************************************/
- int CPhotoDelMgr::DelFinishPro(IN LPVOID lpParam1, IN LPVOID lpParam2, IN LPVOID lpParam3, IN LPVOID lpParam4, IN LPVOID lpParam5, IN LPVOID lpParam6)
- {
- BYTE byType = *((BYTE*)lpParam1);
- BOOL bSuccess = *((BOOL*)lpParam5);
- TCHAR szDomain[64] = {0};
- TCHAR szOrderNum[64] = {0};
- TCHAR szDir[MAX_PATH] = {0};
- _stprintf(szDomain, _T("%s") , (TCHAR*)lpParam2);
- _stprintf(szOrderNum, _T("%s") , (TCHAR*)lpParam3);
- _stprintf(szDir, _T("%s") , (TCHAR*)lpParam4);
- CString strShow = _T("");
- if(!bSuccess)
- {
- strShow.Format(_T("%s不存在订单%s,删除失败\n"), szDir, szOrderNum);
- SendMessage(MSG_SHOWPROMPTING, (WPARAM)&strShow, 0);
- return 0;
- }
- CString updateSql = _T("");
- switch ( byType )
- {
- case 1:
- updateSql.Format(_T("update [PhotoManager] set [opdel] = 1,[opdeltm] = getdate() where [order] = '%s' and [branchid] = '%s'"), szOrderNum, szDomain);
- break;
- case 2:
- updateSql.Format(_T("update [PhotoManager] set [epdel] = 1,[epdeltm] = getdate() where [order] = '%s' and [branchid] = '%s'"), szOrderNum, szDomain);
- break;
- case 3:
- updateSql.Format(_T("update [PhotoManager] set [fpdel] = 1,[fpdeltm] = getdate() where [order] = '%s' and [branchid] = '%s'"), szOrderNum, szDomain);
- break;
- case 4:
- updateSql.Format(_T("update [PhotoManager] set [dpdel] = 1,[dpdeltm] = getdate() where [order] = '%s' and [branchid] = '%s'"), szOrderNum, szDomain);
- break;
- //////////////////////////////////////////////////////////////////////////
- case 5:
- updateSql.Format(_T("update [PhotoManager] set [opbdel] = 1,[opbdeltm] = getdate() where [order] = '%s' and [branchid] = '%s'"), szOrderNum, szDomain);
- break;
- case 6:
- updateSql.Format(_T("update [PhotoManager] set [epbdel] = 1,[epbdeltm] = getdate() where [order] = '%s' and [branchid] = '%s'"), szOrderNum, szDomain);
- break;
- case 7:
- updateSql.Format(_T("update [PhotoManager] set [fpbdel] = 1,[fpbdeltm] = getdate() where [order] = '%s' and [branchid] = '%s'"), szOrderNum, szDomain);
- break;
- case 8:
- updateSql.Format(_T("update [PhotoManager] set [dpbdel] = 1,[dpbdeltm] = getdate() where [order] = '%s' and [branchid] = '%s'"), szOrderNum, szDomain);
- break;
- default:
- break;
- }
- try
- {
- m_lock.lock();
- //更新相片管理表
- m_pdb->ExecuteSQL(updateSql);
- }
- catch (CDBException * e)
- {
- m_lock.unlock();
- WriteError(updateSql + "操作数据库失败" + e->m_strError);
- #ifdef _DEBUG
- e->ReportError();
- #endif
- e->Delete();
- return 0;
- }
- m_lock.unlock();
- //更新列表
- std::vector<LPSPICKUPINFO>::iterator it = m_vCurrSelLog.begin();
- for(;it != m_vCurrSelLog.end();)
- {
- LPSPICKUPINFO lp = (*it);
- if(lp != NULL)
- {
- if(lp->strBranchid.CompareNoCase(szDomain) == 0 && lp->strOrder.CompareNoCase(szOrderNum) == 0)
- {
- strShow.Format(_T("%s的%s订单,已删除\n"), szDir, szOrderNum);
- SendMessage(MSG_SHOWPROMPTING, (WPARAM)&strShow, 0);
- switch(byType)
- {
- case 1:
- lp->bOpdel = TRUE;
- lp->bOpNeedDel = FALSE;
- break;
- case 2:
- lp->bEpdel = TRUE;
- lp->bEpNeedDel = FALSE;
- break;
- case 3:
- lp->bFpdel = TRUE;
- lp->bFpNeedDel = FALSE;
- break;
- case 4:
- lp->bDpdel = TRUE;
- lp->bDpNeedDel = FALSE;
- break;
- case 5:
- lp->bOpbdel = TRUE;
- lp->bOpbNeedDel = FALSE;
- break;
- case 6:
- lp->bEpbdel = TRUE;
- lp->bEpbNeedDel = FALSE;
- break;
- case 7:
- lp->bFpbdel = TRUE;
- lp->bFpbNeedDel = FALSE;
- break;
- case 8:
- lp->bDpbdel = TRUE;
- lp->bDpbNeedDel = FALSE;
- break;
- }
- FillPhotoType(lp);
- int nCount = m_DelList.GetItemCount();
- for(int i=0; i<nCount; i++)
- {
- if(m_DelList.GetCheck(i) == TRUE)
- {
- CString strDomain = m_DelList.GetItemText(i, 1);
- CString strOrder = m_DelList.GetItemText(i, 2);
- if(strDomain.CompareNoCase(szDomain) == 0 && strOrder.CompareNoCase(szOrderNum) == 0)
- {
- m_DelList.SetCheck(i, FALSE);
- break;
- }
- }
- }
- break;
- }
- }
- ++it;
- }
- return 1;
- }
- /************************************************************************/
- /*
- 函数:GetShareBackupDir
- 描述:获取备份共享目录
- 参数:
- 返回:
- */
- /************************************************************************/
- void CPhotoDelMgr::GetShareBackupDir()
- {
- ClearBakDirInfo();
- CAutoLock autolock(&m_lock);
- try
- {
- CRstversion rsSt;
- rsSt.m_pDatabase = m_pdb;
- rsSt.Open();
- if (!rsSt.IsEOF())
- {
- CString strPath = _T("");
- LPSBAKDIRINFO lp = new SBAKDIRINFO;
- lp->byPhotoType = 5;
- MakeBackupDir(lp->byPhotoType, rsSt.m_bakserver1, strPath);
- lp->strDir = strPath;
- m_vBackupDirInfos.push_back(lp);
- lp = new SBAKDIRINFO;
- lp->byPhotoType = 6;
- MakeBackupDir(lp->byPhotoType, rsSt.m_bakserver2, strPath);
- lp->strDir = strPath;
- m_vBackupDirInfos.push_back(lp);
- lp = new SBAKDIRINFO;
- lp->byPhotoType = 7;
- MakeBackupDir(lp->byPhotoType, rsSt.m_bakserver3, strPath);
- lp->strDir = strPath;
- m_vBackupDirInfos.push_back(lp);
- lp = new SBAKDIRINFO;
- lp->byPhotoType = 8;
- MakeBackupDir(lp->byPhotoType, rsSt.m_bakserver4, strPath);
- lp->strDir = strPath;
- m_vBackupDirInfos.push_back(lp);
- }
- rsSt.Close();
- }
- catch (CException* e)
- {
- TCHAR szError[1024] = {0};
- e->GetErrorMessage(szError, 1024);
- CString strError = _T("");
- strError.Format(_T("获取备份共享目录:%s"), szError);
- WriteLogin(strError);
- e->Delete();
- }
- }
- void CPhotoDelMgr::ClearBakDirInfo()
- {
- std::vector<LPSBAKDIRINFO>::iterator it = m_vBackupDirInfos.begin();
- for(; it != m_vBackupDirInfos.end(); ++it)
- {
- if((*it) != NULL)
- delete (*it);
- }
- m_vBackupDirInfos.clear();
- }
- /************************************************************************/
- /*
- 函数:MakeBackupDir
- 描述:生成备份目录
- 参数:
- IN CONST CString& str, // 可能是共享计算机名/目录/ip地址
- OUT CString& strPath // 返回备份目录
- 返回:
- */
- /************************************************************************/
- void CPhotoDelMgr::MakeBackupDir(IN CONST int nType, IN CONST CString& str, OUT CString& strPath)
- {
- if(str == _T(""))
- return;
- CString strTemp = str;
- strTemp.MakeLower();
- CString strFolderName = _T("");
- #ifdef CHILD_VERSION
- switch(nType)
- {
- case 5:
- strFolderName = _T("客户原片备份(儿童管理软件)$");
- break;
- case 6:
- strFolderName = _T("修好的片备份(儿童管理软件)$");
- break;
- case 7:
- strFolderName = _T("精修好的片备份(儿童管理软件)$");
- break;
- case 8:
- strFolderName = _T("设计好的片备份(儿童管理软件)$");
- break;
- }
- #else
- switch(nType)
- {
- case 5:
- strFolderName = _T("客户原片备份(管理软件)$");
- break;
- case 6:
- strFolderName = _T("修好的片备份(管理软件)$");
- break;
- case 7:
- strFolderName = _T("精修好的片备份(管理软件)$");
- break;
- case 8:
- strFolderName = _T("设计好的片备份(管理软件)$");
- break;
- }
- #endif
-
- char szServer[50] = {0};
- DWORD leng = 50;
- ::GetComputerName(szServer, &leng);
- CString strMainName = szServer;
- strMainName.MakeLower();
- if(strTemp.Find(strFolderName) != -1) //目录
- {
- if(strTemp.Find(_T(":\\")) != -1 || strTemp.Find(_T("\\\\")) != -1) // 绝对路径: D:\...\... (相对: \\...\...)
- strPath = strTemp;
- }
- else if(strTemp.CompareNoCase(strMainName) == 0) //是否为计算机名
- {
- strMainName.TrimLeft(_T("\\\\"));
- strMainName.TrimRight(_T("\\"));
- strPath = _T("\\\\") + strMainName + _T("\\") + strFolderName;
- }
- else //ip地址
- {
- if(strTemp.GetLength() <= 16)
- {
- CString strip = strTemp;
- int nCount = 0;
- while(1)
- {
- int nPos = strip.Find(_T("."));
- if(nPos == -1)
- break;
- strip = strip.Right((strip.GetLength() - 1) - nPos);
- if(strip == _T(""))
- break;
- ++nCount;
- }
- if(nCount == 3)
- strTemp = strPath;
- }
- }
- if(strPath != _T(""))
- strPath.MakeLower();
- }
- //提示信息
- LRESULT CPhotoDelMgr::ShowPrompting(WPARAM wParam, LPARAM lParam)
- {
- int nShowType = lParam;
- CString strMSG = *(CString*)wParam;
- static CHARFORMAT cf;
- cf.cbSize = sizeof(CHARFORMAT);
- static COleDateTime oletime;
- oletime=COleDateTime::GetCurrentTime();
- strMSG.Format(_T("%s: #%s.\r"),oletime.Format(_T("%Y/%m/%d %H:%M:%S")),strMSG);
- //strMSG += ".\r";
- if ( nShowType == 1) // 错误信息提示
- {
- // 显示前,设置字体颜色;
- //m_EditShow.GetDefaultCharFormat(cf);
- m_DelTips.GetDefaultCharFormat(cf);
- cf.dwMask=CFM_COLOR|CFM_FACE|CFM_SIZE|CFM_BOLD;
- cf.dwEffects = (unsigned long)~(CFE_UNDERLINE | CFE_BOLD | CFE_AUTOCOLOR);
- //cf.dwEffects ^= CFE_AUTOCOLOR;
- cf.crTextColor = RGB(255, 0, 0);
- cf.yHeight = 180;
- memset(cf.szFaceName, 0, LF_FACESIZE);
- // memcpy(cf.szFaceName, "楷体_GB2312", sizeof("楷体_GB2312"));
- memcpy(cf.szFaceName, _T("宋体"), sizeof(_T("宋体")));
- m_DelTips.SetSelectionCharFormat(cf);
- m_DelTips.SetSel(-1,-1);
- m_DelTips.ReplaceSel(strMSG);
- }
- else // 成功信息提示;
- {
- m_DelTips.GetDefaultCharFormat(cf);
- cf.dwMask=CFM_COLOR|CFM_FACE|CFM_SIZE|CFM_BOLD;
- cf.dwEffects = (unsigned long)~(CFE_UNDERLINE | CFE_BOLD | CFE_AUTOCOLOR);
- //cf.dwEffects ^= CFE_AUTOCOLOR;
- cf.crTextColor = RGB(0, 0, 255);
- cf.yHeight = 180;
- memset(cf.szFaceName, 0, LF_FACESIZE);
- // memcpy(cf.szFaceName, "楷体_GB2312", sizeof("楷体_GB2312"));
- memcpy(cf.szFaceName, _T("宋体"), sizeof(_T("宋体")));
- m_DelTips.SetSelectionCharFormat(cf);
- m_DelTips.SetSel(-1,-1);
- m_DelTips.ReplaceSel(strMSG);
- }
- m_DelTips.PostMessage(WM_VSCROLL, SB_BOTTOM,0);
- return 0;
- }
|