框架说明
该框架是本人学习过程中本着只有自己动手操作一遍才能真正理解,和遇到对应问题并解决问题的思路。和为了能在开发相应系统时能快速搭建出相关框架而做出的基于NetCore3.1+Vue的RBAC通用权限框架。
只有在敲的过程中才能遇见细节上的问题,成长无非就是发现问题、思考问题、解决问题、总结沉淀,后面才能去规避和提高代码质量。
如有发现什么错误,请联系我,将第一时间改正。互相学习,共同进步。
不要只光看,最终要的是要自己敲,不自己敲的话,当遇到了还是不会、一脸懵的!
** 如果您觉得对您有帮助的话,可以给个start,谢谢 **
项目框架图
多租户权限设计表
详细说明
Deleted、CreatedTime、CreatedBy、UpdatedTime、UpdatedBy 为常用表默认字段,可自行扩展增加Remark、Status、Sort等为表通用字段。特别说明,若数据量很大的表,可将非关键字段拆分出来,减小表大小,提高查询速度。
Sys_Tenant租户表
sys_user用户表
Sys_Role角色表
Sys_User_Role_Relation用户角色关系表
Sys_Menu权限资源表
Sys_Role_Menu_Relation角色资源关系表
- 调度相关-额外创建的管理表
Sys_Quartz调度任务综合表
效果图
当用户注册使用,便是一个租户,租户也就代表是一个公司群体,可以以该账号创建子账号,给子账号分配页面及按钮权限。
后端拉取运行
需配置
appsettings.json
中的相关信息 配置邮箱发送人信息,本项目配置的是QQ邮箱,请根据需要配置,用以注册和找回密码的短信发送需配置
appsettings.json
中的相关信息 配置数据库链接信息,执行数据库迁移命令(查看第7点),执行完成后,根据doc文件中选择Quartz
对应数据库脚本语言创建相关表。配置NLog.config文件数据库相关信息,用于记录日志,根据使用数据库选择相应链接,并配置数据库链接
需配置
appsettings.json
中的相关信息Redis
链接信息需配置
appsettings.json
中的相关信息RabbitMQ
链接信息需配置
appsettings.json
中的相关信息Redis
链接信息在
LionFrame.Data
项目中有个种子数据文件夹,在数据迁移时会添加相关信息
前端项目请参考 前端系列
在博客中之前已经写过前端系列,可参考下,有不清楚的地方可在个人简介中找到我的联系方式。若有什么错误的地方也欢迎指正~
发布到docker中
可参考项目中的docs文件夹下的 同一网络部署到Docker中 文件。因为我这边redis和mysql已经在之前就已经创建过了,所以此次只做了 MQ和项目发布到同一网段中,其它的可如法炮制。喜欢玩的也可以使用docker-compose
来进行编写第一次的发布脚本,因为多环境的问题,建议使用docker-compose
,可快速的进行部署,也可避免命令敲错等情况。
只有初次发布时配置可能比较麻烦,后面基本就只有项目需要多次发布,可引入jenkins 做 CI/CD,基本支持中小企业使用
若项目做的比较大可升级K8S,做弹性伸缩,nginx做负载均衡等等、
前端项目这里由于是腾讯云的学生服务器,比较卡顿,故申请了一个腾讯云的免费6个月的存储桶COS进行发布前端项目。
netcore3.1 发布到docker中所遇到的坑及解决
由于docker中没有图片的依赖组件,在我们生成二维码的时候的时候需要使用到System.Drawing.Common
来使用 Image、Bitmap 等类型,通过docker logs 可查看到如下异常
System.TypeInitializationException: The type initializer for 'Gdip' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'libgdiplus': The specified module could not be found.
解决方法,在dockerfile
中加上如下语句RUN apt-get update && apt-get install -y libgdiplus
由于国内网络原因,此处可能需要下载数十分钟,为了提高数据,可在dockerfile
中加上RUN cp sources.list /etc/apt/
一句话,使用镜像源,来提高下载速度,sources.list
文件在docs文件夹中有提供。
这样就能解决图片的问题