feat: 套餐系统升级 - Worker 重构、流量重置、文档与规范更新
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m54s
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m54s
- 重构 Worker 启动流程,引入 bootstrap 模块统一管理依赖注入 - 实现套餐流量重置服务(日/月/年周期重置) - 新增套餐激活排队、加油包绑定、囤货待实名激活逻辑 - 新增订单创建幂等性防重(Redis 业务键 + 分布式锁) - 更新 AGENTS.md/CLAUDE.md:新增注释规范、幂等性规范,移除测试要求 - 添加套餐系统升级完整文档(API文档、使用指南、功能总结、运维指南) - 归档 OpenSpec package-system-upgrade 变更,同步 specs 到主目录 - 新增 queue types 抽象和 Redis 常量定义
This commit is contained in:
89
internal/bootstrap/worker_services.go
Normal file
89
internal/bootstrap/worker_services.go
Normal file
@@ -0,0 +1,89 @@
|
||||
package bootstrap
|
||||
|
||||
import (
|
||||
"github.com/break/junhong_cmp_fiber/internal/service/commission_calculation"
|
||||
"github.com/break/junhong_cmp_fiber/internal/service/commission_stats"
|
||||
packagepkg "github.com/break/junhong_cmp_fiber/internal/service/package"
|
||||
pollingSvc "github.com/break/junhong_cmp_fiber/internal/service/polling"
|
||||
"github.com/break/junhong_cmp_fiber/pkg/queue"
|
||||
)
|
||||
|
||||
type workerServices struct {
|
||||
CommissionCalculation *commission_calculation.Service
|
||||
CommissionStats *commission_stats.Service
|
||||
UsageService *packagepkg.UsageService
|
||||
ActivationService *packagepkg.ActivationService
|
||||
ResetService *packagepkg.ResetService
|
||||
AlertService *pollingSvc.AlertService
|
||||
CleanupService *pollingSvc.CleanupService
|
||||
}
|
||||
|
||||
func initWorkerServices(stores *queue.WorkerStores, deps *WorkerDependencies) *queue.WorkerServices {
|
||||
commissionStatsService := commission_stats.New(stores.ShopSeriesCommissionStats)
|
||||
|
||||
commissionCalculationService := commission_calculation.New(
|
||||
deps.DB,
|
||||
stores.CommissionRecord,
|
||||
stores.Shop,
|
||||
stores.ShopPackageAllocation,
|
||||
stores.ShopSeriesAllocation,
|
||||
stores.PackageSeries,
|
||||
stores.IotCard,
|
||||
stores.Device,
|
||||
stores.Wallet,
|
||||
stores.WalletTransaction,
|
||||
stores.Order,
|
||||
stores.OrderItem,
|
||||
stores.Package,
|
||||
stores.ShopSeriesCommissionStats,
|
||||
commissionStatsService,
|
||||
deps.Logger,
|
||||
)
|
||||
|
||||
usageService := packagepkg.NewUsageService(
|
||||
deps.DB,
|
||||
deps.Redis,
|
||||
stores.PackageUsage,
|
||||
stores.PackageUsageDailyRecord,
|
||||
deps.Logger,
|
||||
)
|
||||
|
||||
activationService := packagepkg.NewActivationService(
|
||||
deps.DB,
|
||||
deps.Redis,
|
||||
stores.PackageUsage,
|
||||
stores.Package,
|
||||
stores.PackageUsageDailyRecord,
|
||||
deps.Logger,
|
||||
)
|
||||
|
||||
resetService := packagepkg.NewResetService(
|
||||
deps.DB,
|
||||
deps.Redis,
|
||||
stores.PackageUsage,
|
||||
deps.Logger,
|
||||
)
|
||||
|
||||
alertService := pollingSvc.NewAlertService(
|
||||
stores.PollingAlertRule,
|
||||
stores.PollingAlertHistory,
|
||||
deps.Redis,
|
||||
deps.Logger,
|
||||
)
|
||||
|
||||
cleanupService := pollingSvc.NewCleanupService(
|
||||
stores.DataCleanupConfig,
|
||||
stores.DataCleanupLog,
|
||||
deps.Logger,
|
||||
)
|
||||
|
||||
return &queue.WorkerServices{
|
||||
CommissionCalculation: commissionCalculationService,
|
||||
CommissionStats: commissionStatsService,
|
||||
UsageService: usageService,
|
||||
ActivationService: activationService,
|
||||
ResetService: resetService,
|
||||
AlertService: alertService,
|
||||
CleanupService: cleanupService,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user