package com.dsh.course.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.dsh.course.entity.CoursePackageScheduling;
|
import com.dsh.course.entity.CoursePackageStudent;
|
import com.dsh.course.entity.TCoursePackage;
|
import com.dsh.course.mapper.CoursePackageSchedulingMapper;
|
import com.dsh.course.model.QueryCoursePackageSchedulingList;
|
import com.dsh.course.model.vo.response.AppUserVideoResponse;
|
import com.dsh.course.service.CoursePackageStudentService;
|
import com.dsh.course.service.ICoursePackageSchedulingService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.text.SimpleDateFormat;
|
import java.util.Calendar;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @author zhibing.pu
|
* @Date 2023/8/11 10:58
|
*/
|
@Service
|
public class CoursePackageSchedulingServiceImpl extends ServiceImpl<CoursePackageSchedulingMapper, CoursePackageScheduling> implements ICoursePackageSchedulingService {
|
|
@Autowired
|
private CoursePackageStudentService coursePackageStudentService;
|
|
@Autowired
|
private TCoursePackageServiceImpl coursePackageService;
|
|
@Resource
|
private CoursePackageSchedulingMapper coursePackageSchedulingMapper;
|
|
|
|
|
|
/**
|
* 获取课包排课数据
|
* @param page
|
* @param queryCoursePackageSchedulingList
|
* @return
|
*/
|
@Override
|
public List<Map<String, Object>> queryCoursePackageSchedulingList(Page<Map<String, Object>> page, QueryCoursePackageSchedulingList queryCoursePackageSchedulingList) {
|
List<Map<String, Object>> list = this.baseMapper.queryCoursePackageSchedulingList(page, queryCoursePackageSchedulingList);
|
for (Map<String, Object> map : list) {
|
Long id = Long.valueOf(map.get("id").toString());
|
int count = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", id).eq("reservationStatus", 1));
|
// map.put("registered", count);
|
int count1 = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", id).eq("reservationStatus", 1));
|
int count2 = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", id).eq("reservationStatus", 0));
|
map.put("registered", count2);
|
map.put("actualArrival", count1);
|
map.put("nonArrival", count - count1);
|
// Integer totalClassHours = (Integer) map.get("totalClassHours");
|
// Integer laveClassHours = (Integer) map.get("laveClassHours");
|
// map.put("already",totalClassHours-laveClassHours);
|
|
|
}
|
return list;
|
}
|
|
|
/**
|
* 定时添加排课数据
|
*/
|
@Override
|
public void taskAddData() {
|
new Thread(new Runnable() {
|
@Override
|
public void run() {
|
try {
|
List<TCoursePackage> list = coursePackageService.list(new QueryWrapper<TCoursePackage>().eq("status", 2).eq("auditStatus", 2).eq("state", 1));
|
for (TCoursePackage tCoursePackage : list) {
|
CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingMapper.selectOne(new QueryWrapper<CoursePackageScheduling>().eq("coursePackageId", tCoursePackage.getId()).last(" order by classDate desc limit 0, 1"));
|
Calendar calendar = Calendar.getInstance();
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
if(null != coursePackageScheduling){
|
calendar.setTime(sdf1.parse(sdf.format(coursePackageScheduling.getClassDate()) + " 00:00:00"));
|
calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
|
}else{
|
calendar.setTime(sdf1.parse(sdf.format(new Date()) + " 00:00:00"));
|
}
|
coursePackageScheduling = new CoursePackageScheduling();
|
coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
|
coursePackageScheduling.setClassDate(calendar.getTime());
|
coursePackageScheduling.setStatus(1);
|
coursePackageSchedulingMapper.insert(coursePackageScheduling);
|
}
|
}catch (Exception e){
|
e.printStackTrace();
|
}
|
}
|
}).start();
|
}
|
|
|
/**
|
* 定时修改状态
|
*/
|
@Override
|
public void taskSetStatus() {
|
new Thread(new Runnable() {
|
@Override
|
public void run() {
|
//开始数据
|
List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingMapper.selectList(new QueryWrapper<CoursePackageScheduling>().eq("status", 1).last(" and now() >= classDate and now() < endDate"));
|
for (CoursePackageScheduling coursePackageScheduling : coursePackageSchedulings) {
|
coursePackageScheduling.setStatus(2);
|
coursePackageScheduling.setCoursePackageId(null);
|
coursePackageSchedulingMapper.updateById(coursePackageScheduling);
|
|
TCoursePackage coursePackage = coursePackageService.getById(coursePackageScheduling.getCoursePackageId());
|
if(coursePackage.getStatus() == 1){
|
coursePackage.setStatus(2);
|
coursePackageService.updateById(coursePackage);
|
}
|
}
|
|
//结束数据
|
coursePackageSchedulings = coursePackageSchedulingMapper.selectList(new QueryWrapper<CoursePackageScheduling>().eq("status", 2).last(" and now() >= endDate"));
|
for (CoursePackageScheduling coursePackageScheduling : coursePackageSchedulings) {
|
coursePackageScheduling.setStatus(3);
|
coursePackageScheduling.setCoursePackageId(null);
|
coursePackageSchedulingMapper.updateById(coursePackageScheduling);
|
}
|
}
|
}).start();
|
}
|
|
@Override
|
public List<AppUserVideoResponse> queryAll(List<Long> longs) {
|
|
if (longs.size()>0) {
|
List<AppUserVideoResponse> appUserVideoResponses = this.baseMapper.queryAll(longs);
|
|
for (AppUserVideoResponse appUserVideoRespon : appUserVideoResponses) {
|
if (appUserVideoRespon.getVideoId() != null) {
|
if (this.baseMapper.isHave(appUserVideoRespon.getVideoId()) > 0) {
|
appUserVideoRespon.setStudyStatus(2);
|
} else {
|
appUserVideoRespon.setStudyStatus(1);
|
}
|
}
|
}
|
|
return appUserVideoResponses;
|
|
}else return null;
|
|
}
|
}
|