coder-common-thin-backend/CLAUDE.md
Leo 3fd0f04f43 feat: 完善Sa-Token插件架构实现
- 添加Sa-Token权限认证接口实现
- 完善插件化配置架构
- 修复StpInterface缺失导致的启动失败问题
- 实现用户角色和权限获取逻辑
2025-07-05 14:41:05 +08:00

120 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## 常用命令
### 构建和运行
```bash
# 编译整个项目
mvn clean compile
# 打包项目
mvn clean package
# 运行应用程序
cd coder-common-thin-web
mvn spring-boot:run
# 或者运行打包后的jar
java -jar coder-common-thin-web/target/coder-common-thin-web-1.0.0.jar
```
### 测试
```bash
# 运行所有测试
mvn test
# 运行单个模块测试
mvn test -pl coder-common-thin-web
```
### 数据库
```bash
# 数据库初始化SQL位于
# sql/coder-common-thin.sql
```
## 项目架构概览
这是一个基于Spring Boot 3.5.0的多模块企业级开发框架,采用插件化架构设计。
### 模块结构
- **coder-common-thin-web**: Web启动模块应用程序入口点
- **coder-common-thin-common**: 公共工具模块,包含大量工具类、配置类和拦截器
- **coder-common-thin-model**: 数据模型模块包含POJO、BO、VO和数据验证
- **coder-common-thin-mybatisplus**: 数据访问层模块MyBatis Plus配置和Mapper
- **coder-common-thin-modules**: 业务模块容器
- **coder-common-thin-plugins**: 插件模块,包含各种功能插件
### 插件化架构
项目采用@Enable注解实现功能模块的可插拔配置
- `@EnableCoderSaToken`: Sa-Token认证插件
- `@EnableCoderEasyExcel`: Excel处理插件
- `@EnableCoderLimit`: 限流插件
- `@EnableCoderRepeatSubmit`: 防重提交插件
- `@EnableCoderDesensitize`: 数据脱敏插件
### 技术栈
- **核心框架**: Spring Boot 3.5.0 + Java 17
- **数据库**: MySQL 9.3.0 + MyBatis Plus 3.5.12
- **缓存**: RedisSpring Data Redis
- **安全认证**: Sa-Token 1.43.0
- **工具库**: Hutool 5.8.38, Fastjson2 2.0.57, Guava 33.4.8
- **业务功能**: EasyExcel 4.0.3, Easy-Captcha 1.6.2
### 数据层设计
- **主键策略**: 雪花算法ASSIGN_ID
- **逻辑删除**: 0-已删除, 1-未删除
- **多数据源**: 支持master/slave数据源动态切换
- **SQL监控**: 集成P6spy进行SQL性能监控
### 配置文件
- **主配置**: `application.yml`
- **环境配置**: `application-dev.yml`
- **数据库配置**: 支持MySQL主从配置
- **Redis配置**: 使用Jackson2序列化支持连接池
## 开发指南
### 添加新功能插件
1. 在`coder-common-thin-plugins`下创建新模块
2. 创建@Enable注解用于启用插件
3. 实现必要的配置类和工具类
4. 在主启动类上使用@Enable注解启用
### 数据访问层开发
1. 实体类放在`coder-common-thin-model/domain/pojo`
2. Mapper接口放在`coder-common-thin-mybatisplus/mapper`
3. XML映射文件放在`resources/mapper`
4. 使用`@DS("dataSourceName")`注解切换数据源
### 工具类使用
项目提供了丰富的工具类,位于`coder-common-thin-common/utils`
- **缓存工具**: `RedisUtil`, `LocalCacheUtil`
- **日期工具**: `DateUtil`, `CalendarUtil`
- **文件工具**: `FileUtil`, `UploadUtil`, `ZipUtil`
- **字符串工具**: `StringUtil`, `ConvertUtil`
- **IP工具**: `IpUtil`, `IpAddressUtil`
- **JSON工具**: `JsonUtil`
- **加密工具**: `MD5Util`, `CoderPasswordUtil`
### 配置说明
- **端口**: 默认18099可通过`port`环境变量覆盖
- **文件路径**: 在`application-dev.yml`中配置`coder.filePath`
- **数据库连接**: 在`application-dev.yml`中配置数据源信息
- **Redis配置**: 在`application-dev.yml`中配置Redis连接信息
### 日志配置
- **日志文件**: `logback-spring.xml`
- **日志级别**: 可通过环境变量调整
- **操作日志**: 自动记录,支持异步处理和定时清理
## 注意事项
- 项目基于Java 17确保开发环境版本匹配
- 使用中文注释,保持代码风格一致
- 新增功能遵循插件化设计模式
- 数据库操作优先使用MyBatis Plus提供的方法
- 安全认证统一使用Sa-Token避免重复造轮子
- 工具类使用前先检查是否已有现成实现