287 lines
14 KiB
XML
287 lines
14 KiB
XML
|
|
<?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>
|
|||
|
|
|
|||
|
|
<sql id="getExamResultList之前的写法,在此备份"><![CDATA[
|
|||
|
|
select et_exam_usertest.user_id as id,et_exam_usertest.user,et_exam_exampaper_and_editexampaper.name,sum(et_exam_usertest.user_score) as total_score,et_exam_usertest.user_time,et_exam_usertest.mark_teacher
|
|||
|
|
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>
|
|||
|
|
<@p p=" and et_exam_exampaper_and_editexampaper.name like ? ">name</@p>
|
|||
|
|
<@p p=" or user like ? ">user</@p>
|
|||
|
|
group by user_id
|
|||
|
|
]]></sql>
|
|||
|
|
|
|||
|
|
<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>
|
|||
|
|
|
|||
|
|
<sql id="truncateExamDetail备份"><![CDATA[
|
|||
|
|
truncate et_exam_detail
|
|||
|
|
]]></sql>
|
|||
|
|
|
|||
|
|
<sql id="getPersonDetail备份"><![CDATA[
|
|||
|
|
insert into et_exam_detail
|
|||
|
|
select md5(uuid()) as id,usertest.name,limitation.exam_id,limitation.user,limitation.user_id
|
|||
|
|
,(select if((SELECT EXISTS(select * from et_exam_usertest where
|
|||
|
|
usertest.user_id = limitation.user_id and <@p>exam_id</@p>)) = 1,"已答","未答")) as userstate
|
|||
|
|
from et_exam_limitation as limitation
|
|||
|
|
left join et_exam_usertest as usertest
|
|||
|
|
on limitation.exam_id = usertest.exam_id
|
|||
|
|
where <@p p=" limitation.exam_id = ?">exam_id</@p>
|
|||
|
|
group by limitation.user_id
|
|||
|
|
]]></sql>
|
|||
|
|
|
|||
|
|
<sql id="getClassDetail备份"><![CDATA[
|
|||
|
|
insert into et_exam_detail
|
|||
|
|
select md5(uuid()) as id,usertest.name,class.exam_id,class.class_person as user,class.class_person_id as user_id
|
|||
|
|
,(select if((SELECT EXISTS(select * from et_exam_usertest where
|
|||
|
|
usertest.user_id = class.class_person_id and <@p>exam_id</@p>)) = 1,"已答","未答")) as userstate
|
|||
|
|
from et_exam_limitation_class as class
|
|||
|
|
left join et_exam_usertest as usertest
|
|||
|
|
on class.exam_id = usertest.exam_id
|
|||
|
|
where <@p p=" class.exam_id = ?">exam_id</@p>
|
|||
|
|
group by class.class_person_id
|
|||
|
|
]]></sql>
|
|||
|
|
|
|||
|
|
<sql id="getCourseDetail备份"><![CDATA[
|
|||
|
|
insert into et_exam_detail
|
|||
|
|
select md5(uuid()) as id,usertest.name,course.exam_id,course.course_person as user,course.course_person_id as user_id
|
|||
|
|
,(select if((SELECT EXISTS(select * from et_exam_usertest where
|
|||
|
|
usertest.user_id = course.course_person_id and <@p>exam_id</@p>)) = 1,"已答","未答")) as userstate
|
|||
|
|
from et_exam_limitation_course as course
|
|||
|
|
left join et_exam_usertest as usertest
|
|||
|
|
on course.exam_id = usertest.exam_id
|
|||
|
|
where <@p p=" course.exam_id = ?">exam_id</@p>
|
|||
|
|
group by course.course_person_id
|
|||
|
|
]]></sql>
|
|||
|
|
|
|||
|
|
<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>
|
|||
|
|
|
|||
|
|
<sql id="getInstitutionDetail 第二种写法 最慢"><![CDATA[
|
|||
|
|
select md5(uuid()) as id,baseuser.exam_id,baseuser.username as user,baseuser.usercode as user_id
|
|||
|
|
,(select if((SELECT EXISTS(select * from et_exam_usertest where
|
|||
|
|
user_id = baseuser.usercode and <@p>exam_id</@p>)) = 1,"已答","未答")) as userstate
|
|||
|
|
from (select e.id as exam_id,b.username,b.usercode from et_exam_exampaper_and_editexampaper e,et_train_baseuser b
|
|||
|
|
where <@p p=" e.id = ? ">exam_id</@p>) as baseuser
|
|||
|
|
left join et_exam_usertest as usertest
|
|||
|
|
on baseuser.exam_id = usertest.exam_id
|
|||
|
|
where <@p p=" baseuser.exam_id = ? ">exam_id</@p>
|
|||
|
|
group by baseuser.usercode
|
|||
|
|
]]></sql>
|
|||
|
|
|
|||
|
|
<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>
|
|||
|
|
|
|||
|
|
<sql id="getDepartmentDetail 第二种写法 最慢"><![CDATA[
|
|||
|
|
select md5(uuid()) as id,baseuser.exam_id,baseuser.username as user,baseuser.usercode as user_id
|
|||
|
|
,(select if((SELECT EXISTS(select * from et_exam_usertest where
|
|||
|
|
user_id = baseuser.usercode and <@p>exam_id</@p>)) = 1,"已答","未答")) as userstate
|
|||
|
|
from (select l.exam_id,b.username,b.usercode from et_exam_limitation l,et_train_baseuser b
|
|||
|
|
where <@p p=" l.exam_id = ? ">exam_id</@p>
|
|||
|
|
and b.orgcode = any (select user_id from et_exam_limitation
|
|||
|
|
where <@p>exam_id</@p>) group by b.usercode) as baseuser
|
|||
|
|
left join et_exam_usertest as usertest
|
|||
|
|
on baseuser.exam_id = usertest.exam_id
|
|||
|
|
where <@p p=" baseuser.exam_id = ? ">exam_id</@p>
|
|||
|
|
group by baseuser.usercode
|
|||
|
|
]]></sql>
|
|||
|
|
|
|||
|
|
<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>
|
|||
|
|
|
|||
|
|
<sql id="getPersonDetail第二种写法"><![CDATA[
|
|||
|
|
select md5(uuid()) as id,u.name,l.exam_id,l.user,l.user_id,'未答' as userstate
|
|||
|
|
from et_exam_limitation l
|
|||
|
|
left join (select exam_id,name,user,user_id from et_exam_usertest where exam_id = 'fb5f39fb8a694c30b941bc91c46d8036' group by user_id) u
|
|||
|
|
on l.exam_id = u.exam_id
|
|||
|
|
where (select count(1) as num from (select exam_id,name,user,user_id from et_exam_usertest where exam_id = 'fb5f39fb8a694c30b941bc91c46d8036' group by user_id) u
|
|||
|
|
where u.exam_id = l.exam_id and u.user_id = l.user_id ) = 0
|
|||
|
|
and l.exam_id = 'fb5f39fb8a694c30b941bc91c46d8036' group by user_id
|
|||
|
|
union all
|
|||
|
|
select md5(uuid()) as id,name,exam_id,user,user_id,'已答' as userstate
|
|||
|
|
from et_exam_usertest
|
|||
|
|
where exam_id = 'fb5f39fb8a694c30b941bc91c46d8036'
|
|||
|
|
group by user_id
|
|||
|
|
]]></sql>
|
|||
|
|
|
|||
|
|
<sql id="getPersonDetail第三种写法 最慢"><![CDATA[
|
|||
|
|
select md5(uuid()) as id,usertest.name,limitation.exam_id,limitation.user,limitation.user_id
|
|||
|
|
,(select if((SELECT EXISTS(select * from et_exam_usertest where
|
|||
|
|
usertest.user_id = limitation.user_id and <@p>exam_id</@p>)) = 1,"已答","未答")) as userstate
|
|||
|
|
from et_exam_limitation as limitation
|
|||
|
|
left join et_exam_usertest as usertest
|
|||
|
|
on limitation.exam_id = usertest.exam_id
|
|||
|
|
where <@p p=" limitation.exam_id = ?">exam_id</@p>
|
|||
|
|
group by limitation.user_id
|
|||
|
|
]]></sql>
|
|||
|
|
|
|||
|
|
<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>
|
|||
|
|
|
|||
|
|
<sql id="getClassDetail 第二种写法 最慢"><![CDATA[
|
|||
|
|
select md5(uuid()) as id,usertest.name,class.exam_id,class.class_person as user,class.class_person_id as user_id
|
|||
|
|
,(select if((SELECT EXISTS(select * from et_exam_usertest where
|
|||
|
|
usertest.user_id = class.class_person_id and <@p>exam_id</@p>)) = 1,"已答","未答")) as userstate
|
|||
|
|
from et_exam_limitation_class as class
|
|||
|
|
left join et_exam_usertest as usertest
|
|||
|
|
on class.exam_id = usertest.exam_id
|
|||
|
|
where <@p p=" class.exam_id = ?">exam_id</@p>
|
|||
|
|
group by class.class_person_id
|
|||
|
|
]]></sql>
|
|||
|
|
|
|||
|
|
<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>
|
|||
|
|
|
|||
|
|
<sql id="getCourseDetail 第二种写法 最慢"><![CDATA[
|
|||
|
|
select md5(uuid()) as id,usertest.name,course.exam_id,course.course_person as user,course.course_person_id as user_id
|
|||
|
|
,(select if((SELECT EXISTS(select * from et_exam_usertest where
|
|||
|
|
usertest.user_id = course.course_person_id and <@p>exam_id</@p>)) = 1,"已答","未答")) as userstate
|
|||
|
|
from et_exam_limitation_course as course
|
|||
|
|
left join et_exam_usertest as usertest
|
|||
|
|
on course.exam_id = usertest.exam_id
|
|||
|
|
where <@p p=" course.exam_id = ?">exam_id</@p>
|
|||
|
|
group by course.course_person_id
|
|||
|
|
]]></sql>
|
|||
|
|
|
|||
|
|
<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>
|