车站管理
1.1车站列表
整体流程:
1. 点击左侧导航菜单的"车站管理"后,加载station.vue页面,(页面加载则发送异步请求,分页加载列表数据)展示上图的效果;
2. 后端收到请求后,根据分页参数查询数据库相关信息并封装成统一结果对象;
3. 后端将统一结果对象响应给前端,前端负责渲染数据;
后端实现思路:
1. controller层接收分页相关数据,并调用业务层,根据分页相关数据查询结果;
2. 业务层调用持久层完成数据库查询并将结果封装称分页对象;
3. 业务层将分页对象返回给controller之后,controller将结果统一封装后返回给页面;
后端接口信息:
接口地址:`/business/station`
请求方式:`GET`
响应数据类型:`*/*
***注意没有三级路径
1.2车站添加
整体流程:
1. 车站管理列表中的"新增"按钮,弹出添加信息的对话框,在对话框填写信息后点击确认按钮发送添加数据的请求;
2. 后端收到请求后,根据id决定要执行添加还是编辑的逻辑;
3. 后端将操作的结果响应给前端,前端负责渲染数据;
后端实现思路:
1. controller层接收id数据,并调用业务层,根据id删除数据;
2. 业务层调用持久层完成数据库操作并将结果反馈给controller层;
3. controller层将结果统一封装后返回给页面;
*添加或者修改,根据ID来判断 validater--->非空、长度、格式
- 基础数据效验
- 名称重复效验
- 补充基础字段数据
*validater
后端接口信息:
接口地址:`/business/station/{id}`
请求方式:`POST`
响应数据类型:`*/*`
1.3车站编辑
同上面的添加流程相似,仅仅是根据id的值决定操作;
**前端显示问题
1.时间
2.编辑
先吧record对象变为字符串,在强转回来,就不会出现编辑时未点保存页面数据也会变得问题(数据库没有改,但会造成视觉问题,人觉得已经改了)
1.4车站删除
整体流程:
1. 车站管理列表中的"删除"按钮,弹出提示框之后再次点击确认按钮;
2. 后端收到请求后,根据id删除数据;
3. 后端将操作的结果响应给前端,前端负责渲染数据;
后端实现思路:
1. controller层接收id数据,并调用业务层,根据id删除数据;
2. 业务层调用持久层完成数据库操作并将结果反馈给controller层;
3. controller层将结果统一封装后返回给页面;
后端接口信息:
接口地址:`/business/station/{id}`
请求方式:`DELETE`
响应数据类型:`*/*`
*类似于昨日的会员删除
生成id的方式
-
数据库自增
- 有利于我们的排序
- 开发、集群下不能使用
-
UUID:36位的字符串,afdfawe-eqfwerqw-werqwe-werqwerqwer
- 全球唯一,性能很好
- 没有意义,占位太多
-
时间戳:毫秒级:12位数字
- 天然排序特性
- 开发
-
雪花算法:推特推出的
- 好处:排序,唯一,支持分布式唯一
- 坏处:数据量少不需要
*详情参考上传的文件《雪花算法以及经度损失问题》
*解决数据库存入id于浏览器页面id不一致的问题
2.火车管理
2.1火车列表
整体流程:
1. 点击页面的火车管理后,会加载train.vue页面,且页面加载的时候给后端发送异步请求,携带分页相关参数;
2. 后端收到请求后,根据分页参数查询数据库相关信息并封装成统一结果对象;
3. 后端将统一结果对象响应给前端,前端负责渲染数据;
后端实现思路:
1. controller层接收分页相关数据,并调用业务层,根据分页相关数据查询结果;
2. 业务层调用持久层完成数据库查询并将结果封装称分页对象;
3. 业务层将分页对象返回给controller之后,controller将结果统一封装后返回给页面;
后端接口信息:
接口地址:`/business/train`
请求方式:`GET`
响应数据类型:`*/*`
2.2火车添加
后端接口信息:
接口地址:`/business/train`
请求方式:`POST`
响应数据类型:`*/*`
查询始发站、终点站
站点信息-附近的拼写
历经时长
2.3火车修改
* 注意: 添加功能和修改都是这同一个接口,仅仅是在业务层根据参数中是否携带了id的值来决定是执行添加还是修改的行为而已
2.3经停站列表展示
查询所有的车次,用于车次下拉框
*注意数据库字段与前端字段似乎否一致