Closed qianqianjun closed 4 years ago
4月 7 日完成api
登录时候根据身份自动查询详细数据表,将详细信息加到session 中 也就是说 学生的话就查学生表,教师就查教师表
完成获取所有学院信息的api 完成根据学院id 获取学院信息的 api 两个api 接口位于 SelectCourseControllerApi 类中
1.根据学生号查找论题 public Question getSingleQuestionBySno(int sno)
2.根据专业获取全部论题表信息
public List
3.根据专业获取论题表部分信息(标题 难度 老师工号 是否已选择)
public List
4.根据老师工号查询论题表的全部信息
public List
5.根据论题号查询单个题目的全部信息 public Question getSingleQuestionByQuestionid(int questionid)
6.添加论题#添加成功则返回true;否则返回false public Boolean addQuestion(Question question)
7.根据论题号删除论题;必须有该论题且未被选中才能删除;已删除返回true#未删除返回false public Boolean deleteQuestionByQuestionid(int questionid)
8.确认学生和选题之间的连接;必须有该论题且该论题未被选中#并且学生也没有被任何其他论题选中;成功返回true;失败返回false public Boolean sureQuestionStudent(int questionId,int sno)
1.往选题表中增加记录;学生不能被论题绑定 论题也不能被任何学生选中;成功返回true 失败返回false
public Boolean chooseQuestion(int questionid,int sno)
2.通过论题号和学生号查询某个选题表记录
public QuestionStudentChoose getChoiceByQidSno(int questionid,int sno)
3.删除某个选题表的记录;该记录不能是在论题表中绑定过的记录
public Boolean deleteQuestionStudent(int questionid,int sno)
4.获取某个学生所有的选题信息
public List<Question> getQuestionOfStudent(int sno)
/**
* 根据条件查询课程的接口
* @param college 开课学院
* @param capacity 是否有余量
* @param cno 课程号码
* @param cname 课程名称
* @param tname 教师姓名
* @return
*/
@PostMapping("/filtercourse")
/**
* 返回所有学院的 Controller 接口。
* @return
*/
@GetMapping("/getcolleges")
/**
* 根据学院id 返回学院相关信息的接口
* @param id 学院的id
* @return
*/
@PostMapping("/getcollegebyid")
/**
* 选定一个课程,根据课程的课程号和学生的学号将信息加入到选课表中。
* @param sno 学生学号
* @param cno 课程号
* @return 返回一个ResponseMessage ,标注是否添加成功!
*/
@PostMapping("/setcourseselected")
/**
* 取消一门选课
* @param cno 取消的课程号
* @param sno 取消的学生学号
* @return
*/
@PostMapping("/canclecourse")
/**
* 生成学生的选课表信息。
* @param semesterId 学期id
* @param sno 学号
* @return 这个学期的课表
*/
@GetMapping("/getcoursetable")
增加了对排课表的查找接口调用,在SchedulingControllerApi中可查 下为api样例 http://localhost:8080/getSchedulings?semesterId=1&cno=1&tno=null&status=null&capacity=null&address=null&percent=null&majorGrade=null&courseTime=null
需求与接口
具体实现看代码
/**
* @author 高谦
* 用于检测冲突的 服务:包括排课系统的冲突和选课系统的冲突
* 表示上课的时间字符串:
* (startweek-endweek,weekday,coursestarttime-courseendtime);(startweek-endweek,weekday,coursestarttime-courseendtime)
* 例如: (1-4,5,1-3);(1-4,2,3-5);(5-10,1,6-8)
*/
@Service
public class ConflictService {
@Autowired
SchedulingDao schedulingDao;
/**
* 查询当前学期,当前老师,当前时间下,是否已经安排了任务
* @param semesterId 当前学期的id
* @param tno 当前老师的工号
* @param timeStr 表示要插入数据库的时间的格式串(采用刘权达大佬的超级无敌时间表示法)
* "(1-4,5,1-3);(1-4,2,3-5);(5-10,1,6-8)"
* @return 如果已经安排了任务,就返回false,表示不可以再安排
* 如果没有任务,就返回true 表示可以安排任务。
*/
public Boolean teacher(Integer semesterId,Integer tno,String timeStr)
/**
* 检查学生的时间是不是冲突,和上面的是一样的。
* @param semesterId
* @param sno
* @param timeStr
* @return 详细见 teacher 的注释
*/
public Boolean student(Integer semesterId,Integer sno,String timeStr)
/**
* 用于检测教室使用是不是有冲突
* @param semesterId 学期id
* @param room 教室的名称 比如 A-103
* @return 详见 teacher 的注释
*/
public Boolean classRoom(Integer semesterId,String room,String timeStr)
}
因为各组开发的api 接口可能有重复,为了防止大家重复工作,每完成一个接口就在 这个issue 中说明一下自己的接口,各组在开发api 接口前先看一下是不是有人已经开发了。下面是例子:
高谦:第一组 学生选课子系统
4月6 日 完成 api :