feat:修改资源学习列表无完成人数无法查到资源的问题

This commit is contained in:
yangxinyu
2025-12-04 18:40:18 +08:00
parent 4f53a268ba
commit ce2524fdcb

View File

@@ -26,36 +26,34 @@ public class CourseStatDao extends BaseDao<StudyCourse> {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("SELECT ") sql.append("SELECT ")
// 资源名 // 资源名
.append("c.content_name AS contentName, ") .append("cc.content_name AS contentName, ")
// 资源ID // 资源ID
.append("c.content_id AS contentId, ") .append("cc.id AS contentId, ")
// 完成人数(去重统计) // 完成人数(去重统计)
.append("COUNT(DISTINCT c.aid) AS finishCount, ") .append("COUNT(DISTINCT c.aid) AS finishCount, ")
//2025.11.27新增:资源类型 //2025.11.27新增:资源类型
.append("cc.content_type AS contentType ") .append("cc.content_type AS contentType ")
// 你的课程表名 // 你的课程表名
.append("FROM boe_study_course_item c ") .append("FROM boe_course_content cc ")
// 2025.11.27新增:连表 boe_course_content // 2025.11.27新增:连表 boe_course_content
.append("LEFT JOIN boe_course_content cc ON cc.id = c.content_id ") .append("LEFT JOIN boe_study_course_item c ON cc.id = c.content_id AND c.status = 9 ")
.append("WHERE 1=1 ") .append("WHERE 1=1 ");
// 条件:已完成
.append("AND c.status = 9 ");
List<Object> params = new ArrayList<>(); List<Object> params = new ArrayList<>();
// courseId非空则过滤参数化防注入 // courseId非空则过滤参数化防注入
if (StringUtils.isNotBlank(courseId)) { if (StringUtils.isNotBlank(courseId)) {
sql.append("AND c.course_id = ? "); sql.append("AND cc.course_id = ? ");
params.add(courseId); params.add(courseId);
} }
// 25.12.1修改 新增contentName模糊查询粗略匹配 // 25.12.1修改 新增contentName模糊查询粗略匹配
if (StringUtils.isNotBlank(contentName)) { if (StringUtils.isNotBlank(contentName)) {
// 实现“包含contentName”的模糊查询 // 实现“包含contentName”的模糊查询
sql.append("AND c.content_name LIKE ? "); sql.append("AND cc.content_name LIKE ? ");
// 通配符%拼接在参数上防注入表示“前后任意字符包含contentName” // 通配符%拼接在参数上防注入表示“前后任意字符包含contentName”
params.add("%" + contentName + "%"); params.add("%" + contentName + "%");
} }
// 分组+排序+分页聚合函数必须分组排序参考第一个代码的desc id // 分组+排序+分页聚合函数必须分组排序参考第一个代码的desc id
sql.append("GROUP BY c.content_id, c.content_name, cc.content_type ") sql.append("GROUP BY cc.id, cc.content_name, cc.content_type ")
.append("ORDER BY c.content_id DESC ") .append("ORDER BY cc.id DESC ")
// MySQL分页偏移量每页条数 // MySQL分页偏移量每页条数
.append("LIMIT ?, ?"); .append("LIMIT ?, ?");
// 补充分页参数顺序startIndex → pageSize // 补充分页参数顺序startIndex → pageSize