app端文章查看,静态化freemarker,分布式文件系统minIO

app端文章查看,静态化freemarker,分布式文件系统minIO

1)文章列表加载

1.1)需求分析

文章布局展示

1.2)表结构分析

ap_article 文章基本信息表

ap_article_config 文章配置表

ap_article_content 文章内容表

三张表关系分析

1.3)导入文章数据库

1.3.1)导入数据库

查看当天资料文件夹,在数据库连接工具中执行leadnews_article.sql

1.3.2)导入对应的实体类

ap_article文章表对应实体

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#770088">package</span> <span style="color:#0000ff">com</span>.<span style="color:#000000">heima</span>.<span style="color:#000000">model</span>.<span style="color:#000000">article</span>.<span style="color:#000000">pojos</span>;
​
<span style="color:#770088">import</span> <span style="color:#000000">com</span>.<span style="color:#000000">baomidou</span>.<span style="color:#000000">mybatisplus</span>.<span style="color:#000000">annotation</span>.<span style="color:#000000">IdType</span>;
<span style="color:#770088">import</span> <span style="color:#000000">com</span>.<span style="color:#000000">baomidou</span>.<span style="color:#000000">mybatisplus</span>.<span style="color:#000000">annotation</span>.<span style="color:#000000">TableField</span>;
<span style="color:#770088">import</span> <span style="color:#000000">com</span>.<span style="color:#000000">baomidou</span>.<span style="color:#000000">mybatisplus</span>.<span style="color:#000000">annotation</span>.<span style="color:#000000">TableId</span>;
<span style="color:#770088">import</span> <span style="color:#000000">com</span>.<span style="color:#000000">baomidou</span>.<span style="color:#000000">mybatisplus</span>.<span style="color:#000000">annotation</span>.<span style="color:#000000">TableName</span>;
<span style="color:#770088">import</span> <span style="color:#000000">lombok</span>.<span style="color:#000000">Data</span>;
​
<span style="color:#770088">import</span> <span style="color:#000000">java</span>.<span style="color:#000000">io</span>.<span style="color:#000000">Serializable</span>;
<span style="color:#770088">import</span> <span style="color:#000000">java</span>.<span style="color:#000000">util</span>.<span style="color:#000000">Date</span>;
​
<span style="color:#aa5500">/**</span>
 <span style="color:#aa5500">* <p></span>
 <span style="color:#aa5500">* 文章信息表,存储已发布的文章</span>
 <span style="color:#aa5500">* </p></span>
 <span style="color:#aa5500">*</span>
 <span style="color:#aa5500">* @author itheima</span>
 <span style="color:#aa5500">*/</span>
​
<span style="color:#555555">@Data</span>
<span style="color:#555555">@TableName</span>(<span style="color:#aa1111">"ap_article"</span>)
<span style="color:#770088">public</span> <span style="color:#770088">class</span> <span style="color:#0000ff">ApArticle</span> <span style="color:#770088">implements</span> <span style="color:#000000">Serializable</span> {
​
    <span style="color:#555555">@TableId</span>(<span style="color:#000000">value</span> <span style="color:#981a1a">=</span> <span style="color:#aa1111">"id"</span>,<span style="color:#000000">type</span> <span style="color:#981a1a">=</span> <span style="color:#000000">IdType</span>.<span style="color:#000000">ID_WORKER</span>)
    <span style="color:#770088">private</span> <span style="color:#008855">Long</span> <span style="color:#000000">id</span>;
​
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 标题</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">title</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 作者id</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#555555">@TableField</span>(<span style="color:#aa1111">"author_id"</span>)
    <span style="color:#770088">private</span> <span style="color:#008855">Long</span> <span style="color:#000000">authorId</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 作者名称</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#555555">@TableField</span>(<span style="color:#aa1111">"author_name"</span>)
    <span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">authorName</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 频道id</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#555555">@TableField</span>(<span style="color:#aa1111">"channel_id"</span>)
    <span style="color:#770088">private</span> <span style="color:#008855">Integer</span> <span style="color:#000000">channelId</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 频道名称</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#555555">@TableField</span>(<span style="color:#aa1111">"channel_name"</span>)
    <span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">channelName</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 文章布局  0 无图文章   1 单图文章    2 多图文章</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#770088">private</span> <span style="color:#008855">Short</span> <span style="color:#000000">layout</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 文章标记  0 普通文章   1 热点文章   2 置顶文章   3 精品文章   4 大V 文章</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#770088">private</span> <span style="color:#008855">Byte</span> <span style="color:#000000">flag</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 文章封面图片 多张逗号分隔</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">images</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 标签</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">labels</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 点赞数量</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#770088">private</span> <span style="color:#008855">Integer</span> <span style="color:#000000">likes</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 收藏数量</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#770088">private</span> <span style="color:#008855">Integer</span> <span style="color:#000000">collection</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 评论数量</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#770088">private</span> <span style="color:#008855">Integer</span> <span style="color:#000000">comment</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 阅读数量</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#770088">private</span> <span style="color:#008855">Integer</span> <span style="color:#000000">views</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 省市</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#555555">@TableField</span>(<span style="color:#aa1111">"province_id"</span>)
    <span style="color:#770088">private</span> <span style="color:#008855">Integer</span> <span style="color:#000000">provinceId</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 市区</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#555555">@TableField</span>(<span style="color:#aa1111">"city_id"</span>)
    <span style="color:#770088">private</span> <span style="color:#008855">Integer</span> <span style="color:#000000">cityId</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 区县</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#555555">@TableField</span>(<span style="color:#aa1111">"county_id"</span>)
    <span style="color:#770088">private</span> <span style="color:#008855">Integer</span> <span style="color:#000000">countyId</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 创建时间</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#555555">@TableField</span>(<span style="color:#aa1111">"created_time"</span>)
    <span style="color:#770088">private</span> <span style="color:#000000">Date</span> <span style="color:#000000">createdTime</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 发布时间</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#555555">@TableField</span>(<span style="color:#aa1111">"publish_time"</span>)
    <span style="color:#770088">private</span> <span style="color:#000000">Date</span> <span style="color:#000000">publishTime</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 同步状态</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#555555">@TableField</span>(<span style="color:#aa1111">"sync_status"</span>)
    <span style="color:#770088">private</span> <span style="color:#008855">Boolean</span> <span style="color:#000000">syncStatus</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 来源</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#770088">private</span> <span style="color:#008855">Boolean</span> <span style="color:#000000">origin</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 静态页面地址</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#555555">@TableField</span>(<span style="color:#aa1111">"static_url"</span>)
    <span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">staticUrl</span>;
}</span></span>

