From 429edf0d19cea5d12845c79e5802f47c262bf5bc Mon Sep 17 00:00:00 2001 From: huang Date: Mon, 16 Mar 2026 23:30:30 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=B3=A8=E5=86=8C=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1=E9=85=8D=E7=BD=AE=E5=92=8C=E4=BB=A3=E7=90=86=E5=85=85?= =?UTF-8?q?=E5=80=BC=E6=A8=A1=E5=9D=97=E5=88=B0=20Bootstrap=20=E5=92=8C=20?= =?UTF-8?q?OpenAPI=20=E6=96=87=E6=A1=A3=E7=94=9F=E6=88=90=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - bootstrap/types.go: 新增 WechatConfigStore/WechatConfigService/WechatConfigHandler/AgentRechargeService/AgentRechargeHandler 字段 - bootstrap/stores.go: 初始化 WechatConfigStore - bootstrap/services.go: 初始化 WechatConfigService(注入 AuditService)和 AgentRechargeService - bootstrap/handlers.go: 初始化 WechatConfigHandler 和 AgentRechargeHandler;PaymentHandler 新增 agentRechargeService 参数 - bootstrap/worker_services.go: 补充 WechatConfigService 注入 - routes/admin.go: 注册 WechatConfig 和 AgentRecharge 路由组 - openapi/handlers.go: 注册 WechatConfigHandler 和 AgentRechargeHandler 到文档生成器 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus --- internal/bootstrap/handlers.go | 4 +++- internal/bootstrap/services.go | 24 ++++++++++++++++++++++-- internal/bootstrap/stores.go | 3 +++ internal/bootstrap/types.go | 2 ++ internal/bootstrap/worker_services.go | 1 + internal/routes/admin.go | 6 ++++++ pkg/openapi/handlers.go | 4 +++- 7 files changed, 40 insertions(+), 4 deletions(-) diff --git a/internal/bootstrap/handlers.go b/internal/bootstrap/handlers.go index fe21ca7..63eb3dd 100644 --- a/internal/bootstrap/handlers.go +++ b/internal/bootstrap/handlers.go @@ -48,7 +48,7 @@ func initHandlers(svc *services, deps *Dependencies) *Handlers { AdminOrder: admin.NewOrderHandler(svc.Order, validate), H5Order: h5.NewOrderHandler(svc.Order), H5Recharge: h5.NewRechargeHandler(svc.Recharge), - PaymentCallback: callback.NewPaymentHandler(svc.Order, svc.Recharge, deps.WechatPayment), + PaymentCallback: callback.NewPaymentHandler(svc.Order, svc.Recharge, svc.AgentRecharge, deps.WechatPayment), PollingConfig: admin.NewPollingConfigHandler(svc.PollingConfig), PollingConcurrency: admin.NewPollingConcurrencyHandler(svc.PollingConcurrency), PollingMonitoring: admin.NewPollingMonitoringHandler(svc.PollingMonitoring), @@ -57,5 +57,7 @@ func initHandlers(svc *services, deps *Dependencies) *Handlers { PollingManualTrigger: admin.NewPollingManualTriggerHandler(svc.PollingManualTrigger), Asset: admin.NewAssetHandler(svc.Asset, svc.Device, svc.StopResumeService), AssetWallet: admin.NewAssetWalletHandler(svc.AssetWallet), + WechatConfig: admin.NewWechatConfigHandler(svc.WechatConfig), + AgentRecharge: admin.NewAgentRechargeHandler(svc.AgentRecharge), } } diff --git a/internal/bootstrap/services.go b/internal/bootstrap/services.go index 1cc6e1c..65c8f60 100644 --- a/internal/bootstrap/services.go +++ b/internal/bootstrap/services.go @@ -32,11 +32,13 @@ import ( roleSvc "github.com/break/junhong_cmp_fiber/internal/service/role" shopSvc "github.com/break/junhong_cmp_fiber/internal/service/shop" + agentRechargeSvc "github.com/break/junhong_cmp_fiber/internal/service/agent_recharge" pollingSvc "github.com/break/junhong_cmp_fiber/internal/service/polling" shopCommissionSvc "github.com/break/junhong_cmp_fiber/internal/service/shop_commission" shopPackageBatchAllocationSvc "github.com/break/junhong_cmp_fiber/internal/service/shop_package_batch_allocation" shopPackageBatchPricingSvc "github.com/break/junhong_cmp_fiber/internal/service/shop_package_batch_pricing" shopSeriesGrantSvc "github.com/break/junhong_cmp_fiber/internal/service/shop_series_grant" + wechatConfigSvc "github.com/break/junhong_cmp_fiber/internal/service/wechat_config" ) type services struct { @@ -82,6 +84,8 @@ type services struct { Asset *assetSvc.Service AssetWallet *assetWalletSvc.Service StopResumeService *iotCardSvc.StopResumeService + WechatConfig *wechatConfigSvc.Service + AgentRecharge *agentRechargeSvc.Service } func initServices(s *stores, deps *Dependencies) *services { @@ -93,6 +97,9 @@ func initServices(s *stores, deps *Dependencies) *services { iotCard := iotCardSvc.New(deps.DB, s.IotCard, s.Shop, s.AssetAllocationRecord, s.ShopPackageAllocation, s.ShopSeriesAllocation, s.PackageSeries, deps.GatewayClient, deps.Logger) iotCard.SetPollingCallback(polling.NewAPICallback(deps.Redis, deps.Logger)) + // 创建支付配置服务(Order 和 Recharge 依赖) + wechatConfig := wechatConfigSvc.New(s.WechatConfig, s.Order, accountAudit, deps.Redis, deps.Logger) + return &services{ Account: account, AccountAudit: accountAudit, @@ -142,8 +149,8 @@ func initServices(s *stores, deps *Dependencies) *services { ShopSeriesGrant: shopSeriesGrantSvc.New(deps.DB, s.ShopSeriesAllocation, s.ShopPackageAllocation, s.ShopPackageAllocationPriceHistory, s.Shop, s.Package, s.PackageSeries, deps.Logger), CommissionStats: commissionStatsSvc.New(s.ShopSeriesCommissionStats), PurchaseValidation: purchaseValidation, - Order: orderSvc.New(deps.DB, deps.Redis, s.Order, s.OrderItem, s.AgentWallet, s.AssetWallet, purchaseValidation, s.ShopPackageAllocation, s.ShopSeriesAllocation, s.IotCard, s.Device, s.PackageSeries, s.PackageUsage, s.Package, deps.WechatPayment, deps.QueueClient, deps.Logger), - Recharge: rechargeSvc.New(deps.DB, s.AssetRecharge, s.AssetWallet, s.AssetWalletTransaction, s.IotCard, s.Device, s.ShopSeriesAllocation, s.PackageSeries, s.CommissionRecord, deps.Logger), + Order: orderSvc.New(deps.DB, deps.Redis, s.Order, s.OrderItem, s.AgentWallet, s.AssetWallet, purchaseValidation, s.ShopPackageAllocation, s.ShopSeriesAllocation, s.IotCard, s.Device, s.PackageSeries, s.PackageUsage, s.Package, wechatConfig, deps.WechatPayment, deps.QueueClient, deps.Logger), + Recharge: rechargeSvc.New(deps.DB, s.AssetRecharge, s.AssetWallet, s.AssetWalletTransaction, s.IotCard, s.Device, s.ShopSeriesAllocation, s.PackageSeries, s.CommissionRecord, wechatConfig, deps.Logger), PollingConfig: pollingSvc.NewConfigService(s.PollingConfig), PollingConcurrency: pollingSvc.NewConcurrencyService(s.PollingConcurrencyConfig, deps.Redis), PollingMonitoring: pollingSvc.NewMonitoringService(deps.Redis), @@ -153,5 +160,18 @@ func initServices(s *stores, deps *Dependencies) *services { Asset: assetSvc.New(deps.DB, s.Device, s.IotCard, s.PackageUsage, s.Package, s.PackageSeries, s.DeviceSimBinding, s.Shop, deps.Redis, iotCard), AssetWallet: assetWalletSvc.New(s.AssetWallet, s.AssetWalletTransaction), StopResumeService: iotCardSvc.NewStopResumeService(deps.DB, deps.Redis, s.IotCard, s.DeviceSimBinding, deps.GatewayClient, deps.Logger), + WechatConfig: wechatConfig, + AgentRecharge: agentRechargeSvc.New( + deps.DB, + s.AgentRecharge, + s.AgentWallet, + s.AgentWalletTransaction, + s.Shop, + s.Account, + wechatConfig, + accountAudit, + deps.Redis, + deps.Logger, + ), } } diff --git a/internal/bootstrap/stores.go b/internal/bootstrap/stores.go index d88da56..2aa3ce1 100644 --- a/internal/bootstrap/stores.go +++ b/internal/bootstrap/stores.go @@ -53,6 +53,8 @@ type stores struct { AssetWallet *postgres.AssetWalletStore AssetWalletTransaction *postgres.AssetWalletTransactionStore AssetRecharge *postgres.AssetRechargeStore + // 微信参数配置 + WechatConfig *postgres.WechatConfigStore } func initStores(deps *Dependencies) *stores { @@ -105,5 +107,6 @@ func initStores(deps *Dependencies) *stores { AssetWallet: postgres.NewAssetWalletStore(deps.DB, deps.Redis), AssetWalletTransaction: postgres.NewAssetWalletTransactionStore(deps.DB, deps.Redis), AssetRecharge: postgres.NewAssetRechargeStore(deps.DB, deps.Redis), + WechatConfig: postgres.NewWechatConfigStore(deps.DB, deps.Redis), } } diff --git a/internal/bootstrap/types.go b/internal/bootstrap/types.go index c70d26c..1fd4129 100644 --- a/internal/bootstrap/types.go +++ b/internal/bootstrap/types.go @@ -55,6 +55,8 @@ type Handlers struct { PollingManualTrigger *admin.PollingManualTriggerHandler Asset *admin.AssetHandler AssetWallet *admin.AssetWalletHandler + WechatConfig *admin.WechatConfigHandler + AgentRecharge *admin.AgentRechargeHandler } // Middlewares 封装所有中间件 diff --git a/internal/bootstrap/worker_services.go b/internal/bootstrap/worker_services.go index 4511490..e2feaa1 100644 --- a/internal/bootstrap/worker_services.go +++ b/internal/bootstrap/worker_services.go @@ -94,6 +94,7 @@ func initWorkerServices(stores *queue.WorkerStores, deps *WorkerDependencies) *q stores.PackageSeries, stores.PackageUsage, stores.Package, + nil, // wechatConfigService: 超时取消不需要 nil, // wechatPayment: 超时取消不需要 nil, // queueClient: 超时取消不触发分佣 deps.Logger, diff --git a/internal/routes/admin.go b/internal/routes/admin.go index 2e88aa0..58640cf 100644 --- a/internal/routes/admin.go +++ b/internal/routes/admin.go @@ -110,4 +110,10 @@ func RegisterAdminRoutes(router fiber.Router, handlers *bootstrap.Handlers, midd if handlers.Asset != nil { registerAssetRoutes(authGroup, handlers.Asset, handlers.AssetWallet, doc, basePath) } + if handlers.WechatConfig != nil { + registerWechatConfigRoutes(authGroup, handlers.WechatConfig, doc, basePath) + } + if handlers.AgentRecharge != nil { + registerAgentRechargeRoutes(authGroup, handlers.AgentRecharge, doc, basePath) + } } diff --git a/pkg/openapi/handlers.go b/pkg/openapi/handlers.go index a141916..6b088bb 100644 --- a/pkg/openapi/handlers.go +++ b/pkg/openapi/handlers.go @@ -45,7 +45,7 @@ func BuildDocHandlers() *bootstrap.Handlers { AdminOrder: admin.NewOrderHandler(nil, nil), H5Order: h5.NewOrderHandler(nil), H5Recharge: h5.NewRechargeHandler(nil), - PaymentCallback: callback.NewPaymentHandler(nil, nil, nil), + PaymentCallback: callback.NewPaymentHandler(nil, nil, nil, nil), PollingConfig: admin.NewPollingConfigHandler(nil), PollingConcurrency: admin.NewPollingConcurrencyHandler(nil), PollingMonitoring: admin.NewPollingMonitoringHandler(nil), @@ -54,5 +54,7 @@ func BuildDocHandlers() *bootstrap.Handlers { PollingManualTrigger: admin.NewPollingManualTriggerHandler(nil), Asset: admin.NewAssetHandler(nil, nil, nil), AssetWallet: admin.NewAssetWalletHandler(nil), + WechatConfig: admin.NewWechatConfigHandler(nil), + AgentRecharge: admin.NewAgentRechargeHandler(nil), } }