Appearance
通用功能组件 ¶
说明
通常会在系统中有可视化的界面,部分功能和参数可以进行可视化的配置。区别于工具配置封装下的模块,这下面模块可以视为一个mini版的功能系统,功能相对比较复杂一点。
审计日志模块 ¶
记录系统运行时发生的各类业务审计日志,包含登录、操作、数据版本等日志,通过提供的注解或方法,在需要记录的地方进行标注,就会相应时机记录下对应的信息。 支持将日志存储到关系型数据库中,如MySQL
,也支持存储到MongoDB
中,默认保存到的是关系型数据库,可以通过更改配置文件来使其保存到MongoDB中。
认证模块 ¶
基于Sa-Token
和justAuth
进行封装,未选择Spring Security原因是复杂度较高,且同时对在前后端分离环境下支持一般。未选择Shiro
是因为Sa-Token
已经足够成熟, API对中小项目来说更加直观和简单易用。 已实现功能:
- 支持多终端配置,可分别管理Vue2版管理端、Vue3版管理端、小程序关联的登录方式(通过IAM模块实现)
- 提供账号密码登录、短信登录、开放平台登录,同时支持方便的扩展新的登录方式
- 支持接口添加
@IgnoreAuth
来实现未登录访问、跳过权限控制等处理 - 支持进行多维度的访问权限控制,可以是配置文件,也可以代码、注解和在线进行配置
代码生成模块 ¶
支持前后端代码的生成,支持生成对应的Java、Vue2、Vue3、TypeScript代码。
数据权限模块 ¶
在生产系统中,不用不同用户和角色不光每个人看到菜单是不同的,对可读取到的数据也是如此。根据系统中配置的数据权限关系,通过对执行的SQL语句进行拦截、解析、重新组织,来实现数据权限的隔离。 同时为了符合国家信息安全法的相关规定,对存储的尽管信息需要进行脱敏或者加密。对此数据权限模块封装此类需求的实现,已实现下列功能:
- 数据字段字段加密解密,在数据库中存储AES加密后的内容,预防信息被脱裤后导致信息泄露
- 返回数据信息敏感信息脱敏,后端信息返回给前端时,对一些敏感信息进行脱敏,如密码、秘钥等,防止保密信息被流出,可以结合数据字段加密一起使用
- 数据权限控制,通过在线配置,实现不同的用户可以查询到不同范围的数据,更好的实现数据分级管理
钉钉对接模块 ¶
钉钉是众多打工人工作中常用的一款办公IM工具,我们开发的各类系统通常需要与钉钉打通,其中以OA、ERP、绩效类系统最为常见。不同的公司对于与钉钉对接的功能要求各不相同,有些只需要视同钉钉的登录, 有些是把整个公司运转过程都放到了钉钉上面。作为一个偏通用型的的脚手架项目,只对钉钉常用的接口进行了对接,如钉钉授权登录、消息发送、机器人管理等。
文件管理模块 ¶
文件上传是一个使用频度极高的功能,常见的有文件上传到服务器,上传并存储到数据库中,上传到类似S3这类云存储中,这个模块就是对这几种常见的文件上传进行了封装,便于开发时使用, 文件存储方式:
- 数据库方式
- 本地文件
- MongoDB
- minio
- 阿里云OSS【开发中】
- 腾讯云COS【开发中】
系统监控模块 ¶
应用投入生产后,对其进行监控是一种必要的行为,在中大型项目中,通常会引入各种agent
、监控端点对应用各方面的指标进行监控,常见的中间件有prometheus
、Spring Boot Admin
, 尤其分布式项目中使用频度极高。但对于小型项目,很难应用上这些中间件,所以对这种情况,对系统中一些主要指标进行监控并实时输出,方便用户进行查看,目前已经进行监控的功能模块:
- 系统信息、JVM信息
- Redis信息
- 缓存信息【开发中】
定时任务模块 ¶
定时任务是一种在开发时高频度使用到的功能,同时也是一个非常成熟的技术,在技术上选型时,最终选择了XXL-Job
和Quartz
,虽然功能更加强大和易用,但由于需要单独部署控制端, 且在内外网通信情况下需要做额外处理,相比较之下,Quartz
更适合单体项目。为此针对Quartz
开发了一套简单的可视化操作界面,方便进行使用。
微信对接模块 ¶
微信作为国民软件自然不需要多说什么,业务系统对接微信最常见的功能就是消息推送和对公众号进行管理,目前对消息推送相关能力进行了封装,并在通知服务
进行了处理, 公众号管理则实现了素材管理、自定义菜单管理。其他如客服、票券能力、消息智能回复会在后期陆续开发并实装。
企业微信对接模块 ¶
类似钉钉,企业微信也是众多打工人常使用的一块办公IM,不过功能稍弱于钉钉,生态也有一定的差距,包括接口功能、对接能力等,与跟钉钉对接一样,也是只针对常用的功能进行了封装, 如企微授权登录、消息发送、机器人管理等。