Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
Education
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄奎
Education
Commits
8e1c50c7
Commit
8e1c50c7
authored
Aug 16, 2021
by
罗超
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/Kui2/education
parents
45f2b0e0
e21c893d
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
672 additions
and
32 deletions
+672
-32
RB_Examination_Publish.cs
Edu.Model/Entity/Exam/RB_Examination_Publish.cs
+143
-0
ExamFolderTreeModel.cs
Edu.Model/ViewModel/Exam/ExamFolderTreeModel.cs
+32
-0
RB_Examination_Paper_ViewModel.cs
Edu.Model/ViewModel/Exam/RB_Examination_Paper_ViewModel.cs
+10
-0
RB_Examination_Publish_ViewModel.cs
Edu.Model/ViewModel/Exam/RB_Examination_Publish_ViewModel.cs
+15
-0
PaperModule.cs
Edu.Module.Exam/PaperModule.cs
+211
-6
RB_Examination_PaperRepository.cs
Edu.Repository/Exam/RB_Examination_PaperRepository.cs
+62
-0
RB_Examination_PublishRepository.cs
Edu.Repository/Exam/RB_Examination_PublishRepository.cs
+41
-0
QuestionController.cs
Edu.WebApi/Controllers/Course/QuestionController.cs
+1
-0
ExamController.cs
Edu.WebApi/Controllers/Exam/ExamController.cs
+157
-26
No files found.
Edu.Model/Entity/Exam/RB_Examination_Publish.cs
0 → 100644
View file @
8e1c50c7
using
System
;
using
VT.FW.DB
;
namespace
Edu.Model.Entity.Exam
{
/// <summary>
/// 试卷发布实体类
/// </summary>
[
Serializable
]
[
DB
(
ConnectionName
=
"DefaultConnection"
)]
public
class
RB_Examination_Publish
{
/// <summary>
/// 发布考试主键编号
/// </summary>
public
int
Id
{
get
;
set
;
}
/// <summary>
/// 试卷编号
/// </summary>
public
int
PaperId
{
get
;
set
;
}
/// <summary>
/// 发放类型(1-按班级发放,2-指定学生发放)
/// </summary>
public
int
PublishType
{
get
;
set
;
}
/// <summary>
/// 考试开始时间
/// </summary>
public
DateTime
ExamStartTime
{
get
;
set
;
}
/// <summary>
/// 考试结束时间
/// </summary>
public
DateTime
ExamEndTime
{
get
;
set
;
}
/// <summary>
/// 考试限时
/// </summary>
public
int
ExamTimes
{
get
;
set
;
}
/// <summary>
/// 限时提交(多少分钟内不允许提交)
/// </summary>
public
int
SubmitTimes
{
get
;
set
;
}
/// <summary>
/// 限时进入(多少分钟后不允许参加考试)
/// </summary>
public
int
EnterTimes
{
get
;
set
;
}
/// <summary>
/// 创建人
/// </summary>
public
int
CreateBy
{
get
;
set
;
}
/// <summary>
/// 创建时间
/// </summary>
public
DateTime
CreateTime
{
get
;
set
;
}
/// <summary>
/// 集团编号
/// </summary>
public
int
Group_Id
{
get
;
set
;
}
/// <summary>
/// 学校编号
/// </summary>
public
int
School_Id
{
get
;
set
;
}
/// <summary>
/// 删除状态
/// </summary>
public
int
Status
{
get
;
set
;
}
/// <summary>
/// 题目乱序(1-是)
/// </summary>
public
int
IsQuestionRandom
{
get
;
set
;
}
/// <summary>
/// 选项乱序(1-是)
/// </summary>
public
int
IsOptionRandom
{
get
;
set
;
}
/// <summary>
/// 学生离开作答页面(1-是)
/// </summary>
public
int
IsLeaveAnswer
{
get
;
set
;
}
/// <summary>
/// 离开次数
/// </summary>
public
int
LeaveTimes
{
get
;
set
;
}
/// <summary>
/// 是否禁用多终端(1-是)
/// </summary>
public
int
IsDisableMultiTerminal
{
get
;
set
;
}
/// <summary>
/// 是否只允许(App、PC)考试(1-是)
/// </summary>
public
int
IsExamType
{
get
;
set
;
}
/// <summary>
/// 考试终端类型(1-App,2-PC)
/// </summary>
public
int
ExamTypeValue
{
get
;
set
;
}
/// <summary>
/// 考试须知
/// </summary>
public
string
ExamNotice
{
get
;
set
;
}
/// <summary>
/// 及格分数
/// </summary>
public
decimal
PassScore
{
get
;
set
;
}
/// <summary>
/// 考试到达截止时间后自动提交(1-是)
/// </summary>
public
int
IsAutoSubmit
{
get
;
set
;
}
/// <summary>
/// 填空类型的题目设为主观题(1-是)
/// </summary>
public
int
FillInIsSubject
{
get
;
set
;
}
/// <summary>
/// 填空题答案不区分大小写(1-是)
/// </summary>
public
int
FillInIsIgnore
{
get
;
set
;
}
/// <summary>
/// 多选题未选全给一半分(1-是)
/// </summary>
public
int
IsHalfScore
{
get
;
set
;
}
}
}
Edu.Model/ViewModel/Exam/ExamFolderTreeModel.cs
0 → 100644
View file @
8e1c50c7
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
namespace
Edu.Model.ViewModel.Exam
{
/// <summary>
/// 试卷文件树形结构
/// </summary>
public
class
ExamFolderTreeModel
{
/// <summary>
/// 试卷编号
/// </summary>
public
int
PaperId
{
get
;
set
;
}
/// <summary>
/// 试卷名称
/// </summary>
public
string
PaperName
{
get
;
set
;
}
/// <summary>
/// 父节点编号
/// </summary>
public
int
ParentId
{
get
;
set
;
}
/// <summary>
/// 下级文件夹列表
/// </summary>
public
List
<
ExamFolderTreeModel
>
ChildList
{
get
;
set
;
}
}
}
Edu.Model/ViewModel/Exam/RB_Examination_Paper_ViewModel.cs
View file @
8e1c50c7
...
...
@@ -21,5 +21,15 @@ namespace Edu.Model.ViewModel.Exam
/// 问题数量
/// </summary>
public
int
QuestionCount
{
get
;
set
;
}
/// <summary>
/// 试卷编号
/// </summary>
public
string
QPaperIds
{
get
;
set
;
}
/// <summary>
/// 是否查询文件夹
/// </summary>
public
int
IsQueryFolder
{
get
;
set
;
}
}
}
Edu.Model/ViewModel/Exam/RB_Examination_Publish_ViewModel.cs
0 → 100644
View file @
8e1c50c7
using
Edu.Model.Entity.Exam
;
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
namespace
Edu.Model.ViewModel.Exam
{
/// <summary>
/// 试卷发布视图实体类
/// </summary>
public
class
RB_Examination_Publish_ViewModel
:
RB_Examination_Publish
{
}
}
Edu.Module.Exam/PaperModule.cs
View file @
8e1c50c7
...
...
@@ -5,7 +5,6 @@ using System;
using
System.Collections.Generic
;
using
VT.FW.DB
;
using
System.Linq
;
using
System.Text.RegularExpressions
;
using
Edu.Cache.User
;
using
Edu.Common.Plugin
;
using
Edu.Module.Question
;
...
...
@@ -49,6 +48,11 @@ namespace Edu.Module.Exam
/// </summary>
private
readonly
RB_QuestionRepository
questionRepository
=
new
RB_QuestionRepository
();
/// <summary>
/// 考试发布仓储层对象
/// </summary>
private
readonly
RB_Examination_PublishRepository
examination_PublishRepository
=
new
RB_Examination_PublishRepository
();
/// <summary>
/// 获取试卷分页列表
/// </summary>
...
...
@@ -117,7 +121,7 @@ namespace Edu.Module.Exam
}
/// <summary>
/// 递归遍历所有
章节
/// 递归遍历所有
下级文件夹或试卷
/// </summary>
/// <param name="sourceList">源数据</param>
/// <param name="parentId">父节点编号</param>
...
...
@@ -227,6 +231,7 @@ namespace Edu.Module.Exam
{
foreach
(
var
dItem
in
gitem
.
DetailsList
)
{
dItem
.
PaperId
=
model
.
PaperId
;
if
(
dItem
.
Id
>
0
)
{
Dictionary
<
string
,
object
>
fileds
=
new
Dictionary
<
string
,
object
>()
...
...
@@ -514,14 +519,214 @@ namespace Edu.Module.Exam
/// 根据分组删除分组和题目
/// </summary>
/// <param name="GId"></param>
/// <param name="QuestionTypeId">问题类型编号</param>
/// <returns></returns>
[
TransactionCallHandler
]
public
bool
RemoveExamnationGroupModule
(
int
GId
,
int
QuestionTypeId
)
{
var
flag
=
true
;
if
(
GId
>
0
)
{
flag
=
examination_GroupRepository
.
DeleteOne
(
new
WhereHelper
(
nameof
(
RB_Examination_Group_ViewModel
.
GId
),
GId
));
}
if
(
flag
&&
QuestionTypeId
>
0
)
{
flag
=
examination_DetailsRepository
.
DeleteOne
(
new
WhereHelper
(
nameof
(
RB_Examination_Details_ViewModel
.
QuestionTypeId
),
QuestionTypeId
));
}
return
flag
;
}
/// <summary>
/// 根据试卷编号删除试卷
/// </summary>
/// <param name="PaperId"></param>
/// <returns></returns>
[
TransactionCallHandler
]
public
bool
RemoveExamnationPaperModule
(
int
PaperId
)
{
var
flag
=
true
;
if
(
PaperId
>
0
)
{
flag
=
examination_PaperRepository
.
DeleteOne
(
new
WhereHelper
(
nameof
(
RB_Examination_Paper_ViewModel
.
PaperId
),
PaperId
));
}
if
(
flag
)
{
flag
=
examination_GroupRepository
.
DeleteOne
(
new
WhereHelper
(
nameof
(
RB_Examination_Group_ViewModel
.
PaperId
),
PaperId
));
}
if
(
flag
)
{
flag
=
examination_DetailsRepository
.
DeleteOne
(
new
WhereHelper
(
nameof
(
RB_Examination_Details_ViewModel
.
PaperId
),
PaperId
));
}
return
flag
;
}
/// <summary>
/// 根据试卷编号复制试卷
/// </summary>
/// <param name="PaperId"></param>
/// <returns></returns>
public
bool
RemoveExamnationGroupModule
(
int
qu
,
int
GId
)
[
TransactionCallHandler
]
public
bool
CopyExamnationPaperModule
(
int
PaperId
)
{
IList
<
WhereHelper
>
whereHelpers
=
new
List
<
WhereHelper
>();
var
flag
=
true
;
var
model
=
GetExaminationPaperModule
(
PaperId
);
if
(
model
==
null
)
{
flag
=
false
;
return
flag
;
}
model
.
PaperId
=
0
;
if
(
model
.
GroupList
!=
null
&&
model
.
GroupList
.
Count
>
0
)
{
foreach
(
var
gItem
in
model
.
GroupList
)
{
gItem
.
GId
=
0
;
gItem
.
PaperId
=
0
;
if
(
gItem
.
DetailsList
!=
null
&&
gItem
.
DetailsList
.
Count
>
0
)
{
foreach
(
var
sItem
in
gItem
.
DetailsList
)
{
sItem
.
Id
=
0
;
sItem
.
PaperId
=
0
;
}
}
}
}
flag
=
SetExaminationPaperModule
(
model
);
return
flag
;
}
//examination_GroupRepository.Delete()
return
false
;
/// <summary>
/// 移动试卷
/// </summary>
/// <param name="PaperId">试卷编号</param>
/// <param name="ParentId">父节点编号</param>
/// <returns></returns>
public
bool
MoveExamnationPaperModule
(
int
PaperId
,
int
ParentId
)
{
var
flag
=
true
;
Dictionary
<
string
,
object
>
fileds
=
new
Dictionary
<
string
,
object
>()
{
{
nameof
(
RB_Examination_Paper_ViewModel
.
ParentId
),
ParentId
}
};
flag
=
examination_PaperRepository
.
Update
(
fileds
,
new
WhereHelper
(
nameof
(
RB_Examination_Paper_ViewModel
.
PaperId
),
PaperId
));
return
flag
;
}
/// <summary>
/// 获取文件夹树形结构
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public
object
GetFolderTreeModule
(
RB_Examination_Paper_ViewModel
query
)
{
List
<
ExamFolderTreeModel
>
list
=
new
List
<
ExamFolderTreeModel
>();
var
dataList
=
examination_PaperRepository
.
GetExaminationPaperListRepository
(
query
);
if
(
dataList
!=
null
&&
dataList
.
Count
>
0
)
{
var
rootList
=
dataList
?.
Where
(
qitem
=>
qitem
.
ParentId
==
0
)?.
ToList
();
foreach
(
var
rItem
in
rootList
)
{
ExamFolderTreeModel
fTreeModel
=
new
ExamFolderTreeModel
()
{
PaperId
=
rItem
.
PaperId
,
ParentId
=
rItem
.
ParentId
,
PaperName
=
rItem
.
PaperName
,
ChildList
=
new
List
<
ExamFolderTreeModel
>()
};
fTreeModel
.
ChildList
=
GetFolderChild
(
dataList
,
rItem
.
PaperId
);
list
.
Add
(
fTreeModel
);
}
}
return
list
;
}
/// <summary>
/// 递归遍历所有下级文件夹
/// </summary>
/// <param name="sourceList">源数据</param>
/// <param name="parentId">父节点编号</param>
/// <returns></returns>
public
List
<
ExamFolderTreeModel
>
GetFolderChild
(
List
<
RB_Examination_Paper_ViewModel
>
sourceList
,
int
parentId
)
{
List
<
ExamFolderTreeModel
>
resultList
=
new
List
<
ExamFolderTreeModel
>();
//获取下级节点
var
subList
=
sourceList
?.
Where
(
qItem
=>
qItem
.
ParentId
==
parentId
).
ToList
();
//如果存在下级节点
if
(
subList
!=
null
&&
subList
.
Count
>
0
)
{
foreach
(
var
childItem
in
subList
)
{
var
childModel
=
new
ExamFolderTreeModel
()
{
PaperId
=
childItem
.
PaperId
,
ParentId
=
childItem
.
ParentId
,
PaperName
=
childItem
.
PaperName
,
ChildList
=
new
List
<
ExamFolderTreeModel
>()
};
childModel
.
ChildList
.
AddRange
(
GetFolderChild
(
sourceList
,
childItem
.
PaperId
));
resultList
.
Add
(
childModel
);
}
}
return
resultList
;
}
/// <summary>
/// 获取发布试卷分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public
List
<
RB_Examination_Publish_ViewModel
>
GetExaminationPublishPageModule
(
int
pageIndex
,
int
pageSize
,
out
long
rowsCount
,
RB_Examination_Publish_ViewModel
query
)
{
return
examination_PublishRepository
.
GetExaminationPublishPageRepository
(
pageIndex
,
pageSize
,
out
rowsCount
,
query
);
}
/// <summary>
/// 新增修改考试发布
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public
bool
SetExaminationPublishModule
(
RB_Examination_Publish_ViewModel
model
)
{
bool
flag
=
true
;
if
(
model
.
Id
>
0
)
{
Dictionary
<
string
,
object
>
fileds
=
new
Dictionary
<
string
,
object
>()
{
{
nameof
(
RB_Examination_Publish_ViewModel
.
PaperId
),
model
.
PaperId
},
{
nameof
(
RB_Examination_Publish_ViewModel
.
PublishType
),
model
.
PublishType
},
{
nameof
(
RB_Examination_Publish_ViewModel
.
ExamStartTime
),
model
.
ExamStartTime
},
{
nameof
(
RB_Examination_Publish_ViewModel
.
ExamEndTime
),
model
.
ExamEndTime
},
{
nameof
(
RB_Examination_Publish_ViewModel
.
ExamTimes
),
model
.
ExamTimes
},
{
nameof
(
RB_Examination_Publish_ViewModel
.
SubmitTimes
),
model
.
SubmitTimes
},
{
nameof
(
RB_Examination_Publish_ViewModel
.
EnterTimes
),
model
.
EnterTimes
},
{
nameof
(
RB_Examination_Publish_ViewModel
.
IsQuestionRandom
),
model
.
IsQuestionRandom
},
{
nameof
(
RB_Examination_Publish_ViewModel
.
IsOptionRandom
),
model
.
IsOptionRandom
},
{
nameof
(
RB_Examination_Publish_ViewModel
.
IsLeaveAnswer
),
model
.
IsLeaveAnswer
},
{
nameof
(
RB_Examination_Publish_ViewModel
.
LeaveTimes
),
model
.
LeaveTimes
},
{
nameof
(
RB_Examination_Publish_ViewModel
.
IsDisableMultiTerminal
),
model
.
IsDisableMultiTerminal
},
{
nameof
(
RB_Examination_Publish_ViewModel
.
IsExamType
),
model
.
IsExamType
},
{
nameof
(
RB_Examination_Publish_ViewModel
.
ExamTypeValue
),
model
.
ExamTypeValue
},
{
nameof
(
RB_Examination_Publish_ViewModel
.
ExamNotice
),
model
.
ExamNotice
},
{
nameof
(
RB_Examination_Publish_ViewModel
.
PassScore
),
model
.
PassScore
},
{
nameof
(
RB_Examination_Publish_ViewModel
.
IsAutoSubmit
),
model
.
IsAutoSubmit
},
{
nameof
(
RB_Examination_Publish_ViewModel
.
FillInIsSubject
),
model
.
FillInIsSubject
},
{
nameof
(
RB_Examination_Publish_ViewModel
.
FillInIsIgnore
),
model
.
FillInIsIgnore
},
{
nameof
(
RB_Examination_Publish_ViewModel
.
IsHalfScore
),
model
.
IsHalfScore
},
};
flag
=
examination_PublishRepository
.
Update
(
fileds
,
new
WhereHelper
(
nameof
(
RB_Examination_Publish_ViewModel
.
Id
),
model
.
Id
));
}
else
{
var
newId
=
examination_PublishRepository
.
Insert
(
model
);
model
.
Id
=
newId
;
flag
=
newId
>
0
;
}
return
flag
;
}
}
}
Edu.Repository/Exam/RB_Examination_PaperRepository.cs
View file @
8e1c50c7
...
...
@@ -43,11 +43,73 @@ WHERE 1=1
builder
.
AppendFormat
(
" AND A.{0} LIKE @PaperName "
,
nameof
(
RB_Examination_Paper_ViewModel
.
PaperName
));
parameters
.
Add
(
"PaperName"
,
"%"
+
query
.
PaperName
.
Trim
()
+
"%"
);
}
if
(
query
.
ParentId
>
0
)
{
builder
.
AppendFormat
(
@" AND A.{0}={1} "
,
nameof
(
RB_Examination_Paper_ViewModel
.
ParentId
),
query
.
ParentId
);
}
if
(
query
.
PaperId
>
0
)
{
builder
.
AppendFormat
(
@" AND A.{0}={1} "
,
nameof
(
RB_Examination_Paper_ViewModel
.
PaperId
),
query
.
PaperId
);
}
if
(!
string
.
IsNullOrEmpty
(
query
.
QPaperIds
))
{
builder
.
AppendFormat
(
@" AND A.{0} IN({1}) "
,
nameof
(
RB_Examination_Paper_ViewModel
.
PaperId
),
query
.
QPaperIds
);
}
}
builder
.
AppendFormat
(
" ORDER BY A.{0} DESC "
,
nameof
(
RB_Examination_Paper_ViewModel
.
PaperId
));
return
GetPage
<
RB_Examination_Paper_ViewModel
>(
pageIndex
,
pageSize
,
out
rowsCount
,
builder
.
ToString
(),
parameters
).
ToList
();
}
/// <summary>
/// 获取试卷列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public
List
<
RB_Examination_Paper_ViewModel
>
GetExaminationPaperListRepository
(
RB_Examination_Paper_ViewModel
query
)
{
var
parameters
=
new
DynamicParameters
();
StringBuilder
builder
=
new
StringBuilder
();
builder
.
AppendFormat
(
@"
SELECT A.*
FROM RB_Examination_Paper AS A
WHERE 1=1
"
);
builder
.
AppendFormat
(
@" AND A.{0}={1} "
,
nameof
(
RB_Examination_Paper_ViewModel
.
ParentId
),
0
);
if
(
query
!=
null
)
{
if
(
query
.
Group_Id
>
0
)
{
builder
.
AppendFormat
(
@" AND A.{0}={1} "
,
nameof
(
RB_Examination_Paper_ViewModel
.
Group_Id
),
query
.
Group_Id
);
}
if
(!
string
.
IsNullOrEmpty
(
query
.
PaperName
))
{
builder
.
AppendFormat
(
" AND A.{0} LIKE @PaperName "
,
nameof
(
RB_Examination_Paper_ViewModel
.
PaperName
));
parameters
.
Add
(
"PaperName"
,
"%"
+
query
.
PaperName
.
Trim
()
+
"%"
);
}
if
(
query
.
ParentId
>
0
)
{
builder
.
AppendFormat
(
@" AND A.{0}={1} "
,
nameof
(
RB_Examination_Paper_ViewModel
.
ParentId
),
query
.
ParentId
);
}
if
(
query
.
PaperId
>
0
)
{
builder
.
AppendFormat
(
@" AND A.{0}={1} "
,
nameof
(
RB_Examination_Paper_ViewModel
.
PaperId
),
query
.
PaperId
);
}
if
(!
string
.
IsNullOrEmpty
(
query
.
QPaperIds
))
{
builder
.
AppendFormat
(
@" AND A.{0} IN({1}) "
,
nameof
(
RB_Examination_Paper_ViewModel
.
PaperId
),
query
.
QPaperIds
);
}
//查询文件夹
if
(
query
.
IsQueryFolder
==
1
)
{
builder
.
AppendFormat
(
@" AND A.{0}=1 "
,
nameof
(
RB_Examination_Paper_ViewModel
.
PaperType
));
}
}
builder
.
AppendFormat
(
" ORDER BY A.{0} DESC "
,
nameof
(
RB_Examination_Paper_ViewModel
.
PaperId
));
return
Get
<
RB_Examination_Paper_ViewModel
>(
builder
.
ToString
(),
parameters
).
ToList
();
}
/// <summary>
/// 获取试卷所有下级列表
/// </summary>
...
...
Edu.Repository/Exam/RB_Examination_PublishRepository.cs
0 → 100644
View file @
8e1c50c7
using
Edu.Model.Entity.Exam
;
using
Edu.Model.ViewModel.Exam
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
namespace
Edu.Repository.Exam
{
/// <summary>
/// 试卷发布仓储层
/// </summary>
public
class
RB_Examination_PublishRepository
:
BaseRepository
<
RB_Examination_Publish
>
{
/// <summary>
/// 获取发布试卷分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public
List
<
RB_Examination_Publish_ViewModel
>
GetExaminationPublishPageRepository
(
int
pageIndex
,
int
pageSize
,
out
long
rowsCount
,
RB_Examination_Publish_ViewModel
query
)
{
StringBuilder
builder
=
new
StringBuilder
();
builder
.
AppendFormat
(
@"
SELECT A.*
FROM RB_Examination_Publish AS A
WHERE 1=1
"
);
if
(
query
!=
null
)
{
if
(
query
.
Group_Id
>
0
)
{
builder
.
AppendFormat
(
" AND A.{0}={1} "
,
nameof
(
RB_Examination_Publish_ViewModel
.
Group_Id
),
query
.
Group_Id
);
}
}
return
GetPage
<
RB_Examination_Publish_ViewModel
>(
pageIndex
,
pageSize
,
out
rowsCount
,
builder
.
ToString
()).
ToList
();
}
}
}
Edu.WebApi/Controllers/Course/QuestionController.cs
View file @
8e1c50c7
...
...
@@ -208,6 +208,7 @@ namespace Edu.WebApi.Controllers.Course
item
.
QuestionId
,
item
.
CourseId
,
Title
=
newTitle
,
SourceTitle
=
item
.
Title
,
item
.
QuestionTypeId
,
item
.
QuestionTypeKey
,
QuestionTypeName
=
item
.
QuestionTypeKey
!=
"single-number"
?
item
.
QuestionTypeName
:
"选择题"
,
...
...
Edu.WebApi/Controllers/Exam/ExamController.cs
View file @
8e1c50c7
using
Edu.Cache.User
;
using
Edu.Common.API
;
using
Edu.Common.API
;
using
Edu.Common.Enum.Course
;
using
Edu.Common.Enum.Question
;
using
Edu.Common.Plugin
;
...
...
@@ -11,8 +10,6 @@ using Microsoft.AspNetCore.Mvc;
using
Newtonsoft.Json.Linq
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Threading.Tasks
;
namespace
Edu.WebApi.Controllers.Exam
{
...
...
@@ -41,6 +38,9 @@ namespace Edu.WebApi.Controllers.Exam
var
query
=
new
RB_Examination_Paper_ViewModel
()
{
PaperName
=
base
.
ParmJObj
.
GetStringValue
(
"PaperName"
),
PaperId
=
base
.
ParmJObj
.
GetInt
(
"PaperId"
),
ParentId
=
base
.
ParmJObj
.
GetInt
(
"ParentId"
),
QPaperIds
=
base
.
ParmJObj
.
GetStringValue
(
"QPaperIds"
)
};
query
.
Group_Id
=
base
.
UserInfo
.
Group_Id
;
List
<
object
>
result
=
new
List
<
object
>();
...
...
@@ -78,14 +78,14 @@ namespace Edu.WebApi.Controllers.Exam
PaperId
=
base
.
ParmJObj
.
GetInt
(
"PaperId"
),
PaperName
=
base
.
ParmJObj
.
GetStringValue
(
"PaperName"
),
QuestionBandIds
=
base
.
ParmJObj
.
GetStringValue
(
"QuestionBandIds"
),
DifficultyType
=
(
DifficultyTypeEnum
)
base
.
ParmJObj
.
GetInt
(
"DifficultyType"
),
DifficultyType
=
(
DifficultyTypeEnum
)
base
.
ParmJObj
.
GetInt
(
"DifficultyType"
),
CreateBy
=
UserInfo
.
Id
,
CreateTime
=
DateTime
.
Now
,
Group_Id
=
base
.
UserInfo
.
Group_Id
,
GenerateType
=
base
.
ParmJObj
.
GetInt
(
"GenerateType"
),
CreateNum
=
base
.
ParmJObj
.
GetInt
(
"CreateNum"
),
PaperType
=
base
.
ParmJObj
.
GetInt
(
"PaperType"
),
ParentId
=
base
.
ParmJObj
.
GetInt
(
"ParentId"
),
GenerateType
=
base
.
ParmJObj
.
GetInt
(
"GenerateType"
),
CreateNum
=
base
.
ParmJObj
.
GetInt
(
"CreateNum"
),
PaperType
=
base
.
ParmJObj
.
GetInt
(
"PaperType"
),
ParentId
=
base
.
ParmJObj
.
GetInt
(
"ParentId"
),
};
extModel
.
GroupList
=
new
List
<
RB_Examination_Group_ViewModel
>();
string
groups
=
base
.
ParmJObj
.
GetStringValue
(
"GroupList"
);
...
...
@@ -105,7 +105,7 @@ namespace Edu.WebApi.Controllers.Exam
GroupName
=
jobj
.
GetStringValue
(
"GroupName"
),
QuestionTypeId
=
jobj
.
GetInt
(
"QuestionTypeId"
),
QuestionTypeKey
=
jobj
.
GetStringValue
(
"QuestionTypeKey"
),
GSortNum
=
gSortNum
,
GSortNum
=
gSortNum
,
DetailsList
=
new
List
<
RB_Examination_Details_ViewModel
>(),
};
gSortNum
++;
...
...
@@ -168,14 +168,14 @@ namespace Edu.WebApi.Controllers.Exam
TemplateName
=
base
.
ParmJObj
.
GetStringValue
(
"TemplateName"
),
TemplateScore
=
base
.
ParmJObj
.
GetDecimal
(
"TemplateScore"
),
TemplateNum
=
base
.
ParmJObj
.
GetInt
(
"TemplateNum"
),
TemplateDifficultyType
=
(
DifficultyTypeEnum
)
base
.
ParmJObj
.
GetInt
(
"DifficultyType"
),
TemplateBankIds
=
base
.
ParmJObj
.
GetStringValue
(
"TemplateBankIds"
),
TemplateDifficultyType
=
(
DifficultyTypeEnum
)
base
.
ParmJObj
.
GetInt
(
"DifficultyType"
),
TemplateBankIds
=
base
.
ParmJObj
.
GetStringValue
(
"TemplateBankIds"
),
CreateBy
=
UserInfo
.
Id
,
CreateTime
=
DateTime
.
Now
,
Group_Id
=
base
.
UserInfo
.
Group_Id
,
School_Id
=
base
.
UserInfo
.
School_Id
,
Status
=
Common
.
Enum
.
DateStateEnum
.
Normal
,
IsSaveTemplate
=
base
.
ParmJObj
.
GetBoolValue
(
"IsSaveTemplate"
),
School_Id
=
base
.
UserInfo
.
School_Id
,
Status
=
Common
.
Enum
.
DateStateEnum
.
Normal
,
IsSaveTemplate
=
base
.
ParmJObj
.
GetBoolValue
(
"IsSaveTemplate"
),
};
string
TemplateData
=
base
.
ParmJObj
.
GetStringValue
(
"TemplateData"
);
if
(!
string
.
IsNullOrEmpty
(
TemplateData
))
...
...
@@ -229,7 +229,7 @@ namespace Edu.WebApi.Controllers.Exam
{
tempStr
+=
"、"
+
string
.
Format
(
"{0}:{1}"
,
tItem
.
DifficultyType
.
ToName
(),
tItem
.
ChooseNum
);
}
QuestionStructure
+=
";"
+
string
.
Format
(
"{0}:{1}"
,
sItem
.
QuestionTypeName
,
tempStr
.
TrimStart
(
'、'
));
QuestionStructure
+=
";"
+
string
.
Format
(
"{0}:{1}"
,
sItem
.
QuestionTypeName
,
tempStr
.
TrimStart
(
'、'
));
}
}
}
...
...
@@ -241,10 +241,10 @@ namespace Edu.WebApi.Controllers.Exam
item
.
TemplateScore
,
item
.
TemplateNum
,
item
.
TemplateDifficultyType
,
TemplateDifficultyTypeName
=
item
.
TemplateDifficultyType
.
ToName
(),
TemplateData
=
templist
,
TemplateDifficultyTypeName
=
item
.
TemplateDifficultyType
.
ToName
(),
TemplateData
=
templist
,
item
.
TemplateBankIds
,
QuestionStructure
=
QuestionStructure
.
TrimStart
(
';'
)
QuestionStructure
=
QuestionStructure
.
TrimStart
(
';'
)
});
}
pageModel
.
Count
=
rowsCount
;
...
...
@@ -252,12 +252,12 @@ namespace Edu.WebApi.Controllers.Exam
return
ApiResult
.
Success
(
data
:
pageModel
);
}
/// <summary>
/// 新增修改文件夹
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
SetPaperFolder
()
{
var
extModel
=
new
RB_Examination_Paper_ViewModel
()
...
...
@@ -277,8 +277,7 @@ namespace Edu.WebApi.Controllers.Exam
bool
flag
=
paperModule
.
SetExaminationPaperFolderModule
(
extModel
);
return
flag
?
ApiResult
.
Success
(
data
:
extModel
)
:
ApiResult
.
Failed
();
}
/// <summary>
/// 根据编号获取试卷信息
...
...
@@ -294,15 +293,147 @@ namespace Edu.WebApi.Controllers.Exam
/// <summary>
/// 根据编号删除试卷题目
/// 根据试卷详情编号删除
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
DeletePaperDetails
()
{
var
Id
=
base
.
ParmJObj
.
GetInt
(
"Id"
);
var
flag
=
paperModule
.
RemoveExaminationDetailsModule
(
Id
);
return
flag
?
ApiResult
.
Success
()
:
ApiResult
.
Failed
();
}
/// <summary>
/// 根据试卷分组编号删除
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
DeletePaperGroup
()
{
var
GId
=
base
.
ParmJObj
.
GetInt
(
"GId"
);
var
QuestionTypeId
=
base
.
ParmJObj
.
GetInt
(
"QuestionTypeId"
);
var
flag
=
paperModule
.
RemoveExamnationGroupModule
(
GId
,
QuestionTypeId
);
return
flag
?
ApiResult
.
Success
()
:
ApiResult
.
Failed
();
}
/// <summary>
/// 根据试卷编号删除试卷
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
DeletePaper
()
{
var
PaperId
=
base
.
ParmJObj
.
GetInt
(
"PaperId"
);
var
flag
=
paperModule
.
RemoveExamnationPaperModule
(
PaperId
);
return
flag
?
ApiResult
.
Success
()
:
ApiResult
.
Failed
();
}
/// <summary>
/// 根据试卷编号复制试卷
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
DeletePaperQuestion
()
public
ApiResult
CopyPaper
()
{
var
PaperId
=
base
.
ParmJObj
.
GetInt
(
"PaperId"
);
var
model
=
paperModule
.
RemoveExaminationDetailsModule
(
PaperId
);
return
ApiResult
.
Success
(
data
:
model
);
var
flag
=
paperModule
.
CopyExamnationPaperModule
(
PaperId
);
return
flag
?
ApiResult
.
Success
()
:
ApiResult
.
Failed
();
}
/// <summary>
/// 移动试卷或文件夹
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
MovePaper
()
{
var
PaperId
=
base
.
ParmJObj
.
GetInt
(
"PaperId"
);
var
ParentId
=
base
.
ParmJObj
.
GetInt
(
"ParentId"
);
var
flag
=
paperModule
.
MoveExamnationPaperModule
(
PaperId
,
ParentId
);
return
flag
?
ApiResult
.
Success
()
:
ApiResult
.
Failed
();
}
/// <summary>
/// 获取文件夹树形结构
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
GetFolderTree
()
{
var
extModel
=
new
RB_Examination_Paper_ViewModel
()
{
CreateBy
=
UserInfo
.
Id
,
Group_Id
=
base
.
UserInfo
.
Group_Id
,
ParentId
=
base
.
ParmJObj
.
GetInt
(
"ParentId"
),
IsQueryFolder
=
1
,
};
var
obj
=
paperModule
.
GetFolderTreeModule
(
extModel
);
return
ApiResult
.
Success
(
data
:
obj
);
}
/// <summary>
/// 发布考试
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
PublishExam
()
{
var
model
=
new
RB_Examination_Publish_ViewModel
()
{
Id
=
base
.
ParmJObj
.
GetInt
(
"Id"
),
PaperId
=
base
.
ParmJObj
.
GetInt
(
"PaperId"
),
PublishType
=
base
.
ParmJObj
.
GetInt
(
"PublishType"
),
ExamStartTime
=
base
.
ParmJObj
.
GetDateTime
(
"ExamStartTime"
),
ExamEndTime
=
base
.
ParmJObj
.
GetDateTime
(
"ExamEndTime"
),
ExamTimes
=
base
.
ParmJObj
.
GetInt
(
"ExamTimes"
),
SubmitTimes
=
base
.
ParmJObj
.
GetInt
(
"SubmitTimes"
),
EnterTimes
=
base
.
ParmJObj
.
GetInt
(
"EnterTimes"
),
IsQuestionRandom
=
base
.
ParmJObj
.
GetInt
(
"IsQuestionRandom"
),
IsOptionRandom
=
base
.
ParmJObj
.
GetInt
(
"IsOptionRandom"
),
IsLeaveAnswer
=
base
.
ParmJObj
.
GetInt
(
"IsLeaveAnswer"
),
LeaveTimes
=
base
.
ParmJObj
.
GetInt
(
"LeaveTimes"
),
IsDisableMultiTerminal
=
base
.
ParmJObj
.
GetInt
(
"IsDisableMultiTerminal"
),
IsExamType
=
base
.
ParmJObj
.
GetInt
(
"IsExamType"
),
ExamTypeValue
=
base
.
ParmJObj
.
GetInt
(
"ExamTypeValue"
),
ExamNotice
=
base
.
ParmJObj
.
GetStringValue
(
"ExamNotice"
),
PassScore
=
base
.
ParmJObj
.
GetDecimal
(
"PassScore"
),
IsAutoSubmit
=
base
.
ParmJObj
.
GetInt
(
"IsAutoSubmit"
),
FillInIsSubject
=
base
.
ParmJObj
.
GetInt
(
"FillInIsSubject"
),
FillInIsIgnore
=
base
.
ParmJObj
.
GetInt
(
"FillInIsIgnore"
),
IsHalfScore
=
base
.
ParmJObj
.
GetInt
(
"IsHalfScore"
),
};
model
.
CreateBy
=
base
.
UserInfo
.
Id
;
model
.
CreateTime
=
DateTime
.
Now
;
model
.
Group_Id
=
base
.
UserInfo
.
Group_Id
;
model
.
School_Id
=
base
.
UserInfo
.
School_Id
;
model
.
Status
=
0
;
var
flag
=
paperModule
.
SetExaminationPublishModule
(
model
);
return
flag
?
ApiResult
.
Success
()
:
ApiResult
.
Failed
();
}
/// <summary>
/// 获取发布考试分页列表
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
GetPublishExamPage
()
{
var
pageModel
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
ResultPageModel
>(
RequestParm
.
Msg
.
ToString
());
var
query
=
new
RB_Examination_Publish_ViewModel
()
{
PaperId
=
base
.
ParmJObj
.
GetInt
(
"PaperId"
),
};
query
.
Group_Id
=
base
.
UserInfo
.
Group_Id
;
List
<
object
>
result
=
new
List
<
object
>();
var
list
=
paperModule
.
GetExaminationPublishPageModule
(
pageModel
.
PageIndex
,
pageModel
.
PageSize
,
out
long
rowsCount
,
query
);
foreach
(
var
item
in
list
)
{
result
.
Add
(
item
);
}
pageModel
.
Count
=
rowsCount
;
pageModel
.
PageData
=
result
;
return
ApiResult
.
Success
(
data
:
pageModel
);
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment