refactor: 移除 ReviewMapper 自定义 SQL,改用 MyBatis-Plus Java API
This commit is contained in:
@@ -1,24 +0,0 @@
|
|||||||
package com.guo.learningprogresstracker.mapper;
|
|
||||||
|
|
||||||
import com.guo.learningprogresstracker.dto.ReviewFeedItem;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复习模块自定义查询 Mapper
|
|
||||||
*/
|
|
||||||
@Mapper
|
|
||||||
public interface ReviewMapper {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取最近的学习报告和残片,合并排序后返回
|
|
||||||
*/
|
|
||||||
List<ReviewFeedItem> selectReviewFeed(@Param("limit") int limit);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取指定任务下的所有报告和残片,按时间倒序
|
|
||||||
*/
|
|
||||||
List<ReviewFeedItem> selectTaskReview(@Param("taskNum") String taskNum);
|
|
||||||
}
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
<?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.guo.learningprogresstracker.mapper.ReviewMapper">
|
|
||||||
|
|
||||||
<select id="selectReviewFeed" resultType="com.guo.learningprogresstracker.dto.ReviewFeedItem">
|
|
||||||
SELECT
|
|
||||||
combined.id,
|
|
||||||
combined.session_num AS sessionNum,
|
|
||||||
combined.source_type AS sourceType,
|
|
||||||
combined.content,
|
|
||||||
combined.created_time AS createdTime,
|
|
||||||
t.task_num AS taskNum,
|
|
||||||
t.task_name AS taskName
|
|
||||||
FROM (
|
|
||||||
SELECT r.id, r.session_num, r.content, r.created_time, 'REPORT' AS source_type
|
|
||||||
FROM study_reports r
|
|
||||||
WHERE r.deleted = 0
|
|
||||||
UNION ALL
|
|
||||||
SELECT f.id, f.session_num, f.content, f.created_time, 'FRAGMENT' AS source_type
|
|
||||||
FROM study_report_fragments f
|
|
||||||
WHERE f.deleted = 0
|
|
||||||
) combined
|
|
||||||
JOIN study_sessions ss ON combined.session_num = ss.session_num AND ss.deleted = 0
|
|
||||||
JOIN tasks t ON ss.task_num = t.task_num AND t.deleted = 0
|
|
||||||
ORDER BY combined.created_time DESC
|
|
||||||
LIMIT #{limit}
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<select id="selectTaskReview" resultType="com.guo.learningprogresstracker.dto.ReviewFeedItem">
|
|
||||||
SELECT
|
|
||||||
combined.id,
|
|
||||||
combined.session_num AS sessionNum,
|
|
||||||
combined.source_type AS sourceType,
|
|
||||||
combined.content,
|
|
||||||
combined.created_time AS createdTime,
|
|
||||||
t.task_num AS taskNum,
|
|
||||||
t.task_name AS taskName
|
|
||||||
FROM (
|
|
||||||
SELECT r.id, r.session_num, r.content, r.created_time, 'REPORT' AS source_type
|
|
||||||
FROM study_reports r
|
|
||||||
WHERE r.deleted = 0
|
|
||||||
UNION ALL
|
|
||||||
SELECT f.id, f.session_num, f.content, f.created_time, 'FRAGMENT' AS source_type
|
|
||||||
FROM study_report_fragments f
|
|
||||||
WHERE f.deleted = 0
|
|
||||||
) combined
|
|
||||||
JOIN study_sessions ss ON combined.session_num = ss.session_num AND ss.deleted = 0
|
|
||||||
JOIN tasks t ON ss.task_num = t.task_num AND t.deleted = 0
|
|
||||||
WHERE t.task_num = #{taskNum}
|
|
||||||
ORDER BY combined.created_time DESC
|
|
||||||
</select>
|
|
||||||
|
|
||||||
</mapper>
|
|
||||||
Reference in New Issue
Block a user