Skip to content

通用功能组件

说明

通常会在系统中有可视化的界面,部分功能和参数可以进行可视化的配置。区别于工具配置封装下的模块,这下面模块可以视为一个mini版的功能系统,功能相对比较复杂一点。

审计日志模块

记录系统运行时发生的各类业务审计日志,包含登录、操作、数据版本等日志,通过提供的注解或方法,在需要记录的地方进行标注,就会相应时机记录下对应的信息。 支持将日志存储到关系型数据库中,如MySQL,也支持存储到MongoDB中,默认保存到的是关系型数据库,可以通过更改配置文件来使其保存到MongoDB中。

认证模块

基于Sa-TokenjustAuth进行封装,未选择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、监控端点对应用各方面的指标进行监控,常见的中间件有prometheusSpring Boot Admin, 尤其分布式项目中使用频度极高。但对于小型项目,很难应用上这些中间件,所以对这种情况,对系统中一些主要指标进行监控并实时输出,方便用户进行查看,目前已经进行监控的功能模块:

  • 系统信息、JVM信息
  • Redis信息
  • 缓存信息【开发中】

定时任务模块

定时任务是一种在开发时高频度使用到的功能,同时也是一个非常成熟的技术,在技术上选型时,最终选择了XXL-JobQuartz,虽然功能更加强大和易用,但由于需要单独部署控制端, 且在内外网通信情况下需要做额外处理,相比较之下,Quartz更适合单体项目。为此针对Quartz开发了一套简单的可视化操作界面,方便进行使用。

微信对接模块

微信作为国民软件自然不需要多说什么,业务系统对接微信最常见的功能就是消息推送和对公众号进行管理,目前对消息推送相关能力进行了封装,并在通知服务进行了处理, 公众号管理则实现了素材管理、自定义菜单管理。其他如客服、票券能力、消息智能回复会在后期陆续开发并实装。

企业微信对接模块

类似钉钉,企业微信也是众多打工人常使用的一块办公IM,不过功能稍弱于钉钉,生态也有一定的差距,包括接口功能、对接能力等,与跟钉钉对接一样,也是只针对常用的功能进行了封装, 如企微授权登录、消息发送、机器人管理等。

本文档内容版权属于济南易杯光年软件技术有限公司,保留所有权利