|
@@ -41,14 +41,13 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.time.LocalDate;
|
|
|
-import java.time.LocalDateTime;
|
|
|
-import java.time.LocalTime;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.function.Consumer;
|
|
|
import java.util.function.Function;
|
|
|
+import java.util.function.Predicate;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -113,6 +112,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
|
|
|
result.setSalesStartDate(group.getSalesStartDate());
|
|
|
result.setSalesEndDate(group.getSalesEndDate());
|
|
|
result.setMixStudentNum(group.getMixStudentNum());
|
|
|
+ result.setImGroupId(group.getImGroupId());
|
|
|
Optional.ofNullable(group.getTeacherId()).map(this::getSysUser)
|
|
|
.ifPresent(sysUser -> result.setTeacherName(sysUser.getRealName()));
|
|
|
Optional.ofNullable(group.getSubjectId()).map(subjectService::get)
|
|
@@ -219,6 +219,38 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 取消课程组-下架课程组
|
|
|
+ *
|
|
|
+ * @param groupId 课程组
|
|
|
+ */
|
|
|
+ public void cancelCourseGroup(Long groupId) {
|
|
|
+ //获取课程组
|
|
|
+ CourseGroup group = this.getOne(Wrappers.<CourseGroup>lambdaQuery().
|
|
|
+ eq(CourseGroup::getId, groupId));
|
|
|
+ Predicate<CourseGroupEnum> courseStateFunc = e -> group.getStatus().equalsIgnoreCase(e.getCode());
|
|
|
+ if (courseStateFunc.test(CourseGroupEnum.ING)) {
|
|
|
+ throw new BizException("课程组进行中,无法下架/取消课程组!");
|
|
|
+ } else if (courseStateFunc.test(CourseGroupEnum.APPLY)) {
|
|
|
+ //已上架没人买的课程可以下架
|
|
|
+ if (group.getPreStudentNum() > 0) {
|
|
|
+ throw new BizException("课程组已有学生购买,无法下架/取消课程组!");
|
|
|
+ }
|
|
|
+ } else if (courseStateFunc.test(CourseGroupEnum.COMPLETE)) {
|
|
|
+ throw new BizException("课程组已完结!");
|
|
|
+ } else if (courseStateFunc.test(CourseGroupEnum.DISSOLVE) || courseStateFunc.test(CourseGroupEnum.CANCEL)) {
|
|
|
+ throw new BizException("课程组已下架!");
|
|
|
+ }
|
|
|
+ //只剩下未开售状态和上架没人购买,可以直接修改
|
|
|
+ group.setStatus(CourseGroupEnum.CANCEL.getCode());
|
|
|
+ this.updateById(group);
|
|
|
+ //修改课程表
|
|
|
+ courseScheduleService.lambdaUpdate()
|
|
|
+ .eq(CourseSchedule::getCourseGroupId, groupId)
|
|
|
+ .set(CourseSchedule::getStatus, CourseScheduleEnum.CANCEL.getCode())
|
|
|
+ .update();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 创建课时写到缓存锁定时间
|
|
|
*/
|
|
|
public List<CourseTimeEntity> lockCourseToCache(CheckCourseTimeDto dto) {
|