package com.qxueyou.scc.controller;
|
|
import java.text.ParseException;
|
import java.util.List;
|
import java.util.Map;
|
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.*;
|
|
import com.qxueyou.scc.admin.classes.model.ClsClass;
|
import com.qxueyou.scc.admin.classroom.service.IClassRoomService;
|
import com.qxueyou.scc.admin.course.model.CourseSchedule;
|
import com.qxueyou.scc.admin.course.service.ICourseScheduleService;
|
import com.qxueyou.scc.base.model.Pager;
|
import com.qxueyou.scc.base.model.Result;
|
import com.qxueyou.scc.base.util.CollectionUtils;
|
import com.qxueyou.scc.base.util.QBeanUtils;
|
import com.qxueyou.scc.teach.subject.model.Subject;
|
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiOperation;
|
|
/**
|
* 班级管理控制器
|
*
|
* @author kevin
|
*/
|
@Api(tags="课表接口")
|
@Controller
|
@CrossOrigin(origins="*",maxAge=3600)
|
@RequestMapping("/admin/schedule")
|
public class CourseScheduleController {
|
|
// 分页查询中,默认记录条数和页数
|
private static final int DEFAULT_PAGE_SIZE = 10;
|
private static final int DEFAULT_PAGE_NUM = 1;
|
|
@Autowired
|
ICourseScheduleService scheduleService;
|
|
@Autowired
|
IClassRoomService classRoomService;
|
|
/**
|
* 课表列表
|
*/
|
@SuppressWarnings("unchecked")
|
@ApiOperation(value = "获取课表列表")
|
@RequestMapping(value = "list", method = RequestMethod.GET)
|
public @ResponseBody Result list(String keyword,Short status,Integer pageSize,Integer pageNum) {
|
pageSize = pageSize != null && pageSize > 0 ? pageSize : DEFAULT_PAGE_SIZE;
|
pageNum = pageNum != null && pageNum > 0 ? pageNum : DEFAULT_PAGE_NUM;
|
|
//总考试数量
|
int totalCount = scheduleService.listCount(keyword, status);
|
Pager pager = new Pager(pageSize,pageNum);
|
pager.setTotalCount(totalCount);
|
|
List<CourseSchedule> list = scheduleService.list(keyword == null ? "" : keyword.trim(),status,pageSize,pageNum);
|
|
List<Map<String, Object>> listResult =QBeanUtils.listBean2ListMap(list,
|
CollectionUtils.newStringMap("scheduleId", "scheduleId","status","status","beginTime","beginTime","endTime","endTime",
|
"teacherName","teacherName","updateTime","updateTime",
|
"subject", "subject","classes","classes"));
|
|
if(listResult!=null && listResult.size()>0){
|
for (Map<String, Object> item : listResult) {
|
Subject subject = (Subject) item.get("subject");
|
item.put("subjectId", subject.getSubjectId());
|
item.put("subjectName", subject.getName());
|
|
List<ClsClass> lstClasses= (List<ClsClass>) item.get("classes");
|
if(lstClasses!= null && lstClasses.size()>0){
|
String [] classNames = new String[lstClasses.size()];
|
for(int i =0;i<lstClasses.size();i++){
|
classNames[i] = lstClasses.get(i).getName();
|
}
|
item.put("classNames", classNames);
|
}else{
|
item.put("classNames", new String[]{});
|
}
|
item.remove("subject");
|
item.remove("classes");
|
}
|
}
|
return new Result(true,"",CollectionUtils.newObjectMap("courseScheduleList",listResult,"page",pager));
|
}
|
|
/**
|
* 课表列表
|
* @throws ParseException
|
*/
|
@ApiOperation(value = "教师获取当天课表信息")
|
@RequestMapping(value = "teacher/list", method = RequestMethod.GET)
|
public @ResponseBody Result teacherList(String date,Integer pageSize,Integer pageNum) throws Exception {
|
pageSize = pageSize != null && pageSize > 0 ? pageSize : DEFAULT_PAGE_SIZE;
|
pageNum = pageNum != null && pageNum > 0 ? pageNum : DEFAULT_PAGE_NUM;
|
|
//总考试数量
|
int totalCount = scheduleService.listTeacherOfScheduleCount(date, pageSize, pageNum);
|
Pager pager = new Pager(pageSize,pageNum);
|
pager.setTotalCount(totalCount);
|
|
List<CourseSchedule> list = scheduleService.listTeacherOfSchedule(date, pageSize, pageNum);
|
|
List<Map<String, Object>> listResult =QBeanUtils.listBean2ListMap(list,
|
CollectionUtils.newStringMap("scheduleId","scheduleId","beginTime","beginTime","endTime","endTime","courseSchedule","courseSchedule"));
|
|
if(listResult!=null && listResult.size()>0){
|
for (Map<String, Object> item : listResult) {
|
CourseSchedule courseSchedule = (CourseSchedule) item.get("courseSchedule");
|
Subject subject = courseSchedule.getSubject();
|
item.put("subjectId", subject.getSubjectId());
|
item.put("subjectName", subject.getName());
|
item.put("subjectType", subject.getType());
|
item.put("tacherName", courseSchedule.getTeacherName());
|
item.put("mark", courseSchedule.getMark());
|
item.put("roomName", courseSchedule.getClassRoom().getName());
|
item.put("roomAddr", courseSchedule.getClassRoom().getAddress());
|
|
List<ClsClass> lstClasses= courseSchedule.getClasses();
|
if(lstClasses!= null && lstClasses.size()>0){
|
String [] classNames = new String[lstClasses.size()];
|
for(int i =0;i<lstClasses.size();i++){
|
classNames[i] = lstClasses.get(i).getName();
|
}
|
item.put("classNames", classNames);
|
}else{
|
item.put("classNames", new String[]{});
|
}
|
|
item.remove("courseSchedule");
|
}
|
}
|
|
return new Result(true,"",CollectionUtils.newObjectMap("scheduleDetailList",listResult,"page",pager));
|
}
|
|
|
|
/**
|
* 课表列表
|
* @throws ParseException
|
*/
|
@ApiOperation(value = "学生获取当天课表信息")
|
@RequestMapping(value = "student/list", method = RequestMethod.GET)
|
public @ResponseBody Result studentList(String date,Integer pageSize,Integer pageNum) throws Exception {
|
pageSize = pageSize != null && pageSize > 0 ? pageSize : DEFAULT_PAGE_SIZE;
|
pageNum = pageNum != null && pageNum > 0 ? pageNum : DEFAULT_PAGE_NUM;
|
|
//总考试数量
|
int totalCount = scheduleService.listStudentScheduleCount(date, pageSize, pageNum);
|
Pager pager = new Pager(pageSize,pageNum);
|
pager.setTotalCount(totalCount);
|
|
List<CourseSchedule> list = scheduleService.listStudentSchedule(date, pageSize, pageNum);
|
|
List<Map<String, Object>> listResult =QBeanUtils.listBean2ListMap(list,
|
CollectionUtils.newStringMap("scheduleId","scheduleId","beginTime","beginTime","endTime","endTime","courseSchedule","courseSchedule"));
|
|
if(listResult!=null && listResult.size()>0){
|
for (Map<String, Object> item : listResult) {
|
CourseSchedule courseSchedule = (CourseSchedule) item.get("courseSchedule");
|
Subject subject = courseSchedule.getSubject();
|
item.put("subjectId", subject.getSubjectId());
|
item.put("subjectName", subject.getName());
|
item.put("subjectType", subject.getType());
|
item.put("tacherName", courseSchedule.getTeacherName());
|
item.put("mark", courseSchedule.getMark());
|
item.put("roomName", courseSchedule.getClassRoom().getName());
|
item.put("roomAddr", courseSchedule.getClassRoom().getAddress());
|
|
List<ClsClass> lstClasses= courseSchedule.getClasses();
|
if(lstClasses!= null && lstClasses.size()>0){
|
String [] classNames = new String[lstClasses.size()];
|
for(int i =0;i<lstClasses.size();i++){
|
classNames[i] = lstClasses.get(i).getName();
|
}
|
item.put("classNames", classNames);
|
}else{
|
item.put("classNames", new String[]{});
|
}
|
item.remove("courseSchedule");
|
}
|
}
|
|
return new Result(true,"",CollectionUtils.newObjectMap("scheduleDetailList",listResult,"page",pager));
|
}
|
|
/**
|
* 保存
|
*
|
* @param examInfo
|
* @return
|
* @throws Exception
|
*/
|
@ApiOperation(value = "保存课表")
|
@RequestMapping(value = "/save", method = RequestMethod.POST)
|
public @ResponseBody Result save(@RequestBody CourseSchedule courseSchedule) throws Exception {
|
if (StringUtils.isEmpty(courseSchedule.getScheduleId())) {
|
|
return new Result(true,"",CollectionUtils.newObjectMap("scheduleId", scheduleService.add(courseSchedule)));
|
|
} else {
|
return scheduleService.update(courseSchedule);
|
}
|
}
|
|
/**
|
* 删除
|
*
|
* @param examIds
|
* @return
|
*/
|
@ApiOperation(value = "删除课表", httpMethod = "GET")
|
@ApiImplicitParam(name = "scheduleIds", value = "课表ID字符串", required = true, dataType = "String", paramType = "body")
|
@RequestMapping(value = "delete", method = RequestMethod.GET)
|
public @ResponseBody Result delete(String scheduleIds) {
|
Result result = new Result(true);
|
if (StringUtils.isNotEmpty(scheduleIds)) {
|
result = scheduleService.delete(scheduleIds.split(","));
|
}
|
return result;
|
}
|
|
/**
|
* 发布课表
|
*
|
* @param scheduleIds
|
* @return
|
*/
|
@ApiOperation(value = "发布课表")
|
@RequestMapping(value = "/publish", method = RequestMethod.GET)
|
public @ResponseBody Result publish(String scheduleIds) {
|
if (StringUtils.isEmpty(scheduleIds)) {
|
return new Result(false, "参数错误");
|
}
|
return this.scheduleService.doRelease(scheduleIds.split(","));
|
}
|
|
/**
|
* 撤回课表
|
*
|
* @param scheduleIds
|
* @return
|
*/
|
@ApiOperation(value = "撤回课表")
|
@RequestMapping(value = "/cancel", method = RequestMethod.GET)
|
public @ResponseBody Result cancel(String scheduleIds) {
|
if (StringUtils.isEmpty(scheduleIds)) {
|
return new Result(false, "参数错误");
|
}
|
|
return this.scheduleService.doCancel(scheduleIds.split(","));
|
}
|
|
/**
|
* 课表详情
|
*
|
* @param scheduleIds
|
* @return
|
*/
|
@ApiOperation(value = "课表详情")
|
@RequestMapping(value = "/detail", method = RequestMethod.GET)
|
public @ResponseBody Result detail(String scheduleId) {
|
if (StringUtils.isEmpty(scheduleId)) {
|
return new Result(false, "参数错误");
|
}
|
|
CourseSchedule sche = this.scheduleService.detail(scheduleId);
|
|
Map<String,Object> dataMap =QBeanUtils.bean2Map(sche,
|
CollectionUtils.newStringMap("scheduleId","scheduleId","mark","mark",
|
"beginTime","beginTime","endTime","endTime","monTime","monTime","tueTime","tueTime","wedTime","wedTime",
|
"thuTime","thuTime","friTime","friTime","satTime","satTime","sumTime","sumTime"));
|
|
List<ClsClass> lstClasses= sche.getClasses();
|
if(lstClasses!= null && lstClasses.size()>0){
|
String [] classNames = new String[lstClasses.size()];
|
for(int i =0;i<lstClasses.size();i++){
|
classNames[i] = lstClasses.get(i).getName();
|
}
|
dataMap.put("classNames", classNames);
|
}else{
|
dataMap.put("classNames", new String[]{});
|
}
|
|
dataMap.put("subjectId", sche.getSubject().getSubjectId());
|
dataMap.put("subjectName", sche.getSubject().getName());
|
|
dataMap.put("roomName", sche.getClassRoom().getName());
|
dataMap.put("roomAddr", sche.getClassRoom().getAddress());
|
|
return new Result(true,"",CollectionUtils.newObjectMap("courseSchedule",dataMap));
|
}
|
|
/**
|
* 标记有课的日期
|
*
|
* @param scheduleIds
|
* @return
|
*/
|
@ApiOperation(value = "教师课表是否有课标识查询")
|
@RequestMapping(value = "teacher/flag", method = RequestMethod.GET)
|
public @ResponseBody Result listTeacherDateFlag(Integer year,Integer month) {
|
if (year==null || month==null) {
|
return new Result(false, "参数错误");
|
}
|
|
List<Integer> listResult = this.scheduleService.queryDateFlag(year, month);
|
|
return new Result(true,"",CollectionUtils.newObjectMap("dateFlagList",listResult));
|
}
|
|
}
|