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.controller.CoursePackagePaymentController;
|
import com.dsh.course.entity.CoursePackageScheduling;
|
import com.dsh.course.entity.CoursePackageStudent;
|
import com.dsh.course.entity.TCoursePackage;
|
import com.dsh.course.entity.TCoursePackagePayment;
|
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 com.dsh.course.service.TCoursePackagePaymentService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
|
/**
|
* @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();
|
}
|
|
|
@Autowired
|
private TCoursePackagePaymentService packagePaymentService;
|
|
/**
|
* 定时修改状态
|
*/
|
@Override
|
public void cancel() {
|
new Thread(new Runnable() {
|
@Override
|
public void run() {
|
List<TCoursePackagePayment> list = packagePaymentService.list();
|
Date now = new Date();
|
List<Long> pays = new ArrayList<>();
|
for (TCoursePackagePayment coursePackagePayment : list) {
|
if (now.before(coursePackagePayment.getUseTime())) {
|
pays.add(coursePackagePayment.getId());
|
}
|
}
|
|
List<CoursePackageStudent> coursePackagePaymentId = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().in("coursePackagePaymentId", pays));
|
List<Long> scs = new ArrayList<>();
|
for (CoursePackageStudent coursePackageStudent : coursePackagePaymentId) {
|
scs.add(coursePackageStudent.getCoursePackageSchedulingId());
|
}
|
coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().in("coursePackagePaymentId", pays));
|
coursePackageSchedulingMapper.delete(new QueryWrapper<CoursePackageScheduling>().in("id", scs));
|
|
|
}
|
}).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;
|
|
}
|
}
|