首页
- 获取当前教师课表。课表中包含:课程信息,实验命名,周次等等
课程管理
- CRUD
- 增加列表,模态框输入
- 在前端限制用户输入。要求是数字就不不能输入字母
预约
- 加载当前教师的全部课程,仅加载课程的名称。不需要加载课程所有信息。当选择指定课程之后,再加载某门课详细信息
- 渲染已经选择次数及总次数:4/8 (如何获得选中次数?)(首页已经加载课表数据,可以缓存,不需要重新请求?)
- 所有的实验室全部列出,区分出人数不够的教室。前提(加载全部可用实验室的名称,做成标签? 表格可与课表的表格复用)
- 点击任何一个小方块,弹出模态框,包含所有课程信息。可选择指定周
- 重新预约,不更新,而是直接移除再重新创建(单独在某一个组件里移除?)
- 自己的课可以用别的颜色突出显示
12.22
在测试login.http时出了问题,返回的data对象除了account字段均为空:
{
"code": 200,
"message": null,
"data": {
"id": null,
"name": null,
"account": "1234567890",
"role": null,
"telephone": null,
"createTime": null,
"updateTime": null
}
}原因:没有在application.yml中添加如下配置:
jackson:
default-property-inclusion: non_null添加之后成功读出:
{
"code": 200,
"data": {
"id": "01JFMDR2KH87DXM7V3C1PW1YEX",
"name": "杨过",
"account": "1234567890",
"role": "ikp1",
"telephone": "12345678981",
"createTime": "2024-12-21T18:53:52",
"updateTime": "2024-12-21T18:53:52"
}
}但是我不知道为什么
12.30
写完了一个简单的查看实验室的admincontroller的功能:
@GetMapping("labs")
public ResultVO findAllLabs() {
return ResultVO.succuss(adminService.findAllLabs());
}测试:
###
GET http://localhost:8080/api/admin/labs
token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoic2ZlMyIsInVpZCI6IjAxSkdBUDhFNVNGVlRQWURaUTdGS0FFRUdEIiwiaWF0IjoxNzM1NTI1Nzk0LCJleHAiOjE3MzU2MTIxOTR9.elTK-aKfFxPKMT5IBjIktF1W8pKaCxbgsOvzNLfycgI
总是返回:
"No static resource api/admin/labs."很简单的实现,看了几遍没有错,其他相同类型的功能也没有错。重启项目也没用。最后清除缓存,成功。
1.1
粗心错误,记录一下避免再犯
测试添加单个用户功能的时候总是报错:
{
"code": 400,
"message": "rawPassword cannot be null"
}测试servic没问题,所以问题在controller上,发现是没带请求体注解@RequestBody
@PostMapping("users")
public ResultVO addSingleUser(@RequestBody User user) {
adminService.addSingleUser(user);
return ResultVO.succuss(user);
}加上后解决
1.2
测试重置密码的时候出了问题
用户重置密码:
PATCH http://localhost:8080/api/1234567890/settings/password
token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50IjoiMTIzNDU2Nzg5MCIsInVpZCI6IjAxSkZYVllTTUNHNjNUWUs3MkRQMUdCVDI1Iiwicm9sZSI6ImlrcDEiLCJpYXQiOjE3MzU4Njc0OTksImV4cCI6MTczNTk1Mzg5OX0.Zugzd0OzHseJgd-OkQpNtzWHos987DVoKDfzhTNwob0
Content-Type: application/json
"123456"管理员重置密码:
PATCH http://localhost:8080/api/admin/users
token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoic2ZlMyIsImFjY291bnQiOiIxMjcxMzY3NjU0IiwidWlkIjoiMDFKR0FQOEU1U0ZWVFBZRFpRN0ZLQUVFR0QiLCJpYXQiOjE3MzU4MjU2MjIsImV4cCI6MTczNTkxMjAyMn0.JNssf1SPa8esmLpT3CNWEPcZ4rm1Tjp3l8HjkFX0-cU
Content-Type: application/json
{
"id": "01JFXVYSMCG63TYK72DP1GBT25",
"account": "1234567890"
}登录测试:
###
POST localhost:8080/api/login
Content-Type: application/json
{
"account": "1234567890",
"password": "123456"
}不知道为什么,用户重置密码总是失败,管理员重置密码就能成功。找了好久好久原因:
- 管理员基于用户的
id和account将用户的密码值重置为账号的值,传过去的是一个json对象,属性名和属性值都要加双引号" - 用户修改密码时,从
token中获取到了id信息,用户只要传密码,即一个字符串过来就行,所以传过来的不是对象,不需要加双引号" - 但是我在测试的时候加了双引号
",所以这个时候双引号"成为了密码的一部分,所以如果要登录成功的话,密码应该是这样的:当然这是不合理的,所以在测试的时候传值就不应该带上双引号POST localhost:8080/api/login Content-Type: application/json { "account": "1234567890", "password": "\"123456\"" }
"PATCH http://localhost:8080/api/1234567890/settings/password token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50IjoiMTIzNDU2Nzg5MCIsInVpZCI6IjAxSkZYVllTTUNHNjNUWUs3MkRQMUdCVDI1Iiwicm9sZSI6ImlrcDEiLCJpYXQiOjE3MzU4Njc0OTksImV4cCI6MTczNTk1Mzg5OX0.Zugzd0OzHseJgd-OkQpNtzWHos987DVoKDfzhTNwob0 Content-Type: application/json 123456