+ -
+
+
Frame-1
+ #icon-Frame-114
+
+
+ -
+
+
Frame-2
+ #icon-Frame-25
+
+
+ -
+
+
Frame
+ #icon-Frame15
+
+
+ -
+
+
Frame 2223726
+ #icon-a-Frame2223726
+
+
+ -
+
+
Frame 2223727
+ #icon-a-Frame2223727
+
+
+ -
+
+
Frame 2223723
+ #icon-a-Frame2223723
+
+
+ -
+
+
Frame 2223725
+ #icon-a-Frame2223725
+
+
+ -
+
+
Frame 2223728
+ #icon-a-Frame2223728
+
+
+ -
+
+
Frame 2223724
+ #icon-a-Frame2223724
+
+
-
+
+
2. 信息的存储
+
2.1 信息存储的方式和期限
+
+ - 我们会通过安全的方式存储您的信息,包括本地存储(例如利用APP进行数据缓存)、数据库和服务器日志。
+ - 一般情况下,我们只会在为实现服务目的所必需的时间内或法律法规规定的条件下存储您的个人信息。
+
+
+
2.2 信息存储的地域
+
+ - 我们会按照法律法规规定,将境内收集的用户个人信息存储于中国境内。
+ - 目前我们不会跨境传输或存储您的个人信息。将来如需跨境传输或存储的,我们会向您告知信息出境的目的、接收方、安全保证措施和安全风险,并征得您的同意。
+
+
+
2.3 产品或服务停止运营时的通知
+
+ - 当我们的产品或服务发生停止运营的情况时,我们将以推送通知、公告等形式通知您,并在合理期限内删除您的个人信息或进行匿名化处理,法律法规另有规定的除外。
+
+
+
3. 信息安全
+
+我们使用各种安全技术和程序,以防信息的丢失、不当使用、未经授权阅览或披露。例如,在某些服务中,我们将利用加密技术(例如SSL)来保护您提供的个人信息。但请您理解,由于技术的限制以及可能存在的各种恶意手段,在互联网行业,即便竭尽所能加强安全措施,也不可能始终保证信息百分之百的安全。您需要了解,您接入我们的服务所用的系统和通讯网络,有可能因我们可控范围外的因素而出现问题。
+
+
+
4. 我们如何使用信息
+
我们可能将在向您提供服务的过程之中所收集的信息用作下列用途:
+
+ - 向您提供服务;
+ - 在我们提供服务时,用于身份验证、客户服务、安全防范、诈骗监测、存档和备份用途,确保我们向您提供的产品和服务的安全性;
+ - 帮助我们设计新服务,改善我们现有服务;
+ - 向您提供与您更加相关的广告以替代普遍投放的广告;
+ - 评估我们服务中的广告和其他促销及推广活动的效果,并加以改善;
+ - 软件认证或管理软件升级;
+ - 让您参与有关我们产品和服务的调查。
+
+
+
5. 信息共享
+
+目前,我们不会主动共享或转让您的个人信息至第三方,如存在其他共享或转让您的个人信息或您需要我们将您的个人信息共享或转让至第三方情形时,我们会直接或确认第三方征得您对上述行为的明示同意。
+
+
+为了投放广告,评估、优化广告投放效果等目的,我们需要向广告主及其代理商等第三方合作伙伴共享您的部分数据,要求其严格遵守我们关于数据隐私保护的措施与要求,包括但不限于根据数据保护协议、承诺书及相关数据处理政策进行处理,避免识别出个人身份,保障隐私安全。
+
+
+我们不会向合作伙伴分享可用于识别您个人身份的信息(例如您的姓名或电子邮件地址),除非您明确授权。
+
+
+我们不会对外公开披露所收集的个人信息,如必须公开披露时,我们会向您告知此次公开披露的目的、披露信息的类型及可能涉及的敏感信息,并征得您的明示同意。
+
+
+随着我们业务的持续发展,我们有可能进行合并、收购、资产转让等交易,我们将告知您相关情形,按照法律法规及不低于本《隐私政策》所要求的标准继续保护或要求新的控制者继续保护您的个人信息。
+
+
+
6. 注销权
+
+另外,根据相关法律法规及国家标准,以下情形中,我们可能会共享、转让、公开披露个人信息无需事先征得您的授权同意:
+
+
+ - 与国家安全、国防安全直接相关的;
+ - 与公共安全、公共卫生、重大公共利益直接相关的;
+ - 犯罪侦查、起诉、审判和判决执行等直接相关的;
+ - 出于维护个人信息主体或其他个人的生命、财产等重大合法权益但又很难得到本人同意的;
+ - 个人信息主体自行向社会公众公开个人信息的;
+ - 从合法公开披露的信息中收集个人信息的,如合法的新闻报道、政府信息公开等渠道。
+
+
+
6. 您的权利
+
+
+
+
+
+
(一)访问权
+
+
原则上您可以通过如下方式访问您的个人信息:
+
+
1、账号信息:您可以随时登录您的账号,访问或编辑您账号中的资料信息、更改您的密码、添加安全信息、进行账号关联或身份认证等。
+
+
2、使用信息:您可以在我们的网站、客户端等服务中查阅订单信息等,您也可通过本隐私政策文末提供的方式联系我们删除这些信息,我们将在核实您的身份后提供,但法律法规另有约定的除外。
+
+
3、其他信息:如您在此访问过程中遇到操作问题的或如需获取其他前述无法获知的信息内容,您可通过本隐私政策文末提供的方式联系我们,我们将在核实您的身份后提供,但法律法规另有约定的除外。
+
+
(二)删除权
+
+
您可以通过本隐私政策文末提供的联系方式向我们提出删除您信息的请求,例如您不再需要我们继续为您提供服务,但已做数据匿名化处理或法律法规另有规定的除外。
+
+
(三)索取权
+
+
如您需要您数据的副本,您可以通过本隐私政策文末提供的方式联系我们,在核实您的身份后,我们将向您提供您在我们的服务中的信息副本(例如基本资料、身份信息),但法律法规另有规定的除外。
+
+
(四)撤回同意权
+
+
如您想更改相关功能的授权范围,您可以在我们的产品或服务中的相关功能设置界面进行操作处理。如您在此过程中遇到操作问题的,可以通过本隐私政策文末提供的方式联系我们。
+
+
当您取消相关信息收集的授权后,我们将不再收集该信息,也无法再为您提供上述与之对应的服务;但您知悉并同意,除非您行使前述“删除权”,否则您的该行为不会影响我们基于您之前的授权进行的信息的处理、存储。
+
+
(五)注销权
+
+
您可以通过联系我们的客服或通过其他我们公示的方式注销您的账号(但法律法规另有规定的除外),一旦您注销账号,将无法使用我们提供的全线用户产品的服务,因此请您谨慎操作。我们为了保护您或他人的合法权益会结合您对我们提供的各产品或服务的使用情况判断是否支持您的注销请求。除法律法规另有规定外,注销账号之后,您该账户内的所有信息将被清空,并根据您的要求删除您的信息。您通过第三方账号(如微信等)授权登录我们的服务时,需要向第三方申请注销账号。
+
+
(六)例外情形
+
+
在以下情形中,按照法律法规要求,我们将无法响应您的请求:
+
+
(1)与个人信息控制者履行法律法规规定的义务相关的;
+
+
(2)与国家安全、国防安全有关的;
+
+
(3)与公共安全、公共卫生、重大公共利益有关的;
+
+
(4)与刑事侦查、起诉、审判和执行判决等有关的;
+
+
(5)有充分证据表明您存在主观恶意或滥用权利的;
+
+
(6)出于维护个人信息主体或其他个人的生命、财产等重大合法权益但又很难得到本人同意的;
+
+
(7)响应您的请求将导致您或其他个人、组织的合法权益受到严重损害的;
+
+
(8)涉及商业秘密的。
+
+
7. 变更
+
+我们可能适时修订本《隐私政策》的条款。当变更发生时,我们会在版本更新时向您提示新的《隐私政策》,并向您说明生效日期。请您仔细阅读变更后的《隐私政策》内容,若您继续使用我们的服务,即表示您同意我们按照更新后的《隐私政策》处理您的个人信息。
+
+
+
8. 未成年人保护
+
+我们鼓励父母或监护人指导未满十八岁的未成年人使用我们的服务。我们建议未成年人鼓励他们的父母或监护人阅读本《隐私政策》,并建议未成年人在提交的个人信息之前寻求父母或监护人的同意和指导。
+
+
+
用户协议
+
重庆智学力人工智能科技有限公司(以下简称“我们”)依据本协议为用户(以下简称“你”)提供点智学服务。本协议对你和我们均具有法律约束力。
+
一、本服务的功能
+
你可以使用本服务网络阅卷。
+
二、责任范围及限制
+
你使用本服务得到的结果仅供参考,实际情况以官方为准。
+
三、隐私保护
+
我们重视对你隐私的保护,你的个人隐私信息将根据《隐私政策》受到保护与规范,详情请参阅《隐私政策》。
+
四、其他条款
+
4.1 本协议所有条款的标题仅为阅读方便,本身并无实际涵义,不能作为本协议涵义解释的依据。
+
4.2 本协议条款无论因何种原因部分无效或不可执行,其余条款仍有效,对双方具有约束力。
+
+
+
+''',
),
AGREEMENT_KEY.USER_AGREEMENT: AgreementClass(
title: '用户协议',
diff --git a/making_school_asignment_app/lib/common/job/annotate_list_to_refresh.dart b/making_school_asignment_app/lib/common/job/annotate_list_to_refresh.dart
new file mode 100644
index 0000000..73dfb10
--- /dev/null
+++ b/making_school_asignment_app/lib/common/job/annotate_list_to_refresh.dart
@@ -0,0 +1,17 @@
+import 'package:json_annotation/json_annotation.dart';
+
+part 'annotate_list_to_refresh.g.dart';
+
+
+@JsonSerializable()
+ class AnnotateListToRefresh extends Object {
+
+ AnnotateListToRefresh();
+
+ factory AnnotateListToRefresh.fromJson(Map
srcJson) => _$AnnotateListToRefreshFromJson(srcJson);
+
+ Map toJson() => _$AnnotateListToRefreshToJson(this);
+
+}
+
+
diff --git a/lib/common/job/annotated_class.dart b/making_school_asignment_app/lib/common/job/annotated_class.dart
similarity index 91%
rename from lib/common/job/annotated_class.dart
rename to making_school_asignment_app/lib/common/job/annotated_class.dart
index 2483b53..528a8d0 100644
--- a/lib/common/job/annotated_class.dart
+++ b/making_school_asignment_app/lib/common/job/annotated_class.dart
@@ -114,42 +114,45 @@ class AnnotatedStudents extends Object {
class HomeworkFavs extends Object {
@JsonKey(name: 'id')
- String id;
+ String? id;
@JsonKey(name: 'homeworkId')
- String homeworkId;
+ String? homeworkId;
@JsonKey(name: 'homeworkName')
- String homeworkName;
+ String? homeworkName;
@JsonKey(name: 'grade')
- int grade;
+ int? grade;
@JsonKey(name: 'subject')
- int subject;
+ int? subject;
@JsonKey(name: 'classId')
- String classId;
+ String? classId;
@JsonKey(name: 'className')
- String className;
+ String? className;
@JsonKey(name: 'studentId')
- int studentId;
+ int? studentId;
@JsonKey(name: 'studentName')
- String studentName;
+ String? studentName;
@JsonKey(name: 'templateId')
- String templateId;
+ int templateId;
@JsonKey(name: 'questionNo')
- int questionNo;
+ String? questionNo;
@JsonKey(name: 'subjectiveAnswer')
- String subjectiveAnswer;
+ String? subjectiveAnswer;
- HomeworkFavs(this.id,this.homeworkId,this.homeworkName,this.grade,this.subject,this.classId,this.className,this.studentId,this.studentName,this.templateId,this.questionNo,this.subjectiveAnswer,);
+ @JsonKey(name: 'zgtAnswer')
+ String? zgtAnswer;
+
+ HomeworkFavs(this.id,this.homeworkId,this.homeworkName,this.grade,this.subject,this.classId,this.className,this.studentId,this.studentName,this.templateId,this.questionNo,this.subjectiveAnswer,this.zgtAnswer);
factory HomeworkFavs.fromJson(Map srcJson) => _$HomeworkFavsFromJson(srcJson);
diff --git a/making_school_asignment_app/lib/common/job/app_version.dart b/making_school_asignment_app/lib/common/job/app_version.dart
new file mode 100644
index 0000000..776fbb9
--- /dev/null
+++ b/making_school_asignment_app/lib/common/job/app_version.dart
@@ -0,0 +1,56 @@
+import 'package:json_annotation/json_annotation.dart';
+
+import '../config/request_config.dart';
+
+part 'app_version.g.dart';
+
+@JsonSerializable()
+class AppVersion extends Object {
+ // @JsonKey(name: 'id')
+ // String id;
+
+ // @JsonKey(name: 'creatorId')
+ // int creatorId;
+
+ // @JsonKey(name: 'creatorName')
+ // String creatorName;
+
+ // @JsonKey(name: 'creationTime')
+ // String creationTime;
+
+ @JsonKey(name: 'appName')
+ String appName;
+
+ @JsonKey(name: 'version')
+ String version;
+
+ @JsonKey(name: 'ftuType')
+ int ftuType;
+
+ @JsonKey(name: 'appFileUrl')
+ String? appFileUrl;
+
+ @JsonKey(name: 'description')
+ String? description;
+
+ AppVersion(
+ // this.id,
+ // this.creatorId,
+ // this.creatorName,
+ // this.creationTime,
+ this.appName,
+ this.version,
+ this.ftuType,
+ this.appFileUrl,
+ this.description,
+ ) {
+ if (appFileUrl != null && ftuType != 2) {
+ appFileUrl = RequestConfig.imgUrl + appFileUrl!;
+ }
+ }
+
+ factory AppVersion.fromJson(Map srcJson) =>
+ _$AppVersionFromJson(srcJson);
+
+ Map toJson() => _$AppVersionToJson(this);
+}
diff --git a/lib/common/job/class_item.dart b/making_school_asignment_app/lib/common/job/class_item.dart
similarity index 100%
rename from lib/common/job/class_item.dart
rename to making_school_asignment_app/lib/common/job/class_item.dart
diff --git a/lib/common/job/common/app_version_model.dart b/making_school_asignment_app/lib/common/job/common/app_version_model.dart
similarity index 100%
rename from lib/common/job/common/app_version_model.dart
rename to making_school_asignment_app/lib/common/job/common/app_version_model.dart
diff --git a/lib/common/job/common/base_app_version.dart b/making_school_asignment_app/lib/common/job/common/base_app_version.dart
similarity index 86%
rename from lib/common/job/common/base_app_version.dart
rename to making_school_asignment_app/lib/common/job/common/base_app_version.dart
index a9283e2..008608a 100644
--- a/lib/common/job/common/base_app_version.dart
+++ b/making_school_asignment_app/lib/common/job/common/base_app_version.dart
@@ -1,5 +1,5 @@
import 'package:json_annotation/json_annotation.dart';
-import 'package:school_asignment_app/common/job/common/base_page.dart';
+import 'package:making_school_asignment_app/common/job/common/base_page.dart';
part 'base_app_version.g.dart';
diff --git a/lib/common/job/common/base_page.dart b/making_school_asignment_app/lib/common/job/common/base_page.dart
similarity index 100%
rename from lib/common/job/common/base_page.dart
rename to making_school_asignment_app/lib/common/job/common/base_page.dart
diff --git a/lib/common/job/common/base_page_data.dart b/making_school_asignment_app/lib/common/job/common/base_page_data.dart
similarity index 100%
rename from lib/common/job/common/base_page_data.dart
rename to making_school_asignment_app/lib/common/job/common/base_page_data.dart
diff --git a/lib/common/job/common/base_structure_result.dart b/making_school_asignment_app/lib/common/job/common/base_structure_result.dart
similarity index 93%
rename from lib/common/job/common/base_structure_result.dart
rename to making_school_asignment_app/lib/common/job/common/base_structure_result.dart
index a5bbd49..5cc8159 100644
--- a/lib/common/job/common/base_structure_result.dart
+++ b/making_school_asignment_app/lib/common/job/common/base_structure_result.dart
@@ -7,7 +7,7 @@
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import 'package:json_annotation/json_annotation.dart';
-import 'package:school_asignment_app/common/config/request_config.dart';
+import 'package:making_school_asignment_app/common/config/request_config.dart';
part 'base_structure_result.g.dart';
diff --git a/lib/common/job/common/upload_img_secret_key.dart b/making_school_asignment_app/lib/common/job/common/upload_img_secret_key.dart
similarity index 100%
rename from lib/common/job/common/upload_img_secret_key.dart
rename to making_school_asignment_app/lib/common/job/common/upload_img_secret_key.dart
diff --git a/lib/common/job/enum_subject.dart b/making_school_asignment_app/lib/common/job/enum_subject.dart
similarity index 100%
rename from lib/common/job/enum_subject.dart
rename to making_school_asignment_app/lib/common/job/enum_subject.dart
diff --git a/lib/common/job/homework_details.dart b/making_school_asignment_app/lib/common/job/homework_details.dart
similarity index 75%
rename from lib/common/job/homework_details.dart
rename to making_school_asignment_app/lib/common/job/homework_details.dart
index c7c1908..54f0fca 100644
--- a/lib/common/job/homework_details.dart
+++ b/making_school_asignment_app/lib/common/job/homework_details.dart
@@ -18,7 +18,10 @@ class HomeworkDetails extends Object {
@JsonKey(name: 'dtls')
List dtls;
- HomeworkDetails(this.questions,this.knows,this.students,this.dtls);
+ @JsonKey(name: 'subject')
+ int? subject;
+
+ HomeworkDetails(this.questions,this.knows,this.students,this.dtls,this.subject);
factory HomeworkDetails.fromJson(Map srcJson) => _$HomeworkDetailsFromJson(srcJson);
@@ -37,7 +40,7 @@ class Questions extends Object {
int templateId;
@JsonKey(name: 'questionNo')
- int questionNo;
+ String questionNo;
@JsonKey(name: 'questionType')
int questionType;
@@ -66,6 +69,9 @@ class Questions extends Object {
@JsonKey(name: 'okRate')
double? okRate;
+ @JsonKey(name: 'correctRate')
+ double? correctRate;
+
@JsonKey(name: 'priorityInfo')
List? priorityInfo;
@@ -78,8 +84,15 @@ class Questions extends Object {
@JsonKey(name: 'answerNgStudents')
List? answerNgStudents;
+ @JsonKey(name: 'overallTitles')
+ List? overallTitles;
+
+ @JsonKey(name: 'options')
+ List? options;
+
Questions(this.id,this.templateId,this.questionNo,this.questionType,this.answer,this.score,this.questionPicture,this.subjectivePicture,this.knows,this.answerCount,
- this.answerRate,this.okRate,this.priorityInfo,this.noAnswerStudents,this.answerOkStudents,this.answerNgStudents);
+ this.answerRate,this.okRate,this.priorityInfo,this.noAnswerStudents,this.answerOkStudents,this.answerNgStudents,this.correctRate,
+ this.overallTitles,this.options);
factory Questions.fromJson(Map srcJson) => _$QuestionsFromJson(srcJson);
@@ -117,7 +130,6 @@ class Knows extends Object {
}
-
@JsonSerializable()
class Students extends Object {
@@ -166,19 +178,31 @@ class Students extends Object {
@JsonKey(name: 'allNotDone')
bool? allNotDone;
+ @JsonKey(name: 'isAllCorrect')
+ bool? isAllCorrect;
+
@JsonKey(name: 'queDtls')
List? queDtls;
@JsonKey(name: 'okRate')
double? okRate;
+ @JsonKey(name: 'answerRate')
+ double? answerRate;
+
@JsonKey(name: 'noAnswerCount')
int? noAnswerCount;
@JsonKey(name: 'useTime')
int? useTime;
- Students(this.studentId,this.studentName,this.state,this.priorityAnnotate,this.kgtStu,this.kgtOkCount,this.kgtAnswerCount,this.zgtStu,this.zgtAnswerCount,this.zgtOkCount,this.allOk,this.kgtErrorCount,this.zgtErrorCount,this.zgtUnrated,this.allNotDone,this.queDtls,this.okRate,this.noAnswerCount,this.useTime);
+ @JsonKey(name: 'ttlSec')
+ String? ttlSec;
+
+ @JsonKey(name: 'allTime')
+ int? allTime;
+
+ Students(this.studentId,this.studentName,this.state,this.priorityAnnotate,this.kgtStu,this.kgtOkCount,this.kgtAnswerCount,this.zgtStu,this.zgtAnswerCount,this.zgtOkCount,this.allOk,this.kgtErrorCount,this.zgtErrorCount,this.zgtUnrated,this.allNotDone,this.queDtls,this.okRate,this.noAnswerCount,this.useTime,this.isAllCorrect,this.answerRate,this.allTime);
factory Students.fromJson(Map srcJson) => _$StudentsFromJson(srcJson);
@@ -206,7 +230,7 @@ class Dtls extends Object {
int? templateId;
@JsonKey(name: 'questionNo')
- int questionNo;
+ String questionNo;
@JsonKey(name: 'questionType')
int questionType;
@@ -220,6 +244,9 @@ class Dtls extends Object {
@JsonKey(name: 'useTime')
int useTime;
+ @JsonKey(name: 'lastAnswerTime')
+ String? lastAnswerTime;
+
@JsonKey(name: 'annotatePicture')
String? annotatePicture;
@@ -237,4 +264,42 @@ class Dtls extends Object {
}
+@JsonSerializable()
+class OverallTitles extends Object {
+ @JsonKey(name: 'title')
+ String title;
+
+ @JsonKey(name: 'count')
+ int count;
+
+ OverallTitles(this.title,this.count);
+
+ factory OverallTitles.fromJson(Map srcJson) => _$OverallTitlesFromJson(srcJson);
+
+ Map toJson() => _$OverallTitlesToJson(this);
+
+}
+
+@JsonSerializable()
+class SelectionRate extends Object {
+
+ @JsonKey(name: 'optionName')
+ String optionName;
+
+ @JsonKey(name: 'rate')
+ int rate;
+
+ @JsonKey(name: 'isCheck')
+ bool isCheck;
+
+ @JsonKey(name: 'currentOptionStudents')
+ List currentOptionStudents;
+
+ SelectionRate(this.optionName,this.rate,this.isCheck,this.currentOptionStudents,);
+
+ factory SelectionRate.fromJson(Map srcJson) => _$SelectionRateFromJson(srcJson);
+
+ Map toJson() => _$SelectionRateToJson(this);
+
+}
\ No newline at end of file
diff --git a/lib/common/job/knowledge_points_grasp.dart b/making_school_asignment_app/lib/common/job/knowledge_points_grasp.dart
similarity index 100%
rename from lib/common/job/knowledge_points_grasp.dart
rename to making_school_asignment_app/lib/common/job/knowledge_points_grasp.dart
diff --git a/lib/common/job/knowledge_report_detail.dart b/making_school_asignment_app/lib/common/job/knowledge_report_detail.dart
similarity index 97%
rename from lib/common/job/knowledge_report_detail.dart
rename to making_school_asignment_app/lib/common/job/knowledge_report_detail.dart
index aa06f5c..d328df1 100644
--- a/lib/common/job/knowledge_report_detail.dart
+++ b/making_school_asignment_app/lib/common/job/knowledge_report_detail.dart
@@ -19,7 +19,7 @@ class KnowledgeReportDetail extends Object {
int templateId;
@JsonKey(name: 'questionNo')
- int questionNo;
+ String questionNo;
@JsonKey(name: 'questionType')
int questionType;
diff --git a/making_school_asignment_app/lib/common/job/marking_models/do_paper_bus.dart b/making_school_asignment_app/lib/common/job/marking_models/do_paper_bus.dart
new file mode 100644
index 0000000..4a1ec84
--- /dev/null
+++ b/making_school_asignment_app/lib/common/job/marking_models/do_paper_bus.dart
@@ -0,0 +1,37 @@
+import 'package:json_annotation/json_annotation.dart';
+
+part 'do_paper_bus.g.dart';
+
+// 批阅页面底部操作栏BUG
+@JsonSerializable()
+class BottomOperationBar extends Object {
+ @JsonKey(name: 'revoke_pre_step') // 撤销上一步
+ bool revokePreStep;
+
+ @JsonKey(name: 'revoke_all') // 撤销全部
+ bool revokeAll;
+
+ BottomOperationBar({
+ required this.revokePreStep,
+ required this.revokeAll,
+ });
+
+ factory BottomOperationBar.fromJson(Map srcJson) => _$BottomOperationBarFromJson(srcJson);
+
+ Map toJson() => _$BottomOperationBarToJson(this);
+}
+
+
+
+@JsonSerializable()
+ class ZoomKey extends Object {
+
+ ZoomKey();
+
+ factory ZoomKey.fromJson(Map srcJson) => _$ZoomKeyFromJson(srcJson);
+
+ Map toJson() => _$ZoomKeyToJson(this);
+
+}
+
+
diff --git a/making_school_asignment_app/lib/common/job/marking_models/do_paper_details_param.dart b/making_school_asignment_app/lib/common/job/marking_models/do_paper_details_param.dart
new file mode 100644
index 0000000..ad211c1
--- /dev/null
+++ b/making_school_asignment_app/lib/common/job/marking_models/do_paper_details_param.dart
@@ -0,0 +1,47 @@
+import 'package:json_annotation/json_annotation.dart';
+
+part 'do_paper_details_param.g.dart';
+
+@JsonSerializable(includeIfNull: false)
+class DoPaperDetailsParam extends Object {
+ // 作业ID
+ @JsonKey(name: 'homeworkId')
+ String homeworkId;
+
+ @JsonKey(name: 'homeworkName')
+ String homeworkName;
+
+ // 班级ID
+ @JsonKey(name: 'classId')
+ String classId;
+
+ // 0 作业 1 考试
+ @JsonKey(name: 'assessType', defaultValue: 0)
+ int? assessType;
+
+ // 科目
+ @JsonKey(name: 'subject')
+ int subject;
+
+ // 题型ID
+ @JsonKey(name: 'templateId')
+ int? templateId;
+
+ // 学生ID
+ @JsonKey(name: 'studentId')
+ int? studentId;
+
+ DoPaperDetailsParam({
+ required this.homeworkId,
+ required this.homeworkName,
+ required this.classId,
+ required this.subject,
+ this.assessType,
+ this.templateId,
+ this.studentId,
+ });
+
+ factory DoPaperDetailsParam.fromJson(Map srcJson) => _$DoPaperDetailsParamFromJson(srcJson);
+
+ Map toJson() => _$DoPaperDetailsParamToJson(this);
+}
diff --git a/making_school_asignment_app/lib/common/job/marking_models/do_paper_details_result.dart b/making_school_asignment_app/lib/common/job/marking_models/do_paper_details_result.dart
new file mode 100644
index 0000000..3cb579e
--- /dev/null
+++ b/making_school_asignment_app/lib/common/job/marking_models/do_paper_details_result.dart
@@ -0,0 +1,281 @@
+import 'package:get/get.dart';
+import 'package:json_annotation/json_annotation.dart';
+import 'package:making_school_asignment_app/common/config/request_config.dart';
+
+part 'do_paper_details_result.g.dart';
+
+@JsonSerializable(checked: true, includeIfNull: false)
+class DoPaperDetailsResult extends Object {
+ @JsonKey(name: 'templateIds')
+ Map templateIds;
+
+ // 自定义字段
+ @JsonKey(name: 'templateIdKeys')
+ List? templateIdKeys;
+
+ // 自定义字段
+ @JsonKey(name: 'templateIdKeyMap')
+ Map? templateIdKeyMap;
+
+ @JsonKey(name: 'submitStudents', toJson: _paperStudentsToJson) // 当前页 总提交学生集合
+ List students;
+
+ @JsonKey(name: 'templateId')
+ int templateId;
+
+ @JsonKey(name: 'studentId')
+ int studentId;
+
+ // 自定义字段
+ @JsonKey(name: 'priority', defaultValue: false)
+ bool priority;
+
+ @JsonKey(name: 'annotatedCount') // 当前试题批阅数量
+ int annotatedCount;
+
+ @JsonKey(name: 'submitCount') // 当前试题提交数量
+ int submitCount;
+
+ @JsonKey(name: 'zgtAnswer') // 主观题作答图片
+ String zgtAnswer;
+
+ @JsonKey(name: 'showZgtAnnotate') // 主观题老师批注图片
+ String? showZgtAnnotate;
+
+ @JsonKey(name: 'zgtAnnotate') // 主观题老师批注图片
+ String? zgtAnnotate;
+
+ @JsonKey(name: 'lastAnswerTime') // 学生提交作答试题时间
+ String lastAnswerTime;
+
+ // 批注时间
+ @JsonKey(name: 'annotateTime')
+ String? annotateTime;
+
+ @JsonKey(name: 'isFav')
+ bool isFav;
+
+ @JsonKey(name: 'studentQuestions', toJson: _studentQuestionsToJson)
+ List studentQuestions;
+
+ // 当前页 未提交学生集合
+ @JsonKey(name: 'unSubmitStudents', toJson: _paperStudentsToJson)
+ List unSubmitStudents;
+
+ @JsonKey(name: 'lastPage', toJson: _lastPageToJson)
+ LastPage? lastPage;
+
+ @JsonKey(name: 'continuePage', toJson: _continuePageToJson)
+ ContinuePage? continuePage;
+
+
+ @JsonKey(name: 'nextPage', toJson: _nextPageToJson)
+ NextPage? nextPage;
+
+ // 所有页 总待提交数量
+ @JsonKey(name: 'totalUnAnnotateCount')
+ int totalUnAnnotateCount;
+
+ @JsonKey(name: 'needAnnotate') // 是否需要批阅
+ bool needAnnotate;
+
+ DoPaperDetailsResult(
+ this.totalUnAnnotateCount,
+ this.templateIds,
+ this.students,
+ this.templateId,
+ this.studentId,
+ this.annotatedCount,
+ this.submitCount,
+ this.zgtAnswer,
+ this.zgtAnnotate,
+ this.lastAnswerTime,
+ this.isFav,
+ this.studentQuestions,
+ this.unSubmitStudents,
+ this.lastPage,
+ this.nextPage,
+ this.continuePage,
+ this.templateIdKeys,
+ this.templateIdKeyMap,
+ this.priority,
+ this.annotateTime,
+ this.showZgtAnnotate,
+ {this.needAnnotate = false}) {
+ if (templateIds.keys.isNotEmpty) {
+ templateIdKeys = templateIds.keys.map((e) => int.parse(e)).toList();
+ templateIdKeyMap = {};
+ for (var i = 1; i <= templateIdKeys!.length; i++) {
+ var theVal = templateIdKeys![i - 1];
+ templateIdKeyMap![i] = theVal;
+ templateIdKeyMap![theVal] = i;
+ }
+ }
+
+ // 找到当前学生是否是优先批阅
+ if (students.isNotEmpty) {
+ var currentStudent = students.firstWhereOrNull((e) => e.id == studentId);
+ if (currentStudent != null) priority = currentStudent.isPriority;
+ }
+
+ if (!zgtAnswer.contains(RequestConfig.imgUrl)) {
+ zgtAnswer = '${RequestConfig.imgUrl}$zgtAnswer?$lastAnswerTime';
+ }
+
+ if (zgtAnnotate?.isNotEmpty ?? false) {
+ showZgtAnnotate = RequestConfig.imgUrl + zgtAnnotate!; // 批注图片地址赋值
+ if (annotateTime != null) showZgtAnnotate = '${showZgtAnnotate!}?$annotateTime';
+ }
+
+ // 判断当前试题是否需要批阅
+ if (annotateTime == null || studentQuestions.indexWhere((e) => e.studentScore == null) != -1) {
+ needAnnotate = true;
+ }
+ // print('学生作答图片:${annotatedCount}');
+ // print('老师批注图片提交数量:${submitCount}');
+ }
+
+ factory DoPaperDetailsResult.fromJson(Map srcJson) => _$DoPaperDetailsResultFromJson(srcJson);
+
+ Map toJson() => _$DoPaperDetailsResultToJson(this);
+
+ static List