自媒体文章列表查询

需求:自媒体端登录后可以查看发布的文章列表
涉及到wm_news表
后端先做一个参数校验,然后根据前端传来的请求
分页条件,文章状态,关键字搜索,频道列表以及发布时间的范围区间等封装请求条件
mybatis-plus从数据库获取对应的信息返回给前端展示(返回参数中需要的图片的路径做一个去掉前缀的处理)

频道列表展示

需求描述:在展示文章列表的时候,有个频道选择的条件,是以下拉菜单的方式展示的,需要从admin端获取频道的列表集合
实现:直接在admin-service端,修改controller层,添加一个查询所有频道的方法
然后在自媒体网关中添加admin路由配置

自媒体文章发布,修改,保存草稿

涉及到wm_news(存放文章信息),wm_news_material(存放文章和素材的关联关系),wm_material(存放素材信息)三张表
参数校验

  • 需要用户是登录状态用ThreadLocal获取用户信息作判断
  • 文章标题,文章内容不能为空

保存修改文章,保存草稿

  • 先判断文章布局,前端如果传过来的是-1,则为自动封面,先设置为Null后面再作处理(数据库不能存)
  • 再对前端传来的图片url作处理,数据库中存放不带website的图片路径(用stram流的方式处理)
  • 再获取文章信息中的文章ID,如果没有说明需要做保存文章的处理,如果有ID则是修改处理
    • 修改处理的时候需要先删除数据库中wm_news_material表里原始素材和文章的关联关系,再更新新的数据
  • 更新完文章数据表之后获取文章的状态信息,如果为0说明提交的是草稿,不需要另外保存文章和素材的关联关系
  • 接着保存关联关系的时候需要分为两种情况,一种是封面素材与文章的关联关系,一种是内容素材是文章的关联关系

    • 保存内容素材与文章的关系
      • 因为数据表中保存的是素材ID 需要先从内容中过滤出素材的url,处理之后去素材表查到对应的ID,然后将文章ID,素材ID,内容素材的状态,三者保存到wm_news_material表中.
    • 保存封面素材与文章的关系
      • 封面素材可能是自动,手动和无图
      • 自动模式设计
        • 如果传入封面小于等于2,则默认用stream流过滤一张
        • 如果传入的封面大于2,过滤其中三张
      • 无图模式,:设置封面为0保存
      • 手动模式:直接调用内容素材与文章的保存方式即可

        自媒体文章-根据id查询

  • 文章修改的时候需要查询到文章信息,以此修改

    • 参数校验,检查用户是否登录
    • 只需根据ID查询即可,注意图片回显website
    • 响应返回结果

      自媒体文章-删除

    • 参数校验,检查用户是否登录

    • 当文章状态为9(已发布)且已上架则不能删除文章,下架状态可以删除,如果是其他状态可以删除
    • 删除文章之前需要先把素材与文章的关系删除掉
    • 返回结果

      自媒体文章-上架、下架

    • 参数校验,检查用户是否登录

    • 当前已经发布(状态为9)的文章可以上架(enable = 1),也可以下架(enable = 0)
    • 修改enable 字段
    • 调用修改的方法返回结果