feat: 🎸 课程列表增加当前用户是否已报名字段

This commit is contained in:
GoCo 2025-09-04 09:24:21 +08:00
parent e6d382c7cf
commit b376d406d7
2 changed files with 28 additions and 1 deletions

View File

@ -195,8 +195,30 @@ public class AiolCourseController extends JeecgController<AiolCourse, IAiolCours
@RequestParam(value = "categoryId", required = false) String categoryId,
@RequestParam(value = "difficulty", required = false) String difficulty,
@RequestParam(value = "subject", required = false) String topic,
@RequestParam(value = "sort", required = false) String sort) {
@RequestParam(value = "sort", required = false) String sort,
HttpServletRequest request) {
List<CourseWithTeacherInfo> list = aiolCourseService.getCourseList(categoryId, difficulty, topic);
// 尝试获取token判断用户是否登录
String token = request.getHeader(CommonConstant.X_ACCESS_TOKEN);
if (token != null && !token.trim().isEmpty()) {
try {
String username = JwtUtil.getUsername(token);
LoginUser sysUser = sysBaseApi.getUserByName(username);
if (sysUser != null) {
// 用户已登录查询已报名课程并标记
for (CourseWithTeacherInfo course : list) {
boolean isEnrolled = aiolCourseService.isEnrolled(course.getId(), sysUser.getId());
course.setIsEnrolled(isEnrolled);
}
}
} catch (Exception e) {
// token无效或解析失败忽略错误继续执行原有逻辑
log.debug("Token解析失败按未登录用户处理: {}", e.getMessage());
}
}
if (sort != null) {
switch (sort) {
case "hottest":

View File

@ -13,4 +13,9 @@ import java.util.List;
public class CourseWithTeacherInfo extends AiolCourse {
@Schema(description = "授课讲师列表")
private List<TeacherInfo> teacherList;
/**
* 是否已报名该课程
*/
@Schema(description = "是否已报名该课程")
private Boolean isEnrolled = false;
}