Merge remote-tracking branch 'origin/dev-tmp1' into dev-tmp1
commit
3da4937be0
|
|
@ -36,6 +36,10 @@
|
|||
<groupId>io.swagger</groupId>
|
||||
<artifactId>swagger-annotations</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.jjb.saas</groupId>
|
||||
<artifactId>jjb-saas-framework-job</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- EasyExcel -->
|
||||
<dependency>
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ public class CourseManagementServiceImpl extends ServiceImpl<CourseManagementMap
|
|||
IPage<CourseManagementVO> convert = page.convert(courseManagementConvertor::convertEToVo);
|
||||
Map<Long, Integer> collectMap = classCourseMapper.selectList(new LambdaQueryWrapper<ClassCourseDO>()
|
||||
.in(ClassCourseDO::getCourseId, convert.getRecords().stream().map(CourseManagementVO::getId)))
|
||||
.stream().collect(Collectors.toMap(ClassCourseDO::getCourseId, v -> 1));
|
||||
.stream().map(ClassCourseDO::getCourseId).distinct().collect(Collectors.toMap(v -> v, v -> 1));
|
||||
convert.getRecords().forEach(vo -> {
|
||||
vo.setCourseRelCoursewareVOList(courseRelCoursewareConvertor.convertEListToVoList(
|
||||
courseRelCoursewareMapper.selectList(new LambdaQueryWrapper<CourseRelCoursewareDO>()
|
||||
|
|
@ -81,11 +81,15 @@ public class CourseManagementServiceImpl extends ServiceImpl<CourseManagementMap
|
|||
.eq(CourseManagementDO::getDeleteEnum, DeleteEnum.FALSE.getCode())
|
||||
.one();
|
||||
CourseManagementVO courseManagementVO = courseManagementConvertor.convertEToVo(entity);
|
||||
Map<Long, Integer> collectMap = classCourseMapper.selectList(new LambdaQueryWrapper<ClassCourseDO>()
|
||||
.eq(ClassCourseDO::getCourseId, courseManagementVO.getId()))
|
||||
.stream().map(ClassCourseDO::getCourseId).distinct().collect(Collectors.toMap(v -> v, v -> 1));
|
||||
courseManagementVO.setCourseRelCoursewareVOList(courseRelCoursewareConvertor.convertEListToVoList(
|
||||
courseRelCoursewareMapper.selectList(new LambdaQueryWrapper<CourseRelCoursewareDO>()
|
||||
.eq(CourseRelCoursewareDO::getCourseId, courseManagementVO.getId())
|
||||
.orderByAsc(CourseRelCoursewareDO::getSort))
|
||||
));
|
||||
courseManagementVO.setUsed(Math.toIntExact(collectMap.getOrDefault(Long.valueOf(courseManagementVO.getId()), 0)));
|
||||
return courseManagementVO;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,79 @@
|
|||
package org.qinan.cedu.service.support.job;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.jjb.saas.framework.job.Job;
|
||||
import com.jjb.saas.framework.job.annotation.JobRegister;
|
||||
import com.xxl.job.core.biz.model.ReturnT;
|
||||
import com.xxl.job.core.context.XxlJobHelper;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.qinan.cedu.enums.ClassStatusEnum;
|
||||
import org.qinan.cedu.enums.DeleteEnum;
|
||||
import org.qinan.cedu.mapper.ClassManagementMapper;
|
||||
import org.qinan.cedu.model.entity.ClassManagementDO;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 过程控制签字完成,超过3天未归档
|
||||
*
|
||||
* @author ltq
|
||||
* @since 2026/08/13
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
public class ClassManagementStateJob implements Job {
|
||||
|
||||
private final ClassManagementMapper classManagementMapper;
|
||||
|
||||
/**
|
||||
* 班级管理状态检查
|
||||
*/
|
||||
@Override
|
||||
@XxlJob("classManagementStateTask")
|
||||
@JobRegister(cron = "0 7 0 * * ?",
|
||||
jobDesc = "班级管理状态检查",
|
||||
author = "ltq",
|
||||
triggerStatus = 1)
|
||||
public ReturnT<String> execute(String param) {
|
||||
param = XxlJobHelper.getJobParam();
|
||||
log.info("班级管理状态检查开始, param: {}", param);
|
||||
List<ClassManagementDO> classManagementDOS = classManagementMapper.selectList(new LambdaQueryWrapper<ClassManagementDO>()
|
||||
.ne(ClassManagementDO::getStatus, 1));
|
||||
LocalDate now = LocalDate.now();
|
||||
for (ClassManagementDO classManagementDO : classManagementDOS) {
|
||||
log.info("班级管理状态检查 {}", classManagementDO.getClassName());
|
||||
LocalDate start = classManagementDO.getStartDate().toLocalDate();
|
||||
LocalDate end = classManagementDO.getDelayTime().toLocalDate();
|
||||
if (Objects.isNull(end)) {
|
||||
end = classManagementDO.getEndDate().toLocalDate();
|
||||
}
|
||||
ClassStatusEnum pendingStart;
|
||||
if (now.isBefore(start)) {
|
||||
pendingStart = ClassStatusEnum.PENDING_START;
|
||||
} else if (now.isAfter(start) && now.isBefore(end)) {
|
||||
pendingStart = ClassStatusEnum.IN_PROGRESS;
|
||||
} else if (now.isAfter(end)) {
|
||||
pendingStart = ClassStatusEnum.FINISHED;
|
||||
} else {
|
||||
pendingStart = ClassStatusEnum.NOT_APPLIED;
|
||||
}
|
||||
log.info("班级管理状态检查结束 {}, 状态: {}", classManagementDO.getClassName(), pendingStart.getDesc());
|
||||
classManagementMapper.update(new LambdaUpdateWrapper<ClassManagementDO>()
|
||||
.set(ClassManagementDO::getStatus, pendingStart.getCode())
|
||||
.set(ClassManagementDO::getUpdateTime, LocalDateTime.now())
|
||||
.eq(ClassManagementDO::getId, classManagementDO.getId())
|
||||
.eq(ClassManagementDO::getDeleteEnum, DeleteEnum.FALSE.getCode()));
|
||||
|
||||
}
|
||||
log.info("班级管理状态检查完成");
|
||||
return ReturnT.SUCCESS;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue