44323
2023-11-22 f6ba3e15355e22767e69f8fc14ae22523f8db8dc
cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java
@@ -3,22 +3,23 @@
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.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
 * @author zhibing.pu
@@ -52,10 +53,17 @@
        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("signInOrNot", 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;
    }
@@ -96,6 +104,38 @@
    }
    @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();
    }
    /**
     * 定时修改状态
     */
@@ -128,4 +168,26 @@
            }
        }).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;
    }
}