feat: 🎸 课程列表增加当前用户是否已报名字段
This commit is contained in:
parent
e6d382c7cf
commit
b376d406d7
@ -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":
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user