etms/WEB-INF/mapping/et_exam_usertest.map.xml

182 lines
8.1 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="utf-8"?>
<dynamic-sql>
<sql id="getExamTestList"><![CDATA[
select et_exam_usertest.id,
et_exam_exampaper_and_editexampaper.name,et_exam_exampaper_and_editexampaper.description,et_exam_exampaper_and_editexampaper.sc,
et_exam_editexampaper.id ques_id,et_exam_editexampaper.edit_id,et_exam_editexampaper.num,et_exam_editexampaper.subject,et_exam_editexampaper.type,et_exam_editexampaper.type_num,et_exam_editexampaper.ismust,et_exam_editexampaper.score,et_exam_editexampaper.optionA,et_exam_editexampaper.optionB,et_exam_editexampaper.optionC,et_exam_editexampaper.optionD,et_exam_editexampaper.optionE,et_exam_editexampaper.optionF,et_exam_editexampaper.isParagraph,et_exam_editexampaper.answer,
et_exam_usertest.user_answer
from
(et_exam_exampaper_and_editexampaper inner join et_exam_editexampaper
on et_exam_exampaper_and_editexampaper.id = et_exam_editexampaper.edit_id)
left outer join et_exam_usertest
on et_exam_editexampaper.id = et_exam_usertest.question_id
where <@p>edit_id</@p>
]]></sql>
<sql id="getExamResultList"><![CDATA[
select id,user,department,name,total_score,user_time,mark_teacher from
(
select user_id as id,user,department,name,round(sum(user_score),2) as total_score,user_time,mark_teacher
from
et_exam_usertest
where <@p>exam_id</@p>
<@p p=" and (name like ? ">name</@p>
<@p p=" or department like ? ">department</@p>
<@p p=" or user like ? )">user</@p>
group by user_id
) examresult
]]></sql>
<!-- DEPRECATED: getExamResultList之前的写法在此备份 -->
<sql id="getExamComboxList"><![CDATA[
select id,name from et_exam_exampaper_and_editexampaper where 1=1
<@p p=" AND name like ? ">name</@p>
<@p p=" and %s">pg</@p>
<@p p=" and %s">card</@p>
<@p p=" and %s">createdepartment</@p>
order by convert(name using gbk)
]]></sql>
<sql id="getExamMarkList"><![CDATA[
select et_exam_usertest.id,
et_exam_exampaper_and_editexampaper.name,et_exam_exampaper_and_editexampaper.description,et_exam_exampaper_and_editexampaper.sc,et_exam_exampaper_and_editexampaper.state,
et_exam_editexampaper.id ques_id,et_exam_editexampaper.edit_id,et_exam_editexampaper.num,et_exam_editexampaper.subject,et_exam_editexampaper.type,et_exam_editexampaper.type_num,et_exam_editexampaper.ismust,et_exam_editexampaper.score,et_exam_editexampaper.optionA,et_exam_editexampaper.optionB,et_exam_editexampaper.optionC,et_exam_editexampaper.optionD,et_exam_editexampaper.optionE,et_exam_editexampaper.optionF,et_exam_editexampaper.isParagraph,et_exam_editexampaper.answer,
et_exam_usertest.user_answer,et_exam_usertest.user_score
from
(et_exam_exampaper_and_editexampaper inner join et_exam_editexampaper
on et_exam_exampaper_and_editexampaper.id = et_exam_editexampaper.edit_id)
left outer join et_exam_usertest
on et_exam_editexampaper.id = et_exam_usertest.question_id
where 1=1
<@p p=" and %s">edit_id</@p>
<@p p=" and %s">user_id</@p>
order by et_exam_editexampaper.num asc
]]></sql>
<sql id="getExamScoreList"><![CDATA[
select name,exam_id,user,user_id,user_time,round(sum(user_score),2) as total_score
from et_exam_usertest where <@p>user_id</@p>
<@p p=" and name like ? ">name</@p>
group by exam_id
]]></sql>
<sql id="getIsNotSubmitList"><![CDATA[
select * from et_exam_usertest where
<@p>user_id</@p>
<@p p=" and %s">exam_id</@p>
]]></sql>
<!-- DEPRECATED: truncateExamDetail备份 -->
<!-- DEPRECATED: getPersonDetail备份 -->
<!-- DEPRECATED: getClassDetail备份 -->
<!-- DEPRECATED: getCourseDetail备份 -->
<sql id="getDetail"><![CDATA[
select * from et_exam_detail where <@p>exam_id</@p>
]]></sql>
<sql id="getInstitutionDetail"><![CDATA[
select md5(uuid()) as id,b.username as user,b.usercode as user_id,b.orgname as department,'未答' as userstate,'0' as user_score
from et_train_baseuser b
where b.usercode not in (select user_id from et_exam_usertest where <@p>exam_id</@p> group by user_id)
union all
select md5(uuid()) as id,user,user_id,department,'已答' as userstate,round(sum(user_score),2) user_score
from et_exam_usertest
where <@p>exam_id</@p>
group by user_id
]]></sql>
<!-- DEPRECATED: getInstitutionDetail 第二种写法 最慢 -->
<sql id="getDepartmentDetail"><![CDATA[
select md5(uuid()) as id,b.username as user,b.usercode as user_id,b.orgname as department,'未答' as userstate,'0' as user_score
from et_train_baseuser b
where b.usercode not in (select user_id from et_exam_usertest where <@p>exam_id</@p> group by user_id)
and <@p p="orgcode in (%s)" f="?">user_id</@p>
union all
select md5(uuid()) as id,user,user_id,department,'已答' as userstate,round(sum(user_score),2) user_score
from et_exam_usertest
where <@p>exam_id</@p>
group by user_id
]]></sql>
<!-- DEPRECATED: getDepartmentDetail 第二种写法 最慢 -->
<sql id="getPersonDetail"><![CDATA[
select md5(uuid()) as id,l.user,l.user_id,b.orgname as department,'未答' as userstate,'0' as user_score
from et_exam_limitation l
inner join et_train_baseuser b
on l.user_id = b.usercode
where l.user_id not in (select user_id from et_exam_usertest where <@p>exam_id</@p> group by user_id)
and <@p p=" l.exam_id = ? ">exam_id</@p>
group by user_id
union all
select md5(uuid()) as id,user,user_id,department,'已答' as userstate,round(sum(user_score),2) user_score
from et_exam_usertest
where <@p>exam_id</@p>
group by user_id
]]></sql>
<!-- DEPRECATED: getPersonDetail第二种写法 -->
<!-- DEPRECATED: getPersonDetail第三种写法 最慢 -->
<sql id="getClassDetail"><![CDATA[
select md5(uuid()) as id,class.class_person as user,class.class_person_id as user_id,b.orgname as department,'未答' as userstate,'0' as user_score
from et_exam_limitation_class as class
inner join et_train_baseuser b
on class.class_person_id = b.usercode
where class.class_person_id not in (select user_id from et_exam_usertest where <@p>exam_id</@p> group by user_id)
and <@p p=" class.exam_id = ?">exam_id</@p>
group by class.class_person_id
union all
select md5(uuid()) as id,user,user_id,department,'已答' as userstate,round(sum(user_score),2) user_score
from et_exam_usertest
where <@p>exam_id</@p>
group by user_id
]]></sql>
<!-- DEPRECATED: getClassDetail 第二种写法 最慢 -->
<sql id="getCourseDetail"><![CDATA[
select md5(uuid()) as id,course.course_person as user,course.course_person_id as user_id,b.orgname as department,'未答' as userstate,'0' as user_score
from et_exam_limitation_course as course
inner join et_train_baseuser b
on course.course_person_id = b.usercode
where course.course_person_id not in (select user_id from et_exam_usertest where <@p>exam_id</@p> group by user_id)
and <@p p=" course.exam_id = ?">exam_id</@p>
group by course.course_person_id
union all
select md5(uuid()) as id,user,user_id,department,'已答' as userstate,round(sum(user_score),2) user_score
from et_exam_usertest
where <@p>exam_id</@p>
group by user_id
]]></sql>
<!-- DEPRECATED: getCourseDetail 第二种写法 最慢 -->
<sql id="updateAnswer"><![CDATA[
update et_exam_usertest u,et_exam_editexampaper e
set u.answer = e.answer
where u.question_id = e.id
and <@p>exam_id</@p>
]]></sql>
<sql id="updateUserScore"><![CDATA[
update et_exam_usertest
set user_score = (
case
when user_answer = answer
then score
else '0'
end
),
mark_teacher = '系统自判'
where <@p>exam_id</@p>
and (type = '单选题' or type = '多选题' or type = '判断题')
and (mark_teacher = '' or mark_teacher is NULL)
]]></sql></dynamic-sql>