httpDataDef.h 30 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441
  1. #ifndef HTTPDATADEF_H
  2. #define HTTPDATADEF_H
  3. #include <QString>
  4. #include <QStringList>
  5. #include <map>
  6. #include <QDateTime>
  7. enum class HttpParamType
  8. {
  9. hptUrl = 1, //放到url后面
  10. hptCustomBody,//自定义body
  11. hptBody, //放到body里面
  12. hptFormdata
  13. };
  14. enum class HttpType
  15. {
  16. htPost = 1,
  17. htGet,
  18. htGetUrl,//get固定url
  19. htPut,
  20. htDownload
  21. };
  22. enum class RequestType
  23. {
  24. rtUndefine = 0,
  25. rtUpgrade,//客户端版本升级接口
  26. rtGetSoftwareConfig,//获取检测黑名单
  27. rtAgreement,//获取隐私协议接口
  28. rtStudentClientConfig, //获取当前机构的客户端环境信息接口
  29. rtSysNotice,//平台通知接口
  30. rtLoginLimit,//登录限流接口
  31. rtLogin,//登录
  32. rtLogout,//退出登录接口
  33. rtEditPassword, //修改密码
  34. rtGetStudentClientMenu,//获取菜单列表
  35. rtGetStudentInfoBySession,// 获取考生信息
  36. rtOnlineSignal,//学生在线状态
  37. rtSpecialtyNameList,//查询考生的专业列表
  38. rtGetUserNoticeList,//获取用户公告列表
  39. rtUpdateNoticeReadStatus,//更新通知状态为已读
  40. rtAppDownLoadUrl,//app下载地址
  41. rtAppEnabled,//查询机构是否开放APP
  42. rtQueryBatchList,// 取考试批次列表 queryByNameLike
  43. rtGetExamProperty,//查询某考生的考试属性
  44. rtQueryExamList,//获取在线考试待考列表
  45. rtQueryExamEndList,//获取在线考试已结束列表
  46. rtQueryObjectiveScoreList,//根据examStudentId获取客观分信息
  47. rtQueryHomeworkList,//获取在线作业待考列表
  48. rtQueryPracticeCourseList,//练习课程列表
  49. rtQueryPracticeRecordList,//课程练习记录详情
  50. rtGetPracticeDetailInfo, //单次练习答题情况统计
  51. rtFindExamRecordDataEntity,//获取当前考试记录信息
  52. rtGetExamRecordQuestions,//获取交卷之后的所有试题作答信息
  53. rtGetOfflineCourse,//获取离线考试列表
  54. rtGetOffLineExamAnswerSheet,//下载离线考试答题纸接口
  55. rtStartOfflineExam,//离线考试 : 开始考试
  56. rtGetOffLineExamPaper, //离线考试 – 下载试卷
  57. rtPreviewOffLineExamPaper,//离线考试 – 查看试卷
  58. rtSubmitOfflinePaper,//离线考试:交卷 submitPaper
  59. rtStartExamLimit,//开始考试限流
  60. rtIpLimit,//检查考试是否IP限制
  61. rtCheckExamInProgress,//断点续考:检查正在进行中的考试
  62. rtStartExam,//开始考试
  63. rtFaceCheckEnabled,//检查考试是否支持人脸识别
  64. rtLivenessEnabled,//考试是否支持活体检测
  65. rtWeiXinAnswerEnabled, //考试是否可以微信作答
  66. rtGetCourseInfo,//获取课程名称
  67. rtGetExamById,//按ID获取考试信息接口
  68. rtStartAnswer,//开始答题
  69. rtGetQuestionContent,//取某个试题信息-考中
  70. rtGetQuestion,//取某个试题信息-考后
  71. rtSubmitQuestionAnswer,//考试过程中-考生试题作答
  72. rtEndExam,//结束考试:交卷
  73. rtGetEndExamInfo, //获取考试记录信息-交卷后获取考试分数
  74. rtExamHeartbeat,//考试心跳
  75. rtFindExamQuestionList,//考试过程中-获取已做答试题列表
  76. rtGetExamRecordPaperStruct,//获取考试记录试卷结构
  77. rtDownLoadFile, //下载文件
  78. rtGetWXQrCode,//获取微信二维码
  79. rtSaveUploadedFileAcknowledgeStatus,//修改上传音频或图片结果推送状态
  80. // rtProcessUpload, //文件上传
  81. rtSaveFaceCompareResult,//保存人脸识别比对验证结果
  82. rtSaveFaceCaptureResult,//保存人脸抓拍比对验证结果
  83. rtSaveFaceLiveVerifyResult,//保存人脸活体验证结果
  84. rtStartFaceLiveVerify,//开始人脸活体验证接口,如:活检次数,活检开始时间等
  85. rtGetOrgPropertiesByGroupWithoutCache,//获取活检配置参数接口
  86. rtClientExamProcessUploadSign,//文件上传签名信息
  87. rtUploadFileToAliyun,
  88. rtExamControlCheckTime, //交卷冻结时间检查
  89. };
  90. class CHttpRequestPackage
  91. {
  92. public:
  93. RequestType nRequestType;
  94. HttpType nHttpType;
  95. QString sUri;
  96. QString sCommonStr;
  97. QString sCommonStr1;
  98. QString sAdditionStr;
  99. HttpParamType eParamType;
  100. QStringList sParamList;
  101. QStringList sHeadList;
  102. int nRetryCount;
  103. bool bNoHostPrefix;//不需要加http://host:port
  104. CHttpRequestPackage()
  105. {
  106. nRequestType = RequestType::rtUndefine;
  107. nHttpType = HttpType::htPost;
  108. eParamType = HttpParamType::hptUrl;
  109. sUri = "";
  110. sCommonStr = "";
  111. sCommonStr1 = "";
  112. sAdditionStr = "";
  113. nRetryCount = 0;
  114. bNoHostPrefix = false;
  115. }
  116. };
  117. class CBaseResponsePackage
  118. {
  119. public:
  120. int nCode;
  121. QString sMessage;
  122. CBaseResponsePackage()
  123. {
  124. nCode = 0;
  125. sMessage = "";
  126. }
  127. };
  128. class CGetSoftwareConfig : public CBaseResponsePackage
  129. {
  130. public:
  131. QString sSoftwareConfig;
  132. CGetSoftwareConfig()
  133. {
  134. sSoftwareConfig = "";
  135. }
  136. };
  137. class CUpgrade : public CBaseResponsePackage
  138. {
  139. public:
  140. QString sVersion;
  141. int nBuild;
  142. QString sContent;
  143. bool bForce;
  144. QString sUpgradeUrl;
  145. CUpgrade()
  146. {
  147. sVersion = "";
  148. nBuild = 0;
  149. sContent = "";
  150. bForce = true;
  151. sUpgradeUrl = "";
  152. }
  153. };
  154. class CAgreement : public CBaseResponsePackage
  155. {
  156. public:
  157. QString sTitle;
  158. int nStaySeconds;
  159. QString sContent;
  160. CAgreement()
  161. {
  162. sTitle = "";
  163. nStaySeconds = 15;
  164. sContent = "";
  165. }
  166. };
  167. class CStudentClientConfig : public CBaseResponsePackage
  168. {
  169. public:
  170. QString sCusMenuLogoFileUrl;
  171. QString sIdentityNumberLoginAlias;//身份证号登录34s
  172. bool bIsCustomMenuLogo;// : "false",
  173. bool bStudentCodeLogin;
  174. bool bIdentifyNumberLogin;
  175. QString sLogoFileUrl;//" : "https://ecs-test-static.qmth.com.cn/org_logo/0/1613800689888.png",
  176. QString sStudentClientBgPictureUrl;
  177. QString sOeStudentSysName;//" : "网考 - 33d34sss3d",
  178. bool bDisableMutiScreen;
  179. bool bDisableRemoteAssistance;
  180. bool bDisableVirtualMachine;
  181. bool bFullScreenTop;
  182. bool bDisableVirtualCamera;
  183. QString sRootOrgId;// " : "0",
  184. bool bShowQmthLogo;// " : "false",
  185. bool bShowStudentClientAppQrcode;// " : "true",
  186. QString sStudentCodeLoginAlias;// " : "学号登录34s"
  187. CStudentClientConfig()
  188. {
  189. sCusMenuLogoFileUrl = "";
  190. sIdentityNumberLoginAlias = "";
  191. bIsCustomMenuLogo = false;
  192. bStudentCodeLogin = false;
  193. bIdentifyNumberLogin = false;
  194. sLogoFileUrl = "";
  195. sStudentClientBgPictureUrl = "";
  196. sOeStudentSysName = "";
  197. bDisableMutiScreen = false;
  198. bDisableRemoteAssistance = false;
  199. bDisableVirtualMachine = false;
  200. bFullScreenTop = false;
  201. bDisableVirtualCamera = false;
  202. sRootOrgId = "";// " : "0",
  203. bShowQmthLogo = false;// " : "false",
  204. bShowStudentClientAppQrcode = false;// " : "true",
  205. sStudentCodeLoginAlias = ""; // " : "学号登录34s"
  206. }
  207. };
  208. class CSysNotice : public CBaseResponsePackage
  209. {
  210. public:
  211. __int64 nId;// 1,
  212. __int64 nRootOrgId;//-1, //顶级机构ID,-1代表所有机构
  213. QString sContent;//"平台将于今天下午1点停服升级,请知悉!",
  214. QString sStartTime;// "2021 - 08 - 11 00:00 : 00", //生效开始时间
  215. QString sEndTime;//"2021 - 08 - 12 00:00 : 00", //生效截止开始时间
  216. QString sTitle;//"升级通知",
  217. bool bEnable;// false //是否启用
  218. CSysNotice()
  219. {
  220. nId = 0;
  221. nRootOrgId = -1;
  222. sContent = "";
  223. sStartTime = "";
  224. sEndTime = "";
  225. sTitle = "";
  226. bEnable = false;
  227. }
  228. };
  229. class CLoginLimit : public CBaseResponsePackage
  230. {
  231. public:
  232. int nCount;
  233. bool bPass; // true代表未限制
  234. CLoginLimit()
  235. {
  236. nCount = 0;
  237. bPass = false;
  238. }
  239. };
  240. class CLoginInfo : public CBaseResponsePackage
  241. {
  242. public:
  243. QString sUserType;// "STUDENT",
  244. __int64 nUserId;// 4,
  245. QString sDisplayName;// "张三",
  246. __int64 nRootOrgId;// 0,
  247. QString sRootOrgName;// 启明泰和",
  248. QString sCreationTime;//"2021 - 08 - 26 17:23 : 15",
  249. QString sClientIp;//"192.168.10.126",
  250. __int64 nSessionTimeout;// 7200,
  251. bool bPasswordWeak;// " : false
  252. CLoginInfo()
  253. {
  254. sUserType = "";
  255. nUserId = 0;
  256. sDisplayName = "";
  257. nRootOrgId = 0;
  258. sRootOrgName = "";
  259. sCreationTime = "";
  260. sClientIp = "";
  261. nSessionTimeout = 0;
  262. bPasswordWeak = false;
  263. }
  264. };
  265. class CLogout : public CBaseResponsePackage
  266. {
  267. public:
  268. };
  269. class CEditPassword : public CBaseResponsePackage
  270. {
  271. public:
  272. };
  273. class CStudentClientMenu
  274. {
  275. public:
  276. __int64 nId;
  277. QString sCode;
  278. QString sName;
  279. };
  280. class CGetStudentClientMenu : public CBaseResponsePackage
  281. {
  282. public:
  283. std::vector<CStudentClientMenu> vMenus;
  284. };
  285. class CGetStudentInfoBySession : public CBaseResponsePackage
  286. {
  287. public:
  288. __int64 nId;
  289. QString sName;
  290. __int64 nOrgId;
  291. QString sOrgCode;
  292. QString sOrgName;
  293. QString sStudentCode;
  294. QString sIdentityNumber;
  295. QString sPhotoPath;
  296. bool bEnable;
  297. CGetStudentInfoBySession()
  298. {
  299. nId = 0;
  300. sName = "";
  301. nOrgId = 0;
  302. sOrgCode = "";
  303. sOrgName = "";
  304. sStudentCode = "";
  305. sIdentityNumber = "";
  306. sPhotoPath = "";
  307. bEnable = false;
  308. }
  309. };
  310. class CDownLoadFileInfo : public CBaseResponsePackage
  311. {
  312. public:
  313. QString sFileName;
  314. QString sModuleName;
  315. QString sAdditionStr;
  316. CDownLoadFileInfo()
  317. {
  318. sFileName = "";
  319. sModuleName = "";
  320. sAdditionStr = "";
  321. }
  322. };
  323. class CSpecialtyNameList : public CBaseResponsePackage
  324. {
  325. public:
  326. QString sSpecialtyName;
  327. CSpecialtyNameList()
  328. {
  329. sSpecialtyName = "";
  330. }
  331. };
  332. class CNoticeInfo
  333. {
  334. public:
  335. __int64 nId;// 11,
  336. QString sTitle;
  337. QString sContent;
  338. QString sPublisher;
  339. QString sPublishTime;// " : "2021 - 08 - 27 16:22 : 29",
  340. bool bHasRead;// : false,
  341. bool bHasRecalled;
  342. CNoticeInfo()
  343. {
  344. nId = 0;
  345. sTitle = "";
  346. sContent = "";
  347. sPublisher = "";
  348. sPublishTime = "";
  349. bHasRead = false;
  350. bHasRecalled = false;
  351. }
  352. };
  353. class CGetUserNoticeList : public CBaseResponsePackage
  354. {
  355. public:
  356. std::vector<CNoticeInfo> vNoticeList;
  357. };
  358. class CUpdateNoticeReadStatus : public CBaseResponsePackage
  359. {
  360. public:
  361. QString sIds;
  362. CUpdateNoticeReadStatus()
  363. {
  364. sIds = "";
  365. }
  366. };
  367. class CAppDownLoadUrl : public CBaseResponsePackage
  368. {
  369. public:
  370. QString sUrl;
  371. CAppDownLoadUrl()
  372. {
  373. sUrl = "";
  374. }
  375. };
  376. class CAppEnabled : public CBaseResponsePackage
  377. {
  378. public:
  379. bool bEnable;
  380. CAppEnabled()
  381. {
  382. bEnable = false;
  383. }
  384. };
  385. class CBatchInfo
  386. {
  387. public:
  388. __int64 nId;
  389. QString sName;
  390. QString sExamType;
  391. CBatchInfo()
  392. {
  393. nId = 0;
  394. sName = "";
  395. sExamType = "";
  396. }
  397. };
  398. class CQueryBatchList : public CBaseResponsePackage
  399. {
  400. public:
  401. std::vector<CBatchInfo> vBatchList;
  402. };
  403. class CGetExamProperty : public CBaseResponsePackage
  404. {
  405. public:
  406. QString sType;
  407. QString sBeforeExamRemark;//考前说明
  408. bool bCheckEnvironment;//环境监测
  409. // int nFaceThreshold;//预警阈值
  410. bool bIsFaceCheck;//进入考试是否验证人脸识别(强制、非强制)
  411. int nSnapshotInterval;//抓拍间隔时间
  412. int nFaceVerifyStartMinute;//活体检测开始分钟数
  413. int nFaceVerifyEndMinute;//活体检测结束分钟数
  414. bool bIsStrangerEnable;//是否启用陌生人检测
  415. QString sPracticeType;//AFTER_PRACTICE 在线练习-结束统一显示答案
  416. //IN_PRACTICE 在线练习-边答边显示答案
  417. //NO_ANSWER 在线练习-不显示答案
  418. int nFreezeTime;//冻结时间
  419. QString sAfterExamRemark;//考后说明
  420. bool bIsObjScoreView;//是否显示客观题成绩
  421. bool bShowCheatingRemark;//是否展示作弊
  422. QString sCheatingRemark;//作弊说明
  423. std::vector<QString> vOfflineUploadFileType;
  424. bool bIsLivenessBefore;//考前活体检测
  425. CGetExamProperty()
  426. {
  427. sType = "";
  428. sBeforeExamRemark = "";
  429. bCheckEnvironment = false;
  430. // nFaceThreshold = 50;//预警阈值
  431. bIsFaceCheck = false;//进入考试是否验证人脸识别(强制、非强制)
  432. nSnapshotInterval = 0;
  433. nFaceVerifyStartMinute = 0;//活体检测开始分钟数
  434. nFaceVerifyEndMinute = 0;//活体检测结束分钟数
  435. bIsStrangerEnable = false;//是否启用陌生人检测
  436. sPracticeType = "";
  437. nFreezeTime = 0;
  438. sAfterExamRemark = "";
  439. bIsObjScoreView = false;
  440. bShowCheatingRemark = false;
  441. sCheatingRemark = "";
  442. bIsLivenessBefore = false;
  443. }
  444. };
  445. class CStartExamLimit : public CBaseResponsePackage
  446. {
  447. public:
  448. int nCount;
  449. bool bPass;
  450. CStartExamLimit()
  451. {
  452. nCount = 0;
  453. bPass = false;
  454. }
  455. };
  456. class CIpLimit : public CBaseResponsePackage
  457. {
  458. public:
  459. bool bLimited;
  460. CIpLimit()
  461. {
  462. bLimited = false;
  463. }
  464. };
  465. class CStartExam : public CBaseResponsePackage
  466. {
  467. public:
  468. QString sCourseCode;// ,
  469. QString sCourseName;// ,
  470. __int64 nExamRecordDataId;// 0,
  471. int nFaceVerifyMinute;// 0,
  472. QString sStudentCode;// ,
  473. QString sStudentName;//
  474. CStartExam()
  475. {
  476. sCourseCode = "";
  477. sCourseName = "";
  478. nExamRecordDataId = 0;
  479. nFaceVerifyMinute = 0;
  480. sStudentCode = "";
  481. sStudentName = "";
  482. }
  483. };
  484. class CFaceCheckEnabled : public CBaseResponsePackage
  485. {
  486. public:
  487. bool bEnabled;
  488. CFaceCheckEnabled()
  489. {
  490. bEnabled = false;
  491. }
  492. };
  493. class CLivenessEnabled : public CBaseResponsePackage
  494. {
  495. public:
  496. bool bEnabled;
  497. CLivenessEnabled()
  498. {
  499. bEnabled = false;
  500. }
  501. };
  502. class CWeiXinAnswerEnabled : public CBaseResponsePackage
  503. {
  504. public:
  505. bool bEnabled;
  506. CWeiXinAnswerEnabled()
  507. {
  508. bEnabled = false;
  509. }
  510. };
  511. class CGetExamById : public CBaseResponsePackage
  512. {
  513. public:
  514. __int64 nId;
  515. QString sCode;
  516. __int64 nRootOrgId;
  517. QString sBeginTime;
  518. QString sEndTime;
  519. QString sName;
  520. QString sExamType;
  521. int nDuration;
  522. bool bEnable;
  523. bool bStarted;
  524. bool bExamLimit;
  525. bool bIpLimitSettingsEnabled;
  526. CGetExamById()
  527. {
  528. nId = 0;
  529. sCode = "";
  530. nRootOrgId = 0;
  531. sBeginTime = "";
  532. sEndTime = "";
  533. sName = "";
  534. sExamType = "";
  535. nDuration = 0;
  536. bEnable = false;
  537. bStarted = false;
  538. bExamLimit = false;
  539. bIpLimitSettingsEnabled = false;
  540. }
  541. };
  542. class CStartAnswer : public CBaseResponsePackage
  543. {
  544. public:
  545. __int64 nDuration;
  546. __int64 nExamRecordDataId;
  547. __int64 nUsedExamSeconds;
  548. CStartAnswer()
  549. {
  550. nDuration = 0;
  551. nExamRecordDataId = 0;
  552. nUsedExamSeconds = 0;
  553. }
  554. };
  555. class COption
  556. {
  557. public:
  558. QString sBody;
  559. COption()
  560. {
  561. sBody = "";
  562. }
  563. };
  564. class CSubQuestion
  565. {
  566. public:
  567. QString sQuestionType;
  568. QString sBody;
  569. std::vector<int> voptionPermutation;
  570. std::vector<COption> vOptions;
  571. std::vector<QString> vRightAnswer;
  572. QString sAnswerType;
  573. CSubQuestion()
  574. {
  575. sQuestionType = "";
  576. sBody = "";
  577. sAnswerType = "";
  578. }
  579. };
  580. class CGetQuestionContent : public CBaseResponsePackage
  581. {
  582. public:
  583. QString sOrder;
  584. QString sQuestionId;
  585. QString sBody;
  586. QString sVersion;
  587. bool bhasAudios;
  588. std::vector<CSubQuestion> vSubQuestion;
  589. CGetQuestionContent()
  590. {
  591. sQuestionId = "";
  592. sOrder = "";
  593. sBody = "";
  594. sVersion = "";
  595. bhasAudios = false;
  596. }
  597. };
  598. class CGetQuestion : public CBaseResponsePackage
  599. {
  600. public:
  601. QString sId;
  602. QString sBody;
  603. QString sVersion;
  604. bool bhasAudios;
  605. std::vector<CSubQuestion> vSubQuestion;
  606. CGetQuestion()
  607. {
  608. sId = "";
  609. sBody = "";
  610. sVersion = "";
  611. bhasAudios = false;
  612. }
  613. };
  614. class CSubmitQuestionAnswer : public CBaseResponsePackage
  615. {
  616. public:
  617. int nOrder;
  618. int nVersion;
  619. CSubmitQuestionAnswer()
  620. {
  621. nOrder = 0;
  622. }
  623. };
  624. class COfflineFileInfo
  625. {
  626. public:
  627. __int64 nExamRecordDataId;// 0,
  628. QString sFileType;// ,
  629. __int64 nId;// 0,
  630. QString sOfflineFileName;// ,
  631. QString sOfflineFileUrl;// ,
  632. QString sOriginalFileName;// ,
  633. QString sProperties;// ,
  634. QString sSuffix;//
  635. QString sLocalFileName;
  636. COfflineFileInfo()
  637. {
  638. nExamRecordDataId = 0;
  639. sFileType = "";
  640. nId = 0;
  641. sOfflineFileName = "";
  642. sOfflineFileUrl = "";
  643. sOriginalFileName = "";
  644. sProperties = "";
  645. sSuffix = "";
  646. sLocalFileName = "";
  647. }
  648. };
  649. class COfflineCourseInfo
  650. {
  651. public:
  652. QString sCourseCode;// ,
  653. QString sCourseLevel;// ,
  654. QString sCourseName;// ,
  655. QString sEndTime;// ,
  656. __int64 nExamId;// 0,
  657. QString sStartTime;// ,
  658. QString sExamName;// ,
  659. __int64 nExamRecordDataId;// 0,
  660. __int64 nExamStudentId;// 0,
  661. bool bIsvalid;// true,
  662. QString sOrgName;// ,
  663. QString sPaperId;// ,
  664. QString sSpecialtyName;// ,
  665. QString sStatus;// ,
  666. QString sStudentCode;// ,
  667. QString sStudentName;//
  668. std::vector<COfflineFileInfo> vOfflineFileInfo;
  669. COfflineCourseInfo()
  670. {
  671. sCourseCode = "";// ,
  672. sCourseLevel = "";// ,
  673. sCourseName = "";// ,
  674. sEndTime = "";// ,
  675. nExamId = 0;// 0,
  676. sStartTime = "";// ,
  677. sExamName = "";// ,
  678. nExamRecordDataId = 0;// 0,
  679. nExamStudentId = 0;// 0,
  680. bIsvalid = false;
  681. sOrgName = "";// ,
  682. sPaperId = "";// ,
  683. sSpecialtyName = "";// ,
  684. sStatus = "";// ,
  685. sStudentCode = "";// ,
  686. sStudentName = "";//
  687. }
  688. };
  689. class CWeekTransform
  690. {
  691. public:
  692. static QString getWeekCycles(std::vector<int> vWeek)
  693. {
  694. QStringList weekList;
  695. for (int nWeek : vWeek)
  696. {
  697. weekList << mWeekCycle.at(nWeek-1);
  698. }
  699. return weekList.join(QString::fromLocal8Bit(","));
  700. }
  701. static bool isInTimeRange(QTime tCurrent, QStringList sExamCycleTimeRange)
  702. {
  703. bool bRet = false;
  704. for (QString sTimeRange : sExamCycleTimeRange)
  705. {
  706. QStringList list = sTimeRange.split("~");
  707. if(list.count() == 2)
  708. {
  709. QTime sStart = QTime::fromString(list[0], "hh:mm");
  710. QTime sEnd = QTime::fromString(list[1], "hh:mm");
  711. if (sStart < tCurrent && tCurrent < sEnd)
  712. {
  713. bRet = true;
  714. }
  715. }
  716. }
  717. return bRet;
  718. }
  719. private:
  720. inline static std::vector<QString> mWeekCycle = {
  721. QString::fromLocal8Bit("周一"),
  722. QString::fromLocal8Bit("周二"),
  723. QString::fromLocal8Bit("周三"),
  724. QString::fromLocal8Bit("周四"),
  725. QString::fromLocal8Bit("周五"),
  726. QString::fromLocal8Bit("周六"),
  727. QString::fromLocal8Bit("周日"),
  728. };
  729. };
  730. class CExamCourseInfo
  731. {
  732. public:
  733. int nAllowExamCount;// 0,
  734. bool bAppExamEnabled;// true,
  735. QString sCourseCode;// ,
  736. __int64 nCourseId;// 0,
  737. QString sCourseLevel;// ,
  738. QString sCourseName;// ,
  739. QString sEndTime;// ,
  740. bool bExamCycleEnabled;// true,
  741. QStringList sExamCycleTimeRange;// [],
  742. std::vector<int> vExamCycleWeek;// [],
  743. __int64 nExamId;// 0,
  744. QString sExamName;// ,
  745. QString sExamStatus;// ,
  746. __int64 nExamStudentId;// 0,
  747. bool bFaceCheck;// true,
  748. bool bFaceEnable;// true,
  749. QString sIdentityNumber;// ,
  750. bool bIsFinished;// ,
  751. bool bIsObjScoreView;// true,
  752. bool bIsPhotoUpload;// ,
  753. __int64 nOrgId;// 0,
  754. QString sOrgName;// ,
  755. int nPaperMins;// 0,
  756. __int64 nRootOrgId;// 0,
  757. QString sSpecialtyLevel;// ,
  758. QString sSpecialtyName;// ,
  759. QString sStartTime;// ,
  760. QString sStudentCode;// ,
  761. QString sStudentName;//
  762. CExamCourseInfo()
  763. {
  764. nAllowExamCount = 0;
  765. bAppExamEnabled = false;
  766. sCourseCode = "";// ,
  767. nCourseId = 0;// 0,
  768. sCourseLevel = "";// ,
  769. sCourseName = "";// ,
  770. sEndTime = "";// ,
  771. bExamCycleEnabled = false;// true,
  772. nExamId = 0;// 0,
  773. sExamName = "";// ,
  774. sExamStatus = "";// ,
  775. nExamStudentId = 0;// 0,
  776. bFaceCheck = false;// true,
  777. bFaceEnable = false;// true,
  778. sIdentityNumber = "";// ,
  779. bIsFinished = "";// ,
  780. bIsObjScoreView = false;
  781. bIsPhotoUpload = "";// ,
  782. nOrgId = 0;// 0,
  783. sOrgName = "";// ,
  784. nPaperMins = 0;// 0,
  785. nRootOrgId = 0;// 0,
  786. sSpecialtyLevel = "";//
  787. sSpecialtyName = "";// ,
  788. sStartTime = "";// ,
  789. sStudentCode = "";// ,
  790. sStudentName = "";//
  791. }
  792. };
  793. class CQueryExamList : public CBaseResponsePackage
  794. {
  795. public:
  796. std::vector<CExamCourseInfo> vOnlieExamList;
  797. };
  798. class CQueryExamEndList : public CBaseResponsePackage
  799. {
  800. public:
  801. std::vector<CExamCourseInfo> vOnlieEndExamList;
  802. };
  803. class CObjectiveScore
  804. {
  805. public:
  806. QString sEndTime;// ,
  807. int nExamOrder;// 0,
  808. __int64 nExamRecordDataId;// 0,
  809. bool bIsAuditing;// true,
  810. bool bIsExamEnded;// true,
  811. bool bIsIllegality;// true,
  812. double fObjectiveScore;// 0,
  813. QString sStartTime;//
  814. CObjectiveScore()
  815. {
  816. sEndTime = "";
  817. nExamOrder = 0;
  818. nExamRecordDataId = 0;
  819. bIsAuditing = 0;
  820. bIsExamEnded = 0;
  821. bIsIllegality = 0;
  822. fObjectiveScore = 0;
  823. sStartTime = "";
  824. }
  825. };
  826. class CQueryObjectiveScoreList : public CBaseResponsePackage
  827. {
  828. public:
  829. QString sExamStudentId;
  830. std::vector<CObjectiveScore> vObjectiveScore;
  831. CQueryObjectiveScoreList()
  832. {
  833. sExamStudentId = "";
  834. }
  835. };
  836. class CQueryHomeworkList : public CBaseResponsePackage
  837. {
  838. public:
  839. std::vector<CExamCourseInfo> vHomeworkExamList;
  840. };
  841. class CPracticeCourseInfo
  842. {
  843. public:
  844. double fAveObjectiveAccuracy;// 0,
  845. QString sCourseCode;// ,
  846. QString sCourseName;// ,
  847. QString sEndTime;// ,
  848. bool bExamCycleEnabled;// true,
  849. QStringList sExamCycleTimeRange;// [],
  850. std::vector<int> vExamCycleWeek;// [],
  851. __int64 nExamId;// 0,
  852. QString sExamName;// ,
  853. __int64 nExamStudentId;// 0,
  854. QString sExamType;// ,
  855. double fMaxObjectiveAccuracy;// 0,
  856. int nPracticeCount;// 0,
  857. double fRecentObjectiveAccuracy;// 0,
  858. QString sStartTime;// ,
  859. QString sStudentCode;// ,
  860. QString sStudentName;//
  861. CPracticeCourseInfo()
  862. {
  863. fAveObjectiveAccuracy = 0;
  864. sCourseCode = "";// ,
  865. sCourseName = "";// ,
  866. sEndTime = "";// ,
  867. bExamCycleEnabled = false;
  868. nExamId = 0;// 0,
  869. sExamName = "";// ,
  870. nExamStudentId = 0;// 0,
  871. sExamType = "";// ,
  872. fMaxObjectiveAccuracy = 0;// 0,
  873. nPracticeCount = 0;
  874. fRecentObjectiveAccuracy = 0;
  875. sStartTime = "";//
  876. sStudentCode = "";
  877. sStudentName = "";
  878. }
  879. };
  880. class CQueryPracticeCourseList : public CBaseResponsePackage
  881. {
  882. public:
  883. std::vector<CPracticeCourseInfo> vPracticeCourseInfo;
  884. };
  885. class CPracticeRecord
  886. {
  887. public:
  888. QString sCourseCode;// ,
  889. QString sCourseName;// ,
  890. QString sEndTime;// ,
  891. QString sExamName;// ,
  892. int nFailQuestionNum;// 0,
  893. __int64 nId;// 0,
  894. int nNotAnsweredCount;// 0,
  895. double fObjectiveAccuracy;// 0,
  896. int nObjectiveNum;// 0,
  897. QString sStartTime;// ,
  898. int nSuccQuestionNum;// 0,
  899. int nTotalQuestionCount;// 0,
  900. __int64 nUsedExamTime;// 0
  901. CPracticeRecord()
  902. {
  903. sCourseCode = "";
  904. sCourseName = "";
  905. sEndTime = "";
  906. sExamName = "";
  907. nFailQuestionNum = 0;
  908. nId = 0;
  909. nNotAnsweredCount = 0;
  910. fObjectiveAccuracy = 0;
  911. nObjectiveNum = 0;
  912. sStartTime = "";
  913. nSuccQuestionNum = 0;
  914. nTotalQuestionCount = 0;
  915. nUsedExamTime = 0;
  916. }
  917. };
  918. //课程练习记录详情
  919. class CQueryPracticeRecordList : public CBaseResponsePackage
  920. {
  921. public:
  922. std::vector<CPracticeRecord> vPracticeRecordList;
  923. };
  924. class CPracticePaperStructInfo
  925. {
  926. public:
  927. int nCount;
  928. int nFailQuestionNum;
  929. int nIndex;
  930. int nNotAnsweredCount;
  931. int nQuestionCount;
  932. QString sQuestionType;
  933. QString sScore;
  934. int nSuccQuestionNum;
  935. QString sTitle;
  936. double fTotalScore;
  937. CPracticePaperStructInfo()
  938. {
  939. nCount = 0;
  940. nFailQuestionNum = 0;
  941. nIndex = 0;
  942. nNotAnsweredCount = 0;
  943. nQuestionCount = 0;
  944. sQuestionType = "";
  945. sScore = "";
  946. nSuccQuestionNum = 0;
  947. sTitle = "";
  948. fTotalScore = 0;
  949. }
  950. };
  951. //单次练习答题情况统计
  952. class CGetPracticeDetailInfo : public CBaseResponsePackage
  953. {
  954. public:
  955. QString sCourseCode;
  956. QString sCourseName;
  957. __int64 nId;
  958. double fObjectiveAccuracy;
  959. std::vector<CPracticePaperStructInfo> vPracticePaperStructList;
  960. CGetPracticeDetailInfo()
  961. {
  962. sCourseCode = "";
  963. sCourseName = "";
  964. nId = 0;
  965. fObjectiveAccuracy = 0;
  966. }
  967. };
  968. //获取当前考试记录信息
  969. class CFindExamRecordDataEntity : public CBaseResponsePackage
  970. {
  971. public:
  972. __int64 nExamId;
  973. QString sPaperType;
  974. CFindExamRecordDataEntity()
  975. {
  976. nExamId = 0;
  977. sPaperType = "";
  978. }
  979. };
  980. //获取交卷之后的所有试题作答信息
  981. class CAnsweredQuestion
  982. {
  983. public:
  984. QString sAnswerType;// ,
  985. QString sAudioPlayTimes;// ,
  986. QString sCorrectAnswer;// ,
  987. QString sExamQuestionTempId;// ,
  988. __int64 nExamRecordDataId;// 0,
  989. bool bIsAnswer;// true,
  990. bool bIsInMongo;// true,
  991. bool bIsSign;// true,
  992. int nMainNumber;// 0,
  993. std::vector<int> vOptionPermutation;// [],
  994. int nOrder;// 0,
  995. QString sQuestionId;// ,
  996. double fQuestionScore;// 0,
  997. QString sQuestionType;// ,
  998. QString sStudentAnswer;// ,
  999. double fStudentScore;// 0
  1000. bool bHasQuestonInfo;
  1001. CAnsweredQuestion()
  1002. {
  1003. sAnswerType = "";
  1004. sAudioPlayTimes = "";
  1005. sCorrectAnswer = "";
  1006. sExamQuestionTempId = "";
  1007. nExamRecordDataId = 0;
  1008. bIsAnswer = false;
  1009. bIsInMongo = false;
  1010. bIsSign = false;
  1011. nMainNumber = 0;
  1012. nOrder = 0;
  1013. sQuestionId = "";
  1014. fQuestionScore = 0;
  1015. sQuestionType = "";
  1016. sStudentAnswer = "";
  1017. fStudentScore = 0;
  1018. }
  1019. };
  1020. class CGetExamRecordQuestions : public CBaseResponsePackage
  1021. {
  1022. public:
  1023. std::vector<CAnsweredQuestion> vExamRecordQuestions;
  1024. };
  1025. class CGetOfflineCourse : public CBaseResponsePackage
  1026. {
  1027. public:
  1028. std::vector<COfflineCourseInfo> vOfflineCourseInfo;
  1029. };
  1030. class CGetOffLineExamAnswerSheet : public CBaseResponsePackage
  1031. {
  1032. public:
  1033. QString sAnswerSheetUrl;
  1034. CGetOffLineExamAnswerSheet()
  1035. {
  1036. sAnswerSheetUrl = "";
  1037. }
  1038. };//下载离线考试答题纸接口
  1039. class CGetOffLineExamPaper : public CBaseResponsePackage
  1040. {
  1041. public:
  1042. QString sPaperUrl;
  1043. int nRow;
  1044. CGetOffLineExamPaper()
  1045. {
  1046. sPaperUrl = "";
  1047. nRow = 0;
  1048. }
  1049. };
  1050. class CPreviewOffLineExamPaper : public CBaseResponsePackage
  1051. {
  1052. public:
  1053. QString sUrl;
  1054. int nRow;
  1055. CPreviewOffLineExamPaper()
  1056. {
  1057. sUrl = "";
  1058. nRow = -1;
  1059. }
  1060. };
  1061. class CStartOfflineExam : public CBaseResponsePackage
  1062. {
  1063. public:
  1064. int nRow;
  1065. CStartOfflineExam()
  1066. {
  1067. nRow = 0;
  1068. }
  1069. };
  1070. class CSubmitOfflinePaper : public CBaseResponsePackage
  1071. {
  1072. public:
  1073. };
  1074. namespace EXAM_INPROGRESS_ENTER_TYPE
  1075. {
  1076. const QString EIET_COURSE_LIST = "COURSE_LIST";
  1077. const QString EIET_ENTER_EXAM = "ENTER_EXAM";
  1078. }
  1079. class CCheckExamInProgress : public CBaseResponsePackage
  1080. {
  1081. public:
  1082. bool bHasExamInProgress;
  1083. int nInterruptNum;
  1084. int nMaxInterruptNum;
  1085. bool bIsExceed;
  1086. __int64 nExamRecordDataId;
  1087. __int64 nExamId;
  1088. __int64 nUsedTime;
  1089. int nFaceVerifyMinute;
  1090. QString sExamType;
  1091. QString sEnterType;
  1092. CCheckExamInProgress()
  1093. {
  1094. bHasExamInProgress = false;
  1095. nInterruptNum = 0;
  1096. nMaxInterruptNum = 0;
  1097. bIsExceed = false;
  1098. nExamRecordDataId = 0;
  1099. nExamId = 0;
  1100. nUsedTime = 0;
  1101. nFaceVerifyMinute = 0;
  1102. sExamType = "";
  1103. }
  1104. };
  1105. class CGetCourseInfo : public CBaseResponsePackage
  1106. {
  1107. public:
  1108. QString sCourseCode;
  1109. QString sCourseName;
  1110. CGetCourseInfo()
  1111. {
  1112. sCourseCode = "";
  1113. sCourseName = "";
  1114. }
  1115. };
  1116. class CEndExam : public CBaseResponsePackage
  1117. {
  1118. public:
  1119. QString sModuleName;
  1120. bool bForce;
  1121. CEndExam()
  1122. {
  1123. sModuleName = "";
  1124. bForce = false;
  1125. }
  1126. };
  1127. class CGetEndExamInfo : public CBaseResponsePackage
  1128. {
  1129. public:
  1130. __int64 nExamRecordDataId;
  1131. bool bIsWarn;
  1132. double fObjectiveAccuracy;
  1133. double fObjectiveScore;
  1134. bool bIsCalculate;
  1135. CGetEndExamInfo()
  1136. {
  1137. nExamRecordDataId = 0;
  1138. bIsWarn = false;
  1139. fObjectiveAccuracy = 0;
  1140. fObjectiveScore = 0;
  1141. bIsCalculate = false;
  1142. }
  1143. };
  1144. class CExamHeartbeat : public CBaseResponsePackage
  1145. {
  1146. public:
  1147. __int64 nLeftTime;//毫秒
  1148. CExamHeartbeat()
  1149. {
  1150. nLeftTime = 0;
  1151. }
  1152. };
  1153. class CFindExamQuestionList : public CBaseResponsePackage
  1154. {
  1155. public:
  1156. std::vector<CAnsweredQuestion> vAnsweredQuestion;
  1157. };
  1158. namespace QUESTION_TYPE
  1159. {
  1160. const QString SingleChoice = "SINGLE_CHOICE";
  1161. const QString MultipleChoice = "MULTIPLE_CHOICE";
  1162. const QString TrueOrFalse = "TRUE_OR_FALSE";
  1163. const QString FillUp = "FILL_UP";
  1164. const QString Essay = "ESSAY";
  1165. };
  1166. class CSubQuestionStruct
  1167. {
  1168. public:
  1169. std::vector<int> voptionPermutation;
  1170. double fQuestionScore;
  1171. QString sQuestionType;
  1172. QString sAnswerType;
  1173. bool bMarked;
  1174. bool bAnswered;
  1175. int nVersion;
  1176. bool bUpload;
  1177. QString sSubjectiveTempAns;
  1178. QString sUploadAnswer;
  1179. bool bCurrent;
  1180. QString sStudentAnswer;
  1181. int nShowNumber;
  1182. int nOrder;
  1183. QString sBody;
  1184. std::vector<COption> vOptions;
  1185. std::vector<QString> vRightAnswer;
  1186. int nLimitedPlayTimes;
  1187. CSubQuestionStruct()
  1188. {
  1189. fQuestionScore = 0;
  1190. sQuestionType = "";
  1191. sAnswerType = "";
  1192. bMarked = false;
  1193. bAnswered = false;
  1194. nVersion = 0;
  1195. bUpload = true;
  1196. sUploadAnswer = "";
  1197. sSubjectiveTempAns = "";
  1198. bCurrent = false;
  1199. nShowNumber = 0;
  1200. nOrder = 0;
  1201. sBody = "";
  1202. nLimitedPlayTimes = 0;
  1203. }
  1204. };
  1205. class CQuestionStruct
  1206. {
  1207. public:
  1208. QString sQuestionId;
  1209. QString sVersion;
  1210. double fQuestionScore;
  1211. int nLimitedPlayTimes;
  1212. int nPlayedTimes;
  1213. int nTimeLimit;
  1214. bool bHasContent;
  1215. QString sBody;
  1216. bool bhasAudios;
  1217. std::vector<CSubQuestionStruct> vSubQuestionStruct;
  1218. CQuestionStruct()
  1219. {
  1220. sQuestionId = "";
  1221. sVersion = "";
  1222. fQuestionScore = 0;
  1223. nLimitedPlayTimes = 0;
  1224. nPlayedTimes = 0;
  1225. nTimeLimit = 0;
  1226. sBody = "";
  1227. sVersion = "";
  1228. bhasAudios = false;
  1229. bHasContent = false;
  1230. }
  1231. };
  1232. class CPaperGroupStruct
  1233. {
  1234. public:
  1235. QString sGroupName;
  1236. double fGroupScore;
  1237. int nNumber;
  1238. int nTotalSubquestion;
  1239. int nAnsweredCount;
  1240. std::vector<CQuestionStruct> vQuestionStruct;
  1241. CPaperGroupStruct()
  1242. {
  1243. sGroupName = "";
  1244. fGroupScore = 0;
  1245. nNumber = 0;
  1246. nTotalSubquestion = 0;
  1247. nAnsweredCount = 0;
  1248. }
  1249. };
  1250. class CGetExamRecordPaperStruct : public CBaseResponsePackage
  1251. {
  1252. public:
  1253. QString sPaperId;
  1254. QString sPaperName;
  1255. bool bFullyObjective;
  1256. std::vector<CPaperGroupStruct> vPaperGroupStruct;
  1257. CGetExamRecordPaperStruct()
  1258. {
  1259. sPaperId = "";
  1260. sPaperName = "";
  1261. }
  1262. };
  1263. class CGetWXQrCode : public CBaseResponsePackage
  1264. {
  1265. public:
  1266. QString sUrl;
  1267. CGetWXQrCode()
  1268. {
  1269. sUrl = "";
  1270. }
  1271. };
  1272. class CSaveUploadedFileAcknowledgeStatus : public CBaseResponsePackage
  1273. {
  1274. public:
  1275. QString sFileUrl;
  1276. CSaveUploadedFileAcknowledgeStatus()
  1277. {
  1278. sFileUrl = "";
  1279. }
  1280. };
  1281. //class CProcessUpload : public CBaseResponsePackage
  1282. //{
  1283. //public:
  1284. // QString sFileUrl;
  1285. // QString sCommonStr;
  1286. // CProcessUpload()
  1287. // {
  1288. // sFileUrl = "";
  1289. // }
  1290. //};
  1291. class CGetOrgPropertiesByGroupWithoutCache : public CBaseResponsePackage
  1292. {
  1293. public:
  1294. int nActionNum;
  1295. QString sActionOptions;//SHAKE,BLINK,NOD
  1296. QString sActionOrder;//FIXED
  1297. int nActionDuration;//单个动作最大时长
  1298. int nActionAlert;//指定动作检测提醒N秒后开始检测
  1299. int nAllActionDuration;//整体动作时长
  1300. int nFaceThreshold; //人脸比对阈值
  1301. CGetOrgPropertiesByGroupWithoutCache()
  1302. {
  1303. nActionNum = 0;
  1304. sActionOptions = "";
  1305. sActionOrder = "";
  1306. nActionDuration = 0;
  1307. nActionAlert = 15;
  1308. nAllActionDuration = 120;
  1309. nFaceThreshold = 50;
  1310. }
  1311. };
  1312. class CStartFaceLiveVerify : public CBaseResponsePackage
  1313. {
  1314. public:
  1315. __int64 nFaceLiveVerifyId;
  1316. int nStartMinute;
  1317. int nTimes;
  1318. CStartFaceLiveVerify()
  1319. {
  1320. nFaceLiveVerifyId = 0;
  1321. nStartMinute = 0;
  1322. nTimes = 0;
  1323. }
  1324. };
  1325. class CClientExamProcessUploadSign : public CBaseResponsePackage
  1326. {
  1327. public:
  1328. QString sCommonStr = "";
  1329. QString sFilePath = "";
  1330. QString sType = "";
  1331. QString sAccessUrl = "";
  1332. QString sSignIdentifier = "";
  1333. QString sFormUrl = "";
  1334. QString sOssAcessKeyId = "";
  1335. QString sSignature = "";
  1336. QString sKey = "";
  1337. QString sPolicy = "";
  1338. };
  1339. class CUploadFileToAliyun : public CBaseResponsePackage
  1340. {
  1341. public:
  1342. QString sCommonStr = "";
  1343. QString sFileUrl = "";
  1344. };
  1345. #endif // HTTPDATADEF_H