mirror of
https://github.com/1Panel-dev/CordysCRM.git
synced 2026-05-14 03:02:10 +08:00
框架通用模块使用说明
目录
概述
本框架是一个企业级应用开发基础设施,提供了多种常用功能模块,包括 AOP 支持、公共工具类、MyBatis 增强、文件处理、安全性管理等。框架旨在简化开发流程,提高代码质量和开发效率。
模块结构
framework/
├── aop/ # AOP 相关功能
├── common/ # 公共功能
├── config/ # 配置相关
├── file/ # 文件处理
├── mybatis/ # MyBatis 增强
└── security/ # 安全性管理
使用指南
AOP 支持
AOP 模块提供了面向切面编程的基础设施,包含以下子模块:
| 子模块 | 说明 |
|---|---|
| annotation | 定义 AOP 功能的注解 |
| aspect | 实现切面逻辑 |
| builder | 提供构建器模式工具 |
| constants | 定义常量,避免硬编码 |
| dto | 数据传输对象 |
| event | 定义 AOP 相关事件 |
使用示例
1. 基础日志记录
@OperationLog(
module = LogModule.SYSTEM,
type = LogType.ADD,
operator = "{{#user.name}}",
resourceId = "{{#user.id}}",
success = "添加用户成功",
extra = "{{#newUser}}"
)
public void addUser(User user) {
// 业务代码
// 添加日志上下文
OperationLogContext.putVariable("newUser", LogExtraDTO.builder()
.originalValue(null)
.modifiedValue(user)
.build());
}
说明:
resourceId:业务资源的 IDsuccess:方法调用成功后记录的日志内容- 双大括号
{{}}中的内容是 SpEL 表达式,支持调用静态方法、三目表达式等
2. 成功/失败日志记录
@OperationLog(
fail = "业务操作失败,失败原因:「{{#_errorMsg}}」",
success = "业务操作成功",
operator = "{{#user.name}}",
type = LogType.ADD,
resourceId = "{{#biz.id}}"
)
public boolean create(BizObj obj) {
OperationLogContext.putVariable("innerOrder", LogExtraDTO.builder()
.originalValue(obj)
.modifiedValue(obj)
.build());
return true;
}
#_errorMsg是方法抛出异常后自动获取的错误信息
3. 多条日志记录
@OperationLog(
module = LogModule.SYSTEM,
type = LogType.UPDATE,
operator = "{{#user.name}}",
resourceId = "{{#user.id}}",
success = "更新用户基本信息成功",
extra = "{{#upUser}}"
)
@OperationLog(
module = LogModule.SYSTEM,
type = LogType.UPDATE,
operator = "{{#user.name}}",
resourceId = "{{#user.id}}",
success = "更新用户权限成功",
extra = "{{#upPermission}}"
)
public void updateUser(User user) {
// 更新用户
User preUser = userMapper.selectByPrimaryKey(user.getId());
// 添加日志上下文
OperationLogContext.putVariable("upUser", LogExtraDTO.builder()
.originalValue(preUser)
.modifiedValue(user)
.build());
}
公共功能
公共功能模块提供了常用工具和基础功能:
- constants:常量定义,避免魔法值
- exception:自定义异常体系
- groups:分组管理
- pager:分页查询功能
- response:统一响应格式
- uid:唯一标识符生成
- util:工具类(包含加密、编码等)
MyBatis 配置
MyBatis 配置模块增强了 MyBatis 的功能:
- interceptor:自定义拦截器
- lambda:Lambda 表达式支持,简化查询构建
使用示例
@Resource
private BaseMapper<User> userMapper;
// Lambda 查询示例
List<User> userList = userMapper.selectListByLambda(
new LambdaQueryWrapper<User>()
.eq(User::getId, "admin")
);
自动生成的 SQL:
SELECT * FROM user WHERE id = 'admin'
文件处理
文件处理模块提供了文件操作相关功能:
- engine:文件引擎,支持文件上传、下载、存储等操作
安全性管理
安全性管理模块提供了身份验证、授权和加密等功能:
- 身份验证
- 权限控制
- 数据加密
- 安全审计
更多信息
更多详细信息和高级用法,请参阅各模块的详细文档或源代码注释。