关于有时登录后无法加载staff列表的问题:
解决办法
关闭拦截器(注释掉if(userid == null)的部分,MyWebMvcConfig.java直接CTRL A / 全部注释后重新运行,再加载不出来就F5刷新一次,然后 把原先注释的地方取消注释重新启动即可。(怎么解决的?哒哒哒滴答)
加入homepage页面,在src/homepage中 各组可测试跳转有无问题
加入super user,主页src/static/super_user/index.html,添加删除搜索admin功能
AdminMapper.java: getStaffByUserName(int userid) deleteStaffByUserName(int userid) String getPasswordByUsername(int userid)全部依照新版数据库,将参数改为userid
AdminController.java: login,logout基本无改动,因为与集成版index.html存在冲突,验收时记得将相关部分选择ww的版本(注释掉)
login.html: 测试登录注销功能时写的简陋页面,正式验收时以ww版本为准
LoginHandlerinterceptor.java/MyWebMvcConfig.java: 拦截器部分,若要屏蔽拦截器功能只需注释掉LoginHandlerinterceptor.java中的if()...return false;部分即可(即永远返回TRUE即可) 若不屏蔽拦截器功能,只拦截特定url,则需在MyWebMvcConfig.java中 excludePathPatterns()中加上登录界面所需的静态资源的url即可 以ww版本为准
-
确保有Alipay、Alipayconfig、Alipaycontroller三个文件,并在之后修改application.yaml
-
https://natapp.cn/article/natapp_newbie 按这个流程来
其中 端口为 8080
config.ini文件只需要写两行:
[default] authtoken=你的token
运行natapp.exe(不要停),拿到一个网址http://example.natappfree.cc
-
在resources/application.yaml中,修改alipayconfig.notifyUrl
alipayconfig: appId: 2021000122683765 appPrivateKey: xxxxxxxxx不用改 alipayPublicKey: xxxxxxx不用改 notifyUrl: http://example.natappfree.cc(你的网址)/alipay/notify #每个人不一样,要修改
修改完后,就不用管这个网址了,相关操作还是在 http://localhost:8080/ 进行,但是natapp.exe要一直运行
通过这个URL跳转到付款,三个参数分别是 订单名; 订单编号; 总金额
对应returned表,应该是 订单名(随意,建议bookname); borrowid; fineamount
注意:订单编号(borrowid)好像不能重复用,每次测试得在returned表里新添一条。猜测一个商家账户的订单编号唯一,
因此patron组生成borrowid的时候得带点随机性
- 跳转到付款界面,可以用账密登录付款(账号:[email protected] 密码: 111111) 虚拟金额随便用
也可以用app”支付宝客户端沙箱版“ 扫码(仅安卓有)
- 付款成功,会自动访问一次notifyUrl,并且在returned表中对应这一记录的ispay置为1,前端刷新一次页面重新拿returned表的数据就可以。
#5.3 第一次release后变动
#删除user表 新建 admin表、superuser表
# patron表 userid自增 删掉username
# staff表 username改成userid,自增
#book表 bookid自增 添加location字段; 添加book测试数据
#brorrw表、reservation表参照的都是patron的userid
#5.4更改 新增returned表
最新版跟release1区别很大,要修改
Staff组 Release1
-
http://localhost:8080/staff.html Library staff面板
back to franpage会转到index.html,可修改为其他页面
-
http://localhost:8080/staff/addMaterial.html 添加书
在book表中添加一整行记录
-
http://localhost:8080/staff/deleteMaterial.html 删除书
在book表中删除一整行记录
-
http://localhost:8080/staff/returnMaterial.html 还书
book表remain+1 borrow表status变为returned
-
http://localhost:8080/staff/patronManage.html patron管理
patron账户的展示、增删
数据库设计改动:borrow表和reservation表设计有改动,详情如下
- borrow表新增borrowid作为主码,不再使用userid, bookid作为主码
borrow(borrowid,userid,bookid,borrowtime,deadline,status)
- reservations表新增reservationsid作为主码,不再使用userid, bookid作为主码
reservation(reservationid,userid,bookid,reservationtime,status)
Staff组使用patron表、book表、borrow表
为目前所有表建立实体类
Staff组在线文档Staff组
数据库设计有变动,Admin组使用staff表,不再使用user表
staff(username,password,firstname,lastname,email,telephone,avatar)
Admin组在线文档@Admin组 (qq.com)
数据库名:novelnook
共有四个表,user,book,borrow,reservation
建库以及建表内容均已在本项目的根目录下的db.sql中写好,请各位开发者自行用mysql的source命令导入
以下是四个数据表的设计
user(userid,username,password,avatarlocation,userrole,email,phone);
用户id,用户名,密码,头像url位置,用户角色(枚举:Admin,Patron,Staff,SuperUser)
其中用户头像只是一个url,具体图片可以以静态资源的形式存放于/resources/upload/目录下
book(bookid,bookname,press,author,publishtime,catagory,remain,introduction);
书id,书名,出版社,作者,印刷时间,图书类别,剩余数量(全借出降为0),图书摘要
borrow(userid,bookid,borrowtime,deadline,status)
用户id,书id,借阅时间,到期时间,借还状态(枚举:已还,未还)
reservation(userid,bookid,reservationtime,status)
用户id,书id,图书预约时间,状态(枚举:已经预约到还是仍在预约,还是放弃预约)
后端采用SpringBoot
技术,总体上MVC
三层架构,其中
Dao
层采用mybatis
框架,
Controller
层均使用RestController
做到前后端分离
静态资源比如前端HTML等资源或者上传目录请在resources/static
中建立
网站的各种配置在resources/application.yaml
中,请使用yaml
文件,不要使用xml
进行网站配置
尽量采用注解开发,减少使用xml
配置
后端在/src/main/java/class4.spm.novelnook/
下,其中
controller/
是控制层目录,请各位开发者在此处实现RestController
service/
是服务层目录
mapper/
是数据访问层目录
pojo/
是对象模型目录
NovelnookApplication.java
是整个SpringBoot
项目的入口点
得找个会前端的来写