httpDataDef.h 31 KB

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