author:咔咔
wechat:fangkangfk
总结:
1.我们在做这个分页考虑的第一个问题那就是ajax给我的参数是什么
2.第二个问题那就是用户列表都需要什么数据,根据业务需求定义模型
3.分析分页需要什么数据
4.下来就是在控制器获取参数,在服务层处理数据
5.对代码进行优化
业务场景:
需要做用户列表的分页
在开始做这个分页之前我们需要定义三个模型
User
UserRole
UserGroup
我们还需要看一下,前台ajax发起请求类型和参数
下来我们在auth控制器开始我们的操作
在控制器需要获取ajax给的参数,根据条件进行查询
获取数据是控制层做的事情,而查询业务逻辑是service层做的事情,所以我们还需要创建一个userRoleService的服务
实现方案:根据关联模型进行获取数据,并且返回视图需要的数据
做到这里后我们会发现一个问题,那就是我们的每页显示多少条数据,这个没办法处理,因为我们每页显示的数据,是前台获取的,就算是给page_size一个默认值,但是控制器获取不到数据也会覆盖这个默认值,所以我们需要在重新规划这个方案,就是做判断
那么下来我们就开始写这个判断
使用我们强大的单元测试来测试我们的数据
做到这里其实我们的角色列表分页就处理完了
但是我们还是需要考虑一个问题,那就是我们得分页在用户列表,商品列表,订单列表都会用到,那么我们在来分析一下咱们写的这个代码
很明显的我们可以看出这块代码是分了俩部分
第一部分是获取用户信息
第二部分是对返回值做处理
但是这个返回值处理的代码我们想都不用想,这块肯定是一个公共代码,因为在商品和订单是都可以用到的,所以我们需要对代码进行提取
那么我们就需要引入一个服务基类来管理这些公共的处理函数
创建baseService的基类
最后在修改我们的userRoleServcie
ok,我们的代码从优化到功能就完成了