FastAdminAPI - 简单易学好上手的OA后台系统
我在Github上开源了一个OA系统的项目,是基于自己的理解开发的。主要是用于一些中小型的项目快速开发迭代使用。如果大家有需要可以去github上,看看有没有适合自己的代码,可以拿去用。
项目简介
FastAdminAPI是一个可以快速开发的OA系统项目,适用于中小型规模快速使用,基于.net6
和AspNetCore
进行开发。该项目包含部门,岗位,用户,员工,角色权限,数据权限,通用审批,事件总线,服务间调用,定时任务等功能,能够快速开发并部署使用。
快速开始
本项目启动需要以下环境,请先配置环境:
MySQL
Redis
.NET6
Microsoft Visual Studio 2022
修改appsettings.Development.json
文件
点击vs2022
运行,将会启动swagger
文档。
项目结构
项目内容
FastAdminAPI.Core
核心项目,包含部门、岗位、员工、角色权限等功能,可以做到开箱即用。当然如果和现实情况不符,可进行再次开发。
在业务复杂的情况下,可以根据该项目结构进行复刻,建立多个不同的微服务进行业务拆分。
本项目除了引用其他类库外,自身已包含所有业务相关代码,无其他依赖,结构简单,上手非常容易。
Program.cs
文件中的配置都有相应的注释,方便学习。
FastAdminAPI.Common
通用工具类库,包含很多实用工具。
结构
在以上工具类中,有一些是配置,需要在program.cs
文件中进行配置。
配置
配置Model规则验证和全局异常捕获
配置Redis
配置HttpClient
配置service层
配置响应压缩
Swagger配置
Jwt配置
FastAdminAPI.Framework
ORM框架,基于DotNetNext/SqlSugar开源项目进行开发。sqlsugar
的用法直接看官方文档即可。
结构
本项目类库增加了一些扩展,可以更加快速的进行业务开发。
ORM扩展
查询
上述生成的SQL
如下:
- 正常查询
- 指定表别名查询
上面的方法返回结果为 统一返回结果(ResponseModel
),如需将结果转换回List<T>
类型,可以使用下面的方法:
新增
上述生成的SQL
如下:
编辑
上述生成的SQL
如下:
软删除
上述生成的SQL
如下:
事务
执行结果转换
将SqlSugar
的返回结果转换为 统一返回结果(ResponseModel
)
FastAdminAPI.Business
该类库包含一些通用的业务,例如:数据权限,通用审批等,多服务皆可引用该项目,减少重复代码,并降低修改代码带来的问题。
结构
配置
引用该类库,需要依赖注入,相关依赖注入的配置如下:
如果想要全部注入,可以这样进行配置:
FastAdminAPI.CAP
该类库是基于dotnetcore/CAP开源项目进行开发的,将配置简单化,直接可以开始使用。该类库使用MySQL
进行持久化存储,使用Redis
进行消息的发布及消费。
- 仅使用功能
- 需要个性化配置
需要说明的是,如果要编写 订阅 或 发布 时,需要指定 订阅 的名称,订阅的名称放在FastAdminAPI.CAP/Subscribes
目录下,进行统一管理。
CAP
的配置放在appsettings.json
文件中,可以按需求修改。
FastAdminAPI.Email
邮件相关的类库,基于jstedfast/MailKit开源项目开发。
FastAdminAPI.NPOI
Excel相关类库,基于nissl-lab/npoi开源项目开发。
- 如果仅仅是简单的使用Excel导入和导出,可以使用
FastAdminAPI.Common
中的MiniExcel
,该功能是引入了mini-software/MiniExcel开源项目,更加高效快捷,无需引入FastAdminAPI.NPOI
类库 - 比较复杂的Excel操作可以引用
FastAdminAPI.NPOI
进行更多的操作。
FastAdminAPI.Network
网络请求类库,基于reactiveui/refit开源项目进行开发,进行了统一的配置。
配置
使用
调用外部接口只需要像调用本地方法一样使用。
FastAdminAPI.EventBus
事件总线,基于dotnetcore/CAP开源项目进行开发,启动后会展示CAP.Dashboard
,该事件总线使用MySQL
进行持久化存储,使用Redis
进行消息的发布及消费。当前项目主要用于消费业务数据。
CAP
的配置放在appsettings.json
文件中,可以按需求修改。
FastAdminAPI.Tasks
定时任务,基于HangfireIO/Hangfire开源项目进行开发,依赖于Redis
。简化了相关配置。
Dashboard
- 修改
dashboard
登录账号和密码,可以修改Program.cs
文件。
配置
- 定时任务只需要继承
BaseTask.cs
基类即可,要配置定时任务执行的周期,可以在appsettings.json中进行配置
。
配置方式:任务名称,任务执行周期
min/hour/daily/monthly/yearly/cron
,任务时间
多个定时任务以;
分号分隔
也可以直接配置cron
,例如:TestTask,cron,0 0/2 * * *
,每两小时整执行一次。
感谢
以下是该项目用到的部分开源项目:
- DotNetNext/SqlSugar
- HangfireIO/Hangfire
- dotnetcore/CAP
- reactiveui/refit
- mini-software/MiniExcel
- nissl-lab/npoi
- jstedfast/MailKit
感谢所有开源项目的贡献,好的项目需要大家共同维护和分享。