refactor: 注册微信配置和代理充值模块到 Bootstrap 和 OpenAPI 文档生成器
- 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 <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -48,7 +48,7 @@ func initHandlers(svc *services, deps *Dependencies) *Handlers {
|
|||||||
AdminOrder: admin.NewOrderHandler(svc.Order, validate),
|
AdminOrder: admin.NewOrderHandler(svc.Order, validate),
|
||||||
H5Order: h5.NewOrderHandler(svc.Order),
|
H5Order: h5.NewOrderHandler(svc.Order),
|
||||||
H5Recharge: h5.NewRechargeHandler(svc.Recharge),
|
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),
|
PollingConfig: admin.NewPollingConfigHandler(svc.PollingConfig),
|
||||||
PollingConcurrency: admin.NewPollingConcurrencyHandler(svc.PollingConcurrency),
|
PollingConcurrency: admin.NewPollingConcurrencyHandler(svc.PollingConcurrency),
|
||||||
PollingMonitoring: admin.NewPollingMonitoringHandler(svc.PollingMonitoring),
|
PollingMonitoring: admin.NewPollingMonitoringHandler(svc.PollingMonitoring),
|
||||||
@@ -57,5 +57,7 @@ func initHandlers(svc *services, deps *Dependencies) *Handlers {
|
|||||||
PollingManualTrigger: admin.NewPollingManualTriggerHandler(svc.PollingManualTrigger),
|
PollingManualTrigger: admin.NewPollingManualTriggerHandler(svc.PollingManualTrigger),
|
||||||
Asset: admin.NewAssetHandler(svc.Asset, svc.Device, svc.StopResumeService),
|
Asset: admin.NewAssetHandler(svc.Asset, svc.Device, svc.StopResumeService),
|
||||||
AssetWallet: admin.NewAssetWalletHandler(svc.AssetWallet),
|
AssetWallet: admin.NewAssetWalletHandler(svc.AssetWallet),
|
||||||
|
WechatConfig: admin.NewWechatConfigHandler(svc.WechatConfig),
|
||||||
|
AgentRecharge: admin.NewAgentRechargeHandler(svc.AgentRecharge),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,11 +32,13 @@ import (
|
|||||||
roleSvc "github.com/break/junhong_cmp_fiber/internal/service/role"
|
roleSvc "github.com/break/junhong_cmp_fiber/internal/service/role"
|
||||||
shopSvc "github.com/break/junhong_cmp_fiber/internal/service/shop"
|
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"
|
pollingSvc "github.com/break/junhong_cmp_fiber/internal/service/polling"
|
||||||
shopCommissionSvc "github.com/break/junhong_cmp_fiber/internal/service/shop_commission"
|
shopCommissionSvc "github.com/break/junhong_cmp_fiber/internal/service/shop_commission"
|
||||||
shopPackageBatchAllocationSvc "github.com/break/junhong_cmp_fiber/internal/service/shop_package_batch_allocation"
|
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"
|
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"
|
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 {
|
type services struct {
|
||||||
@@ -82,6 +84,8 @@ type services struct {
|
|||||||
Asset *assetSvc.Service
|
Asset *assetSvc.Service
|
||||||
AssetWallet *assetWalletSvc.Service
|
AssetWallet *assetWalletSvc.Service
|
||||||
StopResumeService *iotCardSvc.StopResumeService
|
StopResumeService *iotCardSvc.StopResumeService
|
||||||
|
WechatConfig *wechatConfigSvc.Service
|
||||||
|
AgentRecharge *agentRechargeSvc.Service
|
||||||
}
|
}
|
||||||
|
|
||||||
func initServices(s *stores, deps *Dependencies) *services {
|
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 := 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))
|
iotCard.SetPollingCallback(polling.NewAPICallback(deps.Redis, deps.Logger))
|
||||||
|
|
||||||
|
// 创建支付配置服务(Order 和 Recharge 依赖)
|
||||||
|
wechatConfig := wechatConfigSvc.New(s.WechatConfig, s.Order, accountAudit, deps.Redis, deps.Logger)
|
||||||
|
|
||||||
return &services{
|
return &services{
|
||||||
Account: account,
|
Account: account,
|
||||||
AccountAudit: accountAudit,
|
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),
|
ShopSeriesGrant: shopSeriesGrantSvc.New(deps.DB, s.ShopSeriesAllocation, s.ShopPackageAllocation, s.ShopPackageAllocationPriceHistory, s.Shop, s.Package, s.PackageSeries, deps.Logger),
|
||||||
CommissionStats: commissionStatsSvc.New(s.ShopSeriesCommissionStats),
|
CommissionStats: commissionStatsSvc.New(s.ShopSeriesCommissionStats),
|
||||||
PurchaseValidation: purchaseValidation,
|
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),
|
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, 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),
|
PollingConfig: pollingSvc.NewConfigService(s.PollingConfig),
|
||||||
PollingConcurrency: pollingSvc.NewConcurrencyService(s.PollingConcurrencyConfig, deps.Redis),
|
PollingConcurrency: pollingSvc.NewConcurrencyService(s.PollingConcurrencyConfig, deps.Redis),
|
||||||
PollingMonitoring: pollingSvc.NewMonitoringService(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),
|
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),
|
AssetWallet: assetWalletSvc.New(s.AssetWallet, s.AssetWalletTransaction),
|
||||||
StopResumeService: iotCardSvc.NewStopResumeService(deps.DB, deps.Redis, s.IotCard, s.DeviceSimBinding, deps.GatewayClient, deps.Logger),
|
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,
|
||||||
|
),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,6 +53,8 @@ type stores struct {
|
|||||||
AssetWallet *postgres.AssetWalletStore
|
AssetWallet *postgres.AssetWalletStore
|
||||||
AssetWalletTransaction *postgres.AssetWalletTransactionStore
|
AssetWalletTransaction *postgres.AssetWalletTransactionStore
|
||||||
AssetRecharge *postgres.AssetRechargeStore
|
AssetRecharge *postgres.AssetRechargeStore
|
||||||
|
// 微信参数配置
|
||||||
|
WechatConfig *postgres.WechatConfigStore
|
||||||
}
|
}
|
||||||
|
|
||||||
func initStores(deps *Dependencies) *stores {
|
func initStores(deps *Dependencies) *stores {
|
||||||
@@ -105,5 +107,6 @@ func initStores(deps *Dependencies) *stores {
|
|||||||
AssetWallet: postgres.NewAssetWalletStore(deps.DB, deps.Redis),
|
AssetWallet: postgres.NewAssetWalletStore(deps.DB, deps.Redis),
|
||||||
AssetWalletTransaction: postgres.NewAssetWalletTransactionStore(deps.DB, deps.Redis),
|
AssetWalletTransaction: postgres.NewAssetWalletTransactionStore(deps.DB, deps.Redis),
|
||||||
AssetRecharge: postgres.NewAssetRechargeStore(deps.DB, deps.Redis),
|
AssetRecharge: postgres.NewAssetRechargeStore(deps.DB, deps.Redis),
|
||||||
|
WechatConfig: postgres.NewWechatConfigStore(deps.DB, deps.Redis),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,6 +55,8 @@ type Handlers struct {
|
|||||||
PollingManualTrigger *admin.PollingManualTriggerHandler
|
PollingManualTrigger *admin.PollingManualTriggerHandler
|
||||||
Asset *admin.AssetHandler
|
Asset *admin.AssetHandler
|
||||||
AssetWallet *admin.AssetWalletHandler
|
AssetWallet *admin.AssetWalletHandler
|
||||||
|
WechatConfig *admin.WechatConfigHandler
|
||||||
|
AgentRecharge *admin.AgentRechargeHandler
|
||||||
}
|
}
|
||||||
|
|
||||||
// Middlewares 封装所有中间件
|
// Middlewares 封装所有中间件
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ func initWorkerServices(stores *queue.WorkerStores, deps *WorkerDependencies) *q
|
|||||||
stores.PackageSeries,
|
stores.PackageSeries,
|
||||||
stores.PackageUsage,
|
stores.PackageUsage,
|
||||||
stores.Package,
|
stores.Package,
|
||||||
|
nil, // wechatConfigService: 超时取消不需要
|
||||||
nil, // wechatPayment: 超时取消不需要
|
nil, // wechatPayment: 超时取消不需要
|
||||||
nil, // queueClient: 超时取消不触发分佣
|
nil, // queueClient: 超时取消不触发分佣
|
||||||
deps.Logger,
|
deps.Logger,
|
||||||
|
|||||||
@@ -110,4 +110,10 @@ func RegisterAdminRoutes(router fiber.Router, handlers *bootstrap.Handlers, midd
|
|||||||
if handlers.Asset != nil {
|
if handlers.Asset != nil {
|
||||||
registerAssetRoutes(authGroup, handlers.Asset, handlers.AssetWallet, doc, basePath)
|
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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ func BuildDocHandlers() *bootstrap.Handlers {
|
|||||||
AdminOrder: admin.NewOrderHandler(nil, nil),
|
AdminOrder: admin.NewOrderHandler(nil, nil),
|
||||||
H5Order: h5.NewOrderHandler(nil),
|
H5Order: h5.NewOrderHandler(nil),
|
||||||
H5Recharge: h5.NewRechargeHandler(nil),
|
H5Recharge: h5.NewRechargeHandler(nil),
|
||||||
PaymentCallback: callback.NewPaymentHandler(nil, nil, nil),
|
PaymentCallback: callback.NewPaymentHandler(nil, nil, nil, nil),
|
||||||
PollingConfig: admin.NewPollingConfigHandler(nil),
|
PollingConfig: admin.NewPollingConfigHandler(nil),
|
||||||
PollingConcurrency: admin.NewPollingConcurrencyHandler(nil),
|
PollingConcurrency: admin.NewPollingConcurrencyHandler(nil),
|
||||||
PollingMonitoring: admin.NewPollingMonitoringHandler(nil),
|
PollingMonitoring: admin.NewPollingMonitoringHandler(nil),
|
||||||
@@ -54,5 +54,7 @@ func BuildDocHandlers() *bootstrap.Handlers {
|
|||||||
PollingManualTrigger: admin.NewPollingManualTriggerHandler(nil),
|
PollingManualTrigger: admin.NewPollingManualTriggerHandler(nil),
|
||||||
Asset: admin.NewAssetHandler(nil, nil, nil),
|
Asset: admin.NewAssetHandler(nil, nil, nil),
|
||||||
AssetWallet: admin.NewAssetWalletHandler(nil),
|
AssetWallet: admin.NewAssetWalletHandler(nil),
|
||||||
|
WechatConfig: admin.NewWechatConfigHandler(nil),
|
||||||
|
AgentRecharge: admin.NewAgentRechargeHandler(nil),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user