13.用户列表接口开发

我们现在整个系统中登录都是假的,因为登录我们判断admin就直接admin权限进来,其余的都是教师权限进来了,所以我们在这里把用户列表的接口给它做完之后,我们也可以让我们的登录给完成了,而一旦有了我们的用户权限之后,我们再关联上当前用户它的每一个角色信息,而整个角色信息包含的哪些权限,这些功能的话全都生效了,要不然你会觉得我权限列表和角色列表都是在玩呢,其实这两个都是为了构建我们的用户列表,在创建用户的时候,我可以直接选择当前用户是哪一个角色信息,而这个角色信息包含的那个数组将来跟我们的权限列表进行匹配,到时候做好我们相关权限的一个校验信息,所以这些东西它们都是相互连接的。

首先我们先构思一下我们的用户这个接口,它对应的我们表的一个结构是怎么样的。我们需要哪些字段其实我们已经通过users.json假数据中的信息去跟我们后端确定好了我们需要的字段了。

 创建表的时候roleId是新增加的字段,我们通过roleId去匹配roles那张表中的id,连表查询回来我们当前这个用户的它的一个角色信息,所以这里我们只存一个roleId没有存我们的roles。roleId存的是当前这个用户被分配了哪一个角色,是管理员还是教师它对应的那个id数据。

is_default字段是临时加的,因为我希望某个用户是不能被删除的不能被更新的,就是我们默认的一个账号,通过这个字段我们可以在用户列表中,像管理员是我们的测试账号,不能随便删了,删了我们登录不进来了,我们又得重新创建一遍。is_default字段默认的是0,如果是我们在管理员第一个admin的时候我会给它设置成1。后面两条是插入的假数据。

 1.创建数据库表

 2.后端

2.1、进行一系列和之前的操作

 ​​​​​​

 为什么这里我们需要传入一个参数?因为我们这个getUserList的这个地方我们为了登录的时候还得用,我们登录的时候你需要post过来你的用户名密码进来,那对应的我在这里也接收你查询的这样一个user结构,你匹配username、password我会对应的给你返回对应的这个数组结构就可以了。所以在这里我们传入了这样一个参数。

2.2、测试文件测试

2.3、完成映射器

只要你select查询我们的getUserList,有人调用了那对应的它会获取我们所有的信息从users中。而对应的我们这个属性resultMap中的话那个password我们没赋值,其他的我们都赋值了,而在这里我们当前这个列的roleId我们还会传给我们的getRole方法,到时候收集出来这个内容是这个Role格式的,我们会把这个东西放在我们role这一个字段中,那这样的就完事了。association在我们的映射器中去匹配就可以了。

然后我们再去测试文件中去测试,我们可以看到运行后role里面就很全的信息了。

2.4、指定查询

2.5、传参数 

如果将来我们给它传入相关的一些参数的话,那它当如何?我们传username和password,我们进行一个查询的一个工作,因为我们说了这个是支持我们传参的,将来有人调用我这一层然后为我传入一个参数,参数的格式是符合我们user这个类的一个格式,我们去测试文件中去测试一下。

 2.6、判断条件筛选

我们再去改一下映射器,因为我们这个select没有任何的这个条件判断,我们在这里需要有条件的一个判断,这个条件判断的话我们还要做一个选择,要有这一项,没有的我们就不去筛选了。

如果你将来调用getUserList进行查询的时候我们在这里会有一个筛选,如果你传的username和password的话我们就会查username和password都匹配的情况下。

 2.7、接口

映射器写好了我们就可以创建相应的接口

 2.8、测试接口

 我们用户接口的数据就创建好了,接下来还没完,因为你在这里登录的时候你是要post过来你的用户名密码的,如果我们在登录页面的话我们直接这样用get请求就完事了。

 2.9、postMapping

只不过我们在登录的时候提交我们用户数据的时候是按照post的这种方式来进行提交的,所以我认为我们这个controller中还得来响应我们提交登录的那个数据。只不过我们在后端查询的时候还是用同一个getUserList的映射器就可以了,但是我们的这个接口要再增加一个新的,在我们的UserController中我们应该响应一个post的请求。

但我这个post将来我们在添加用户的时候不也得响应post的请求吗,到这把用户的信息添加到数据库,那我这里直接先占用的PostMapping的话会不会影响我们后面添加用户呢?

那其实会有这样的问题。所以我们可以这样先来一个PostMapping,但这个要接受一个参数,也就是我们必须是朝/adinapi/users/login发post请求的时候我们才会走它关联的这一个函数,这样的话去完成我们的post查询工作,等我们在添加的时候,我就不传参了所以就直接朝/adinapi/users发post请求,我们直接让它映射器中插入数据的工作就行了。

 

 2.10、测试postMapping

 以上就是把查询接口给封装好了,我们部署完了之后,我们将来在前端中可以通过我们post的/adinapi/users/login进行我们的登录查询工作了,而在我们的用户管理中的用户列表中我们可以直接get请求获取我们的用户列表来进行我们的table的一个布局。

猜你喜欢

转载自blog.csdn.net/m0_65436732/article/details/133462343