功能模块的设计
IGeekFan 11/24/2019 开源.NET Corelin-cms
# 功能模块的设计
# 基础权限模块
- 用户信息:邮件、用户名(唯一)、昵称、头像、分组、是否激活、手机号、是否是Admin、个性签名
- [x] 注册/登录
- [x] 上传头像
- [x] 修改密码
- [x] 用户基本信息修改
- [x] 用户增删改,配置分组
- 绑定第三方账号
- [x] GitHub登录
- [ ] QQ 登录
- 分组信息:是否静态分组(无法删除,无法修改分组编码)、名称可以修改
- [x] 分组增删改
- [x] 组别配置权限
- 文件管理
- [x] 本地文件上传
- [x] 七牛云存储
- [ ] 文件去重,秒传
- 系统日志:请求方法、路径、http返回码、时间、用户昵称、用户id、访问哪个权限、 日志信息
- [x] 记录系统请求的日志
- [ ] 异常日志
- 设置管理:name(键),value(值),provider_name(提供名),provider_key(提供者值)
- [x] 设置新增修改删除
- [x] 所有设置
比如存某用户选择的是markdown还是富文本。
name="Article.Editor",
value="markdown" 或 "富文本",
provider_name为"User",
provider_key为用户Id
1
2
3
4
2
3
4
或存储七牛云的某一个配置
name="Qiniu.AK",
value="asfadsfadf23rft66S4XM2GIK7FGmj7czuYkcAyNGDAc" ,
provider_name为"Qiniu"或自己定义的字符串
provider_key为空
1
2
3
4
2
3
4
# cms 管理员维护模块
- 标签管理:名称、图片,是否启用/禁用,排序、文章数量、用户关注数量。
- [x] 标签增删改
- [x] 标签列表,禁用
- 技术频道:封面图、名称、是否启用/禁用、排序、编码、备注描述、下属标签.一个技术频道对应多个标签
- [x] 技术频道增删改
- [x] 列表、禁用
- 随笔管理:
- [x] 审核随笔/拉黑
- 评论管理
- [x] 后台审核通过/拉黑
- [x] 管理员删除评论
- 字典管理
- [x] 字典类别管理
- [x] 字典管理:如随笔类型(原创、转载、翻译)
# cms 用户端模块
技术频道
- [x] 首页展示技术频道
- [x] 选择技术频道后,可再根据标签查询文章
分类专栏管理:发布随笔时可选择单个分类。
- [x] 分类增删改(随笔数量、图片、名称、排序)
- [x] 分类列表,仅查看、编辑自己创建的分类专栏
标签:统计每个标签下多少个文章、多少人关注
- [x] 标签列表
- [x] 无限加载
- [x] 最新/最热 根据标签名称模糊查询
- [x] 已关注的标签
- [x] 热门标签
随笔
- [x] 支持markdown,增删改(仅自己的随笔),修正分类专栏中的随笔数量
- [x] 列表无限加载,按标签查询随笔
- [x] 点赞随笔
- 随笔详情页
- [x] 支持目录导航(滚动时,固定至顶部位置),展示字数统计、预计阅读时长;
- [x] 作者介绍:头像,昵称,签名,随笔数;
- [x] 展示文章类型:原创、转载、翻译
- [ ] 相关文章
- [ ] 推荐文章
评论
- [ ] 用户关闭评论时,无法对随笔进行评论
- [ ] 评论随笔(内容支持超链接、emoji)
- [x] 删除自己的评论
- [x] 点赞评论
- [x] 回复评论
关注
- [x] 关注/取消关注用户
- [x] 关注/取消关注标签
个人主页
- 随笔
- [x] 用户专栏分类展示
- [x] 最新发布的随笔
- 关注
- [x] 关注的人
- [x] 粉丝
- [x] 关注的标签
- 随笔
设置
- 个人主页设置
- [x] 个人资料更新
- 安全设置
- [x] 密码修改
- 博客设置
- [x] 默认编辑器设置(markdown/富文本)
- 个人主页设置
消息
- [x] 点赞随笔、点赞评论
- [x] 评论随笔、回复评论
- [x] 用户关注
# 评论模块
# 主题式
将评论分为二级,第一级采用时间倒序,二级按照时间正序,有助于理解上下文关系。
用户操作:
- 评论随笔(内容支持超链接、emoji)
- 点赞评论/取消点赞
- 回复评论
- 删除自己的评论
运营操作:
- 审核通过/拉黑评论
- 删除任何评论
- 拉黑后的显示逻辑。(保留当前区块、显示内容为:该评论因违规被拉黑)
- 删除:(如果是二级评论,直接软删除,如果是一级评论,软删除子评论和当前评论-需要提前提醒用户) 交互设计
- 评论的字数长度(500)、emoji。
- 点赞交互-动画、消息通知/推送
- 评论区域元素,需要有明确可点击的区域,会跳转到哪个地方。
# 优化
- 精选评论
# 脑图分享
# 分组
分为三种
id name info
1 Admin 系统管理员
2 CmsAdmin 内容管理员
3 User 普通用户
1
2
3
4
2
3
4
# 审计日志
大多数表存在如下8个字段,用于记录行的变化状态,is_deleted为软删除,执行删除操作时,将其状态置为true,默认实体类继承 FullAduitEntity 即可拥有以下8个字段。该设计参考ABP中的实现。FullAduitEntity为泛型,默认id为long类型,FullAduitEntity<Guid>,即可改变主键类型,默认LinUser表主键long,保持create_user_id,delete_user_id,update_user_id都与LinUser的主键相同
id bigint
create_user_id bigint
create_time datetime
is_deleted bit
delete_user_id bigint
delete_time datetime
update_user_id bigint
update_time datetime
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 0.3.0版本权限功能升级
为支持一个用户多个分组,一个分组多个权限,一个用户可分多种授权登录方式,根据lin-cms-springboot项目功能模块升级,介绍如下:
- lin_permission 权限表,本系统通过反射在系统初次启动时,启动异步任务,将不存在的权限新增到此表中。
- lin_group_permission 分组权限表,用于分组与权限表的关联
- lin_user_group 用户分组表。用于用户和分组表的关联。可配置一个用户属于多个分组。
- lin_user_identity 用户授权信息表,用于存储不同登录类型的用户信息,如手机号、邮件、用户名、第三方应用(微信、QQ、GitHub)的登录