微服务调用流程---基于一个新闻博客类网页

一、审核部分

普通用户需要进行审核,审核成功则将用户信息添加到自媒体库中,然后以作者的身份发布文章

普通用户希望自己成为自媒体人需要进行申请,然后由管理员进行审核,如果审核通过,则需要进行以下的操作

  1. 修改用户库的ap_user_realname表(实名认证成功的表)的status为9(审核通过)---leadnews-user

  2. 修改用户库的ap_user表(普通用户表)的flag=1(自媒体人)---leadnews-user

  3. 用户信息复制到自媒体库的wm_user表(自媒体用户表)---leadnews-media

  4. 用户信息复制到文章库的ap_author表(对外文章作者表)---leadnews-article

1.自媒体微服务保存用户

在WmUserController中根据接口文档编写方法

 @Autowired
    private IWmUserService wmUserService;

    //新增
    @PostMapping("/api/v1/user")
    public ResponseResult<WmUser> save(@RequestBody WmUser wmUser) {
        //1. 先根据ap_user_id查询是否已经是自媒体人, 如果已经是了; 直接返回
        WmUser wmUserFromDB = wmUserService.lambdaQuery()
                .eq(WmUser::getApUserId, wmUser.getApUserId())
                .one();
        if (wmUserFromDB != null) {
            return ResponseResult.okResult(wmUserFromDB);
        }

        //2. 如果不是, 则保存到数据库之后再返回
        wmUser.setCreatedTime(new Date());
        wmUserService.save(wmUser);
        return ResponseResult.okResult(wmUser);
    }

    //修改
    @PutMapping("/api/v1/user")
    public ResponseResult update(@RequestBody WmUser wmUser) {
       wmUserService.updateById(wmUser);
       return ResponseResult.okResult();
    }

2.文章微服务保存作者

在文章微服务中提供一个向ap_author(app用户表)保存和修改数据的功能

在ApAuthorController中根据接口文档编写方法yinwei

@Autowired
    private IApAuthorService apAuthorService;

    //保存文章作者
    @PostMapping("/api/v1/author")
    public ResponseResult<ApAuthor> save(@RequestBody ApAuthor apAuthor) {
        //1. 先根据user_id查询是否已经存在, 如果已经存在,直接返回
        ApAuthor apAuthorFromDB = apAuthorService.lambdaQuery()
                .eq(ApAuthor::getUserId, apAuthor.getUserId())
                .one();
        if (apAuthorFromDB != null) {
            return ResponseResult.okResult(apAuthorFromDB);
        }

        //2. 如果不存在, 保存再返回
        apAuthor.setCreatedTime(new Date());
        apAuthorService.save(apAuthor);
        return ResponseResult.okResult(apAuthor);
    }

3.Fegin声明

根据上面的图可以知道,article、media、user三个模块要互相调用,所以需要暴露Feign接口,方便在其他微服务中引入当前模块

在leadnews(主模块)下面创建模块leadnews-api,导入依赖

    <dependencies>
        <dependency>
            <groupId>com.xxx</groupId>
            <artifactId>leadnews-common</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
    </dependencies>

  • 新建client接口,在接口上添加注解@FeignClient("模块名称")
  • 复制对应controller类中的代码,去掉实现,去掉public(如果类上的注解@RequestMapping中有路径,记得添加到方法的@xxxMapping中)
  • 引入代码中报红的实体类(删除实体类中报红的@TableName、@TableId等内容)

在这三个模块共同的父模块中添加依赖引入api

        <dependency>
            <groupId>com.xxx</groupId>
            <artifactId>leadnews-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

4.用户微服务审核

审核失败

@Override
public ResponseResult authFail(AuthDto dto) {
    // 根据用户 id 查询是否存在
    // 创建一个 LambdaQuer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不睡掉头发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值