413 lines
17 KiB
XML
413 lines
17 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="pc.exam.pp.module.exam.dal.mysql.question.ExamQuestionMapper">
|
|
|
|
<resultMap type="ExamQuestion" id="ExamQuestionResult">
|
|
<result property="quId" column="qu_id"/>
|
|
<result property="quBankId" column="qu_bank_id"/>
|
|
<result property="quNum" column="qu_num"/>
|
|
<result property="quBankName" column="qu_bank_name"/>
|
|
<result property="chapteridDictText" column="chapterId_dict_text"/>
|
|
<result property="subjectName" column="subject_name"/>
|
|
<result property="quLevel" column="qu_level"/>
|
|
<result property="content" column="content"/>
|
|
<result property="contentText" column="content_text"/>
|
|
<result property="answer" column="answer"/>
|
|
<result property="analysis" column="analysis"/>
|
|
<result property="pointNames" column="point_names"/>
|
|
<result property="keywords" column="keywords"/>
|
|
<result property="manual" column="manual"/>
|
|
<result property="createTime" column="create_time"/>
|
|
<result property="creator" column="creator"/>
|
|
<result property="updateTime" column="update_time"/>
|
|
<result property="updater" column="updater"/>
|
|
<result property="deleted" column="deleted"/>
|
|
<result property="status" column="status"/>
|
|
<result property="audit" column="audit"/>
|
|
<result property="tname" column="tname"/>
|
|
<result property="schoolId" column="school_id"/>
|
|
<result property="answerEmplate" column="answer_emplate"/>
|
|
<result property="courseName" column="course_name"/>
|
|
<result property="specialtyName" column="specialty_name"/>
|
|
<result property="tenantId" column="tenant_id"/>
|
|
|
|
|
|
<!-- 嵌套答案列表 -->
|
|
<collection property="answerList" ofType="pc.exam.pp.module.exam.dal.dataobject.ExamQuestionAnswer">
|
|
<id property="answerId" column="answer_id"/>
|
|
<result property="quId" column="a_qu_id"/>
|
|
<result property="isRight" column="is_right"/>
|
|
<result property="image" column="image"/>
|
|
<result property="content" column="a_content"/>
|
|
<result property="contentIn" column="a_content_in"/>
|
|
<result property="scoreRate" column="score_rate"/>
|
|
<result property="sort" column="sort"/>
|
|
</collection>
|
|
</resultMap>
|
|
<resultMap type="pc.exam.pp.module.exam.controller.admin.question.vo.TenantVo" id="TenantVoResult">
|
|
<result property="id" column="id"/>
|
|
<result property="name" column="name"/>
|
|
<result property="ququeName" column="queue_name"/>
|
|
</resultMap>
|
|
|
|
<resultMap type="ExamPsKeyword" id="ExamPsKeywordsResult">
|
|
<id property="id" column="id" jdbcType="VARCHAR"/>
|
|
<result property="quId" column="qu_id" jdbcType="VARCHAR"/>
|
|
<result property="parentId" column="parent_id" jdbcType="VARCHAR"/>
|
|
<result property="key" column="key_name" jdbcType="VARCHAR"/>
|
|
<result property="value" column="key_value" jdbcType="VARCHAR"/>
|
|
<result property="rate" column="rate" jdbcType="VARCHAR"/>
|
|
<result property="type" column="type" jdbcType="VARCHAR"/>
|
|
<result property="sort" column="sort" jdbcType="VARCHAR"/>
|
|
|
|
</resultMap>
|
|
<sql id="selectExamQuestionVo">
|
|
select qu_id,
|
|
qu_bank_id,
|
|
qu_num,
|
|
qu_bank_name,
|
|
chapterId_dict_text,
|
|
subject_name,
|
|
qu_level,
|
|
content,
|
|
content_text,
|
|
analysis,
|
|
answer,
|
|
point_names,
|
|
keywords,
|
|
manual,
|
|
create_time,
|
|
creator,
|
|
update_time,
|
|
updater,
|
|
deleted,
|
|
status,
|
|
audit,
|
|
course_name,
|
|
specialty_name,
|
|
tname,
|
|
school_id,
|
|
answer_emplate
|
|
from exam_question
|
|
</sql>
|
|
|
|
|
|
<select id="selectExamQuestionByQuId" parameterType="String" resultMap="ExamQuestionResult">
|
|
<include refid="selectExamQuestionVo"/>
|
|
where qu_id = #{quId}
|
|
</select>
|
|
|
|
<select id="selectExamQuestionListByQuIds" resultMap="ExamQuestionResult">
|
|
SELECT
|
|
q.*, -- exam_question 表字段
|
|
a.answer_id,
|
|
a.qu_id AS a_qu_id,
|
|
a.is_right,
|
|
a.image,
|
|
a.content AS a_content,
|
|
a.contentIn AS a_content_in,
|
|
a.score_rate,
|
|
a.sort
|
|
FROM exam_question q
|
|
LEFT JOIN exam_question_answer a ON q.qu_id = a.qu_id
|
|
WHERE q.qu_id IN
|
|
<foreach collection="list" item="id" open="(" separator="," close=")">
|
|
#{id}
|
|
</foreach>
|
|
ORDER BY
|
|
CASE WHEN a.sort IS NOT NULL THEN 0 ELSE 1 END,
|
|
a.sort ASC
|
|
</select>
|
|
<select id="getSchoolName" resultMap="TenantVoResult">
|
|
SELECT id, name, queue_name
|
|
FROM system_tenant
|
|
WHERE deleted = 0
|
|
<if test="name != null and name != ''">
|
|
AND name LIKE CONCAT('%', #{name}, '%')
|
|
</if>
|
|
LIMIT #{pageSize} OFFSET #{offset}
|
|
</select>
|
|
|
|
<select id="getSchoolNameById" resultType="pc.exam.pp.module.exam.controller.admin.question.vo.TenantVo">
|
|
SELECT id, name, queue_name
|
|
FROM system_tenant
|
|
WHERE deleted = 0 and id = #{id}
|
|
</select>
|
|
|
|
<select id="getSchoolNameTotal" resultType="java.lang.Long">
|
|
SELECT count(*)
|
|
FROM system_tenant
|
|
WHERE deleted = 0
|
|
<if test="name != null and name != ''">
|
|
AND name LIKE CONCAT('%', #{name}, '%')
|
|
</if>
|
|
</select>
|
|
<select id="selectExamQuestionByQuIdAndTenantId"
|
|
resultMap="ExamQuestionResult">
|
|
<include refid="selectExamQuestionVo"/>
|
|
where qu_id = #{quId} and tenant_id= #{source}
|
|
|
|
</select>
|
|
<select id="seleAllQueueName" resultType="java.lang.String">
|
|
SELECT queue_name
|
|
FROM system_tenant
|
|
WHERE deleted = 0
|
|
</select>
|
|
<select id="selectExamQuestionCountByQuId" resultMap="ExamQuestionResult">
|
|
select *
|
|
from exam_question
|
|
where qu_bank_id = #{quId} and deleted = 0
|
|
</select>
|
|
<select id="getSchoolNameNaPage" resultMap="TenantVoResult">
|
|
SELECT id, name, queue_name
|
|
FROM system_tenant
|
|
WHERE deleted = 0
|
|
</select>
|
|
<select id="selectTenantId" resultType="java.lang.Long">
|
|
select tenant_id
|
|
from system_users limit 1
|
|
</select>
|
|
<select id="selectByTypes" resultMap="ExamQuestionResult">
|
|
select *
|
|
from exam_question
|
|
where specialty_name = #{specialtyName}
|
|
and course_name = #{courseName}
|
|
and subject_name = #{subjectName}
|
|
and content = #{content} limit 1;
|
|
</select>
|
|
<select id="selectSchoolnameBytId" resultType="java.lang.String">
|
|
select name
|
|
from system_tenant
|
|
where id = #{loginTenantId}
|
|
</select>
|
|
<select id="selectCountQu" resultType="java.lang.Integer">
|
|
select count(*)
|
|
from exam_question
|
|
</select>
|
|
<select id="selectQuNumBuIds" resultType="java.lang.String">
|
|
select qu_num from exam_question where qu_id
|
|
IN
|
|
<foreach collection="list" item="id" open="(" separator="," close=")">
|
|
#{id}
|
|
</foreach>
|
|
</select>
|
|
<select id="selectExamQuestionPsKeywordByQuId"
|
|
resultMap="ExamPsKeywordsResult">
|
|
select id,qu_id,parent_id,key_name,key_value,rate,type,sort
|
|
from exam_ps_keyword
|
|
where qu_id=#{quId}
|
|
</select>
|
|
|
|
|
|
<insert id="insertExamQuestion" parameterType="ExamQuestion">
|
|
insert into exam_question
|
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
|
<if test="quId != null">qu_id,</if>
|
|
<if test="quBankId != null">qu_bank_id,</if>
|
|
<if test="quNum != null">qu_num,</if>
|
|
<if test="quBankName != null">qu_bank_name,</if>
|
|
<if test="chapteridDictText != null">chapterId_dict_text,</if>
|
|
<if test="subjectName != null">subject_name,</if>
|
|
<if test="quLevel != null">qu_level,</if>
|
|
<if test="answer != null">answer,</if>
|
|
<if test="tname != null">tname,</if>
|
|
<if test="content != null">content,</if>
|
|
<if test="contentText != null">content_text,</if>
|
|
<if test="analysis != null">analysis,</if>
|
|
<if test="pointNames != null">point_names,</if>
|
|
<if test="keywords != null">keywords,</if>
|
|
<if test="manual != null">manual,</if>
|
|
<if test="createTime != null">create_time,</if>
|
|
<if test="creator != null">creator,</if>
|
|
<if test="updateTime != null">update_time,</if>
|
|
<if test="updater != null">updater,</if>
|
|
<if test="deleted != null">deleted,</if>
|
|
<if test="status != null">status,</if>
|
|
<if test="audit != null">audit,</if>
|
|
<if test="courseName != null">course_name,</if>
|
|
<if test="specialtyName != null">specialty_name,</if>
|
|
<if test="schoolId != null">school_id,</if>
|
|
<if test="answerEmplate != null">answer_emplate,</if>
|
|
<if test="tenantId != null">tenant_id,</if>
|
|
</trim>
|
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
|
<if test="quId != null">#{quId},</if>
|
|
<if test="quBankId != null">#{quBankId},</if>
|
|
<if test="quNum != null">#{quNum},</if>
|
|
<if test="quBankName != null">#{quBankName},</if>
|
|
<if test="chapteridDictText != null">#{chapteridDictText},</if>
|
|
<if test="subjectName != null">#{subjectName},</if>
|
|
<if test="quLevel != null">#{quLevel},</if>
|
|
<if test="answer != null">#{answer},</if>
|
|
<if test="tname != null">#{tname},</if>
|
|
<if test="content != null">#{content},</if>
|
|
<if test="contentText != null">#{contentText},</if>
|
|
<if test="analysis != null">#{analysis},</if>
|
|
<if test="pointNames != null">#{pointNames},</if>
|
|
<if test="keywords != null">#{keywords},</if>
|
|
<if test="manual != null">#{manual},</if>
|
|
<if test="createTime != null">#{createTime},</if>
|
|
<if test="creator != null">#{creator},</if>
|
|
<if test="updateTime != null">#{updateTime},</if>
|
|
<if test="updater != null">#{updater},</if>
|
|
<if test="deleted != null">#{deleted},</if>
|
|
<if test="status != null">#{status},</if>
|
|
<if test="audit != null">#{audit},</if>
|
|
<if test="courseName != null">#{courseName},</if>
|
|
<if test="specialtyName != null">#{specialtyName},</if>
|
|
<if test="schoolId != null">#{schoolId},</if>
|
|
<if test="answerEmplate != null">#{answerEmplate},</if>
|
|
<if test="tenantId != null">#{tenantId},</if>
|
|
|
|
</trim>
|
|
</insert>
|
|
<insert id="insertOrUpdateList">
|
|
INSERT INTO exam_question (qu_id, qu_bank_id,tname, qu_num,chapterId_dict_text, subject_name,specialty_name,
|
|
course_name, qu_level, content, audit, status, content_text, analysis, point_names, keywords, manual, school_id,
|
|
create_time, creator, update_time, updater)
|
|
VALUES
|
|
<foreach collection="collection" item="item" separator=",">
|
|
(#{item.quId}, #{item.quBankId},#{item.tname},#{item.quNum}, #{item.chapteridDictText}, #{item.subjectName},
|
|
#{item.specialtyName}, #{item.courseName}, #{item.quLevel}, #{item.content}, #{item.audit}
|
|
, #{item.status}, #{item.contentText}, #{item.analysis}, #{item.pointNames}, #{item.keywords},
|
|
#{item.manual}, #{item.schoolId}, #{answerEmplate}, #{createTime}, #{creator}, #{updateTime}, #{updater})
|
|
</foreach>
|
|
ON DUPLICATE KEY UPDATE
|
|
tname = VALUES(tname),
|
|
chapterId_dict_text = VALUES(chapterId_dict_text),
|
|
subject_name = VALUES(subject_name),
|
|
specialty_name = VALUES(specialty_name),
|
|
course_name = VALUES(course_name),
|
|
qu_level = VALUES(qu_level),
|
|
content = VALUES(content),
|
|
audit = VALUES(audit),
|
|
status = VALUES(status),
|
|
content_text = VALUES(content_text),
|
|
analysis = VALUES(analysis),
|
|
point_names = VALUES(point_names),
|
|
keywords = VALUES(keywords),
|
|
manual = VALUES(manual),
|
|
school_id = VALUES(school_id),
|
|
answer_emplate = VALUES(answer_emplate),
|
|
create_time = VALUES(create_time),
|
|
creator = VALUES(creator),
|
|
update_time = VALUES(update_time),
|
|
updater = VALUES(updater)
|
|
</insert>
|
|
<insert id="insertExamPsKeywordList">
|
|
INSERT INTO exam_ps_keyword (
|
|
id,
|
|
qu_id,
|
|
parent_id,
|
|
key_name,
|
|
key_value,
|
|
rate,
|
|
type,
|
|
sort
|
|
) VALUES
|
|
<foreach collection="list" item="item" separator=",">
|
|
(
|
|
#{item.id},
|
|
#{item.quId},
|
|
#{item.parentId},
|
|
#{item.key},
|
|
#{item.value},
|
|
#{item.rate},
|
|
#{item.type},
|
|
#{item.sort}
|
|
)
|
|
</foreach>
|
|
</insert>
|
|
|
|
<update id="updateExamQuestion" parameterType="ExamQuestion">
|
|
update exam_question
|
|
<trim prefix="SET" suffixOverrides=",">
|
|
<if test="quBankId != null">qu_bank_id = #{quBankId},</if>
|
|
<if test="quBankName != null">qu_bank_name = #{quBankName},</if>
|
|
<if test="chapteridDictText != null">chapterId_dict_text = #{chapteridDictText},</if>
|
|
<if test="subjectName != null">subject_name = #{subjectName},</if>
|
|
<if test="quLevel != null">qu_level = #{quLevel},</if>
|
|
<if test="content != null">content = #{content},</if>
|
|
<if test="answer != null">answer = #{answer},</if>
|
|
<if test="tname != null">tname = #{tname},</if>
|
|
<if test="contentText != null">content_text = #{contentText},</if>
|
|
<if test="analysis != null">analysis = #{analysis},</if>
|
|
<if test="pointNames != null">point_names = #{pointNames},</if>
|
|
<if test="keywords != null">keywords = #{keywords},</if>
|
|
<if test="manual != null">manual = #{manual},</if>
|
|
<if test="createTime != null">create_time = #{createTime},</if>
|
|
<if test="creator != null">creator = #{creator},</if>
|
|
<if test="updateTime != null">update_time = #{updateTime},</if>
|
|
<if test="updater != null">updater = #{updater},</if>
|
|
<if test="deleted != null">deleted = #{deleted},</if>
|
|
<if test="status != null">status = #{status},</if>
|
|
<if test="audit != null">audit = #{audit},</if>
|
|
<if test="courseName != null">course_name = #{courseName},</if>
|
|
<if test="specialtyName != null">specialty_name = #{specialtyName},</if>
|
|
<if test="schoolId != null">school_id = #{schoolId},</if>
|
|
<if test="answerEmplate != null">answer_emplate = #{answerEmplate},</if>
|
|
<if test="tenantId != null">tenant_id = #{tenantId},</if>
|
|
</trim>
|
|
where qu_id = #{quId}
|
|
</update>
|
|
|
|
<delete id="deleteExamQuestionByQuId" parameterType="String">
|
|
UPDATE exam_question
|
|
set deleted ='2'
|
|
where qu_id = #{quId}
|
|
</delete>
|
|
<update id="deleteExamQuestionByQuIds">
|
|
UPDATE exam_question
|
|
SET deleted = '2'
|
|
WHERE qu_id IN
|
|
<foreach collection="ids" item="id" open="(" separator="," close=")">
|
|
#{id}
|
|
</foreach>
|
|
</update>
|
|
|
|
|
|
<update id="setQuestionAuditByids">
|
|
UPDATE exam_question
|
|
SET audit = '2'
|
|
WHERE qu_id IN
|
|
<foreach collection="quIds" item="id" open="(" separator="," close=")">
|
|
#{id}
|
|
</foreach>
|
|
</update>
|
|
<update id="auditQueByIds">
|
|
UPDATE exam_question
|
|
SET audit = '0'
|
|
WHERE qu_id IN
|
|
<foreach collection="quIds" item="id" open="(" separator="," close=")">
|
|
#{id}
|
|
</foreach>
|
|
</update>
|
|
<update id="noAuditQue">
|
|
|
|
UPDATE exam_question
|
|
SET audit = '3'
|
|
WHERE qu_id IN
|
|
<foreach collection="quIds" item="id" open="(" separator="," close=")">
|
|
#{id}
|
|
</foreach>
|
|
</update>
|
|
<update id="updateExamQuestionByIds">
|
|
UPDATE education_question_examine
|
|
SET updater = #{updater},
|
|
update_time = now()
|
|
WHERE qu_id IN
|
|
<foreach collection="quIds" item="id" open="(" separator="," close=")">
|
|
#{id}
|
|
</foreach>
|
|
|
|
</update>
|
|
<update id="changeStatus">
|
|
UPDATE exam_question
|
|
set status =#{status}
|
|
where qu_id = #{quId}
|
|
</update>
|
|
|
|
|
|
</mapper> |