8c0244dfa0
- 标题改为 apes-Authon-Server - 移除 apes-Authdata 引用,以全新面貌展示 - 关联仓库更新为组织地址(Server/Web/history) - 路线图阶段编号调整(Phase 5-7)
144 lines
6.8 KiB
Markdown
144 lines
6.8 KiB
Markdown
# 账权模块提取说明
|
||
|
||
> 提取日期:2026-08-09
|
||
> 目标仓库:apes-Authon-Server
|
||
|
||
## 一、提取原则
|
||
|
||
1. **纯账权逻辑**:只提取认证、授权、用户、角色、菜单、权限、多租户、套餐、配额、SSO、操作日志相关的代码
|
||
2. **零业务代码**:不包含溯源(Trace*)、称重(Weight*)、水肥(Fei*)、巡检(Inspection*)、维修(Repair*)、农大同步(Nongda*)、LLM Agent 等任何业务逻辑
|
||
3. **保留包名**:暂保留 `cn.apes.cloud` 包名以最小化改动,后续 Phase 2 再统一重构为 `cn.apes.authon`
|
||
4. **保留依赖**:`apes-commons` 外部 JAR 作为核心依赖保留,提供 AuthContext / @Login / Res / DbEntity 等基础设施
|
||
|
||
## 二、提取文件清单
|
||
|
||
### Controller(11 个)
|
||
|
||
| 文件 | 核心功能 |
|
||
|------|---------|
|
||
| UserController | 密码登录、注册、改密、用户CRUD、企业认证、多企业切换 |
|
||
| PermissionController | 菜单树、权限码、角色CRUD、角色权限分配、成员角色管理 |
|
||
| AccessTokenController | 外部 API Token 的创建/查询/撤销/启用/重新生成 |
|
||
| CustomerController | 客户/企业CRUD、员工管理、应用关联、SSO配置 |
|
||
| CustomerPackageController | 客户套餐管理、配额管理、延期申请 |
|
||
| AppController | 应用CRUD、应用详情(含菜单+权限+关联客户) |
|
||
| SysOrganizationController | 组织架构CRUD、组织树 |
|
||
| SysPackagePlanController | 套餐方案CRUD、套餐权限分配 |
|
||
| SysQuotaController | 配额模板CRUD |
|
||
| SysOperationLogController | 操作日志查询 |
|
||
| UserPreferenceController | 用户偏好(UI尺寸)查询/更新 |
|
||
|
||
### Entity(23 个)
|
||
|
||
UserInfo, SysRole, SysMenu, SysPermission, SysRolePermission, SysMemberRole, SysAccessToken, CustomerInfo, CustomerUser, CustomerApp, CustomerPackage, CustomerPackageQuota, CustomerPackageExtendApply, CustomerQuotaChangeLog, SsoConfig, SysOrganization, SysPackagePlan, SysPackagePlanPermission, SysPackagePlanQuota, SysQuota, UserPreference, SysOperationLog, AppInfo
|
||
|
||
### Service 接口(6 个)
|
||
|
||
CustomerPackageService, SysAccessTokenService, SysOperationLogService, SysPackagePlanQuotaService, SysPackagePlanService, SysQuotaService
|
||
|
||
### Service 实现(16 个)
|
||
|
||
PermissionServiceImpl, UserInfoServiceImpl, SysAccessTokenServiceImpl, SsoServiceImpl, Sso2ServiceImpl, CustomerUserServiceImpl, CustomerInfoServiceImpl, CustomerAppServiceImpl, SysOrganizationServiceImpl, SysPackagePlanServiceImpl, CustomerPackageServiceImpl, SysQuotaServiceImpl, SysPackagePlanQuotaServiceImpl, UserPreferenceServiceImpl, SysOperationLogServiceImpl, AppInfoServiceImpl
|
||
|
||
### Mapper(23 个)
|
||
|
||
对应每个 Entity 各一个 Mapper。
|
||
|
||
### Config(5 个)
|
||
|
||
| 文件 | 说明 |
|
||
|------|------|
|
||
| AccessTokenFilterConfig | 注册 AccessTokenFilter(order=1,拦截 /*) |
|
||
| DataSourceHeaderAspect | @TenantSource AOP 切面,多租户数据源切换 |
|
||
| TenantSource | @TenantSource 注解定义 |
|
||
| HbTokenContext | 伙伴云 Token 的 ThreadLocal 上下文 |
|
||
| SiteConfig | 站点配置(支付域名、Cookie域名) |
|
||
|
||
### Filter(1 个)
|
||
|
||
AccessTokenFilter — 外部 API 鉴权(X-Access-Token / Bearer)
|
||
|
||
### Util(2 个)
|
||
|
||
| 文件 | 说明 |
|
||
|------|------|
|
||
| OperationLogUtil | 操作日志工具(@PostConstruct 抓 bean + AuthContext 获取操作人) |
|
||
| RsaUtil | RSA 加解密(密码加密/解密) |
|
||
|
||
### DTO/VO(15 个)
|
||
|
||
LoginDTO, RegisterDTO, PwdDTO, UserSearchDTO, RoleSearchDTO, SysRoleDTO, CustomerSearchDTO, EnterpriseCertifyDTO, SelectCustomerDTO, PageDTO, RelationDTO, AppSearchDTO, CustomerPackageVO, CustomerPackageExtendApplyVO, CustomerAppVO
|
||
|
||
### Huoban DTO(11 个)
|
||
|
||
UpsertOne, DataCreate, DataUpdate, DataFilter, DataFilterCondition, DataUpsert, BulkDel, TableSub, TableColumn, TableInfo, CategoryConfig — 伙伴云 API 请求/响应模型,被 CustomerInfoServiceImpl 用于同步客户数据到伙伴云
|
||
|
||
## 三、未提取的文件(排除原因)
|
||
|
||
| 文件 | 排除原因 |
|
||
|------|---------|
|
||
| CustomerUiConfigServiceImpl | 依赖 `cn.apes.cloud.domain.weight.CustomerUiConfig`(weight 业务包) |
|
||
| CommonController | 混合业务(文件上传等),非纯账权 |
|
||
| WeightController | 称重业务 |
|
||
| TrackingConfigController | 追踪配置业务 |
|
||
| 所有 Trace*/Weight*/Fei*/Llm*/Nongda* 文件 | 业务模块 |
|
||
| RedissonConfiguration | 通用配置,需按实际部署环境重新配置 |
|
||
| MybatisPlusConfig | 通用配置,需按实际部署环境重新配置 |
|
||
| OssConfiguration | OSS 配置,账权服务不需要 |
|
||
| WebSocketConfig | WebSocket 配置,账权服务不需要 |
|
||
| RestTemplateConfiguration | HTTP 客户端配置,按需添加 |
|
||
| SchedulingConfig | 定时任务配置,按需添加 |
|
||
| JacksonAutoConfiguration | Jackson 配置,Spring Boot 自动配置 |
|
||
|
||
## 四、外部依赖分析
|
||
|
||
### apes-commons 0.0.7-SNAPSHOT
|
||
|
||
提供以下核心类(全部为接口级别依赖,无源码):
|
||
|
||
```
|
||
cn.apes.commons.Res → 统一 API 响应包装
|
||
cn.apes.commons.auth.AuthContext → ThreadLocal 认证上下文
|
||
cn.apes.commons.auth.Login → @Login 注解(方法级,AOP 自动注入)
|
||
cn.apes.commons.auth.LoginUser → 登录用户信息
|
||
cn.apes.commons.auth.LoginCustomer → 登录客户/企业信息
|
||
cn.apes.commons.auth.UserSession → 会话对象(user + customer)
|
||
cn.apes.commons.domain.DbEntity → 基础实体(id/createTime/updateTime/isDel)
|
||
```
|
||
|
||
### 第三方依赖
|
||
|
||
| 依赖 | 用途 |
|
||
|------|------|
|
||
| spring-boot-starter-web | REST API |
|
||
| spring-boot-starter-aop | @TenantSource 切面 / @Login AOP |
|
||
| spring-boot-starter-data-redis | Redis 会话管理 |
|
||
| mybatis-plus-boot-starter | ORM |
|
||
| dynamic-datasource-spring-boot-starter | 多租户数据源 |
|
||
| mysql-connector-java | MySQL 驱动 |
|
||
| lombok | 简化代码 |
|
||
| hutool-all | 通用工具(HMAC 签名、HTTP 调用等) |
|
||
| redisson | Redis 客户端 |
|
||
| fastjson | JSON 序列化 |
|
||
|
||
## 五、耦合度验证
|
||
|
||
提取过程中验证了以下耦合点:
|
||
|
||
1. **业务 Service → 账权 Service 直接调用:0 个** ✅
|
||
2. **业务 Controller → 账权 Controller 直接调用:0 个** ✅
|
||
3. **账权 Service → 业务 Mapper 直接调用:0 个** ✅
|
||
4. **唯一的业务包交叉引用**:`CustomerInfoServiceImpl` → `cn.apes.cloud.domain.huoban.UpsertOne`
|
||
- 解决方案:将 huoban DTO 包一起提取(11 个纯 DTO 文件,无业务逻辑)
|
||
5. **外部 JAR 依赖**:`apes-commons` 提供 AuthContext 等核心类
|
||
- 解决方案:保留为 Maven 依赖,后续 Phase 3 改造为 SDK
|
||
|
||
## 六、后续路线图
|
||
|
||
| 阶段 | 目标 | 状态 |
|
||
|------|------|------|
|
||
| Phase 1 | 验证编译通过 | 待执行 |
|
||
| Phase 2 | 包名重构 cn.apes.cloud → cn.apes.authon | 待启动 |
|
||
| Phase 3 | SDK 化(AuthContext → 远程调用) | 待设计 |
|
||
| Phase 4 | 网关集成(ThreadLocal → HTTP Header) | 待设计 |
|