Files
apes-Authon-Server/docs/账权模块提取说明.md
figmar 8c0244dfa0 docs: 更新 README — 去历史化,关联 apes-Authon 组织仓库
- 标题改为 apes-Authon-Server
- 移除 apes-Authdata 引用,以全新面貌展示
- 关联仓库更新为组织地址(Server/Web/history)
- 路线图阶段编号调整(Phase 5-7)
2026-08-09 13:04:21 +08:00

144 lines
6.8 KiB
Markdown
Raw Permalink 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.
# 账权模块提取说明
> 提取日期: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 等基础设施
## 二、提取文件清单
### Controller11 个)
| 文件 | 核心功能 |
|------|---------|
| UserController | 密码登录、注册、改密、用户CRUD、企业认证、多企业切换 |
| PermissionController | 菜单树、权限码、角色CRUD、角色权限分配、成员角色管理 |
| AccessTokenController | 外部 API Token 的创建/查询/撤销/启用/重新生成 |
| CustomerController | 客户/企业CRUD、员工管理、应用关联、SSO配置 |
| CustomerPackageController | 客户套餐管理、配额管理、延期申请 |
| AppController | 应用CRUD、应用详情(含菜单+权限+关联客户) |
| SysOrganizationController | 组织架构CRUD、组织树 |
| SysPackagePlanController | 套餐方案CRUD、套餐权限分配 |
| SysQuotaController | 配额模板CRUD |
| SysOperationLogController | 操作日志查询 |
| UserPreferenceController | 用户偏好(UI尺寸)查询/更新 |
### Entity23 个)
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
### Mapper23 个)
对应每个 Entity 各一个 Mapper。
### Config5 个)
| 文件 | 说明 |
|------|------|
| AccessTokenFilterConfig | 注册 AccessTokenFilterorder=1,拦截 /* |
| DataSourceHeaderAspect | @TenantSource AOP 切面,多租户数据源切换 |
| TenantSource | @TenantSource 注解定义 |
| HbTokenContext | 伙伴云 Token 的 ThreadLocal 上下文 |
| SiteConfig | 站点配置(支付域名、Cookie域名) |
### Filter1 个)
AccessTokenFilter — 外部 API 鉴权(X-Access-Token / Bearer
### Util2 个)
| 文件 | 说明 |
|------|------|
| OperationLogUtil | 操作日志工具(@PostConstruct 抓 bean + AuthContext 获取操作人) |
| RsaUtil | RSA 加解密(密码加密/解密) |
### DTO/VO15 个)
LoginDTO, RegisterDTO, PwdDTO, UserSearchDTO, RoleSearchDTO, SysRoleDTO, CustomerSearchDTO, EnterpriseCertifyDTO, SelectCustomerDTO, PageDTO, RelationDTO, AppSearchDTO, CustomerPackageVO, CustomerPackageExtendApplyVO, CustomerAppVO
### Huoban DTO11 个)
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 | 待设计 |