一、需求分析和设计
(1)产品原型
系统中的员工很多的时候,如果在一个页面中全部展示出来会显得比较乱,不便于查看,所以一般的系统中都会以分页的方式来展示列表数据。而在我们的分页查询页面中, 除了分页条件以外,还有一个查询条件 "员工姓名"。
查询员工原型:
业务规则:
根据页码展示员工信息
每页展示10条数据
分页查询时可以根据需要,输入员工姓名进行查询
(2)接口设计
找到资料-->项目接口文档-->苍穹外卖-管理端接口.html
注意事项:
请求参数类型为Query,不是json格式提交,在路径后直接拼接。/admin/employee/page?name=zhangsan
返回数据中records数组中使用Employee实体类对属性进行封装。
二、代码开发
(1)设计DTO类
根据分页查询接口设计对应的DTO:
根据请求参数进行封装,在sky-pojo模块中
(2)封装PageResult
后面所有的分页查询,统一都封装为PageResult对象。
在sky-common模块
员工信息分页查询后端返回的对象类型为: Result<PageResult>
(3)Controller层
在sky-server模块中,com.sky.controller.admin.EmployeeController中添加分页查询方法。
(4)Service层接口
在EmployeeService接口中声明pageQuery方法:
(5)Service层实现类
在EmployeeServiceImpl中实现pageQuery方法:
注意:此处使用 mybatis 的分页插件 PageHelper 来简化分页代码的开发。底层基于 mybatis 的拦截器实现。
故在pom.xml文中添加依赖(初始工程已添加)
(6)Mapper层
在 EmployeeMapper 中声明 pageQuery 方法:
在 src/main/resources/mapper/EmployeeMapper.xml 中编写SQL:
三、功能测试
可以通过接口文档进行测试,也可以进行前后端联调测试。
接下来使用两种方式分别测试:
(1)接口文档测试
重启服务:访问http://localhost:8080/doc.html,进入员工分页查询
如果token失效,需要重新获取
响应结果:
(2)前后端联调测试
点击员工管理
输入员工姓名为小红,进行查询:
四、代码完善
问题描述:操作时间字段显示有问题。
解决方式:
1). 方式一
在属性上加上注解,对日期进行格式化
2). 方式二(推荐 )
在WebMvcConfiguration中扩展SpringMVC的消息转换器,统一对日期类型进行格式处理
再次测试