| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- #include "fileupload.h"
- #include "fileprepare.h"
- #include "respsubmitjsjcfile.h"
- #include "resppackmerge.h"
- #include "resppacktran.h"
- #include "respgetuserjsjcserviceinfo.h"
- #include "respuserserviceverify.h"
- #include "filesplitter.h"
- #include "sncdatabase.h"
- #include "numberreg.h"
- FileUpload::FileUpload(QString fileName, QString fileType, QString memo,QString userHash)
- {
- this->fileName = fileName;
- this->fileType = fileType;
- this->memo = memo;
- this->userHash = userHash;
- this->isBatchTran = true;
- this->isMulti = false;
- this->monthLimit = 0;
- this->monthSum = 0;
- this->stop = false;
- m_cubeWs = new WSCube();
- }
- void FileUpload::abort()
- {
- this->stop = true;
- m_cubeWs->abort();
- }
- FileUpload::~FileUpload()
- {
- m_cubeWs->abort();
- delete m_cubeWs;
- qDebug()<<QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")\
- <<"FormRiddle.FileUpload Destroyed.";
- }
- void FileUpload::run()
- {
- if(isBatchTran)
- submitByPack();
- else
- submit();
- emit uploadFinished();
- }
- void FileUpload::submit()
- {
- emit msgUpdated("正在进行预处理,请稍候","status");
- FilePrepare filePrepare(this->fileName,this->fileType,isMulti);
- if(!filePrepare.prepare())
- {
- emit msgUpdated(filePrepare.getRtnMsg(),"fail");
- return ;
- }
- emit msgUpdated(QString::number(filePrepare.getCount()),"numbercount");
- if(!checkUserAccount(filePrepare.getCount()))
- return ;
- emit msgUpdated("正在提交,请稍候","status");
- QString json = m_cubeWs->submitJSJCfile(filePrepare.getLastUploadFileName(),this->fileType,this->memo,this->userHash);
- if(json.isEmpty())
- {
- emit msgUpdated("网络无法连接,请稍候再试!","fail");
- }
- else
- {
- RespSubmitJSJCfile response(json);
- if(response.getRtnCode()==2)
- {
- emit msgUpdated("上传成功,号码全部接收","succeed");
- emit msgUpdated(response.getRtnMemo(),"detailok");
- }
- else if(response.getRtnCode()==1)
- {
- emit msgUpdated("上传成功,文件中含有部分非法数据","succeed");
- emit msgUpdated(response.getRtnMemo(),"detailwarning");
- }
- else if(response.getRtnCode()==-1)
- {
- emit msgUpdated("登录超时,请重新登录","fail");
- }
- else
- {
- emit msgUpdated(response.getRtnMemo(),"fail");
- }
- }
- }
- void FileUpload::submitByPack()
- {
- emit msgUpdated("正在进行预处理,请稍候","status");
- FilePrepare filePrepare(this->fileName,this->fileType,isMulti);
- if(!filePrepare.prepare())
- {
- emit msgUpdated(filePrepare.getRtnMsg(),"fail");
- return ;
- }
- emit msgUpdated(QString::number(filePrepare.getCount()),"numbercount");
- if(stop)
- {
- emit msgUpdated("用户中止","fail");
- return ;
- }
- if(!checkUserAccount(filePrepare.getCount()))
- return ;
- if(stop)
- {
- emit msgUpdated("用户中止","fail");
- return ;
- }
- emit msgUpdated("正在提交,请稍候","status");
- FileSplitter splitter(filePrepare.getLastUploadFileName(),"");
- QStringList list = splitter.getSplitResult();
- bool allupload = true;
- QString packName;
- for(int i=0;i<list.size();i++)
- {
- if(stop)
- {
- emit msgUpdated("用户中止","fail");
- return ;
- }
- packName = list.at(i);
- QString json = m_cubeWs->packTran(packName,this->userHash);
- RespPackTran response(json);
- if(response.getRtnCode()==1)
- {
- QFile::remove(packName);
- }
- else
- {
- qDebug()<<response.getRtnMemo();
- allupload = false;
- }
- emit msgUpdated(QString::number(3+90*(i+1)/list.size()),"progress");
- }
- if(allupload)
- {
- splitter.cleanup();
- emit msgUpdated(QString::number(94),"progress");
- QString json = m_cubeWs->packMerge(packName,this->userHash);
- emit msgUpdated(QString::number(95),"progress");
- RespPackMerge response(json);
- if(response.getRtnCode()==1)
- {
- emit msgUpdated(QString::number(96),"progress");
- json = m_cubeWs->submitJSJCfile(filePrepare.getLastUploadFileName(),response.getFileHash(),fileType,memo,userHash);
- RespSubmitJSJCfile response(json);
- if(response.getRtnCode()==2)
- {
- emit msgUpdated("上传成功,号码全部接收。","succeed");
- emit msgUpdated(response.getRtnMemo(),"detailok");
- }
- else if(response.getRtnCode()==1)
- {
- emit msgUpdated("上传成功,文件中含有部分非法数据。","succeed");
- emit msgUpdated(response.getRtnMemo(),"detailwarning");
- }
- else if(response.getRtnCode()==-1)
- {
- emit msgUpdated(response.getRtnMemo(),"fail");
- }
- else
- {
- emit msgUpdated(response.getRtnMemo(),"fail");
- }
- }
- else
- {
- emit msgUpdated(response.getRtnMemo(),"fail");
- }
- }
- else
- {
- emit msgUpdated("未能提交,请再次尝试上传(支持断点续传)","fail");
- }
- emit msgUpdated(QString::number(100),"progress");
- }
- bool FileUpload::checkUserAccount(int nums)
- {
- emit msgUpdated(QString("正在验证用户信息"),"status");
- bool rtn = false;
- QString json = m_cubeWs->userServiceVerify("SubmitJSJCfile",QString("%1").arg(nums),this->userHash);
- if(!json.isEmpty())
- {
- RespUserServiceVerify response(json);
- if(response.getRtnCode()==1)
- {
- rtn = true;
- }
- else
- {
- emit msgUpdated(response.getRtnMemo(),"fail");
- }
- }
- else
- {
- emit msgUpdated(QString("无法验证用户信息"),"fail");
- }
- return rtn;
- }
|