123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- #include "stdafx.h"
- #include "UploadOFLRecord.h"
- #include "mod_SalesRecorder.h"
- using namespace SalesRecorder;
- void CUploadOFLRecordConnection::SendOFLVideoRecord(offline_video_record_t *offlinevideorecord)
- {
- SaveOfflineVideoReq req = {0};
- strcpy(req.TerminalNo,offlinevideorecord->TerminalNo);
- strcpy(req.VideoSerialID,offlinevideorecord->VideoSerialID);
- //strcpy(req.EndTime,offlinevideorecord->EndTime);
- strcpy(req.CardNo,offlinevideorecord->CardNo);
- strcpy(req.Name,offlinevideorecord->Name);
- strcpy(req.ProductCode,offlinevideorecord->ProductCode);
- strcpy(req.ProductName,offlinevideorecord->ProductName);
- strcpy(req.ManagerSAP,offlinevideorecord->ManagerSAP);
- strcpy(req.ManagerName,offlinevideorecord->ManagerName);
- strcpy(req.ProductType,offlinevideorecord->ProductType);
- strcpy(req.BusinessType,offlinevideorecord->BusinessType);
- strcpy(req.CompanyCode,offlinevideorecord->CompanyCode);
- strcpy(req.WitnessSAP,offlinevideorecord->WitnessSAP);
- strcpy(req.WitnessName,offlinevideorecord->WitnessName);
- req.Duration = offlinevideorecord->Duration;
- CSmartPointer<IPackage> pkt = CreateNewPackage("SOVREQ");
- pkt->AddStruct("SOVREQ",false,false,(LPBYTE)&req,sizeof(SaveOfflineVideoReq));
- SendPackage(pkt);
- }
- void CUploadOFLRecordConnection::SendOFLVideoRecords(std::vector<offline_video_record_t *> &offlinevideorecordlist)
- {
- SaveOfflineVideoReq reqs[MAX_LISTSIZE];
- int nArrayNum = offlinevideorecordlist.size();
- for (std::vector<offline_video_record_t *>::size_type i = 0; i < nArrayNum; ++i)
- {
- offline_video_record_t *pRecord = offlinevideorecordlist[i];
- ZeroMemory(&reqs[i], sizeof(SaveOfflineVideoReq));
- strcpy(reqs[i].TerminalNo,pRecord->TerminalNo);
- strcpy(reqs[i].VideoSerialID,pRecord->VideoSerialID);
- //strcpy(reqs[i].EndTime,pRecord->EndTime);
- strcpy(reqs[i].CardNo,pRecord->CardNo);
- strcpy(reqs[i].Name,pRecord->Name);
- strcpy(reqs[i].ProductCode,pRecord->ProductCode);
- strcpy(reqs[i].ProductName,pRecord->ProductName);
- strcpy(reqs[i].ManagerSAP,pRecord->ManagerSAP);
- strcpy(reqs[i].ManagerName,pRecord->ManagerName);
- strcpy(reqs[i].ProductType,pRecord->ProductType);
- strcpy(reqs[i].BusinessType,pRecord->BusinessType);
- strcpy(reqs[i].CompanyCode,pRecord->CompanyCode);
- strcpy(reqs[i].WitnessSAP,pRecord->WitnessSAP);
- strcpy(reqs[i].WitnessName,pRecord->WitnessName);
- reqs[i].Duration = pRecord->Duration;
- }
- CSmartPointer<IPackage> pkt = CreateNewPackage("SOVREQ");
- pkt->AddStruct("SOVREQ",false,false,(LPBYTE)&reqs,sizeof(SaveOfflineVideoReq)*nArrayNum,nArrayNum);
- SendPackage(pkt);
- }
- void CUploadOFLRecordConnection::OnDisconnect()
- {
- Dbg("connection disconnected");
- }
- void CUploadOFLRecordConnection::OnPkgAnswer(const CSmartPointer<IPackage> &pRecvPkg)
- {
- string serviceCode = pRecvPkg->GetServiceCode();
- if (serviceCode == "SOVREQ")
- {
- CSalesRecorderEntity *pEntity = dynamic_cast<CSalesRecorderEntity *>(m_pEntity);
- pEntity->m_nUploadResult = -1;
- DWORD dwSysCode, dwUserCode;
- string strErrMsg;
- ErrorCodeEnum rc = Error_Succeed;
- if (pRecvPkg->GetErrMsg(dwSysCode, dwUserCode, strErrMsg))
- {
- rc = (ErrorCodeEnum)dwSysCode;
- LogError(Severity_Middle, rc, dwUserCode, CSimpleStringA::Format("create sov packet fail! %s", strErrMsg.c_str()));
- OnDisconnect();
- }
- else
- {
- int nLen = pRecvPkg->GetStructLen("SOVANS");
- if (nLen > 0)
- {
- BYTE *pBuf = new BYTE[nLen];
- memset(pBuf, 0, nLen);
- int nArrayNum = 0;
- if (pRecvPkg->GetStructData("SOVANS", pBuf, &nLen, &nArrayNum))
- {
- for (int i = 0; i < nArrayNum; ++i)
- {
- // TODO: need to post an event
- SaveOfflineVideoReply reply;
- ZeroMemory(&reply, sizeof(SaveOfflineVideoReply));
- memcpy(&reply, pBuf+i*sizeof(SaveOfflineVideoReply), sizeof(SaveOfflineVideoReply));
- pEntity->OnEndUploadRecord(reply.VideoSerialID, reply.ResultCode);
- }
- }
- else
- {
- Dbg("create invalid sovans packet!");
- OnDisconnect();
- }
- delete []pBuf;
- pBuf = NULL;
- }
- }
- //SetEvent(pEntity->m_hUploadAnsEvt);
- pEntity->SecureClientRelease(); // ¶Ï¿ªÁ¬½Ó
- }
- else
- {
- Dbg("unknown service code!");
- OnDisconnect();
- }
- }
|