校园小助手–智慧成绩统计服务平台
API文档
接口总地址: http://120.78.188.40:8080/
基本功能
登录
url:/login
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
username | String | 是 | 用户名 |
password | String | 是 | 密码 |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
注册
url:/register
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
username | String | 是 | 用户名 |
password | String | 是 | 密码 |
String | 是 | 邮箱 |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 200);
map.put("msg", "注册成功!我们已经向您的邮箱发送了邮件,请您及时进行查收。由于网络原因,您收到邮件的时间存在延迟,敬请谅解~");
map.put("code", 0);
map.put("msg", "注册失败!");
忘记密码
url:/resetPassword
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
username | String | 是 | 用户名 |
password | String | 是 | 密码 |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 200);
map.put("msg", "重置成功!");
map.put("code", 0);
map.put("msg", "重置失败!");
用户
用户接口:/user
修改密码
url:/updatePassword
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
password | String | 是 | 密码 |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 200);
map.put("msg", "修改成功!");
map.put("code", 0);
map.put("msg", "修改失败!");
更新用户资料
url:/updateUser
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
name | String | 是 | 姓名 |
college | String | 是 | 所属学院 |
String | 是 | 邮箱 |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 200);
map.put("msg", "修改成功!");
map.put("code", 0);
map.put("msg", "修改失败!");
验证原密码
用于修改密码时,判断用户输入是否为正确的原密码
url:/verifyPassword
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
password | String | 是 | 原密码 |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 200);
map.put("msg", "原密码正确!");
map.put("code", 0);
map.put("msg", "原密码不正确!");
注销
url:/logout
请求方式:post/get
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 200);
map.put("msg", "注销成功!");
获取用户
用于修改用户资料,进行表单回显
url:/getUser
请求方式:post/get
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
user | User | 用户实体 |
public class User {
private String id;
private String username;//不可修改,表单展示
private String password;
private String name;//表单展示
private String college;//表单展示
//存放文件地址
private String filePath;//不可修改,表单展示
private String email;//表单展示
//存储容量
private int storageCapacity;//不可修改,表单展示
}
验证
验证码接口:/captcha
图片
url:/codeImage
请求方式:post/get
注意:
点击验证码图片换验证码时,img 标签 的 onclick 事件里面做的就是改变 img 标签的 src 属性,所以要给 url 带一个随机数,这样每次点击验证码图片时,都会由于 src 改变而重新请求。
$('#codeImg').attr('src',"/kaptcha/codeImage?"+ new Date().getTime());
验证码
url:/code
请求方式:post/get
返回参数
名称 | 类型 | 说明 |
---|---|---|
captchaCode | String | 验证码 |
邮箱验证码
url:/email
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
username | String | 是 | 用户名 |
String | 是 | 邮箱 |
返回参数
名称 | 类型 | 说明 |
---|---|---|
emailCode | String | 邮箱验证码 |
验证用户名是否重复
用于注册时,保证用户名唯一
url:/verifyUsername
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
username | String | 是 | 用户名 |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 200);
map.put("msg", "该用户名可使用!");
map.put("code", 0);
map.put("msg", "该用户名已存在!");
验证邮箱是否属于用户
url:/verifyEmail
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
username | String | 是 | 用户名 |
String | 是 | 邮箱 |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 200);
map.put("msg", "邮箱正确!");
map.put("code", 0);
map.put("msg", "该邮箱不属于该账号!请重新输入!");
文件
文件接口:/user/file
上传
url:/upload
请求方式:post
<div class="a">
<p>上传文件</p>
<form action="/file/upload" enctype="multipart/form-data" method="post">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
</div>
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
file | CommonsMultipartFile | 是 | 文件 |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 0);
map.put("msg", "上传失败!总存储容量超出50MB,请清理无用的文件");
map.put("code", 0);
map.put("msg", "上传失败!文件类型不符合");
map.put("code", 200);
map.put("msg", "上传成功!");
下载
url:/download
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
id | String | 是 | 文件id |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 200);
map.put("msg", "下载成功!");
删除
url:/delete
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
id | String | 是 | 文件id |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 200);
map.put("msg", "删除成功!");
map.put("code", 0);
map.put("msg", "删除失败!文件不存在");
重命名
url:/rename
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
id | String | 是 | 文件id |
newName | String | 是 | 新文件名 |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 200);
map.put("msg", "重命名成功!");
map.put("code", 0);
map.put("msg", "重命名失败!文件不存在");
获取文件集合
url:/getFileList
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
currentPage | Integer | 是 | 当前页 |
pageSize | Integer | 是 | 页面大小 |
如果不需要分页,可以不需要传参
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
data | List<File> | 文件信息集合 |
map.put("code", 200);
map.put("msg", "获取成功!");
map.put("data",files);
private String id;//展示
private String userId;
private String name;//展示
private String filePath;
private int size;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")//页面写入数据库时格式化
@JSONField(format = "yyyy-MM-dd HH:mm:ss")//数据库导出页面时json格式化
private Date updateTime;//展示
private String showSize;//展示
Excel操作
接口:/user/excel
导入配置文件
url:/importPlanConfig
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
fileName | String | 是 | 文件名 |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 0);
map.put("msg", "已经导入配置文件,请勿重新导入!");
map.put("code", 200);
map.put("msg", "导入配置文件成功!");
map.put("code", 0);
map.put("msg", "导入配置文件失败!请重新导入!");
导入更新的配置文件
url:/importUpdatePlanConfig
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
fileName | String | 是 | 文件名 |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 0);
map.put("msg", "已经导入更新的配置文件,请勿重新导入!");
map.put("code", 200);
map.put("msg", "导入配置文件成功!");
map.put("code", 0);
map.put("msg", "导入配置文件失败!请重新导入!");
导入专业成绩文件
用于数据处理模块
url:/importStudentCourseResultInfo
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
fileName | String | 是 | 文件名 |
grade | String | 是 | 从配置文件的筛选条件中的年级获取 |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 0);
map.put("msg", "未导入配置文件,请先导入配置文件!");
map.put("code", 0);
map.put("msg", "已经导入专业成绩文件,请勿重新导入!");
map.put("code", 200);
map.put("msg", "导入专业成绩文件成功!");
map.put("code", 0);
map.put("msg", "导入专业成绩文件失败!请重新导入!");
导入专业成绩文件
用于更新配置文件模块
url:/importAllStudentCourseResultInfo
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
fileName | String | 是 | 文件名 |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 0);
map.put("msg", "未导入配置文件,请先导入配置文件!");
map.put("code", 0);
map.put("msg", "已经导入专业成绩文件,请勿重新导入!");
map.put("code", 200);
map.put("msg", "导入专业成绩文件成功!");
map.put("code", 0);
map.put("msg", "导入专业成绩文件失败!请重新导入!");
获得年级筛选条件
url:/getFilterGrade
请求方式:post/get
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
grade | List<String> | 年级列表 |
map.put("code", 200);
map.put("msg", "获取成功!");
map.put("grade", filterGrade);
获得学期筛选条件
url:/getFilterSemester
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
grade | String | 是 | 从配置文件的筛选条件中的年级获取 |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
semester | List<String> | 学期列表 |
map.put("code", 200);
map.put("msg", "获取成功!");
map.put("semester", filterSemester);
更新配置文件
url:/updatePlanConfigure
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
grade | String | 是 | 筛选年级 |
semesters | String[] | 是 | 筛选学期 |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 0);
map.put("msg", "还未导入配置文件或专业成绩文件!");
map.put("code", 200);
map.put("msg", "配置文件更新完成!请在文件列表中下载后核对!");
数据处理
url:/dataProcessing
请求方式:post/get
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 0);
map.put("msg", "还未导入更新的配置文件或专业成绩文件!");
map.put("code", 200);
map.put("msg", "数据处理完成!");
map.put("code", 0);
map.put("msg", "数据处理失败!");
清空配置文件
url:/emptyPlanConfigure
请求方式:post/get
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 200);
map.put("msg", "专业配置文件数据已清空!请重新导入!");
清空更新的配置文件
url:/emptyUpdatePlanConfigure
请求方式:post/get
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 200);
map.put("msg", "更新的配置文件数据已清空!请重新导入!");
清空成绩文件
url:/emptyProfessionalScore
请求方式:post/get
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 200);
map.put("msg", "专业成绩文件数据已清空!请重新导入!");
通过关键词搜索学生成绩情况
url:/searchStudent
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
keyword | String | 是 | 关键词 |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
data | List<StudentOverallResultInfo> | 学生信息集合 |
map.put("code", 0);
map.put("msg", "还未导入更新的配置文件或专业成绩文件!");
map.put("code", 0);
map.put("msg", "未输入任何关键字!");
map.put("code", 0);
map.put("msg", "未找到任何符合条件的记录!");
map.put("code", 200);
map.put("msg", "获取成功!");
map.put("data", studentOverallResultInfos);
public class StudentOverallResultInfo {
@ExcelProperty("学号")
private String studentId;//展示
@ExcelProperty("姓名")
private String name;//展示
@ExcelProperty("班级")
private String clazz;//展示
@ExcelProperty("专业")
private String professional;//展示
/** * 修习类别与对应已获得学分 */
private Map<CourseType, Double> earnedCreditsMap;
/** * 修习类别是否通过 */
private Map<CourseType, String> flagMap = new HashMap<>();
/** * 修习类别对应的课程成绩 */
private Map<CourseType, List<StudentCourseScoreInfo>> courseScoreInfoMap;
/** * 每个学期对应的平均绩点 */
private Map<String, Double> gradePointMap;
/** * 每种修习类别未修过课程 */
private Map<CourseType, List<Course>> unrepairedCourseMap;
/** * 课程对应是否通过 */
private Map<Course, Boolean> flagCourseMap;
/** * 判断该学生是否合格 */
private boolean qualified;//展示
/** * 平均绩点 */
private Double gradePointAverage = 0.0;//展示
/** * 专业排名 */
private Integer rank = 0; //展示
}
根据学生id获取修习情况
url:/getStudentPracticeInfo
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
id | String | 是 | 学号 |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
data | List<StudentPracticeInfo> | 学生修习情况集合 |
map.put("code", 200);
map.put("msg", "获取成功!");
map.put("data", studentPracticeInfoById);
//全部展示
public class StudentPracticeInfo {
@ColumnWidth(11)
@ExcelProperty("修习类别")
private String practiceCategory;
@ColumnWidth(7)
@ExcelProperty("学分要求")
private Double credits;
@ColumnWidth(9)
@ExcelProperty("已获得学分")
private Double earnedCredits;
@ColumnWidth(9)
@ExcelProperty("所差学分")
private Double poorCredits;
@ColumnWidth(7)
@ExcelProperty("是否通过")
private String flag;
}
导出学生成绩信息
url:/exportStudent
请求方式:post/get
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
id | String | 是 | 学号 |
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 0);
map.put("msg", "还未导入更新的配置文件或专业成绩文件!");
map.put("code", 200);
map.put("msg", "导出成功!请在文件列表中下载");
获取专业成绩总体分析结果
url:/getPracticeCategoryStatisticsInfo
请求方式:post/get
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
data | List<PracticeCategoryStatisticsInfo> | 学生修习情况集合 |
map.put("code", 200);
map.put("msg", "获取成功!");
map.put("data", excelServiceImpl.getPracticeCategoryStatisticsInfoList());
public class PracticeCategoryStatisticsInfo {
@ExcelProperty("修习类别")
private String practiceCategory;
@ExcelProperty("学分要求")
private Double credits;
@ExcelProperty("通过人数")
private Integer passCount;
}
导出全体学生成绩分析
url:/exportAllStudentResults
请求方式:post/get
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 0);
map.put("msg", "还未导入更新的配置文件或专业成绩文件!");
map.put("code", 200);
map.put("msg", "导出成功!请在文件列表中下载");
导出不合格学生成绩分析
url:/exportOfUnqualifiedStudentResults
请求方式:post/get
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 0);
map.put("msg", "还未导入更新的配置文件或专业成绩文件!");
map.put("code", 200);
map.put("msg", "导出成功!请在文件列表中下载");
导出专业排名分析
url:/exportProfessionalRankings
请求方式:post/get
返回参数
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码(成功:200,失败:0) |
msg | String | 返回信息 |
map.put("code", 0);
map.put("msg", "还未导入更新的配置文件或专业成绩文件!");
map.put("code", 200);
map.put("msg", "导出成功!请在文件列表中下载");
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/114419.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...