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