123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 |
- package com.ym.mec.teacher.controller;
- import com.ym.mec.auth.api.client.SysUserFeignService;
- import com.ym.mec.auth.api.entity.SysUser;
- import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
- import com.ym.mec.biz.dal.dto.CourseScheduleDto;
- import com.ym.mec.biz.dal.entity.CourseSchedule;
- import com.ym.mec.biz.dal.entity.SysConfig;
- import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
- import com.ym.mec.biz.dal.page.CourseHomeworkQueryInfo;
- import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
- import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
- import com.ym.mec.biz.dal.page.StudentAttendanceQueryInfo;
- import com.ym.mec.biz.service.CourseScheduleService;
- import com.ym.mec.biz.service.StudentAttendanceService;
- import com.ym.mec.biz.service.SysConfigService;
- import com.ym.mec.common.controller.BaseController;
- import com.ym.mec.util.date.DateUtil;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import io.swagger.annotations.ApiParam;
- import org.apache.commons.lang3.time.DateUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.http.HttpStatus;
- import org.springframework.http.MediaType;
- import org.springframework.web.bind.annotation.*;
- import java.util.*;
- /**
- * @Author Joburgess
- * @Date 2019/9/27
- */
- @Api(tags = "课程计划服务")
- @RequestMapping("teacherCourseSchedule")
- @RestController
- public class TeacherCourseScheduleController extends BaseController {
- @Autowired
- private CourseScheduleService scheduleService;
- @Autowired
- private StudentAttendanceService studentAttendanceService;
- @Autowired
- private SysUserFeignService sysUserFeignService;
- @Autowired
- private SysConfigService sysConfigService;
- @ApiOperation(value = "根据月份获取该月有课的日期")
- @GetMapping("/getCourseScheduleDateByMonth")
- public Object getCourseScheduleDateByMonth(@ApiParam(value = "月份", required = true) @RequestParam Date month,
- @ApiParam(value = "课程类型", required = false) String type) {
- if(Objects.isNull(month)){
- return failed(HttpStatus.FORBIDDEN, "请指定日期!");
- }
- return succeed(scheduleService.getCourseScheduleDateByTeacher(month,type));
- }
- @ApiOperation(value = "根据日期获取当日排课")
- @GetMapping("/getCourseSchedulesWithDate")
- public Object getCourseSchedulesWithDate(@ApiParam(value = "日期", required = true) Date date,
- @ApiParam(value = "课程类型") String type){
- if(Objects.isNull(date)){
- return failed("请指定日期!");
- }
- SysUser user = sysUserFeignService.queryUserInfo();
- if(null==user){
- return failed(HttpStatus.FORBIDDEN, "请登录");
- }
- SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ENABLE_STUDENT_ATTENDANCE_TIME_RANGE);
- List<CourseScheduleDto> teacherCourseSchedulesWithDate = scheduleService.getTeacherCourseSchedulesWithDate(user.getId(),date,type);
- Map<String,Object> result = new HashMap<>();
- result.put("rows",teacherCourseSchedulesWithDate);
- result.put("appealDaysRange",1);
- result.put("enableStudentAttendanceTimeRange",sysConfig.getParanValue(Integer.class));
- return succeed(result);
- }
- @ApiOperation(value = "根据月份获取该月历史有课的日期")
- @GetMapping("/getHistoryCourseScheduleDateByMonth")
- public Object getHistoryCourseScheduleDateByTeacher(@ApiParam(value = "月份", required = true) @RequestParam Date month) {
- SysUser user = sysUserFeignService.queryUserInfo();
- if(null==user){
- return failed(HttpStatus.FORBIDDEN, "请登录");
- }
- if(Objects.isNull(month)){
- return failed(HttpStatus.FORBIDDEN, "请指定日期!");
- }
- return succeed(scheduleService.getHistoryCourseScheduleDateByTeacher(user.getId(),month));
- }
- @ApiOperation(value = "根据日期获取当日历史课程")
- @GetMapping("/getHistoryCourseSchedulesWithDate")
- public Object getHistoryCourseSchedulesWithDate(@ApiParam(value = "日期", required = true) Date date){
- if(Objects.isNull(date)){
- return failed("请指定日期!");
- }
- SysUser user = sysUserFeignService.queryUserInfo();
- if(null==user){
- return failed(HttpStatus.FORBIDDEN, "请登录");
- }
- List<CourseScheduleDto> teacherCourseSchedulesWithDate = scheduleService.getTeacherHistoryCourseSchedulesWithDate(user.getId(),date);
- Map<String,Object> result = new HashMap<>();
- result.put("rows",teacherCourseSchedulesWithDate);
- result.put("appealDaysRange",1);
- return succeed(result);
- }
- @ApiOperation(value = "根据课程ID查询打卡界面课程详情")
- @GetMapping("/getCurrentCourseDetail")
- public Object getCurrentCourseDetail(Long courseID){
- if(Objects.isNull(courseID)){
- return failed("请指定课程!");
- }
- return succeed(scheduleService.getCurrentCourseDetail(courseID));
- }
- @ApiOperation(value = "获取老师指定班级的排课")
- @GetMapping("/queryTeacherClassCourseSchedule")
- public Object queryTeacherClassCourseSchedule(CourseScheduleQueryInfo queryInfo){
- return succeed(scheduleService.queryTeacherClassCourseSchedule(queryInfo));
- }
- @ApiOperation(value = "获取点名详情头部信息")
- @GetMapping("/findCourseAttendanceDetailHeadInfo")
- public Object findCourseAttendanceDetailHeadInfo(Long courseScheduleId){
- return succeed(scheduleService.findCourseAttendanceDetailHeadInfo(courseScheduleId));
- }
- @ApiOperation(value = "根据课程获取当前课程的学生列表")
- @GetMapping("/getCurrentCourseStudents")
- public Object getCurrentCourseStudents(StudentAttendanceQueryInfo queryInfo){
- if(Objects.isNull(queryInfo.getClassGroupId())){
- return failed("请指定班级!");
- }
- queryInfo.setFilterStatus(StudentAttendanceStatusEnum.DROP_OUT);
- return succeed(studentAttendanceService.getCurrentCourseStudents(queryInfo));
- }
- @ApiOperation(value = "课时调整")
- @PostMapping(value = "/classStartDateAdjust",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
- public Object classStartDateAdjust(ClassDateAdjustDto classDateAdjustDto){
- if(Objects.isNull(classDateAdjustDto.getId())){
- return failed("请指定课程!");
- }
- if(classDateAdjustDto.getStartClassTime().before(new Date())){
- return failed("课程开始时间不能小于当前时间");
- }
- CourseSchedule oldCourseSchedule = scheduleService.get(classDateAdjustDto.getId());
- if(Objects.isNull(oldCourseSchedule)){
- return failed("未找到指定课程");
- }
- if(Objects.isNull(classDateAdjustDto.getClassGroupId())){
- classDateAdjustDto.setClassGroupId(oldCourseSchedule.getClassGroupId());
- }
- Date now=new Date();
- if(DateUtils.isSameDay(now,oldCourseSchedule.getClassDate())){
- return failed("不能调整今天的课程");
- }
- Date tomorrow = DateUtil.addDays1(now, 1);
- if(DateUtils.isSameDay(tomorrow,oldCourseSchedule.getClassDate())){
- Calendar calendar=Calendar.getInstance();
- calendar.setTime(now);
- System.out.println(calendar.get(Calendar.HOUR_OF_DAY));
- if(calendar.get(Calendar.HOUR_OF_DAY)>22){
- return failed("当前时间不可对此课程进行课程调整");
- }
- }
- List<CourseSchedule> courseSchedules=new ArrayList<>();
- courseSchedules.add(classDateAdjustDto);
- scheduleService.courseAdjust(courseSchedules);
- return succeed();
- }
- @ApiOperation(value = "课时交换")
- @PostMapping(value = "/courseSwap",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
- public Object courseSwap(Long courseScheduleId1,Long courseScheduleId2){
- if(Objects.isNull(courseScheduleId1)||Objects.isNull(courseScheduleId2)){
- return failed("请指定课程!");
- }
- scheduleService.courseSwap(courseScheduleId1,courseScheduleId2);
- return succeed();
- }
- @GetMapping("/statisticsInfo")
- @ApiOperation("历史考勤统计-头信息")
- public Object getStatisticsInfo(Integer classGroupId) {
- return succeed(studentAttendanceService.getStatisticsInfo(classGroupId));
- }
- @GetMapping("/statisticsList")
- @ApiOperation("历史考勤统计-考勤列表")
- public Object statisticsList(CourseHomeworkQueryInfo queryInfo) {
- return succeed(studentAttendanceService.statisticsList(queryInfo));
- }
- @ApiOperation(value = "终极课表获取")
- @GetMapping("/superFindCourseSchedules")
- public Object superFindCourseSchedules(EndCourseScheduleQueryInfo queryInfo){
- return succeed(scheduleService.endFindCourseSchedules(queryInfo));
- }
- }
|