- 新增 Category、Collection、Comment 等实体类 - 实现笔记查询、分类、收藏、评论等功能 - 添加 Markdown 解析工具类 - 新增用户点赞和收藏功能 - 实现问题查询和统计功能
81 lines
3.2 KiB
XML
81 lines
3.2 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="com.example.copykamanotes.mapper.QuestionListItemMapper">
|
|
<insert id="insert">
|
|
INSERT INTO question_list_item (question_list_id, question_id, `rank`)
|
|
VALUES (#{questionListId}, #{questionId}, #{rank})
|
|
</insert>
|
|
|
|
<resultMap id="QuestionListItemVOResultMap" type="com.example.copykamanotes.model.vo.questionListItem.QuestionListItemVO">
|
|
<id property="questionListId" column="question_list_id"/>
|
|
<id property="rank" column="rank"/>
|
|
<association property="question"
|
|
javaType="com.example.copykamanotes.model.vo.question.BaseQuestionVO">
|
|
<id property="questionId" column="question.question_id"/>
|
|
<result property="title" column="question.title"/>
|
|
<result property="viewCount" column="question.view_count"/>
|
|
<result property="examPoint" column="question.exam_point"/>
|
|
<result property="difficulty" column="question.difficulty"/>
|
|
<result property="categoryId" column="question.category_id"/>
|
|
</association>
|
|
</resultMap>
|
|
|
|
<sql id="findByIdSelectClause">
|
|
SELECT qli.question_list_id,
|
|
qli.rank,
|
|
q.question_id AS "question.question_id",
|
|
q.title AS "question.title",
|
|
q.view_count AS "question.view_count",
|
|
q.exam_point AS "question.exam_point",
|
|
q.difficulty AS "question.difficulty",
|
|
q.category_id AS "question.category_id"
|
|
FROM question_list_item qli
|
|
LEFT JOIN question q
|
|
ON qli.question_id = q.question_id
|
|
WHERE qli.question_list_id = #{questionListId}
|
|
ORDER BY qli.rank
|
|
</sql>
|
|
|
|
<select id="findByQuestionListId" resultMap="QuestionListItemVOResultMap">
|
|
<include refid="findByIdSelectClause"/>
|
|
</select>
|
|
|
|
<select id="countByQuestionListId" resultType="int">
|
|
SELECT COUNT(*)
|
|
FROM question_list_item
|
|
WHERE question_list_id = #{questionListId}
|
|
</select>
|
|
|
|
<select id="findByQuestionListIdPage" resultMap="QuestionListItemVOResultMap">
|
|
<include refid="findByIdSelectClause" />
|
|
LIMIT #{limit} OFFSET #{offset}
|
|
</select>
|
|
|
|
<delete id="deleteByQuestionListIdAndQuestionId">
|
|
DELETE
|
|
FROM question_list_item
|
|
WHERE question_list_id = #{questionListId}
|
|
AND question_id = #{questionId}
|
|
</delete>
|
|
|
|
<delete id="deleteByQuestionListId">
|
|
DELETE
|
|
FROM question_list_item
|
|
WHERE question_list_id = #{questionListId}
|
|
</delete>
|
|
|
|
<select id="nextRank" resultType="int">
|
|
SELECT COALESCE(MAX(`rank`), 0) + 1
|
|
FROM `question_list_item`
|
|
WHERE `question_list_id` = ${questionListId};
|
|
</select>
|
|
|
|
<update id="updateQuestionRank" parameterType="com.example.copykamanotes.model.entity.QuestionListItem">
|
|
UPDATE `question_list_item`
|
|
SET `rank` = #{rank}
|
|
WHERE `question_list_id` = #{questionListId}
|
|
AND `question_id` = #{questionId}
|
|
</update>
|
|
</mapper>
|
|
|