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.保存文章与文章封面引用素材的关联关系
