feat: 添加汇率服务和缓存服务,优化数据源和日志服务

refactor: 重构数据源工厂和类型定义,提升代码可维护性

fix: 修复类型转换和状态机文档中的错误

docs: 更新服务架构文档,添加新的服务闭环流程

test: 添加汇率服务单元测试

chore: 清理无用代码和注释,优化代码结构
This commit is contained in:
2026-03-19 14:19:01 +08:00
parent 0dac26d781
commit aa2cf560c6
120 changed files with 33383 additions and 4347 deletions

368
server/src/types/enums.ts Normal file
View File

@@ -0,0 +1,368 @@
/**
* 统一状态枚举定义
* 集中管理所有服务的状态枚举,确保一致性
*/
// 套利机会状态
export enum ArbitrageOpportunityStatus {
PENDING = 'PENDING',
APPROVED = 'APPROVED',
REJECTED = 'REJECTED',
EXECUTING = 'EXECUTING',
EXECUTED = 'EXECUTED',
FAILED = 'FAILED'
}
// 套利执行状态
export enum ArbitrageExecutionStatus {
STARTED = 'STARTED',
PURCHASED = 'PURCHASED',
LISTED = 'LISTED',
SOLD = 'SOLD',
COMPLETED = 'COMPLETED',
FAILED = 'FAILED'
}
// 价格比较状态
export enum PriceComparisonStatus {
ACTIVE = 'ACTIVE',
EXPIRED = 'EXPIRED',
EXECUTED = 'EXECUTED'
}
// 风险等级
export enum RiskLevel {
LOW = 'LOW',
MEDIUM = 'MEDIUM',
HIGH = 'HIGH',
BLOCK = 'BLOCK'
}
// 定价策略
export enum PricingStrategy {
GAME_THEORY = 'GAME_THEORY',
COMPETITION = 'COMPETITION',
DEMAND_BASED = 'DEMAND_BASED',
COST_PLUS = 'COST_PLUS',
DYNAMIC = 'DYNAMIC'
}
// 定价决策状态
export enum PricingDecisionStatus {
PENDING = 'PENDING',
EXECUTED = 'EXECUTED',
REJECTED = 'REJECTED',
EXPIRED = 'EXPIRED'
}
// 价格调整方向
export enum PriceAdjustmentDirection {
INCREASE = 'INCREASE',
DECREASE = 'DECREASE',
MAINTAIN = 'MAINTAIN'
}
// 定价调整频率
export enum PriceAdjustFrequency {
HOURLY = 'HOURLY',
DAILY = 'DAILY',
WEEKLY = 'WEEKLY'
}
// A/B测试状态
export enum ABTestStatus {
PENDING = 'PENDING',
RUNNING = 'RUNNING',
COMPLETED = 'COMPLETED',
STOPPED = 'STOPPED',
PAUSED = 'PAUSED'
}
// 竞争对手监控状态
export enum CompetitorMonitorStatus {
ACTIVE = 'ACTIVE',
INACTIVE = 'INACTIVE',
ERROR = 'ERROR'
}
// 价格预警状态
export enum PriceAlertStatus {
ACTIVE = 'ACTIVE',
RESOLVED = 'RESOLVED',
IGNORED = 'IGNORED'
}
// 自动执行配置状态
export enum AutoExecutionStatus {
ACTIVE = 'ACTIVE',
PAUSED = 'PAUSED',
DISABLED = 'DISABLED'
}
// 自动化级别
export enum AutomationLevel {
LEVEL_1 = 'LEVEL_1',
LEVEL_2 = 'LEVEL_2',
LEVEL_3 = 'LEVEL_3',
LEVEL_4 = 'LEVEL_4',
LEVEL_5 = 'LEVEL_5'
}
// 自动执行模式
export enum ExecutionMode {
AUTO = 'AUTO',
MANUAL = 'MANUAL'
}
// 店铺状态
export enum ShopStatus {
ACTIVE = 'ACTIVE',
INACTIVE = 'INACTIVE',
SYNCING = 'SYNCING',
ERROR = 'ERROR'
}
// 租户状态
export enum TenantStatus {
ACTIVE = 'ACTIVE',
INACTIVE = 'INACTIVE',
SUSPENDED = 'SUSPENDED'
}
// 用户状态
export enum UserStatus {
ACTIVE = 'ACTIVE',
INACTIVE = 'INACTIVE',
LOCKED = 'LOCKED'
}
// 订单状态
export enum OrderStatus {
PENDING = 'PENDING',
PAID = 'PAID',
SHIPPED = 'SHIPPED',
DELIVERED = 'DELIVERED',
CANCELLED = 'CANCELLED',
REFUNDED = 'REFUNDED'
}
// 产品状态
export enum ProductStatus {
ACTIVE = 'ACTIVE',
INACTIVE = 'INACTIVE',
OUT_OF_STOCK = 'OUT_OF_STOCK',
DELETED = 'DELETED'
}
// 广告状态
export enum AdStatus {
ACTIVE = 'ACTIVE',
PAUSED = 'PAUSED',
DELETED = 'DELETED'
}
// 证书状态
export enum CertificateStatus {
VALID = 'VALID',
EXPIRED = 'EXPIRED',
PENDING = 'PENDING',
REVOKED = 'REVOKED'
}
// 策略状态
export enum StrategyStatus {
ACTIVE = 'ACTIVE',
PAUSED = 'PAUSED',
COMPLETED = 'COMPLETED',
FAILED = 'FAILED'
}
// 自动托管会话状态
export enum AutopilotSessionStatus {
IDLE = 'IDLE',
RUNNING = 'RUNNING',
PAUSED = 'PAUSED',
STOPPED = 'STOPPED',
ERROR = 'ERROR'
}
// 自动托管模式
export enum AutopilotMode {
FULL_AUTO = 'FULL_AUTO',
SEMI_AUTO = 'SEMI_AUTO',
MANUAL = 'MANUAL'
}
// 日志类型
export enum LogType {
TASK = 'TASK',
DECISION = 'DECISION',
ERROR = 'ERROR',
WARNING = 'WARNING',
INFO = 'INFO'
}
// 任务状态
export enum TaskStatus {
PENDING = 'PENDING',
RUNNING = 'RUNNING',
COMPLETED = 'COMPLETED',
FAILED = 'FAILED'
}
// 业务类型
export enum BusinessType {
TOC = 'TOC',
TOB = 'TOB'
}
// 排行榜类型
export enum LeaderboardType {
REVENUE = 'REVENUE',
ROI = 'ROI',
GROWTH = 'GROWTH'
}
// 排行榜周期
export enum LeaderboardPeriod {
DAILY = 'DAILY',
WEEKLY = 'WEEKLY',
MONTHLY = 'MONTHLY',
ALL_TIME = 'ALL_TIME'
}
// 商户等级
export enum MerchantTier {
BRONZE = 'BRONZE',
SILVER = 'SILVER',
GOLD = 'GOLD',
PLATINUM = 'PLATINUM',
DIAMOND = 'DIAMOND'
}
// 策略类别
export enum StrategyCategory {
PRICING = 'PRICING',
ADVERTISING = 'ADVERTISING',
PRODUCT_SELECTION = 'PRODUCT_SELECTION',
INVENTORY = 'INVENTORY',
LOGISTICS = 'LOGISTICS',
MARKETING = 'MARKETING'
}
// 风险等级
export enum StrategyRiskLevel {
LOW = 'LOW',
MEDIUM = 'MEDIUM',
HIGH = 'HIGH'
}
// 计费类型
export enum BillingType {
FREE = 'FREE',
ONE_TIME = 'ONE_TIME',
SUBSCRIPTION = 'SUBSCRIPTION',
USAGE_BASED = 'USAGE_BASED'
}
// 权限动作
export enum PermissionAction {
READ = 'READ',
WRITE = 'WRITE',
DELETE = 'DELETE',
EXECUTE = 'EXECUTE'
}
// 角色类型
export enum RoleType {
SYSTEM = 'SYSTEM',
CUSTOM = 'CUSTOM'
}
// 支付方式
export enum PaymentMethod {
CREDIT_CARD = 'CREDIT_CARD',
PAYPAL = 'PAYPAL',
BANK_TRANSFER = 'BANK_TRANSFER',
CASH = 'CASH'
}
// 广告类型
export enum AdType {
SEARCH = 'SEARCH',
DISPLAY = 'DISPLAY',
SOCIAL = 'SOCIAL',
VIDEO = 'VIDEO'
}
// 证书类型
export enum CertificateType {
CE = 'CE',
FCC = 'FCC',
ROHS = 'ROHS',
ISO9001 = 'ISO9001',
ISO14001 = 'ISO14001',
FDA = 'FDA',
UL = 'UL',
CCC = 'CCC',
EXPORT_LICENSE = 'EXPORT_LICENSE',
ORIGIN = 'ORIGIN',
OTHER = 'OTHER'
}
// 安全测试结果
export enum SecurityTestResult {
PASS = 'PASS',
FAIL = 'FAIL',
WARNING = 'WARNING'
}
// 回归测试结果
export enum RegressionTestResult {
PASS = 'PASS',
FAIL = 'FAIL',
SKIPPED = 'SKIPPED'
}
export default {
ArbitrageOpportunityStatus,
ArbitrageExecutionStatus,
PriceComparisonStatus,
RiskLevel,
PricingStrategy,
PricingDecisionStatus,
PriceAdjustmentDirection,
PriceAdjustFrequency,
ABTestStatus,
CompetitorMonitorStatus,
PriceAlertStatus,
AutoExecutionStatus,
AutomationLevel,
ExecutionMode,
ShopStatus,
TenantStatus,
UserStatus,
OrderStatus,
ProductStatus,
AdStatus,
CertificateStatus,
StrategyStatus,
AutopilotSessionStatus,
AutopilotMode,
LogType,
TaskStatus,
BusinessType,
LeaderboardType,
LeaderboardPeriod,
MerchantTier,
StrategyCategory,
StrategyRiskLevel,
BillingType,
PermissionAction,
RoleType,
PaymentMethod,
AdType,
CertificateType,
SecurityTestResult,
RegressionTestResult
}

28
server/src/types/express.d.ts vendored Normal file
View File

@@ -0,0 +1,28 @@
/**
* Express Request 接口扩展
* 添加用户相关属性和追踪上下文
*/
declare global {
namespace Express {
interface User {
id: string;
tenantId: string;
role: string;
email: string;
[key: string]: any;
}
interface Request {
user?: User;
traceContext?: {
tenantId: string;
shopId: string;
traceId: string;
businessType: 'TOC' | 'TOB';
};
}
}
}
export {};