模型
<blockquote>
<p>2019年5月28日11:44:12</p>
</blockquote>
<h3>文章</h3>
<table>
<thead>
<tr>
<th>字段名</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>integer</td>
<td>主键</td>
</tr>
<tr>
<td>title</td>
<td>string</td>
<td>标题</td>
</tr>
<tr>
<td>author_name</td>
<td>string</td>
<td>作者名字(只用于视频展示)</td>
</tr>
<tr>
<td>author_nick</td>
<td>string</td>
<td>作者昵称</td>
</tr>
<tr>
<td>author_logo</td>
<td>string</td>
<td>作者头像</td>
</tr>
<tr>
<td>article_type</td>
<td>integer</td>
<td>文章类型:5视频,6影集</td>
</tr>
<tr>
<td>template_data</td>
<td>object</td>
<td>模板数据(待定)</td>
</tr>
<tr>
<td>author_id</td>
<td>string</td>
<td>作者 id ,由 appid 和 openid 拼接</td>
</tr>
<tr>
<td>status</td>
<td>integer</td>
<td>文章状态:1上架,2下架,3管理员删除,4用户自己删除</td>
</tr>
<tr>
<td>handle_status</td>
<td>integer</td>
<td>影集制作状态:0制作中,1完成,2失败</td>
</tr>
<tr>
<td>link</td>
<td>string</td>
<td>视频地址</td>
</tr>
<tr>
<td>video_id</td>
<td>integer</td>
<td>视频id</td>
</tr>
<tr>
<td>cover_url</td>
<td>string</td>
<td>封面的url</td>
</tr>
<tr>
<td>image_urls</td>
<td>array</td>
<td>影集中所有图片的url</td>
</tr>
<tr>
<td>image_list</td>
<td>object</td>
<td>index_thumb, share_thumb</td>
</tr>
<tr>
<td>index_thumb_width</td>
<td>integer</td>
<td>列表图片宽度</td>
</tr>
<tr>
<td>index_thumb_height</td>
<td>integer</td>
<td>列表图片高度</td>
</tr>
<tr>
<td>width</td>
<td>integer</td>
<td>视频宽</td>
</tr>
<tr>
<td>height</td>
<td>integer</td>
<td>视频高</td>
</tr>
<tr>
<td>music</td>
<td>object</td>
<td>music_id, music_name, singer_name, music_url</td>
</tr>
<tr>
<td>created_at</td>
<td>timestamp</td>
<td>创建时间</td>
</tr>
<tr>
<td>updated_at</td>
<td>timestamp</td>
<td>更新时间</td>
</tr>
<tr>
<td>published_at</td>
<td>timestamp</td>
<td>发布时间</td>
</tr>
<tr>
<td>deleted_at</td>
<td>timestamp</td>
<td>删除时间</td>
</tr>
<tr>
<td>audited_by</td>
<td>integer</td>
<td>审核人id</td>
</tr>
<tr>
<td>deleted_by</td>
<td>integer</td>
<td>删除人id</td>
</tr>
<tr>
<td>tags</td>
<td>array</td>
<td>标签</td>
</tr>
<tr>
<td>pv</td>
<td>integer</td>
<td>访问量(redis)</td>
</tr>
<tr>
<td>uv</td>
<td>integer</td>
<td>访问用户数(redis)</td>
</tr>
<tr>
<td>commend_num</td>
<td>integer</td>
<td>点赞数量(redis)</td>
</tr>
<tr>
<td>follow_num</td>
<td>integer</td>
<td>关注人数(redis)</td>
</tr>
<tr>
<td>share_num</td>
<td>integer</td>
<td>分享次数(redis)</td>
</tr>
</tbody>
</table>
<h3>文章与用户关联字段</h3>
<table>
<thead>
<tr>
<th>字段名</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>is_commend</td>
<td>bool</td>
<td>是否点赞</td>
</tr>
<tr>
<td>is_block</td>
<td>bool</td>
<td>是否屏蔽(举报也算屏蔽)</td>
</tr>
<tr>
<td>is_my</td>
<td>bool</td>
<td>是否是自己的文章</td>
</tr>
</tbody>
</table>
<h3>列表通用字段说明</h3>
<table>
<thead>
<tr>
<th>字段名</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>list</td>
<td>array</td>
<td>结果对象列表</td>
</tr>
<tr>
<td>count</td>
<td>integer</td>
<td>符合条件的结果总数</td>
</tr>
</tbody>
</table>
<h3>Redis</h3>
<table>
<thead>
<tr>
<th>字段名</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>h:template:pv:v2:{appId}</td>
<td>hset</td>
<td>文章的观看次数,key为articleId,值为次数</td>
</tr>
<tr>
<td>h:template:uv:{appId}:{articleId}</td>
<td>pf</td>
<td>值为openid</td>
</tr>
<tr>
<td>h:commend:num:v2:{appId}</td>
<td>hset</td>
<td>文章点赞次数,key为articleId,值为次数</td>
</tr>
<tr>
<td>h:template:share:num:v2:{appId}</td>
<td>hset</td>
<td>文章分享次数,key为articleId,值为次数</td>
</tr>
<tr>
<td>h:author:fans:num:v2:{appId}</td>
<td>hset</td>
<td>用户粉丝数量,key为articleId,值为次数</td>
</tr>
<tr>
<td>h:user:follow:author:v2:{appId}:{openid}</td>
<td>hset</td>
<td>用户关注的作者,key为被关注者的openid,值为时间</td>
</tr>
<tr>
<td>z:set:user:follow:author:v2:{appId}:{openid}</td>
<td>zset</td>
<td>用户关注的作者,score为关注时间,值为被关注者的openid</td>
</tr>
<tr>
<td>h:user:commend:ids:{appId}:v2:{openid}</td>
<td>hset</td>
<td>用户点赞的文章,key为被点赞文章的articleId,值为时间</td>
</tr>
<tr>
<td>z:set:user:commend:ids:{appId}:v2:{openid}</td>
<td>zset</td>
<td>用户点赞的文章,score为点赞时间,值为被点赞文章的articleId</td>
</tr>
<tr>
<td>z:darkroomliteweb:author:follow:{appId}:{user_openid}</td>
<td>zset</td>
<td>根据用户{user_openid}获取用户关注的作者列表 (用户侧的),score为关注时间,值为被关注者的openid</td>
</tr>
<tr>
<td>h:darkroomliteweb:author:fansnum:{appId},参数{author_openid}</td>
<td>hset</td>
<td>某个作者的粉丝数 (用户侧的),传入参数作者的openid {author_openid} 可以获取数量</td>
</tr>
</tbody>
</table>
<h3>文章举报</h3>
<table>
<thead>
<tr>
<th>字段名</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>integer</td>
<td>主键</td>
</tr>
<tr>
<td>openid</td>
<td>string</td>
<td>举报者的openid</td>
</tr>
<tr>
<td>article_id</td>
<td>integer</td>
<td>文章id</td>
</tr>
<tr>
<td>article_title</td>
<td>string</td>
<td>文章标题</td>
</tr>
<tr>
<td>message</td>
<td>string</td>
<td>留言</td>
</tr>
<tr>
<td>created_at</td>
<td>time_stamp</td>
<td>创建时间</td>
</tr>
</tbody>
</table>
<h3>Redis</h3>
<table>
<thead>
<tr>
<th>字段名</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>s:dislike:article:list:v2:{appId}:{openid}</td>
<td>set</td>
<td>用户举报的文章,值为文章的article_id</td>
</tr>
<tr>
<td>s:nomore:see:article:list:v2:{appId}:{openid}</td>
<td>set</td>
<td>用户举报的文章,值为文章的article_id</td>
</tr>
</tbody>
</table>