之前分析可知,专业和学校的关系为多对一,专业和分数线的关系为一对多。所以专业信息的管理稍微复杂一点。
其中分数线信息的管理和专业信息的业务逻辑相互联系,就是在对专业信息管理的时候,分数线信息也会随着更新。
1.获取专业列表
接口:http://localhost:81/dev-api/college_entrance/profession/list?pageNum=1&pageSize=10
请求方式:get
分页插件的参数来源和设置不再专门说,是条件查询还是查询所有也不再说。
主要看获取专业信息数据后的处理和封装。
首先根据professionBody中的属性值进行模糊查询,也就是搜索栏是否有数据,有值则为条件查询,无值则查询所有。
查出所有专业信息后,从专业信息列表中取出每个非空编号专业对应的所属学校编号,存储到collegeNos集合中。
再根据collegeNos中的值,找到里面的每个编号对应的学校实体,存储到collegeMap集合。
然后根据学校id,把查询到的分数线信息按照学院和专业进行分组,存储在scoreLineMap集合。
再将查询到的标签关联信息按照与之相关联的ID进行分组,存储在tagRelMap。 关联id,就是学生,学校,也就是找到每个标签是属于学生的标签,还是学校的标签,只有这两种类型标签
最后把这四个集合组装,把专业信息列表中学校id和标签id分别转为对应的学校名和标签名,再加上各专业每年分数线,且把分数线按年份排序。
最后也是封装为页面展示的格式。
2.专业添加
接口:http://localhost:81/dev-api/college_entrance/profession/list
请求方式:post
添加逻辑简单,只是如果有分数线的信息的话,还需要添加分数线。
首先判断院校编号是否存在,不存在则添加失败。
然后获取添加人名字,设置添加人属性
最后直接添加保存该专业。
再把分数线信息单独添加。
首先把当前数据库中相同专业编号,院校名称的分数线数据删除,再添加新的分数线信息。
分数线信息就是院校编号,专业编号,年份,分数,创建者。
3.编辑分数线
接口:http://localhost:81/dev-api/college_entrance/profession/list
请求方式:put
和添加分数线逻辑一样,
首先判断院校编号是否存在,不存在则编辑失败。
然后获取添加人名字,设置编辑人属性
最后直接修改保存该专业。
再把分数线信息单独修改。
首先把当前数据库中相同专业编号,院校名称的分数线数据信息删除,再添加新的分数线信息。
分数线信息就是院校编号,专业编号,年份,分数,创建者。
4.删除专业。
接口:http://localhost:81/dev-api/college_entrance/profession/list
请求方式:delete
前端选择要删除专业id,传入一个id数组,直接根据id数组删除,没有任何逻辑
如果该专业有多年的分数线数据,不会删除分数线数据,只会删除专业信息