ap_article_config文章配置对应实体类

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#770088">package</span> <span style="color:#0000ff">com</span>.<span style="color:#000000">heima</span>.<span style="color:#000000">model</span>.<span style="color:#000000">article</span>.<span style="color:#000000">pojos</span>;
​
<span style="color:#770088">import</span> <span style="color:#000000">com</span>.<span style="color:#000000">baomidou</span>.<span style="color:#000000">mybatisplus</span>.<span style="color:#000000">annotation</span>.<span style="color:#000000">IdType</span>;
<span style="color:#770088">import</span> <span style="color:#000000">com</span>.<span style="color:#000000">baomidou</span>.<span style="color:#000000">mybatisplus</span>.<span style="color:#000000">annotation</span>.<span style="color:#000000">TableField</span>;
<span style="color:#770088">import</span> <span style="color:#000000">com</span>.<span style="color:#000000">baomidou</span>.<span style="color:#000000">mybatisplus</span>.<span style="color:#000000">annotation</span>.<span style="color:#000000">TableId</span>;
<span style="color:#770088">import</span> <span style="color:#000000">com</span>.<span style="color:#000000">baomidou</span>.<span style="color:#000000">mybatisplus</span>.<span style="color:#000000">annotation</span>.<span style="color:#000000">TableName</span>;
<span style="color:#770088">import</span> <span style="color:#000000">lombok</span>.<span style="color:#000000">Data</span>;
​
<span style="color:#770088">import</span> <span style="color:#000000">java</span>.<span style="color:#000000">io</span>.<span style="color:#000000">Serializable</span>;
​
<span style="color:#aa5500">/**</span>
 <span style="color:#aa5500">* <p></span>
 <span style="color:#aa5500">* APP已发布文章配置表</span>
 <span style="color:#aa5500">* </p></span>
 <span style="color:#aa5500">*</span>
 <span style="color:#aa5500">* @author itheima</span>
 <span style="color:#aa5500">*/</span>
​
<span style="color:#555555">@Data</span>
<span style="color:#555555">@TableName</span>(<span style="color:#aa1111">"ap_article_config"</span>)
<span style="color:#770088">public</span> <span style="color:#770088">class</span> <span style="color:#0000ff">ApArticleConfig</span> <span style="color:#770088">implements</span> <span style="color:#000000">Serializable</span> {
​
    <span style="color:#555555">@TableId</span>(<span style="color:#000000">value</span> <span style="color:#981a1a">=</span> <span style="color:#aa1111">"id"</span>,<span style="color:#000000">type</span> <span style="color:#981a1a">=</span> <span style="color:#000000">IdType</span>.<span style="color:#000000">ID_WORKER</span>)
    <span style="color:#770088">private</span> <span style="color:#008855">Long</span> <span style="color:#000000">id</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 文章id</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#555555">@TableField</span>(<span style="color:#aa1111">"article_id"</span>)
    <span style="color:#770088">private</span> <span style="color:#008855">Long</span> <span style="color:#000000">articleId</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 是否可评论</span>
     <span style="color:#aa5500">* true: 可以评论   1</span>
     <span style="color:#aa5500">* false: 不可评论  0</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#555555">@TableField</span>(<span style="color:#aa1111">"is_comment"</span>)
    <span style="color:#770088">private</span> <span style="color:#008855">Boolean</span> <span style="color:#000000">isComment</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 是否转发</span>
     <span style="color:#aa5500">* true: 可以转发   1</span>
     <span style="color:#aa5500">* false: 不可转发  0</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#555555">@TableField</span>(<span style="color:#aa1111">"is_forward"</span>)
    <span style="color:#770088">private</span> <span style="color:#008855">Boolean</span> <span style="color:#000000">isForward</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 是否下架</span>
     <span style="color:#aa5500">* true: 下架   1</span>
     <span style="color:#aa5500">* false: 没有下架  0</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#555555">@TableField</span>(<span style="color:#aa1111">"is_down"</span>)
    <span style="color:#770088">private</span> <span style="color:#008855">Boolean</span> <span style="color:#000000">isDown</span>;
​
    <span style="color:#aa5500">/**</span>
     <span style="color:#aa5500">* 是否已删除</span>
     <span style="color:#aa5500">* true: 删除   1</span>
     <span style="color:#aa5500">* false: 没有删除  0</span>
     <span style="color:#aa5500">*/</span>
    <span style="color:#555555">@TableField</span>(<span style="color:#aa1111">"is_delete"</span>)
    <span style="color:#770088">private</span> <span style="color:#008855">Boolean</span>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值