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.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
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
|
@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));
|
}
|
|
}
|