httpDataDef.h 30 KB

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