Publish apes-Authon via gitea-publish skill

This commit is contained in:
figmar
2026-08-09 08:06:26 +08:00
commit d863fa0550
119 changed files with 10298 additions and 0 deletions
+144
View File
@@ -0,0 +1,144 @@
# 账权模块提取说明
> 提取日期:2026-08-09
> 源仓库:apes-Authdata (saas-service)
> 目标仓库:apes-Authon
## 一、提取原则
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 | 待设计 |