|
|
|
<?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="com.ccsens.braintraining.persist.dao.BrainDao">
|
|
|
|
<resultMap id="QuestionMap" type="com.ccsens.braintraining.bean.vo.BrainVo$QuestionClassify">
|
|
|
|
<id column="classifyId" property="classifyId"/>
|
|
|
|
<result column="classifyCode" property="classifyCode"/>
|
|
|
|
<result column="duration" property="duration"/>
|
|
|
|
<result column="generate" property="generate"/>
|
|
|
|
<result column="generateParam" property="generateParam"/>
|
|
|
|
<collection property="questions" ofType="com.ccsens.braintraining.bean.vo.BrainVo$Question">
|
|
|
|
<id column="questionId" property="questionId"/>
|
|
|
|
<collection property="contents" ofType="com.ccsens.braintraining.bean.vo.BrainVo$QuestionContent">
|
|
|
|
<id column="contentId" property="contentId"/>
|
|
|
|
<result column="questionContent" property="content"/>
|
|
|
|
<result column="questionShowType" property="showType"/>
|
|
|
|
</collection>
|
|
|
|
<collection property="options" ofType="com.ccsens.braintraining.bean.vo.BrainVo$QuestionOption">
|
|
|
|
<id column="optionId" property="optionId"/>
|
|
|
|
<result column="optionContent" property="content"/>
|
|
|
|
<result column="optionShowType" property="showType"/>
|
|
|
|
</collection>
|
|
|
|
</collection>
|
|
|
|
</resultMap>
|
|
|
|
|
|
|
|
<insert id="batchInsertActiveQuestion">
|
|
|
|
INSERT INTO t_train_active_question ( id, active_user_id, classify_id, question_id, question_content, question_answer, operator )
|
|
|
|
VALUES
|
|
|
|
<foreach collection="list" item="item" separator=",">
|
|
|
|
(#{item.id}, #{item.activeUserId}, #{item.classifyId}, #{item.questionId}, #{item.questionContent}, #{item.questionAnswer}, #{item.operator})
|
|
|
|
</foreach>
|
|
|
|
</insert>
|
|
|
|
<insert id="batchInsertScore">
|
|
|
|
INSERT INTO t_train_active_score ( id, active_user_id, classify_id, question_id, score )
|
|
|
|
VALUES
|
|
|
|
<foreach collection="list" item="item" separator=",">
|
|
|
|
( #{item.id}, #{item.activeUserId}, #{item.classifyId}, #{item.questionId}, #{item.score} )
|
|
|
|
</foreach>
|
|
|
|
</insert>
|
|
|
|
<insert id="batchInsertLog">
|
|
|
|
INSERT INTO t_train_active_log ( id, active_user_id, classify_id, question_id, option_content, time, operation_type, operator )
|
|
|
|
VALUES
|
|
|
|
<foreach collection="list" item="item" separator=",">
|
|
|
|
( #{item.id}, #{item.activeUserId}, #{item.classifyId}, #{item.questionId}, #{item.optionContent}, #{item.time}, #{item.operationType}, #{item.operator} )
|
|
|
|
</foreach>
|
|
|
|
</insert>
|
|
|
|
<select id="queryRandom" resultType="java.lang.Long">
|
|
|
|
SELECT
|
|
|
|
id
|
|
|
|
FROM
|
|
|
|
t_train_question
|
|
|
|
WHERE
|
|
|
|
classify_id = #{classifyId}
|
|
|
|
AND rec_status = 0
|
|
|
|
ORDER BY
|
|
|
|
rand()
|
|
|
|
LIMIT ${num}
|
|
|
|
</select>
|
|
|
|
<select id="queryChildRandom" resultType="java.lang.Long">
|
|
|
|
select * from (
|
|
|
|
<foreach collection="list" item="item" separator="union">
|
|
|
|
(SELECT
|
|
|
|
id
|
|
|
|
FROM
|
|
|
|
t_train_question
|
|
|
|
WHERE
|
|
|
|
classify_id = #{item.classifyId}
|
|
|
|
AND rec_status = 0
|
|
|
|
ORDER BY
|
|
|
|
rand()
|
|
|
|
LIMIT ${item.num})
|
|
|
|
</foreach>
|
|
|
|
)t order by rand()
|
|
|
|
</select>
|
|
|
|
<select id="queryGradeRandom" resultType="java.lang.Long">
|
|
|
|
select * from (
|
|
|
|
<foreach collection="list" item="item" separator="union">
|
|
|
|
(SELECT
|
|
|
|
id
|
|
|
|
FROM
|
|
|
|
t_train_question
|
|
|
|
WHERE
|
|
|
|
classify_id = #{classifyId}
|
|
|
|
AND grade = #{item.grade}
|
|
|
|
AND rec_status = 0
|
|
|
|
ORDER BY
|
|
|
|
rand()
|
|
|
|
LIMIT ${item.num})
|
|
|
|
</foreach>
|
|
|
|
)t order by rand()
|
|
|
|
</select>
|
|
|
|
<select id="queryGenerateRules" resultType="com.ccsens.braintraining.bean.vo.BrainVo$GenerateRule">
|
|
|
|
SELECT
|
|
|
|
g.id,
|
|
|
|
g.active_id,
|
|
|
|
g.classify_id,
|
|
|
|
g.generate,
|
|
|
|
g.generate_param,
|
|
|
|
g.duration,
|
|
|
|
c.CODE AS classifyCode,
|
|
|
|
c.NAME AS classifyName
|
|
|
|
FROM
|
|
|
|
t_train_rule_generate g,
|
|
|
|
t_train_classify c
|
|
|
|
WHERE
|
|
|
|
g.classify_id = c.id
|
|
|
|
AND g.active_id = #{activeId}
|
|
|
|
AND g.rec_status = 0
|
|
|
|
AND c.rec_status = 0
|
|
|
|
ORDER BY
|
|
|
|
g.sort
|
|
|
|
</select>
|
|
|
|
<select id="getScore" resultType="java.lang.Integer">
|
|
|
|
SELECT
|
|
|
|
sum( score )
|
|
|
|
FROM
|
|
|
|
t_train_active_score
|
|
|
|
WHERE
|
|
|
|
active_user_id = #{activeUserId}
|
|
|
|
AND classify_id = #{classifyId}
|
|
|
|
AND rec_status = 0
|
|
|
|
</select>
|
|
|
|
<select id="getQuestion" resultMap="QuestionMap">
|
|
|
|
SELECT
|
|
|
|
c.id AS classifyId,
|
|
|
|
c.CODE AS classifyCode,
|
|
|
|
g.duration,
|
|
|
|
g.generate,
|
|
|
|
g.generate_param AS generateParam,
|
|
|
|
q.id AS questionId,
|
|
|
|
IFNULL(qc.id,0) AS contentId,
|
|
|
|
IFNULL(qc.content, q.question_content) AS questionContent,
|
|
|
|
IFNULL(qc.show_type,0) AS questionShowType,
|
|
|
|
o.id AS optionId,
|
|
|
|
o.content AS optionContent,
|
|
|
|
o.show_type AS optionShowType
|
|
|
|
FROM
|
|
|
|
t_train_active_question q
|
|
|
|
LEFT JOIN t_train_classify c ON q.classify_id = c.id
|
|
|
|
AND c.rec_status = 0
|
|
|
|
LEFT JOIN t_train_rule_generate g ON c.id = g.classify_id
|
|
|
|
AND g.rec_status = 0
|
|
|
|
LEFT JOIN t_train_question_content qc ON q.question_id = qc.question_id
|
|
|
|
AND qc.rec_status = 0
|
|
|
|
LEFT JOIN t_train_question_option o ON q.question_id = o.question_id
|
|
|
|
AND o.rec_status = 0
|
|
|
|
WHERE
|
|
|
|
q.active_user_id = #{activeUserId}
|
|
|
|
AND q.classify_id = #{classifyId}
|
|
|
|
AND q.rec_status = 0
|
|
|
|
order by q.id, o.sort
|
|
|
|
</select>
|
|
|
|
<select id="countRight" resultType="java.lang.Integer">
|
|
|
|
SELECT
|
|
|
|
count(*)
|
|
|
|
FROM
|
|
|
|
t_train_question_answer a,
|
|
|
|
t_train_active_question q
|
|
|
|
<where>
|
|
|
|
a.question_id = q.question_id
|
|
|
|
AND q.active_user_id = #{activeUserId}
|
|
|
|
<foreach collection="list" item="item" open="AND (" separator="or" close=")">
|
|
|
|
( q.id = #{item.questionId} AND a.content = #{item.answer} )
|
|
|
|
</foreach>
|
|
|
|
AND a.rec_status = 0
|
|
|
|
AND q.rec_status = 0
|
|
|
|
</where>
|
|
|
|
</select>
|
|
|
|
<select id="queryClassifyScores" resultType="com.ccsens.braintraining.bean.vo.BrainVo$ClassifyAnswer">
|
|
|
|
SELECT
|
|
|
|
q.classify_id AS classifyId,
|
|
|
|
aq.id AS questionId,
|
|
|
|
CASE
|
|
|
|
<foreach collection="list" item="item">
|
|
|
|
WHEN aq.id = #{item.questionId} THEN IF( a.content = #{item.answer}, 1, 0 )
|
|
|
|
</foreach>
|
|
|
|
ELSE 0
|
|
|
|
END AS answer
|
|
|
|
FROM
|
|
|
|
t_train_active_question aq,
|
|
|
|
t_train_question q,
|
|
|
|
t_train_question_answer a
|
|
|
|
WHERE
|
|
|
|
aq.question_id = q.id
|
|
|
|
AND q.id = a.question_id
|
|
|
|
AND aq.active_user_id = #{activeUserId}
|
|
|
|
<foreach collection="list" item="item" open="AND aq.id IN (" close=")" separator=",">
|
|
|
|
#{item.questionId}
|
|
|
|
</foreach>
|
|
|
|
AND aq.rec_status = 0
|
|
|
|
AND q.rec_status = 0
|
|
|
|
</select>
|
|
|
|
<select id="queryAnswerSort" resultType="java.lang.String">
|
|
|
|
SELECT
|
|
|
|
a.content
|
|
|
|
FROM
|
|
|
|
t_train_active_question q,
|
|
|
|
t_train_question_answer a
|
|
|
|
WHERE
|
|
|
|
q.question_id = a.question_id
|
|
|
|
AND q.id = #{activeQuestionId}
|
|
|
|
AND q.rec_status = 0
|
|
|
|
AND a.rec_status = 0
|
|
|
|
ORDER BY
|
|
|
|
a.sort ASC
|
|
|
|
</select>
|
|
|
|
<select id="queryQuestionAnswers" resultType="com.ccsens.braintraining.bean.vo.BrainVo$QuestionAnswer">
|
|
|
|
SELECT
|
|
|
|
q.id AS questionId,
|
|
|
|
a.content
|
|
|
|
FROM
|
|
|
|
t_train_active_question q,
|
|
|
|
t_train_question_answer a
|
|
|
|
WHERE
|
|
|
|
q.question_id = a.question_id
|
|
|
|
AND q.active_user_id = #{activeUserId}
|
|
|
|
<foreach collection="list" item="item" open="AND q.id IN (" separator="," close=")">
|
|
|
|
#{item}
|
|
|
|
</foreach>
|
|
|
|
AND a.rec_status = 0
|
|
|
|
AND q.rec_status = 0
|
|
|
|
</select>
|
|
|
|
</mapper>
|