|
@@ -59,27 +59,32 @@ public class CourseController {
|
|
|
@Resource
|
|
@Resource
|
|
|
private CertService certService;
|
|
private CertService certService;
|
|
|
|
|
|
|
|
- @Operation(summary = "列出所有课程(含有效状态与我的进班状态)")
|
|
|
|
|
|
|
+ @Operation(summary = "列出所有课程(含有效状态与我的进班状态,未登录可浏览,我的状态为 none)")
|
|
|
@PostMapping("/list")
|
|
@PostMapping("/list")
|
|
|
- public Result<List<TrainCourse>> list(@RequestAttribute("userId") Long userId) {
|
|
|
|
|
|
|
+ public Result<List<TrainCourse>> list(@RequestAttribute(value = "userId", required = false) Long userId) {
|
|
|
List<TrainCourse> courses = trainCourseMapper.selectList(
|
|
List<TrainCourse> courses = trainCourseMapper.selectList(
|
|
|
new LambdaQueryWrapper<TrainCourse>().orderByAsc(TrainCourse::getLevel));
|
|
new LambdaQueryWrapper<TrainCourse>().orderByAsc(TrainCourse::getLevel));
|
|
|
for (TrainCourse c : courses) {
|
|
for (TrainCourse c : courses) {
|
|
|
c.setEffectiveStatus(effectiveStatus(c));
|
|
c.setEffectiveStatus(effectiveStatus(c));
|
|
|
- Map<String, Object> en = myEnrollmentStatus(userId, c.getId());
|
|
|
|
|
- c.setMyStatus(en == null ? "none" : en.get("status").toString());
|
|
|
|
|
|
|
+ if (userId == null) {
|
|
|
|
|
+ // 未登录浏览:我的报名/进班状态展示为 none
|
|
|
|
|
+ c.setMyStatus("none");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ Map<String, Object> en = myEnrollmentStatus(userId, c.getId());
|
|
|
|
|
+ c.setMyStatus(en == null ? "none" : en.get("status").toString());
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
return Result.success(courses);
|
|
return Result.success(courses);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- @Operation(summary = "当前学员所修课程(可传 courseId 指定查询某一门课程)")
|
|
|
|
|
|
|
+ @Operation(summary = "当前学员所修课程(可传 courseId 指定查询某一门课程;未登录时仅返回课程/班次浏览信息)")
|
|
|
@PostMapping("/current")
|
|
@PostMapping("/current")
|
|
|
public Result<Map<String, Object>> current(@RequestBody(required = false) Map<String, Object> body,
|
|
public Result<Map<String, Object>> current(@RequestBody(required = false) Map<String, Object> body,
|
|
|
- @RequestAttribute("userId") Long userId) {
|
|
|
|
|
|
|
+ @RequestAttribute(value = "userId", required = false) Long userId) {
|
|
|
Map<String, Object> data = new HashMap<>();
|
|
Map<String, Object> data = new HashMap<>();
|
|
|
|
|
|
|
|
- TrainUser user = trainUserMapper.selectById(userId);
|
|
|
|
|
- if (user == null) {
|
|
|
|
|
|
|
+ TrainUser user = userId == null ? null : trainUserMapper.selectById(userId);
|
|
|
|
|
+ if (userId != null && user == null) {
|
|
|
return Result.error("用户不存在");
|
|
return Result.error("用户不存在");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -91,7 +96,7 @@ public class CourseController {
|
|
|
if (targetCourseId != null) {
|
|
if (targetCourseId != null) {
|
|
|
// 指定课程:直接查该课程,并解析其中的班次/报名状态
|
|
// 指定课程:直接查该课程,并解析其中的班次/报名状态
|
|
|
course = trainCourseMapper.selectById(targetCourseId);
|
|
course = trainCourseMapper.selectById(targetCourseId);
|
|
|
- if (user.getClassId() != null) {
|
|
|
|
|
|
|
+ if (user != null && user.getClassId() != null) {
|
|
|
TrainClass myClass = trainClassMapper.selectById(user.getClassId());
|
|
TrainClass myClass = trainClassMapper.selectById(user.getClassId());
|
|
|
// 仅当用户所在班次归属该课程时带上班级信息
|
|
// 仅当用户所在班次归属该课程时带上班级信息
|
|
|
if (myClass != null && targetCourseId.equals(myClass.getCourseId())) {
|
|
if (myClass != null && targetCourseId.equals(myClass.getCourseId())) {
|
|
@@ -100,7 +105,7 @@ public class CourseController {
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
// 未指定:按 user.class_id -> train_class.course_id 解析
|
|
// 未指定:按 user.class_id -> train_class.course_id 解析
|
|
|
- if (user.getClassId() != null) {
|
|
|
|
|
|
|
+ if (user != null && user.getClassId() != null) {
|
|
|
trainClass = trainClassMapper.selectById(user.getClassId());
|
|
trainClass = trainClassMapper.selectById(user.getClassId());
|
|
|
if (trainClass != null && trainClass.getCourseId() != null) {
|
|
if (trainClass != null && trainClass.getCourseId() != null) {
|
|
|
course = trainCourseMapper.selectById(trainClass.getCourseId());
|
|
course = trainCourseMapper.selectById(trainClass.getCourseId());
|
|
@@ -144,8 +149,8 @@ public class CourseController {
|
|
|
data.put("classes", classes);
|
|
data.put("classes", classes);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- // 学员在该课程下的报名/进班状态
|
|
|
|
|
- data.put("enrollment", myEnrollmentStatus(userId, course.getId()));
|
|
|
|
|
|
|
+ // 学员在该课程下的报名/进班状态(未登录浏览时无报名状态)
|
|
|
|
|
+ data.put("enrollment", userId == null ? null : myEnrollmentStatus(userId, course.getId()));
|
|
|
return Result.success(data);
|
|
return Result.success(data);
|
|
|
}
|
|
}
|
|
|
|
|
|