框架说明

该框架是本人学习过程中本着只有自己动手操作一遍才能真正理解,和遇到对应问题并解决问题的思路。和为了能在开发相应系统时能快速搭建出相关框架而做出的基于NetCore3.1+Vue的RBAC通用权限框架。

只有在敲的过程中才能遇见细节上的问题,成长无非就是发现问题、思考问题、解决问题、总结沉淀,后面才能去规避和提高代码质量。

如有发现什么错误,请联系我,将第一时间改正。互相学习,共同进步。

不要只光看,最终要的是要自己敲,不自己敲的话,当遇到了还是不会、一脸懵的!

** 如果您觉得对您有帮助的话,可以给个start,谢谢 **

项目框架图

NetCore3.1及Vue开发通用RBAC前后端通用框架-LMLPHP

多租户权限设计表

详细说明
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调度任务综合表

效果图

当用户注册使用,便是一个租户,租户也就代表是一个公司群体,可以以该账号创建子账号,给子账号分配页面及按钮权限。

NetCore3.1及Vue开发通用RBAC前后端通用框架-LMLPHP

NetCore3.1及Vue开发通用RBAC前后端通用框架-LMLPHP

NetCore3.1及Vue开发通用RBAC前后端通用框架-LMLPHP

NetCore3.1及Vue开发通用RBAC前后端通用框架-LMLPHP

NetCore3.1及Vue开发通用RBAC前后端通用框架-LMLPHP

NetCore3.1及Vue开发通用RBAC前后端通用框架-LMLPHP

NetCore3.1及Vue开发通用RBAC前后端通用框架-LMLPHP

NetCore3.1及Vue开发通用RBAC前后端通用框架-LMLPHP

后端拉取运行

  • 需配置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文件夹中有提供。

这样就能解决图片的问题

原文地址

05-15 07:41