Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
EduSpider
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
viitto
EduSpider
Commits
92a18ae3
Commit
92a18ae3
authored
Aug 19, 2022
by
liudong1993
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
974644a5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
192 additions
and
170 deletions
+192
-170
ExamWorkResult.cs
EduSpider.Model/Extend/ExamWorkResult.cs
+5
-0
RB_Exam_Score_Extend.cs
EduSpider.Model/Extend/RB_Exam_Score_Extend.cs
+5
-0
Exam_ScoreRepository.cs
EduSpider.Repository/Exam_ScoreRepository.cs
+1
-1
CourseService.cs
EduSpider.Services/CourseService.cs
+2
-0
ExamService.cs
EduSpider.Services/ExamService.cs
+179
-169
No files found.
EduSpider.Model/Extend/ExamWorkResult.cs
View file @
92a18ae3
...
...
@@ -143,6 +143,11 @@ namespace EduSpider.Model.Extend
/// </summary>
public
int
ExamScoreId
{
get
;
set
;
}
/// <summary>
/// 考试类型
/// </summary>
public
int
ExamType
{
get
;
set
;
}
/// <summary>
/// 教师姓名
/// </summary>
...
...
EduSpider.Model/Extend/RB_Exam_Score_Extend.cs
View file @
92a18ae3
...
...
@@ -42,6 +42,11 @@ namespace EduSpider.Model.Extend
/// 一试排名
/// </summary>
public
int
ARank
{
get
;
set
;
}
/// <summary>
/// 考试类型
/// </summary>
public
int
ExamType
{
get
;
set
;
}
}
/// <summary>
...
...
EduSpider.Repository/Exam_ScoreRepository.cs
View file @
92a18ae3
...
...
@@ -24,7 +24,7 @@ namespace EduSpider.Repository
{
StringBuilder
builder
=
new
();
builder
.
AppendFormat
(
@"
SELECT A.*,B.ExamName,B.CreateTime AS ExamCreateTime
SELECT A.*,B.ExamName,B.CreateTime AS ExamCreateTime
,B.Type as ExamType
FROM RB_Exam_Score AS A INNER JOIN rb_exam AS B ON A.ExamId=B.ExamId
WHERE 1=1 and B.Status =0
"
);
...
...
EduSpider.Services/CourseService.cs
View file @
92a18ae3
...
...
@@ -152,6 +152,7 @@ namespace EduSpider.Services
ExamRankRate
=
item
.
RankRate
,
ExamId
=
item
.
ExamId
,
ExamScoreId
=
item
.
Id
,
ExamType
=
item
.
ExamType
});
}
}
...
...
@@ -188,6 +189,7 @@ namespace EduSpider.Services
item
.
ExamRankRate
,
item
.
ExamId
,
item
.
ExamScoreId
,
item
.
ExamType
};
}
//评语
...
...
EduSpider.Services/ExamService.cs
View file @
92a18ae3
...
...
@@ -463,13 +463,15 @@ namespace EduSpider.Services
public
string
SetExamStatAnalysis
(
int
courseId
,
UserInfo
userInfo
)
{
//获取所有分组考试
var
examList
=
ExamRepository
.
GetExamList
(
new
RB_Exam_Extend
()
{
CourseId
=
courseId
,
CreateBy
=
userInfo
.
Id
,
Type
=
2
}).
OrderBy
(
x
=>
x
.
ExamId
).
ToList
();
var
examList
=
ExamRepository
.
GetExamList
(
new
RB_Exam_Extend
()
{
CourseId
=
courseId
,
Type
=
2
}).
OrderBy
(
x
=>
x
.
ExamId
).
ToList
();
if
(!
examList
.
Any
())
{
return
"未查询到分组考试信息,无法生成统计分析"
;
}
//查询所有的 考试题
string
examIds
=
string
.
Join
(
","
,
examList
.
Select
(
x
=>
x
.
ExamId
));
var
questList
=
Exam_QuestionsRepository
.
GetList
(
new
RB_Exam_Questions_Extend
()
{
ExamIds
=
examIds
});
//查询所有的 学生分数
var
scoreList
=
Exam_ScoreRepository
.
GetList
(
new
RB_Exam_Score_Extend
()
{
ExamIds
=
examIds
});
scoreList
=
scoreList
.
Where
(
x
=>
x
.
StuId
>
0
).
ToList
();
examList
=
examList
.
Where
(
y
=>
scoreList
.
Select
(
x
=>
x
.
ExamId
).
Contains
(
y
.
ExamId
)).
ToList
();
foreach
(
var
item
in
scoreList
)
{
item
.
ScoreList
=
JsonHelper
.
Deserialize
<
List
<
ExamQScoreModel
>>(
item
.
Content
);
foreach
(
var
qitem
in
item
.
ScoreList
)
...
...
@@ -500,204 +502,212 @@ namespace EduSpider.Services
});
if
(
ExamId
>
0
)
{
List
<
int
>
StuIdList
=
scoreList
.
Select
(
x
=>
x
.
StuId
).
Distinct
().
ToList
();
int
stuNum
=
StuIdList
.
Count
();
try
{
List
<
int
>
StuIdList
=
scoreList
.
Select
(
x
=>
x
.
StuId
).
Distinct
().
ToList
();
int
stuNum
=
StuIdList
.
Count
();
#
region
1
-
8
题统计
List
<
ExamPartScoreModel
>
StuPScoreList
=
new
List
<
ExamPartScoreModel
>();
// 1-8题得分列表
List
<
ExamPartScoreModel
>
TestScoreList
=
new
List
<
ExamPartScoreModel
>();
//一试二试排名列表
List
<
ExamPartScoreModel
>
TRScoreList
=
new
List
<
ExamPartScoreModel
>();
//总排名列表
//1-8题统计 先看1-8题 平均得分 x轴 考试次数, y轴 得分
int
ExamNum
=
1
,
MaxGroupNum
=
1
;
foreach
(
var
item
in
examList
)
{
//先算平均得分
var
esList
=
scoreList
.
Where
(
x
=>
x
.
ExamId
==
item
.
ExamId
).
ToList
();
decimal
avgScore
=
Math
.
Round
(
esList
.
Sum
(
x
=>
x
.
PartScore
)
/
esList
.
Count
(),
2
,
MidpointRounding
.
AwayFromZero
);
//1-8题 平均得分
//查看所有的分组
var
groupList
=
questList
.
Where
(
x
=>
x
.
ExamId
==
item
.
ExamId
).
Select
(
x
=>
x
.
GroupName
).
Distinct
();
int
groupNum
=
1
;
foreach
(
var
groupName
in
groupList
)
{
//组装一试排名 二试排名
foreach
(
var
qitem
in
esList
)
{
qitem
.
AScore
=
qitem
.
ScoreList
.
Where
(
x
=>
x
.
GroupName
==
groupName
).
Sum
(
x
=>
x
.
Score
);
qitem
.
ScoreList
.
Where
(
x
=>
x
.
GroupName
==
groupName
).
ToList
().
ForEach
(
x
=>
{
x
.
GroupNum
=
groupNum
;
});
}
int
Rank
=
1
;
esList
.
OrderByDescending
(
x
=>
x
.
AScore
).
GroupBy
(
x
=>
x
.
AScore
).
ToList
().
ForEach
(
x
=>
{
x
.
ToList
().
ForEach
(
y
=>
{
y
.
ARank
=
Rank
;
});
Rank
+=
x
.
Count
();
});
#
region
1
-
8
题统计
List
<
ExamPartScoreModel
>
StuPScoreList
=
new
List
<
ExamPartScoreModel
>();
// 1-8题得分列表
List
<
ExamPartScoreModel
>
TestScoreList
=
new
List
<
ExamPartScoreModel
>();
//一试二试排名列表
List
<
ExamPartScoreModel
>
TRScoreList
=
new
List
<
ExamPartScoreModel
>();
//总排名列表
foreach
(
var
stuId
in
StuIdList
)
{
//插入分组排名
TestScoreList
.
Add
(
new
ExamPartScoreModel
()
{
StuId
=
stuId
,
Sort
=
ExamNum
,
ExamName
=
item
.
ExamName
,
GroupName
=
groupName
,
Score
=
esList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
FirstOrDefault
()?.
ARank
??
0
,
GroupNum
=
groupNum
});
}
if
(
MaxGroupNum
<
groupNum
)
{
MaxGroupNum
=
groupNum
;
}
questList
.
Where
(
x
=>
x
.
ExamId
==
item
.
ExamId
&&
x
.
GroupName
==
groupName
).
ToList
().
ForEach
(
x
=>
x
.
GroupNum
=
groupNum
);
groupNum
++;
}
//1-8题统计 先看1-8题 平均得分 x轴 考试次数, y轴 得分
int
ExamNum
=
1
,
MaxGroupNum
=
1
;
foreach
(
var
item
in
examList
)
{
//先算平均得分
var
esList
=
scoreList
.
Where
(
x
=>
x
.
ExamId
==
item
.
ExamId
).
ToList
();
decimal
avgScore
=
Math
.
Round
(
esList
.
Sum
(
x
=>
x
.
PartScore
)
/
esList
.
Count
(),
2
,
MidpointRounding
.
AwayFromZero
);
//1-8题 平均得分
//查看所有的分组
var
groupList
=
questList
.
Where
(
x
=>
x
.
ExamId
==
item
.
ExamId
).
Select
(
x
=>
x
.
GroupName
).
Distinct
();
int
groupNum
=
1
;
foreach
(
var
groupName
in
groupList
)
{
//组装一试排名 二试排名
foreach
(
var
qitem
in
esList
)
{
qitem
.
AScore
=
qitem
.
ScoreList
.
Where
(
x
=>
x
.
GroupName
==
groupName
).
Sum
(
x
=>
x
.
Score
);
qitem
.
ScoreList
.
Where
(
x
=>
x
.
GroupName
==
groupName
).
ToList
().
ForEach
(
x
=>
//开始插入 遍历所有的 学生
foreach
(
var
stuId
in
StuIdList
)
{
//插入1-8题
StuPScoreList
.
Add
(
new
ExamPartScoreModel
()
{
x
.
GroupNum
=
groupNum
;
StuId
=
stuId
,
Sort
=
ExamNum
,
AvgScore
=
avgScore
,
ExamName
=
item
.
ExamName
,
Score
=
esList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
FirstOrDefault
()?.
PartScore
??
0
});
}
int
Rank
=
1
;
esList
.
OrderByDescending
(
x
=>
x
.
AScore
).
GroupBy
(
x
=>
x
.
AScore
).
ToList
().
ForEach
(
x
=>
{
x
.
ToList
().
ForEach
(
y
=>
{
y
.
ARank
=
Rank
;
});
Rank
+=
x
.
Count
();
});
foreach
(
var
stuId
in
StuIdList
)
{
//插入分组排名
TestScoreList
.
Add
(
new
ExamPartScoreModel
()
//插入总排名
TRScoreList
.
Add
(
new
ExamPartScoreModel
()
{
StuId
=
stuId
,
Sort
=
ExamNum
,
ExamName
=
item
.
ExamName
,
GroupName
=
groupName
,
Score
=
esList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
FirstOrDefault
()?.
ARank
??
0
,
GroupNum
=
groupNum
Score
=
esList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
FirstOrDefault
()?.
Rank
??
0
});
}
if
(
MaxGroupNum
<
groupNum
)
{
MaxGroupNum
=
groupNum
;
}
questList
.
Where
(
x
=>
x
.
ExamId
==
item
.
ExamId
&&
x
.
GroupName
==
groupName
).
ToList
().
ForEach
(
x
=>
x
.
GroupNum
=
groupNum
);
groupNum
++;
ExamNum
++;
}
//开始插入 遍历所有的 学生
foreach
(
var
stuId
in
StuIdList
)
{
//插入1-8题
StuPScoreList
.
Add
(
new
ExamPartScoreModel
()
{
StuId
=
stuId
,
Sort
=
ExamNum
,
AvgScore
=
avgScore
,
ExamName
=
item
.
ExamName
,
Score
=
esList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
FirstOrDefault
()?.
PartScore
??
0
});
//插入总排名
TRScoreList
.
Add
(
new
ExamPartScoreModel
()
{
StuId
=
stuId
,
Sort
=
ExamNum
,
ExamName
=
item
.
ExamName
,
Score
=
esList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
FirstOrDefault
()?.
Rank
??
0
});
}
ExamNum
++;
}
#
endregion
#
region
模块分析
//分组版块分析表 x轴 知识点 , y轴 分数(总分 个人分 平均分) 如果有多次考试 知识点 重复的 就累计使用
List
<
ExamPartScoreModel
>
ModuleScoreList
=
new
List
<
ExamPartScoreModel
>();
//考试版块分析列表
var
knowList
=
questList
.
Select
(
x
=>
x
.
KnowledgePoint
).
Distinct
();
foreach
(
var
item
in
knowList
)
{
//查询分组
for
(
int
groupN
=
1
;
groupN
<=
MaxGroupNum
;
groupN
++)
{
decimal
TotalScore
=
questList
.
Where
(
x
=>
x
.
KnowledgePoint
==
item
&&
x
.
GroupNum
==
groupN
).
Sum
(
x
=>
x
.
Score
);
//知识点总分
if
(
TotalScore
>
0
)
{
decimal
AvgScore
=
Math
.
Round
(
scoreList
.
Sum
(
x
=>
x
.
ScoreList
.
Where
(
y
=>
y
.
KnowledgePoint
==
item
&&
y
.
GroupNum
==
groupN
).
Sum
(
y
=>
y
.
Score
))
/
stuNum
,
2
,
MidpointRounding
.
AwayFromZero
);
//知识点平均得分
foreach
(
var
stuId
in
StuIdList
)
#
endregion
#
region
模块分析
//分组版块分析表 x轴 知识点 , y轴 分数(总分 个人分 平均分) 如果有多次考试 知识点 重复的 就累计使用
List
<
ExamPartScoreModel
>
ModuleScoreList
=
new
List
<
ExamPartScoreModel
>();
//考试版块分析列表
var
knowList
=
questList
.
Select
(
x
=>
x
.
KnowledgePoint
).
Distinct
();
foreach
(
var
item
in
knowList
)
{
//查询分组
for
(
int
groupN
=
1
;
groupN
<=
MaxGroupNum
;
groupN
++)
{
decimal
TotalScore
=
questList
.
Where
(
x
=>
x
.
KnowledgePoint
==
item
&&
x
.
GroupNum
==
groupN
).
Sum
(
x
=>
x
.
Score
);
//知识点总分
if
(
TotalScore
>
0
)
{
decimal
Score
=
scoreList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
Sum
(
x
=>
x
.
ScoreList
.
Where
(
y
=>
y
.
KnowledgePoint
==
item
&&
y
.
GroupNum
==
groupN
).
Sum
(
y
=>
y
.
Score
));
//学生这些知识点的总
得分
ModuleScoreList
.
Add
(
new
ExamPartScoreModel
(
)
decimal
AvgScore
=
Math
.
Round
(
scoreList
.
Sum
(
x
=>
x
.
ScoreList
.
Where
(
y
=>
y
.
KnowledgePoint
==
item
&&
y
.
GroupNum
==
groupN
).
Sum
(
y
=>
y
.
Score
))
/
stuNum
,
2
,
MidpointRounding
.
AwayFromZero
);
//知识点平均
得分
foreach
(
var
stuId
in
StuIdList
)
{
StuId
=
stuId
,
GroupNum
=
groupN
,
ExamName
=
item
,
Score
=
Score
,
TScore
=
TotalScore
,
AvgScore
=
AvgScore
});
decimal
Score
=
scoreList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
Sum
(
x
=>
x
.
ScoreList
.
Where
(
y
=>
y
.
KnowledgePoint
==
item
&&
y
.
GroupNum
==
groupN
).
Sum
(
y
=>
y
.
Score
));
//学生这些知识点的总得分
ModuleScoreList
.
Add
(
new
ExamPartScoreModel
()
{
StuId
=
stuId
,
GroupNum
=
groupN
,
ExamName
=
item
,
Score
=
Score
,
TScore
=
TotalScore
,
AvgScore
=
AvgScore
});
}
}
}
}
}
#
endregion
#
endregion
#
region
开始插入数据
int
eNum
=
examList
.
Count
();
//考试数量
List
<
RB_Exam_Score_Extend
>
TRankList
=
new
List
<
RB_Exam_Score_Extend
>();
//统计排名
foreach
(
var
stuId
in
StuIdList
)
{
decimal
TScore
=
Math
.
Round
(
scoreList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
Sum
(
x
=>
x
.
TScore
)
/
eNum
,
2
,
MidpointRounding
.
AwayFromZero
);
// 平均几次考试 得到总分
decimal
ExamScore
=
Math
.
Round
(
scoreList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
Sum
(
x
=>
x
.
ExamScore
)
/
eNum
,
2
,
MidpointRounding
.
AwayFromZero
);
#
region
开始插入数据
int
eNum
=
examList
.
Count
();
//考试数量
List
<
RB_Exam_Score_Extend
>
TRankList
=
new
List
<
RB_Exam_Score_Extend
>();
//统计排名
foreach
(
var
stuId
in
StuIdList
)
{
decimal
TScore
=
Math
.
Round
(
scoreList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
Sum
(
x
=>
x
.
TScore
)
/
eNum
,
2
,
MidpointRounding
.
AwayFromZero
);
// 平均几次考试 得到总分
decimal
ExamScore
=
Math
.
Round
(
scoreList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
Sum
(
x
=>
x
.
ExamScore
)
/
eNum
,
2
,
MidpointRounding
.
AwayFromZero
);
TRankList
.
Add
(
new
RB_Exam_Score_Extend
()
{
StuId
=
stuId
,
TScore
=
TScore
,
ExamScore
=
ExamScore
});
}
int
TRank
=
1
;
TRankList
.
OrderByDescending
(
x
=>
x
.
TScore
).
GroupBy
(
x
=>
x
.
TScore
).
ToList
().
ForEach
(
x
=>
{
x
.
ToList
().
ForEach
(
y
=>
TRankList
.
Add
(
new
RB_Exam_Score_Extend
()
{
StuId
=
stuId
,
TScore
=
TScore
,
ExamScore
=
ExamScore
});
}
int
TRank
=
1
;
TRankList
.
OrderByDescending
(
x
=>
x
.
TScore
).
GroupBy
(
x
=>
x
.
TScore
).
ToList
().
ForEach
(
x
=>
{
y
.
Rank
=
TRank
;
y
.
RankRate
=
Math
.
Round
(
Convert
.
ToDecimal
(
stuNum
-
TRank
+
1
)
/
stuNum
,
2
,
MidpointRounding
.
AwayFromZero
);
x
.
ToList
().
ForEach
(
y
=>
{
y
.
Rank
=
TRank
;
y
.
RankRate
=
Math
.
Round
(
Convert
.
ToDecimal
(
stuNum
-
TRank
+
1
)
/
stuNum
,
2
,
MidpointRounding
.
AwayFromZero
);
});
TRank
+=
x
.
Count
();
});
TRank
+=
x
.
Count
();
});
//插入
foreach
(
var
stuId
in
StuIdList
)
{
//插入
foreach
(
var
stuId
in
StuIdList
)
{
ExamStatModel
statModel
=
new
ExamStatModel
()
{
PartScoreList
=
StuPScoreList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
ToList
(),
GroupScoreList
=
TestScoreList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
ToList
(),
TRankScoreList
=
TRScoreList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
ToList
(),
ModuleScoreList
=
ModuleScoreList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
ToList
()
};
var
smodel
=
scoreList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
FirstOrDefault
();
ExamStatModel
statModel
=
new
ExamStatModel
()
{
PartScoreList
=
StuPScoreList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
ToList
(),
GroupScoreList
=
TestScoreList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
ToList
(),
TRankScoreList
=
TRScoreList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
ToList
(),
ModuleScoreList
=
ModuleScoreList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
ToList
()
};
var
smodel
=
scoreList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
FirstOrDefault
();
var
rmodel
=
TRankList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
FirstOrDefault
();
var
rmodel
=
TRankList
.
Where
(
x
=>
x
.
StuId
==
stuId
).
FirstOrDefault
();
Exam_ScoreRepository
.
Insert
(
new
Model
.
Entity
.
RB_Exam_Score
()
{
Id
=
0
,
StuId
=
stuId
,
ExamId
=
ExamId
,
StuUId
=
smodel
.
StuUId
,
StuName
=
smodel
.
StuName
,
Content
=
JsonHelper
.
Serialize
(
new
Exam_ScoreRepository
.
Insert
(
new
Model
.
Entity
.
RB_Exam_Score
()
{
PartScoreList
=
statModel
.
PartScoreList
.
Select
(
x
=>
new
{
x
.
Sort
,
x
.
ExamName
,
x
.
AvgScore
,
x
.
Score
}),
ModuleScoreList
=
statModel
.
ModuleScoreList
.
Select
(
y
=>
new
{
y
.
GroupNum
,
y
.
ExamName
,
y
.
Score
,
y
.
AvgScore
,
y
.
TScore
}),
GroupScoreList
=
statModel
.
GroupScoreList
.
Select
(
y
=>
new
Id
=
0
,
StuId
=
stuId
,
ExamId
=
ExamId
,
StuUId
=
smodel
.
StuUId
,
StuName
=
smodel
.
StuName
,
Content
=
JsonHelper
.
Serialize
(
new
{
y
.
GroupNum
,
y
.
Sort
,
y
.
ExamName
,
y
.
Score
PartScoreList
=
statModel
.
PartScoreList
.
Select
(
x
=>
new
{
x
.
Sort
,
x
.
ExamName
,
x
.
AvgScore
,
x
.
Score
}),
ModuleScoreList
=
statModel
.
ModuleScoreList
.
Select
(
y
=>
new
{
y
.
GroupNum
,
y
.
ExamName
,
y
.
Score
,
y
.
AvgScore
,
y
.
TScore
}),
GroupScoreList
=
statModel
.
GroupScoreList
.
Select
(
y
=>
new
{
y
.
GroupNum
,
y
.
Sort
,
y
.
ExamName
,
y
.
Score
}),
TRankScoreList
=
statModel
.
TRankScoreList
.
Select
(
x
=>
new
{
x
.
Sort
,
x
.
ExamName
,
x
.
Score
})
}),
T
RankScoreList
=
statModel
.
TRankScoreList
.
Select
(
x
=>
new
{
x
.
Sort
,
x
.
ExamName
,
x
.
Score
})
}),
TScore
=
rmodel
.
TScore
,
ExamScore
=
rmodel
.
ExamScore
,
Rank
=
rmodel
.
Rank
,
RankRate
=
rmodel
.
RankRate
})
;
T
Score
=
rmodel
.
TScore
,
ExamScore
=
rmodel
.
ExamScore
,
Rank
=
rmodel
.
Rank
,
RankRate
=
rmodel
.
RankRate
});
}
#
endregion
}
catch
(
Exception
ex
)
{
LogHelper
.
WriteError
(
"SetExamStatAnalysis"
,
""
,
ex
);
return
"出错了,请联系管理员"
;
}
#
endregion
}
return
ExamId
>
0
?
""
:
"出错了,请联系管理员"
;
...
...
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