day02上————登录+分页查询

如果前后端联调出现了跨域问题,在后端项目的controller中加上注解@CrossOrigin

首先实现登录功能,由于gmall-admin-web是与前端交互的web服务,前端的请求先来到web,然后再通过web调用其他微服务,即这里的gmall-admin-web就行消费者,而gmall-ums是提供者,消费者和提供者是要通过Dubbo远程调用的,由于前面已经配置好了消费者的dubbo配置,这里只需要把gmall-ums的服务暴露给zookeeper就行了。注意,暴露的端口不能为20880,因为20880端口已经给了pms用,绝对不能重复暴露端口,所以这里的dubbo配置如下:

 

由于gmall-ums要与数据库进行交互,所以得用上读写分离,这里也要配置好sharding-jdbc.yml:

还有config类:

 

由于是Dubbo,要开启这个功能得加上对应注解,并且这里用到了Mapper,所以Mapper扫描也得打开:

 

接下来正式开始看注册功能,这里使用的是通过jwt来实现登录功能的,先看登录部分的代码:

Controller只负责调用service方法,所以我们要自己去写login方法,login先要在AdminService中声明,然后再在实现类中具体实现。

 

 

 

由于要进行Dubbo远程调用,所以能够看到注解@Service其实是dubbo的,这里也要自动注入AdminMapper,报红的原因是因为idea的原因,不用去管。

判断登录成功与否的逻辑就是去数据库中查询是否有该账号而且密码对应得上,这里有DigestUtils.md5DigestAsHex()是把一段字符串转成对应的MD5,因为数据库中存储的就是md5格式的密码

我们这个工程使用了mybatis-plus,自带了很多方法,比如这里的查询方法adminMapper.selectOne(),该方法需要传递一个QueryWrapper对象来查询。当login方法完成后就可以会Controller层进行调用了,这里会根据Admin生成token,然后把token返回给前端。

只是写好登录功能并不够,登陆成功后还要从数据库中获得用户的信息,于是有了下面的代码。

 不过这段代码并不能执行成功,可能是因为dubbo和mybatis-plus的冲突,因为getOne()方法是泛型的,dubbo没办法直接调用mybatis-plus中带泛型的service,所以最好不要远程调用mybatis-plus自动生成的service,这里要自己写service

 

这里还有个错误,这里得到的userName是被token包装了的,前面加上了tokenHead,而查询的时候不是通过包装后的userName来查询的,而是通过原userName,所以要去除掉,真正的代码如下:

这一切都正常后,终于能够进入主页面了!!,皆大欢喜

 

 

接下来要实现的是分页查询功能

mybatis-plus支持分页查询,方法为selectPage(),并且要开启分页查询功能,还需要写配置类

哪个微服务要启动mybatis-plus的分页功能,只要在配置类中加入这个就行了。

 

先写根据商标的名称查询。

brandPageInfo()方法就是根据商标查询,并且进行了分页的。

这就是具体方法,keyword就是商标的名称,这里用的是模糊查询.like,然后调用的mybatis-plus的默认分页查询方法selectPage(),参数是传入的页数,每页的数量,还有查询条件,这的查询条件只要name模糊匹配上就行,然后得到分页数据brandIPage,然后封装成给前端看的pageInfoVo对象

接下来是进行更复杂的查询,也就是可以根据名称,货号,上架状态等进行精确查询。代码如下:

定义查询条件QueryWrapper,然后依次向下,非空时就会去数据库进行查询,当然,有些是模糊查询like,有些是精确查询eq。最后在selectPage()方法中查询,得到的结果包装成PageInfoVo类返回给前端。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值