422 lines
14 KiB
XML
422 lines
14 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
<mapper namespace="ModelAnswer">
|
|
|
|
<insert id="insertModelAnswer" parameterType="ModelAnswer">
|
|
INSERT INTO ModelAnswer ( examAnswerId, userId, examId, examPaperId,
|
|
origiScore, score, trueScore, created , areaId ,
|
|
machineScore , humanScore , paperFile , md5Code , content,examGuid,answerGuid ) Values (
|
|
#{examAnswerId}, #{userId}, #{examId}, #{examPaperId}, #{origiScore}, #{score},
|
|
#{trueScore},current_timestamp , #{areaId} ,
|
|
#{machineScore} , #{humanScore} , #{paperFile} , #{md5Code} , #{content} ,#{examGuid},#{answerGuid} )
|
|
|
|
</insert>
|
|
|
|
<update id="updateModelAnswer" parameterType="ModelAnswer">
|
|
|
|
UPDATE ModelAnswer
|
|
SET userId = #{userId}, examId = #{examId},
|
|
examPaperId = #{examPaperId}, origiScore = #{origiScore}, score = #{score}, trueScore = #{trueScore},
|
|
areaId = #{areaId} ,
|
|
machineScore = #{machineScore} , humanScore = #{humanScore} ,
|
|
paperFile = #{paperFile} , md5Code = #{md5Code} , content = #{content},examGuid=#{examGuid},answerGuid=#{answerGuid}
|
|
<if test="created!=null">
|
|
,created=#{created}
|
|
</if>
|
|
where examAnswerId=#{examAnswerId}
|
|
|
|
</update>
|
|
|
|
<select id="getModelAnswerByKey" parameterType="java.lang.Long" resultType="ModelAnswer">
|
|
|
|
SELECT examAnswerId, userId, examId, examPaperId,
|
|
origiScore, score, trueScore, created , areaid ,
|
|
machineScore , humanScore , paperFile , md5Code , content,examGuid,answerGuid
|
|
FROM ModelAnswer
|
|
WHERE examAnswerId=#{examAnswerId}
|
|
|
|
</select>
|
|
|
|
<select id="getSeqModelAnswer" resultType="Long" useCache="false" flushCache="true">
|
|
|
|
SELECT nextval('seq_ModelAnswerId') ;
|
|
|
|
</select>
|
|
|
|
<select id="getModelAnswer" resultType="ModelAnswer" parameterType="java.util.Map">
|
|
|
|
SELECT examAnswerId, userId, examId, examPaperId,
|
|
origiScore, score, trueScore, created , areaid ,
|
|
machineScore , humanScore , paperFile , md5Code , content,examGuid,answerGuid from modelAnswer where userid=#{userId} and examId = #{examId}
|
|
|
|
</select>
|
|
|
|
<select id="getModelAnswerCountByAnswerGuid" resultType="java.lang.Integer" parameterType="java.lang.String">
|
|
|
|
select count(examanswerid) from modelAnswer where answerGuid=#{_parameter}
|
|
|
|
</select>
|
|
|
|
<select id="getModelExamInfos" parameterType="java.util.Map" resultType="java.util.Map">
|
|
select me.batchCode "batchCode",me.title,cs.classname "className",c.classesid as classesId
|
|
from classownmodel c
|
|
inner join classes cs
|
|
on c.classesid=cs.classesid
|
|
and cs.classtype=1 and cs.status=1
|
|
<if test="roleType==100">
|
|
and cs.teacherid=#{userId}
|
|
</if>
|
|
<if test="roleType==14">
|
|
and cs.schoolId=(select schoolId from admin where adminid=#{userId})
|
|
</if>
|
|
|
|
<if test="roleType==13">
|
|
and cs.schoolId in (select valuelong from parameter where paralong=#{userId} and paratype=9)
|
|
</if>
|
|
|
|
<if test="roleType==15">
|
|
and cs.classesId in (select valuelong from parameter where paralong=#{userId} and paratype=10)
|
|
</if>
|
|
<if test="objectType==3">
|
|
and cs.schoolId in (select schoolid from school where areaId in
|
|
(select areaId from area where parentid in (select areaId from area where parentid=#{areaId} )))
|
|
</if>
|
|
<if test="objectType==2">
|
|
and cs.schoolId in (select schoolid from school where areaId in
|
|
(select areaId from area where parentid=#{areaId} ))
|
|
</if>
|
|
|
|
<if test="objectType==1">
|
|
and cs.schoolId in (select schoolid from school where areaId=#{areaId})
|
|
</if>
|
|
<if test="schoolId!=null">
|
|
and cs.schoolId=#{schoolId}
|
|
</if>
|
|
|
|
<if test="classesId!=null">
|
|
and cs.classesId=#{classesId}
|
|
</if>
|
|
|
|
inner join modelanswer e
|
|
on e.examid=c.examid
|
|
|
|
<if test="examId!=null">
|
|
and e.examId=#{examId}
|
|
</if>
|
|
|
|
inner join modelexam me on me.examid=c.examid
|
|
<if test="examId!=null">
|
|
and me.examId=#{examId}
|
|
</if>
|
|
<if test="startTime!=null">
|
|
and me.created > #{startTime}
|
|
</if>
|
|
|
|
<if test="endTime!=null">
|
|
and me.created < #{endTime}
|
|
</if>
|
|
|
|
inner join student st
|
|
on st.studentid=e.userid
|
|
<if test="recognizecode!=null">
|
|
and upper(st.recognizecode)=upper(#{recognizecode})
|
|
</if>
|
|
inner join teacher tr
|
|
on tr.teacherid=cs.teacherid
|
|
<if test="loginNo!=null">
|
|
and upper(tr.loginNo)=upper(#{loginNo})
|
|
</if>
|
|
<where>
|
|
<if test="key != null and key != ''">
|
|
cs.classname like CONCAT('%',#{key},'%') or me.title like CONCAT('%',#{key},'%')
|
|
</if>
|
|
|
|
</where>
|
|
group by me.batchCode ,me.title,cs.classname,c.classesid
|
|
|
|
order by me.batchCode desc
|
|
</select>
|
|
|
|
<select id="getNotJoinStudentInfos" flushCache="true" parameterType="java.util.Map" resultType="ModelAnswerDTO">
|
|
with joinstu as (select b.userId from modelexam as a inner join modelanswer as b on a.examid = b.examid where a.batchcode= #{batchCode})
|
|
select st.studentid "userId",st.truename "studentName",st.recognizeCode,cl.className,st.code ,cl.areaId,cl.schoolyear,cl.classlevel from classes as cl inner join studentownclass as stc on cl.classesid= stc.classesid and stc.status =1
|
|
inner join student as st on st.studentid = stc.studentid where cl.classesid = #{classesId} and st.studentid not in (select userId from joinstu) order by st.studentid desc;
|
|
</select>
|
|
|
|
<select id="getModelAnswersForOut" parameterType="java.util.Map" resultType="ModelAnswerDTO">
|
|
|
|
with temp as (select cs.classname,cs.classesid,cs.schoolyear,cs.teacherid ,cs.schoolid,cs.classlevel,cs.areaid from
|
|
classes cs
|
|
where cs.classtype=1 and cs.status=1
|
|
<if test="roleType==100">
|
|
and cs.teacherid=#{userId}
|
|
</if>
|
|
<if test="roleType==14">
|
|
and cs.schoolId=(select schoolId from admin where adminid=#{userId})
|
|
</if>
|
|
|
|
<if test="roleType==13">
|
|
and cs.schoolId in (select valuelong from parameter where paralong=#{userId} and paratype=9)
|
|
</if>
|
|
|
|
<if test="roleType==15">
|
|
and cs.classesId in (select valuelong from parameter where paralong=#{userId} and paratype=10)
|
|
</if>
|
|
<if test="objectType==3">
|
|
and cs.schoolId in (select schoolid from school where areaId in
|
|
(select areaId from area where parentid in (select areaId from area where parentid=#{areaId} )))
|
|
</if>
|
|
<if test="objectType==2">
|
|
and cs.schoolId in (select schoolid from school where areaId in
|
|
(select areaId from area where parentid=#{areaId} ))
|
|
</if>
|
|
|
|
<if test="objectType==1">
|
|
and cs.schoolId in (select schoolid from school where areaId=#{areaId})
|
|
</if>
|
|
<if test="schoolId!=null and schoolId != ''">
|
|
and cs.schoolId=#{schoolId}
|
|
</if>
|
|
|
|
<if test="classesId!=null and classesId != ''">
|
|
and cs.classesId=#{classesId}
|
|
</if>
|
|
|
|
)
|
|
|
|
|
|
select e.examanswerid ,e.exampaperid ,e.userid ,st.truename "studentName" ,st.recognizecode ,cs.classname ,cs.schoolyear,cs.classesid,st.code,cs.classlevel,cs.areaid,
|
|
e.score,e.origiscore ,e.trueScore ,tr.truename "teacherName" ,tr.loginNo ,sl.schoolname , er.title,e.created ,me.batchCode,me.title "modelExamTitle"
|
|
from classownmodel c
|
|
|
|
inner join modelanswer e
|
|
on e.examid=c.examid
|
|
|
|
<if test="examId!=null and examId != ''">
|
|
and e.examId=#{examId}
|
|
</if>
|
|
inner join modelexam me on me.examid=e.examid
|
|
<if test="batchCodes!=null">
|
|
and me.batchCode in
|
|
<foreach collection="batchCodes" index="index" item="item" separator="," open="(" close=")">
|
|
#{item}
|
|
</foreach>
|
|
</if>
|
|
|
|
<if test="startTime!=null">
|
|
and me.created > #{startTime}
|
|
</if>
|
|
|
|
<if test="endTime!=null">
|
|
and me.created < #{endTime}
|
|
</if>
|
|
inner join exampaper er
|
|
on er.exampaperid=e.exampaperid
|
|
|
|
inner join student st
|
|
on st.studentid=e.userid
|
|
|
|
<if test="recognizecode!=null and recognizecode!=''">
|
|
and upper(st.recognizecode)=upper(#{recognizecode})
|
|
</if>
|
|
inner join studentownclass as stc on st.studentid = stc.studentid
|
|
inner join temp as cs on stc.classesid=cs.classesid
|
|
inner join teacher tr
|
|
on tr.teacherid=cs.teacherid
|
|
<if test="loginNo!=null and loginNo!=''">
|
|
and upper(tr.loginNo)=upper(#{loginNo})
|
|
</if>
|
|
inner join school sl
|
|
on sl.schoolid=cs.schoolid
|
|
|
|
group by e.examanswerid ,e.exampaperid ,e.userid ,st.truename ,st.recognizecode ,cs.classname ,cs.schoolyear,cs.classesid,st.code,cs.classlevel,cs.areaid,
|
|
e.score,e.origiscore ,e.trueScore ,tr.truename ,tr.loginNo ,sl.schoolname , er.title,e.created ,me.batchCode
|
|
,me.title
|
|
order by e.score desc
|
|
</select>
|
|
|
|
<!--todo 这里增加st.code-->
|
|
<select id="getModelAnswers" resultType="java.util.Map" parameterType="java.util.Map">
|
|
|
|
select e.examanswerid "examAnswerId",e.exampaperid "examPaperId",e.userid "userId",st.truename "studentName",st.recognizecode "recognizeCode",cs.classname "className",
|
|
e.score,e.origiscore "origiScore",e.trueScore "trueScore",tr.truename "teacherName",tr.loginNo "loginNo",sl.schoolname "schoolName", er.title,e.created ,me.batchCode "batchCode"
|
|
from classownmodel c
|
|
|
|
inner join modelanswer e
|
|
on e.examid=c.examid
|
|
<!--<if test="startTime!=null">-->
|
|
<!--and e.created > #{startTime}-->
|
|
<!--</if>-->
|
|
<!---->
|
|
<!--<if test="endTime!=null">-->
|
|
<!--and e.created < #{endTime}-->
|
|
<!--</if>-->
|
|
|
|
|
|
<if test="examId!=null">
|
|
and e.examId=#{examId}
|
|
</if>
|
|
inner join modelexam me on me.examid=e.examid
|
|
<if test="batchCode!=null">
|
|
and me.batchCode=#{batchCode}
|
|
</if>
|
|
<if test="startTime!=null">
|
|
and me.created > #{startTime}
|
|
</if>
|
|
|
|
<if test="endTime!=null">
|
|
and me.created < #{endTime}
|
|
</if>
|
|
inner join exampaper er
|
|
on er.exampaperid=e.exampaperid
|
|
inner join student st
|
|
on st.studentid=e.userid
|
|
<if test="recognizecode!=null">
|
|
and upper(st.recognizecode)=upper(#{recognizecode})
|
|
</if>
|
|
|
|
inner join studentownclass as stc on st.studentid = stc.studentid
|
|
inner join classes cs
|
|
on stc.classesid=cs.classesid
|
|
and cs.classtype=1 and cs.status=1
|
|
<if test="roleType==100">
|
|
and cs.teacherid=#{userId}
|
|
</if>
|
|
<if test="roleType==14">
|
|
and cs.schoolId=(select schoolId from admin where adminid=#{userId})
|
|
</if>
|
|
|
|
<if test="roleType==13">
|
|
and cs.schoolId in (select valuelong from parameter where paralong=#{userId} and paratype=9)
|
|
</if>
|
|
|
|
<if test="roleType==15">
|
|
and cs.classesId in (select valuelong from parameter where paralong=#{userId} and paratype=10)
|
|
</if>
|
|
<if test="objectType==3">
|
|
and cs.schoolId in (select schoolid from school where areaId in
|
|
(select areaId from area where parentid in (select areaId from area where parentid=#{areaId} )))
|
|
</if>
|
|
<if test="objectType==2">
|
|
and cs.schoolId in (select schoolid from school where areaId in
|
|
(select areaId from area where parentid=#{areaId} ))
|
|
</if>
|
|
|
|
<if test="objectType==1">
|
|
and cs.schoolId in (select schoolid from school where areaId=#{areaId})
|
|
</if>
|
|
<if test="schoolId!=null">
|
|
and cs.schoolId=#{schoolId}
|
|
</if>
|
|
|
|
<if test="classesId!=null">
|
|
and cs.classesId=#{classesId}
|
|
</if>
|
|
inner join teacher tr
|
|
on tr.teacherid=cs.teacherid
|
|
<if test="loginNo!=null">
|
|
and upper(tr.loginNo)=upper(#{loginNo})
|
|
</if>
|
|
inner join school sl
|
|
on sl.schoolid=cs.schoolid
|
|
group by e.examanswerid ,e.exampaperid ,e.userid ,st.truename ,st.recognizecode ,cs.classname ,
|
|
e.score,e.origiscore ,e.trueScore ,tr.truename ,tr.loginNo,sl.schoolname , er.title,e.created ,me.batchCode
|
|
order by e.examid desc,e.created desc,e.userid desc
|
|
<if test="pageSize!=null">
|
|
limit #{pageSize}
|
|
</if>
|
|
|
|
<if test="offset!=null">
|
|
|
|
offset #{offset}
|
|
|
|
</if>
|
|
</select>
|
|
<select id="getModelAnswersCount" resultType="java.lang.Integer" parameterType="java.util.Map">
|
|
|
|
select count(distinct (e.examid,e.userid ))
|
|
from classownmodel c
|
|
|
|
inner join modelanswer e
|
|
on e.examid=c.examid
|
|
|
|
<if test="examId!=null">
|
|
and e.examId=#{examId}
|
|
</if>
|
|
inner join modelexam me on me.examid=e.examid
|
|
<if test="batchCode!=null">
|
|
and me.batchCode=#{batchCode}
|
|
</if>
|
|
<if test="startTime!=null">
|
|
and me.created > #{startTime}
|
|
</if>
|
|
|
|
<if test="endTime!=null">
|
|
and me.created < #{endTime}
|
|
</if>
|
|
inner join exampaper er
|
|
on er.exampaperid=e.exampaperid
|
|
inner join student st
|
|
on st.studentid=e.userid
|
|
<if test="recognizecode!=null">
|
|
and upper(st.recognizecode)=upper(#{recognizecode})
|
|
</if>
|
|
|
|
inner join studentownclass as stc on st.studentid = stc.studentid
|
|
inner join classes cs
|
|
on stc.classesid=cs.classesid
|
|
and cs.classtype=1 and cs.status=1
|
|
<if test="roleType==100">
|
|
and cs.teacherid=#{userId}
|
|
</if>
|
|
<if test="roleType==14">
|
|
and cs.schoolId=(select schoolId from admin where adminid=#{userId})
|
|
</if>
|
|
|
|
<if test="roleType==13">
|
|
and cs.schoolId in (select valuelong from parameter where paralong=#{userId} and paratype=9)
|
|
</if>
|
|
|
|
<if test="roleType==15">
|
|
and cs.classesId in (select valuelong from parameter where paralong=#{userId} and paratype=10)
|
|
</if>
|
|
<if test="objectType==3">
|
|
and cs.schoolId in (select schoolid from school where areaId in
|
|
(select areaId from area where parentid in (select areaId from area where parentid=#{areaId} )))
|
|
</if>
|
|
<if test="objectType==2">
|
|
and cs.schoolId in (select schoolid from school where areaId in
|
|
(select areaId from area where parentid=#{areaId} ))
|
|
</if>
|
|
|
|
<if test="objectType==1">
|
|
and cs.schoolId in (select schoolid from school where areaId=#{areaId})
|
|
</if>
|
|
<if test="schoolId!=null">
|
|
and cs.schoolId=#{schoolId}
|
|
</if>
|
|
|
|
<if test="classesId!=null">
|
|
and cs.classesId=#{classesId}
|
|
</if>
|
|
inner join teacher tr
|
|
on tr.teacherid=cs.teacherid
|
|
<if test="loginNo!=null">
|
|
and upper(tr.loginNo)=upper(#{loginNo})
|
|
</if>
|
|
inner join school sl
|
|
on sl.schoolid=cs.schoolid
|
|
|
|
</select>
|
|
<select id="getModelAnswersByExamId" parameterType="java.lang.Integer" resultType="ModelAnswer">
|
|
SELECT examAnswerId, userId, examId, examPaperId,
|
|
origiScore, score, trueScore, created , areaid ,
|
|
machineScore , humanScore , paperFile , md5Code , content,examGuid,answerGuid
|
|
FROM ModelAnswer
|
|
WHERE examId=#{examId}
|
|
|
|
</select>
|
|
|
|
|
|
</mapper> |