refactor: 优化代码结构和类型定义

feat(types): 添加express.d.ts类型引用
style: 格式化express.d.ts中的接口定义
refactor: 移除未使用的AntFC类型导入
chore: 删除自动生成的.umi-production文件
feat: 添加店铺管理相关表和初始化脚本
docs: 更新安全规则和交互指南文档
refactor: 统一使用FC类型替代React.FC
perf: 优化图表组件导入方式
style: 添加.prettierrc配置文件
refactor: 调整组件导入顺序和结构
feat: 添加平台库存管理路由
fix: 修复订单同步时的库存检查逻辑
docs: 更新RBAC设计和租户管理文档
refactor: 优化部门控制器代码
This commit is contained in:
2026-03-30 01:20:57 +08:00
parent d327706087
commit 1b14947e7b
106 changed files with 11251 additions and 38565 deletions

View File

@@ -15,57 +15,45 @@
| 项目 | 错误数 | 主要问题 |
|------|--------|----------|
| **Server** | 252 | 装饰器配置问题TS1206/1240/1241/1270、类型不匹配TS7006/2339 |
| **Dashboard** | 104 | 类型不匹配、productManagementDataSource状态类型冲突、aiSuggestionDataSource问题 |
| **Server** | 3 | 类型定义文件找不到TS2688 |
| **Dashboard** | 1 | lazyLoad.tsx语法错误TS1005 |
### 2.2 Server 错误分布
| 错误代码 | 数量 | 说明 |
|----------|------|------|
| TS1241 | 50 | 无法解析方法装饰器签名 |
| TS1270 | 50 | 装饰器函数返回类型不可分配 |
| TS1206 | 32 | 装饰器无效 |
| TS1240 | 27 | 装饰器签名不匹配 |
| TS7006 | 37 | 参数类型隐式具有 any 类型 |
| TS2339 | 21 | 属性不存在于类型上 |
| TS2305 | 6 | 模块找不到成员 |
| 其他 | 39 | 各种类型错误 |
| TS2688 | 3 | 类型定义文件找不到enums, events, models |
### 2.3 Dashboard 错误分布
| 文件 | 错误数 | 主要问题 |
|------|--------|----------|
| productManagementDataSource.ts | 15 | 状态类型冲突DRAFT vs active |
| OperationLogs/index.tsx | 2 | 日期选择器空值检查 |
| aiSuggestionDataSource.ts | 2 | 类型不匹配 |
| orderManagementDataSource.ts | 5 | 类型不匹配 |
| 其他页面组件 | ~80 | 各种类型问题 |
| lazyLoad.tsx | 1 | 语法错误('>' expected |
### 2.4 核心问题
1. **tsoa装饰器配置问题**Server的TS1206/1240/1241/1270错误均为tsoa装饰器配置不正确
2. **状态类型不一致**productManagementDataSource的ProductStatus类型定义冲突
3. **参数类型any问题**TS7006错误表明部分参数缺少显式类型声明
1. **类型定义文件缺失**Server缺少enums、events、models的类型定义文件
2. **语法错误**Dashboard的lazyLoad.tsx第46行存在语法错误
## 2. 现状分析
### 2.1 服务配置与注册概况
#### SERVICE_CONFIGS 定义的服务(约60个)
#### SERVICE_CONFIGS 定义的服务(157个)
| 类别 | 数量 | 示例 |
|------|------|------|
| CORE | 9 | AuthService, TurboGateway, FeatureGovernance, QuotaGovernance, TenantService, DomainEventBus, BillingService, AuditService, RBACService |
| BUSINESS | 5 | ProductService, SyncService, WarehouseService, WebhookService |
| CORE | 15 | AuthService, TurboGateway, FeatureGovernance, QuotaGovernance, TenantService, DomainEventBus, BillingService, AuditService, RBACService, PluginManager, PriorityAsyncEngine, EventBusOptimization, Warmup, DocsSync, SnowflakeID |
| BUSINESS | 5 | ProductService, SyncService, WarehouseService, WebhookService, ExperimentService |
| TELEMETRY | 10 | MemoryWatchdog, WorkerProfiler, DeadlockAdvisor, DLQMonitor, TransactionScopeService, PredictiveHealth, AutoDiagnostics, CostAttribution, TracingTopo, SemanticLog |
| SECURITY | 7 | SecurityScan, CacheConsistency, PermissionAudit, ContainerSecurity, SSLWatch, DIDHandshake, VaultService |
| NETWORK | 3 | FederatedNode, P2PConnection, PrivateInventorySync |
| AI | 8 | AI Decision, AI Suggestion, AI Agent, AI Analytics等 |
| LOGISTICS | 15+ | RouteOptimizer, LastMileOptimizer, FreightAudit等 |
| FINANCE | 20+ | ReconciliationService, PaymentTermsService, TaxComplianceService等 |
| MARKETING | 10+ | KOLService, MarketingCalendarService, SocialPulseService等 |
| AI | 8 | ChatBot, ImageRecognition, NaturalLanguageProcessing, Recommendation, DecisionExplainability, AgentSwarm, AutonomousSandbox, SelfHealing |
| LOGISTICS | 15+ | RouteOptimizer, LastMileAI, FreightAudit, CongestionFailover, LogisticTelemetry, LastMileOptimizer, SupplierScoring, GlobalFulfillment等 |
| FINANCE | 20+ | CashflowForecast, DynamicPricing, MarginProtector, CurrencyRisk, TaxCompliance, FinanceReconciliation, OrderProfit, PricingAudit等 |
| MARKETING | 10+ | KOL, SocialPulse, MarketingCalendar, AdOptimizer, TrueROAS等 |
#### DomainBootstrap 注册的服务100+个)
#### DomainBootstrap 注册的服务199个)
按优先级分组:
- **CORE_INFRA**FeatureGovernance, QuotaGovernance, AuthService, TurboGateway, CreativeService, TenantService, DomainEventBus, AuditService, ActionAudit, BillingService, BillingEngine等
@@ -78,9 +66,9 @@
### 2.2 发现的问题
#### 问题1配置与注册不一致
- **SERVICE_CONFIGS** 定义了约60个服务
- **DomainBootstrap** 注册了100+个服务
- 部分服务命名不一致如ChatBot vs ChatBotService
- **SERVICE_CONFIGS** 定义了157个服务
- **DomainBootstrap** 注册了199个服务
- 部分服务命名不一致如ChatBot vs ChatBotService已在SERVICE_CONFIGS中通过aliases解决
#### 问题2服务实现不完整
- 约30个服务使用 `Promise.resolve()` 作为init实现无实际功能
@@ -270,12 +258,12 @@
| 文件/目录 | 说明 | 状态 |
|-----------|------|------|
| `pages/Orders/OrderListRefactored.tsx` | 与OrderList.tsx功能重复无路由引用 | ✅ 已删除 |
| `pages/B2B/` 目录 | 与B2BTrade重复无路由引用 | ✅ 已删除 |
| `pages/Return/` | 无路由引用,可能是遗留 | ✅ 已删除 |
#### 待确认清理
| 文件/目录 | 说明 | 建议 |
|-----------|------|------|
| `pages/Return/` | 无路由引用,可能是遗留 | ✅ 已删除 |
| `pages/B2B/` | 与B2BTrade功能重复但仍有路由引用 | ⚠️ 需要进一步确认 |
#### 正常的设计(已验证非重复)
| 文件对 | 关系 | 说明 |
@@ -291,24 +279,30 @@
#### 服务命名不一致示例(部分)
| SERVICE_CONFIGS | DomainBootstrap | 状态 |
|------|------|------|
| ChatBot | ChatBotService | ⚠️ 命名不一致 |
| ImageRecognition | ImageRecognitionService | ⚠️ 命名不一致 |
| NaturalLanguageProcessing | NaturalLanguageProcessingService | ⚠️ 命名不一致 |
| Recommendation | RecommendationService | ⚠️ 命名不一致 |
| RouteOptimizer | RouteOptimizerService | ⚠️ 命名不一致 |
| LastMileAI | LastMileAIService | ⚠️ 命名不一致 |
| FreightAudit | FreightAuditService | ⚠️ 命名不一致 |
| LogisticTelemetry | LogisticTelemetryService | ⚠️ 命名不一致 |
| CashflowForecast | CashflowForecastService | ⚠️ 命名不一致 |
| DynamicPricing | DynamicPricingService | ⚠️ 命名不一致 |
| CurrencyRisk | CurrencyRiskService | ⚠️ 命名不一致 |
| TaxCompliance | TaxComplianceService | ⚠️ 命名不一致 |
| FinanceReconciliation | FinanceReconciliationService | ⚠️ 命名不一致 |
| OrderProfit | OrderProfitService | ⚠️ 命名不一致 |
| PricingAudit | PricingAuditService | ⚠️ 命名不一致 |
| KOL | KOLService | ⚠️ 命名不一致 |
| SocialPulse | SocialPulseService | ⚠️ 命名不一致 |
| MarketingCalendar | MarketingCalendarService | ⚠️ 命名不一致 |
| ChatBot | ChatBotService | ✅ 已通过aliases解决 |
| ImageRecognition | ImageRecognitionService | ✅ 已通过aliases解决 |
| NaturalLanguageProcessing | NaturalLanguageProcessingService | ✅ 已通过aliases解决 |
| Recommendation | RecommendationService | ✅ 已通过aliases解决 |
| RouteOptimizer | RouteOptimizerService | ✅ 已通过aliases解决 |
| LastMileAI | LastMileAIService | ✅ 已通过aliases解决 |
| FreightAudit | FreightAuditService | ✅ 已通过aliases解决 |
| LogisticTelemetry | LogisticTelemetryService | ✅ 已通过aliases解决 |
| CashflowForecast | CashflowForecastService | ✅ 已通过aliases解决 |
| DynamicPricing | DynamicPricingService | ✅ 已通过aliases解决 |
| CurrencyRisk | CurrencyRiskService | ✅ 已通过aliases解决 |
| TaxCompliance | TaxComplianceService | ✅ 已通过aliases解决 |
| FinanceReconciliation | FinanceReconciliationService | ✅ 已通过aliases解决 |
| OrderProfit | OrderProfitService | ✅ 已通过aliases解决 |
| PricingAudit | PricingAuditService | ✅ 已通过aliases解决 |
| KOL | KOLService | ✅ 已通过aliases解决 |
| SocialPulse | SocialPulseService | ✅ 已通过aliases解决 |
| MarketingCalendar | MarketingCalendarService | ✅ 已通过aliases解决 |
#### 同名服务冲突(已解决)
| 冲突1 | 路径1 | 路径2 | 状态 |
|-------|-------|-------|------|
| BehavioralRiskService | `core/governance/` | `services/security/` | ✅ 已合并到services/security |
| PaymentRiskService | `domains/Finance/` | `services/settlement/` | ✅ 已合并到services/settlement |
#### 使用Promise.resolve()作为init实现的服务约30个
这些服务没有实际的初始化逻辑,需要评估是否需要实现或移除:
@@ -383,131 +377,14 @@ TrustEvolution, DisputeClassifier, GreenSupply, HolidayRisk, PackingOptimizer, S
| T23 | 统一配置管理 | 集中管理所有服务配置 | pending |
| T24 | 完善监控体系 | 实现服务健康状态实时监控 | pending |
### Dashboard 31个编译错误修复进度
### Dashboard 1个编译错误修复进度
| 优先级 | 文件 | 错误数 | 修复策略 | 状态 |
|--------|------|--------|----------|------|
| P0 | DataSource层 (4个文件) | 0 | 类型定义修复 | ✅ 已完成 |
| P0 | 页面组件导入问题 | 0 | export default修复 | ✅ 已完成 |
| P0 | ProductList null类型 | 0 | null改为undefined | ✅ 已完成 |
| P0 | Ads/Ad status类型 | 0 | 添加as const断言 | ✅ 已完成 |
| P0 | ProductBatch组件 | 0 | Input导入/as const修复 | ✅ 已完成 |
| P0 | BatchListingModal | 0 | PlatformTik→ShopOutlined | ✅ 已完成 |
| P0 | orderManagementDataSource | 0 | mockShops类型添加 | ✅ 已完成 |
| P1 | 测试文件 | 21 | jest mock类型问题 | pending |
| P2 | ProductPublishForm | 2 | 表单类型问题 | pending |
| P2 | HumanApprovalForm | 4 | 组件类型问题 | pending |
| P0 | lazyLoad.tsx | 1 | 语法错误修复 | pending |
### Server 93个编译错误修复进度
### Server 3个编译错误修复进度
| 优先级 | 问题 | 错误数 | 修复策略 | 状态 |
|--------|------|--------|----------|------|
| P0 | tsoa装饰器配置 | 0 | 配置tsconfig.json | ✅ 已完成 |
| P1 | sequelize模块缺失 | ~15 | 安装依赖或使用替代方案 | pending |
| P1 | TS7006参数any | 37 | 为参数添加显式类型 | pending |
| P1 | TS2339属性不存在 | 21 | 检查并修复类型定义 | pending |
| P2 | 其他 | ~20 | 逐个修复 | pending |
# JS 统一管理 import 导入(推荐方案)
完全可以!**把所有模块的 import 统一放到一个单独文件里**,再统一导出,其他文件直接从这个文件引入,这是 JS/TS 项目最常用的规范写法。
## 一、最简实战示例
### 1. 创建统一导入文件(推荐命名:`utils/index.js`
```javascript
// 统一导入所有需要的模块
import axios from 'axios';
import dayjs from 'dayjs';
import { ref, reactive } from 'vue';
import { getUserInfo } from './api/user';
import { formatMoney } from './tools/format';
// 统一导出(其他文件直接从这里引入)
export {
axios,
dayjs,
ref,
reactive,
getUserInfo,
formatMoney
};
```
### 2. 其他文件使用(无需重复写长路径)
```javascript
// 原来的写法(繁琐、重复)
// import axios from 'axios';
// import { ref } from 'vue';
// import { formatMoney } from '../../tools/format';
// 新写法(一行搞定,清爽统一)
import { axios, ref, formatMoney } from '@/utils';
```
---
## 二、进阶写法:按模块分组(大型项目推荐)
如果模块很多,可以**分文件管理**,结构更清晰:
```
src/
├─ imports/ # 统一导入文件夹
│ ├─ index.js # 主入口
│ ├─ libs.js # 第三方库axios、dayjs
│ ├─ vue.js # Vue 相关 API
│ └─ tools.js # 项目自定义工具
```
**`imports/index.js`(总入口)**
```javascript
// 聚合所有子文件,统一导出
export * from './libs';
export * from './vue';
export * from './tools';
```
**使用**
```javascript
import { axios, ref, formatMoney } from '@/imports';
```
---
## 三、核心优势
1. **代码更简洁**:不用每个文件都写一堆 import
2. **维护更方便**:要修改依赖只改一个文件
3. **路径更短**:解决多层 `../../` 嵌套问题
4. **规范统一**:团队协作导入方式一致
---
## 四、小提示
1. 这种写法**不会影响打包体积**Tree-Shaking摇树优化依然生效没用到的模块不会打包进去
2. 配合别名(`@/`使用体验最佳Vue/React/Vite 都支持配置路径别名
3. 不要过度统一,只把**高频使用**的模块放进去即可
### 总结
1. 新建一个文件统一 `import` + `export`
2. 其他文件直接从这个文件引入
3. 大型项目可分组管理,结构更清晰
4. 安全无副作用,打包体积不受影响
能统一的,全部统一;
能抽离的,全部抽离;
能复用的,全部复用。
前端最值得统一的 8 类:
导入imports
工具函数
接口请求
常量
枚举
全局组件
表单校验
全局配置
| P0 | 类型定义文件缺失 | 3 | 创建或安装类型定义文件 | pending |