功能模块的设计
2019年11月24日
- lin-cms-dotnetcore
功能模块的设计
基础权限模块
- 用户信息:邮件、用户名(唯一)、昵称、头像、分组、是否激活、手机号、是否是Admin、个性签名
- 绑定第三方账号
- 分组信息:是否静态分组(无法删除,无法修改分组编码)、名称可以修改
- 文件管理
- 系统日志:请求方法、路径、http返回码、时间、用户昵称、用户id、访问哪个权限、 日志信息
- 设置管理:name(键),value(值),provider_name(提供名),provider_key(提供者值)
比如存某用户选择的是markdown还是富文本。
name="Article.Editor",
value="markdown" 或 "富文本",
provider_name为"User",
provider_key为用户Id
或存储七牛云的某一个配置
name="Qiniu.AK",
value="asfadsfadf23rft66S4XM2GIK7FGmj7czuYkcAyNGDAc" ,
provider_name为"Qiniu"或自己定义的字符串
provider_key为空
cms 管理员维护模块
- 标签管理:名称、图片,是否启用/禁用,排序、文章数量、用户关注数量。
- 技术频道:封面图、名称、是否启用/禁用、排序、编码、备注描述、下属标签.一个技术频道对应多个标签
- 随笔管理:
- 评论管理
- 字典管理
cms 用户端模块
技术频道
分类专栏管理:发布随笔时可选择单个分类。
标签:统计每个标签下多少个文章、多少人关注
随笔
- 随笔详情页
- 随笔详情页
评论
关注
个人主页
- 随笔
- 关注
- 随笔
设置
- 个人主页设置
- 安全设置
- 博客设置
- 个人主页设置
消息
评论模块
主题式
将评论分为二级,第一级采用时间倒序,二级按照时间正序,有助于理解上下文关系。
用户操作:
- 评论随笔(内容支持超链接、emoji)
- 点赞评论/取消点赞
- 回复评论
- 删除自己的评论
运营操作:
- 审核通过/拉黑评论
- 删除任何评论
- 拉黑后的显示逻辑。(保留当前区块、显示内容为:该评论因违规被拉黑)
- 删除:(如果是二级评论,直接软删除,如果是一级评论,软删除子评论和当前评论-需要提前提醒用户) 交互设计
- 评论的字数长度(500)、emoji。
- 点赞交互-动画、消息通知/推送
- 评论区域元素,需要有明确可点击的区域,会跳转到哪个地方。
优化
- 精选评论
脑图分享
http://naotu.baidu.com/file/6532431a2e1f0c37c93c5ffd1dd5b49c?token=87690a9bc64fbae1
分组
分为三种
id name info
1 Admin 系统管理员
2 CmsAdmin 内容管理员
3 User 普通用户
审计日志
大多数表存在如下8个字段,用于记录行的变化状态,is_deleted为软删除,执行删除操作时,将其状态置为true,默认实体类继承 FullAuditEntity 即可拥有以下8个字段。该设计参考ABP中的实现。FullAuditEntity为泛型,默认id为long类型,FullAuditEntity<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
0.3.0版本权限功能升级
为支持一个用户多个分组,一个分组多个权限,一个用户可分多种授权登录方式,根据lin-cms-springboot项目功能模块升级,介绍如下:
- lin_permission 权限表,本系统通过反射在系统初次启动时,启动异步任务,将不存在的权限新增到此表中。
- lin_group_permission 分组权限表,用于分组与权限表的关联
- lin_user_group 用户分组表。用于用户和分组表的关联。可配置一个用户属于多个分组。
- lin_user_identity 用户授权信息表,用于存储不同登录类型的用户信息,如手机号、邮件、用户名、第三方应用(微信、QQ、GitHub)的登录