1.Stream流

    1.创建Steam流
    (1)集合.stream()
    (1)通过Stream类的静态方法of()获取数组流
    (2)通过Arrays中的静态方法stream()获取数组流。
    2.中间操作
    (1)filter 过滤
    (2)map 映射
    (3)sorted 排序
    (4)distinct 去重
    (5)anyMatch 快速找到集合中匹配的数据
    (6)skip 跳过
    (7)limit 获取
    3.终止操作
    (1)count
    (2)foreach
    (3)reduce
    (4) Collector
    1)list.stream().collect(Collectors.toList()); 把流中元素收集到List
    2)list.stream().collect(Collectors.joining(“+”)); 以“+”拼接
    3)ist.stream().collect(Collectors.toMap(key,value)); 把流中元素收集到Map
    4)list.stream().collect(Collectors.groupingBy(User::getAge)); 根据某属性值对流分组,属性为K,结果为V


    2.自媒体用户文章发布

    1.涉及表:
    wm_news(文章) wm_material(素材) wem_news_material(文章和素材关联表)
    2.业务流程
    1.自媒体人发布文章 ,0是草稿 1是带审核
    2.当文章状态是草稿直接保存
    3.当文章状态是待审核,保存文章与引用素材的关联关系,并且运营平台对文章进行审核
    4.审核通过的文章可以发布

    3.实现流程
    前端:
    (1)1.自媒体人发布文章,填写文章内容,以JSON格式传到后端
    后端:
    (1)接受参数
    (2)判断用户是否登录,如果没有登录,抛异常
    (3)检查参数,如文章内容是否存在、文章状态是草稿还是待审核
    (4)保存或修改文章
    1)如果id为空,保存文章
    2)如果id不为空,删除文章与素材的关联关系,再修改文章
    (5)如果文章是待审核状态,文章与素材需要设置关联关系
    1)保存文章与文章内容引用素材的关联关系
    1.通过图片列表与用户id查询素材列表
    2.校验素材列表
    3.将素材列表转为map集合 key :url value:素材id
    4.判断用户使用的图片是否在素材库中
    5.批量保存文章与文章内容引用素材的关联关系
    2)保存文章与文章封面引用素材的关联关系
    1.获取文章封面
    2.判断封面是否自动生成
    I.如果 image >0 ,<= 2 自动选择1张文章内容引用素材
    II.如果 image > 2 自动选择3张文章内容引用素材
    III.其他情况 设置为无图
    3.保存文章与文章封面引用素材的关联关系