1、60
海昌医用塑胶瓶黑点检测软件V1.0
#ifndef TaskHandleH
#define TaskHandleH
#include
2、tcall GetErrorCode(AnsiString RetCode, int &nErrCode); virtual int fastcall GetUserHead(const char *pBuf,int nCmd); //virtual int fastcall ParsePack(char *pPack, unsigned int nPackLen)= ; int m_nErrCode; char m_szIVRSerial[]; TACTUser *p
3、UserInfo; TACTHead *pHeadInfo; int nDime; }; //- //enum {SelfSingel=, RandomSingle=, Multle=, Mixture=}; class TInvestHandler : public TTaskHandler { //virtual int fastcall GenerateNum(int nCount, char *pNum){return ;}
4、 //virtual int fastcall CheckNum(int nType, char *pNum, int &nCount){return ;} protected: fastcall TInvestHandler(){}; virtual fastcall ~TInvestHandler(){}; //virtual int fastcall Factorial(int nNum); //virtual int fastcall Permutation
5、int nUpNum, int nDownNum); / virtual int fastcall Combination(int nUpNum, int nDownNum); virtual int fastcall ParsePack(char *pPack, unsigned int nPackLen){return ;} virtual int CheckMultiNum(char *pNum, unsigned int nMin,unsigned int nMax,
6、 unsigned int nHigh, int &nCount); virtual int CheckSingleNum(char *pNum, unsigned int nMin, unsigned int nMax); virtual int CheckMixtureNum(char *pNum, unsigned int nMin, unsigned int nMax, unsigned int nHigh, int &nCount);
7、 virtual int CheckMixtureNumD(char *pNum, unsigned int nMin, unsigned int nMax, unsigned int nHigh, int &nCount,int Times); int CheckSingleDNum(char *pNum, unsigned int nDime); int CheckMultiSingleDNum(char *pNum, unsigned int nMin, unsigned int nMax)
8、 virtual int SortedNumber(char *pNum); TACTInvestInfo *pInvestInfo; int m_nMoney; AnsiString m_asIssue; int m_nPlay; int m_nSaleMode; int m_nInvestMode; public: _di_IACTSVC SOAPService; virtual int fastcall Run(char *
9、pBuf){return ;} virtual int fastcall Invest(){return ;} class TQueryHandler : public TTaskHandler { virtual int Query(char *pBuf){return ;} protected: //virtual int fastcall GetErrorCode(AnsiString RetCode, int &pErrCode); public: //TACTUser *pUserInfo; //
10、TACTHead *pHeadInfo; _di_IACTSVC SOAPService; fastcall TQueryHandler(){}; virtual fastcall ~TQueryHandler(){}; } class TMoneyTransHandler : public TTaskHandler { virtual int Transfer(char *pBuf){return ;} protected: //virtual int fastcall GetUserHead(const
11、 char *pBuf, int nCom); //virtual int fastcall GetErrorCode(AnsiString RetCode, char *pErrCode); public: //TACTUser *pUserInfo; //TACTHead *pHeadInfo; _di_IACTSVC SOAPService; fastcall TMoneyTransHandler(){}; virtual fastcall ~TMoneyTransHandler(){};
12、 }; // class TCustomizeHandler : public TTaskHandler { virtual int Customize(char *pBuf); AnsiString m_asServ; int m_nRegType; int m_nSendLimit; public: TSMSUser *pSMUserInfo; TSMSHead *pSMHeadInfo; _di_ISMSSVC SOAPService; fastcall TCu
13、stomizeHandler(); virtual fastcall ~TCustomizeHandler(); virtual int fastcall GetUserHead(const char *pBuf,int nCmd); virtual int fastcall Run(char *pBuf); };class TRegisteHandler : public TTaskHandler { virtual int Registe(char *pBuf){return ;} public: //T
14、ACTUser *pUserInfo; //TACTHead *pHeadInfo; _di_IACTSVC SOAPService; fastcall TRegisteHandler(){}; virtual fastcall ~TRegisteHandler(){}; }; class TQueryAwardBulletin : TQueryHandler { virtual int Query(char *pBuf); AnsiString m_asPlay; AnsiStri
15、ng m_asIssue; int m_nBulletin; int m_nRespType; public: TSMSUser *pSMUserInfo; TSMSHead *pSMHeadInfo; _di_ISMSSVC SOAPService; fastcall TQueryAwardBulletin(); virtual fastcall ~TQueryAwardBulletin(); int fastcall GetUserHead(const char *pBuf,i
16、nt nCmd); virtual int fastcall GetErrorCode(AnsiString RetCode, int &nErrCode); virtual int fastcall Run(char *pBuf); }; clase TInsertSMS { TSMSUser *pSMUserInfo; TSMSHead *pSMHeadInfo; _di_ISMSSVC SOAPService; public: fastcall TInsertSMS(); virtu
17、al fastcall ~TInsertSMS();
int fastcall Run();
*/
#endif
// // TaskHandle.cpp
#pragma hdrstop
#include
18、kHandler :: GetErrorCode(AnsiString RetCode, int &nErrCode) { if (RetCode.SubString(,) == "") { nErrCode = ; return ; } TOraStoredProc *pStoreProc = new TOraStoredProc(NULL); int nRes = ; if (!DataLib->CheckDB()) { nErrCode = ;
19、 delete pStoreProc; return ; } pStoreProc->Active = false; pStoreProc->Session = DataLib->Oracle; pStoreProc->StoredProcName = "Pr_Query_RetCode"; pStoreProc->Params->Clear(); pStoreProc->Params->Add(); pStoreProc-
20、>Params->Items[]->Name = "iTelNum"; pStoreProc->Params->Items[]->DataType = ftString; pStoreProc->Params->Items[]->ParamType = ptInput; pStoreProc->Params->Items[]->AsString = pUserInfo->Phone; pStoreProc->Params->Add(); pStoreProc->Params->It
21、ems[]->Name = "iErrCode"; pStoreProc->Params->Items[]->DataType = ftString; pStoreProc->Params->Items[]->ParamType = ptInput; pStoreProc->Params->Items[]->AsString = RetCode; pStoreProc->Params->Add(); pStoreProc->Params->Items[]->Name =
22、"iCmd"; pStoreProc->Params->Items[]->DataType = ftInteger; pStoreProc->Params->Items[]->ParamType = ptInput; pStoreProc->Params->Items[]->AsInteger = pHeadInfo->Cmd; pStoreProc->Params->Add(); pStoreProc->Params->Items[]->Name = "iSerial";
23、 pStoreProc->Params->Items[]->DataType = ftString; pStoreProc->Params->Items[]->ParamType = ptInput; pStoreProc->Params->Items[]->AsString = pHeadInfo->; pStoreProc->Params->Add(); pStoreProc->Params->Items[]->Name = "oResult"; pStoreProc
24、>Params->Items[]->DataType = ftString; pStoreProc->Params->Items[]->ParamType = ptOutput; pStoreProc->Params->Add(); pStoreProc->Params->Items[]->Name = "oIvrCode"; pStoreProc->Params->Items[]->DataType = ftInteger; pStoreProc->Params->Items[
25、]->ParamType = ptOutput; pStoreProc->Params->Add(); pStoreProc->Params->Items[]->Name = "oVoice"; pStoreProc->Params->Items[]->DataType = ftString; pStoreProc->Params->Items[]->ParamType = ptOutput; try { pStoreProc->Exe
26、cProc(); AnsiString asTmp = pStoreProc->Params->Items[]->AsString; if (asTmp == "") { nErrCode = pStoreProc->Params->Items[]->AsInteger; nRes = ; } } catch(...) { n
27、Res = ; pLog->SysLog(IVRMOD,"TQueryHandler::GetErrorCode", "DataBase", "Error", "Oracle Exception Occurs When Exec Stored Proc"); } if (pStoreProc != NULL) delete pStoreProc; } if (nRes == ) { nErrCode = ; }
28、 return nRes; int fastcall TTaskHandler :: GetUserHead(const char *pBuf,int nCmd) { char szTel[]; char szArea[]; GetWord(pBuf, m_szIVRSerial, , '|'); GetWord(pBuf, szTel, , '|'); GetWord(pBuf, szArea, , '|'); pHeadInfo->Cmd = nCmd; pHeadInfo->Sourc
29、e = IVR; pHeadInfo-> = TSystemState::Instance()->Get(); pUserInfo->Area = szArea; pHeadInfo->Vender = VENDER; pUserInfo->Phone = szTel; return ; int fastcall TInvestHandler :: Combination(int nUpNum, int nDownNum) //组合 { int nRes = ;
30、 int j = ;
if (nDownNum < nUpNum)
return ;
for (int i = nDownNum-nUpNum+; i <= nDownNum; i++)
{
nRes = nRes * i / (j++);
}
return nRes;
}
//-
int TInvestHandler :: CheckSingleNum(char *pNum, unsigned int nMin, unsigned int nMax)
{
std::list
31、mSerial;
list 32、 i++)
{
memcpy(szDigits, pNum+(i*), );
num = atoi(szDigits);
if (num <= )
return ;
if (num <= nMax)
NumSerial.push_back(num);
else
return ;
}
NumSerial.sort();
NumSerial.unique();
if (NumSer 33、ial.size() != nLen)
return ;
i = ;
for (pos=NumSerial.begin(); pos != NumSerial.end(); pos++)
{
sprintf(pNum+(i++)*, "%d", *pos);
}
sprintf(pNum+nLen*,"^");
return ;
}
int TInvestHandler :: CheckSingleDNum(char *pNum, unsigned int nDime) //CheckSi 34、ngleDNum(pNum, )
{
std::list 35、 < )
return ;
if (num <= )
NumSerial.push_back(num);
else
return ;
}
NumSerial.sort();
//NumSerial.unique();
if (NumSerial.size() != nLen)
return ;
i = ;
for (pos=NumSerial.begin(); pos != NumSerial.end() 36、 pos++)
{
sprintf(pNum + i, "%d*", *pos);
i = strlen( pNum );
}
nLen = i - ;
sprintf(pNum+nLen,"^");
return ;
}
//
int TInvestHandler :: CheckMultiNum(char *pNum, unsigned int nMin,
unsigned int nMax, unsigned int nHigh, int 37、 &nCount)
{
std::list 38、 (nLen > nHigh))
return ;
for (i=; i 39、ifdef _TRCLOG
pTrcLogger->WriteLog("TBaseOperation::CheckDBSms","before send sms",aACTHead->,
"","","","","",aACTHead->Cmd,"CheckDBSms");
#endif
lp_HTTPRIO = new THTTPRIO(NULL);
if(aACTCfg.SMSUseURL)
{
lp_ 40、HTTPRIO->URL = aACTCfg.SMSURL;
}
else
{
lp_HTTPRIO->WSDLLocation = aACTCfg.SMSWsdlLocation;
lp_HTTPRIO->Service = aACTCfg.SMSService;
lp_HTTPRIO->Port = aACTCfg.SMSPort;
} _di_ISMSSVC i 41、SMSSvc;
OleCheck(lp_HTTPRIO->QueryInterface(iSMSSvc));
pSMSHead = new TSMSHead;
pSMSUser = new TSMSUser;
pSMSHead-> = aACTHead->;
pSMSHead->Vender = aACTHead->Vender;
pSMSHead->Cmd = SMSSUBMITCMD;
pSMSHead->So 42、urce = aACTCfg.Module;
pSMSHead->SubSys = aACTCfg.SMSSubSys;
pQuery = new TOraQuery(NULL);
pQuery->Session = DataLib->ACTDB;
char strSQL[];
ZeroMemory(strSQL,);
sprintf(strSQL,"select * from tb_sms_info where = : and send 43、flag = ");
pQuery->SQL->Add(strSQL);
pQuery->ParamByName("")->AsString = aACTHead->;
pQuery->Open();
pQuery->First();
pUpdater= new TOraQuery(NULL);
pUpdater->Session = DataLib->ACTDB;
AnsiStrin 44、g aErrorCode = "",aServiceType = "";
int aFeeType = , aFeeValue = ,aReportFlag = ;
while(!pQuery->Eof)
{
pSMSUser->Phone = pQuery->FieldByName("Phone")->AsString;
pSMSUser->Area = pQuery->FieldByName("Area_")->AsString;
45、 iSMSSvc->SmsSubmit(pSMSHead, pSMSUser, aACTCfg.SMSAccessNo,
aACTCfg.SMSInvestServ,,
aFeeType, aFeeValue, aReportFlag, pQuery->FieldByName("SMS")->AsString, aErrorCode);
#ifdef _TRCLOG
pTrcLogge 46、r->WriteLog("TBaseOperation::CheckDBSms","send sms result",aACTHead->,
"","","","","",aACTHead->Cmd,aErrorCode);
#endif
sprintf(strSQL,"update tb_sms_info set SEND_FLAG = where =: and send_order = :Send_order");
pUpdater->SQL->Clea 47、r();
pUpdater->SQL->Add(strSQL);
pUpdater->ParamByName("")->AsString = aACTHead->;
pUpdater->ParamByName("Send_order")->AsInteger = pQuery->FieldByName("Send_order")->AsInteger;
pUpdater->ExecSQL();
pQuery->Next();
48、
}
#ifdef _TRCLOG
pTrcLogger->WriteLog("TBaseOperation::CheckDBSms","after send sms",aACTHead->,
"","","","","",aACTHead->Cmd,aErrorCode);
#endif
}
catch(Exception &e)
{
pErrLogger->WriteLog("TBas 49、eOperation","CheckDBSms",aACTHead->,
"","","","","",SMSSUBMITCMD,e.Message);
} if(lp_HTTPRIO != NULL)
{ lp_HTTPRIO = NULL;
} if(pSMSHead != NULL)
{
delete pSMSHead;
pSMSHead = NULL;
50、 }
if(pSMSUser != NULL)
{ delete pSMSUser;
pSMSUser = NULL;
}
if(pQuery != NULL)
{
delete pQuery;
pQuery = NULL;
}
if(pUpdater != NULL)
{
delete pUpdater;






