- 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>
178 lines
12 KiB
Go
178 lines
12 KiB
Go
package bootstrap
|
||
|
||
import (
|
||
"github.com/break/junhong_cmp_fiber/internal/polling"
|
||
accountSvc "github.com/break/junhong_cmp_fiber/internal/service/account"
|
||
accountAuditSvc "github.com/break/junhong_cmp_fiber/internal/service/account_audit"
|
||
assetAllocationRecordSvc "github.com/break/junhong_cmp_fiber/internal/service/asset_allocation_record"
|
||
authSvc "github.com/break/junhong_cmp_fiber/internal/service/auth"
|
||
carrierSvc "github.com/break/junhong_cmp_fiber/internal/service/carrier"
|
||
commissionCalculationSvc "github.com/break/junhong_cmp_fiber/internal/service/commission_calculation"
|
||
commissionStatsSvc "github.com/break/junhong_cmp_fiber/internal/service/commission_stats"
|
||
commissionWithdrawalSvc "github.com/break/junhong_cmp_fiber/internal/service/commission_withdrawal"
|
||
commissionWithdrawalSettingSvc "github.com/break/junhong_cmp_fiber/internal/service/commission_withdrawal_setting"
|
||
|
||
assetSvc "github.com/break/junhong_cmp_fiber/internal/service/asset"
|
||
assetWalletSvc "github.com/break/junhong_cmp_fiber/internal/service/asset_wallet"
|
||
deviceSvc "github.com/break/junhong_cmp_fiber/internal/service/device"
|
||
deviceImportSvc "github.com/break/junhong_cmp_fiber/internal/service/device_import"
|
||
enterpriseSvc "github.com/break/junhong_cmp_fiber/internal/service/enterprise"
|
||
enterpriseCardSvc "github.com/break/junhong_cmp_fiber/internal/service/enterprise_card"
|
||
enterpriseDeviceSvc "github.com/break/junhong_cmp_fiber/internal/service/enterprise_device"
|
||
iotCardSvc "github.com/break/junhong_cmp_fiber/internal/service/iot_card"
|
||
iotCardImportSvc "github.com/break/junhong_cmp_fiber/internal/service/iot_card_import"
|
||
myCommissionSvc "github.com/break/junhong_cmp_fiber/internal/service/my_commission"
|
||
orderSvc "github.com/break/junhong_cmp_fiber/internal/service/order"
|
||
packageSvc "github.com/break/junhong_cmp_fiber/internal/service/package"
|
||
packageSeriesSvc "github.com/break/junhong_cmp_fiber/internal/service/package_series"
|
||
permissionSvc "github.com/break/junhong_cmp_fiber/internal/service/permission"
|
||
personalCustomerSvc "github.com/break/junhong_cmp_fiber/internal/service/personal_customer"
|
||
purchaseValidationSvc "github.com/break/junhong_cmp_fiber/internal/service/purchase_validation"
|
||
rechargeSvc "github.com/break/junhong_cmp_fiber/internal/service/recharge"
|
||
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 {
|
||
Account *accountSvc.Service
|
||
AccountAudit *accountAuditSvc.Service
|
||
Role *roleSvc.Service
|
||
Permission *permissionSvc.Service
|
||
PersonalCustomer *personalCustomerSvc.Service
|
||
Shop *shopSvc.Service
|
||
Auth *authSvc.Service
|
||
ShopCommission *shopCommissionSvc.Service
|
||
CommissionWithdrawal *commissionWithdrawalSvc.Service
|
||
CommissionWithdrawalSetting *commissionWithdrawalSettingSvc.Service
|
||
CommissionCalculation *commissionCalculationSvc.Service
|
||
Enterprise *enterpriseSvc.Service
|
||
EnterpriseCard *enterpriseCardSvc.Service
|
||
EnterpriseDevice *enterpriseDeviceSvc.Service
|
||
Authorization *enterpriseCardSvc.AuthorizationService
|
||
MyCommission *myCommissionSvc.Service
|
||
IotCard *iotCardSvc.Service
|
||
IotCardImport *iotCardImportSvc.Service
|
||
Device *deviceSvc.Service
|
||
DeviceImport *deviceImportSvc.Service
|
||
AssetAllocationRecord *assetAllocationRecordSvc.Service
|
||
Carrier *carrierSvc.Service
|
||
PackageSeries *packageSeriesSvc.Service
|
||
Package *packageSvc.Service
|
||
PackageDailyRecord *packageSvc.DailyRecordService
|
||
PackageCustomerView *packageSvc.CustomerViewService
|
||
ShopPackageBatchAllocation *shopPackageBatchAllocationSvc.Service
|
||
ShopPackageBatchPricing *shopPackageBatchPricingSvc.Service
|
||
ShopSeriesGrant *shopSeriesGrantSvc.Service
|
||
CommissionStats *commissionStatsSvc.Service
|
||
PurchaseValidation *purchaseValidationSvc.Service
|
||
Order *orderSvc.Service
|
||
Recharge *rechargeSvc.Service
|
||
PollingConfig *pollingSvc.ConfigService
|
||
PollingConcurrency *pollingSvc.ConcurrencyService
|
||
PollingMonitoring *pollingSvc.MonitoringService
|
||
PollingAlert *pollingSvc.AlertService
|
||
PollingCleanup *pollingSvc.CleanupService
|
||
PollingManualTrigger *pollingSvc.ManualTriggerService
|
||
Asset *assetSvc.Service
|
||
AssetWallet *assetWalletSvc.Service
|
||
StopResumeService *iotCardSvc.StopResumeService
|
||
WechatConfig *wechatConfigSvc.Service
|
||
AgentRecharge *agentRechargeSvc.Service
|
||
}
|
||
|
||
func initServices(s *stores, deps *Dependencies) *services {
|
||
purchaseValidation := purchaseValidationSvc.New(deps.DB, s.IotCard, s.Device, s.Package, s.ShopPackageAllocation)
|
||
accountAudit := accountAuditSvc.NewService(s.AccountOperationLog)
|
||
account := accountSvc.New(s.Account, s.Role, s.AccountRole, s.ShopRole, s.Shop, s.Enterprise, accountAudit)
|
||
|
||
// 创建 IotCard service 并设置 polling callback
|
||
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,
|
||
Role: roleSvc.New(s.Role, s.Permission, s.RolePermission),
|
||
Permission: permissionSvc.New(s.Permission, s.AccountRole, s.RolePermission, account, deps.Redis),
|
||
PersonalCustomer: personalCustomerSvc.NewService(s.PersonalCustomer, s.PersonalCustomerPhone, deps.VerificationService, deps.JWTManager, deps.WechatOfficialAccount, deps.Logger),
|
||
Shop: shopSvc.New(s.Shop, s.Account, s.ShopRole, s.Role, s.AccountRole),
|
||
Auth: authSvc.New(s.Account, s.AccountRole, s.RolePermission, s.Permission, s.Shop, deps.TokenManager, deps.Logger),
|
||
ShopCommission: shopCommissionSvc.New(s.Shop, s.Account, s.AgentWallet, s.CommissionWithdrawalRequest, s.CommissionRecord),
|
||
CommissionWithdrawal: commissionWithdrawalSvc.New(deps.DB, s.Shop, s.Account, s.AgentWallet, s.AgentWalletTransaction, s.CommissionWithdrawalRequest),
|
||
CommissionWithdrawalSetting: commissionWithdrawalSettingSvc.New(deps.DB, s.Account, s.CommissionWithdrawalSetting),
|
||
CommissionCalculation: commissionCalculationSvc.New(
|
||
deps.DB,
|
||
s.CommissionRecord,
|
||
s.Shop,
|
||
s.ShopPackageAllocation,
|
||
s.ShopSeriesAllocation,
|
||
s.PackageSeries,
|
||
s.IotCard,
|
||
s.Device,
|
||
s.AgentWallet,
|
||
s.AgentWalletTransaction,
|
||
s.Order,
|
||
s.OrderItem,
|
||
s.Package,
|
||
s.ShopSeriesCommissionStats,
|
||
commissionStatsSvc.New(s.ShopSeriesCommissionStats),
|
||
deps.Logger,
|
||
),
|
||
Enterprise: enterpriseSvc.New(deps.DB, s.Enterprise, s.Shop, s.Account),
|
||
EnterpriseCard: enterpriseCardSvc.New(deps.DB, s.Enterprise, s.EnterpriseCardAuthorization),
|
||
EnterpriseDevice: enterpriseDeviceSvc.New(deps.DB, s.Enterprise, s.Device, s.DeviceSimBinding, s.EnterpriseDeviceAuthorization, s.EnterpriseCardAuthorization, deps.Logger),
|
||
Authorization: enterpriseCardSvc.NewAuthorizationService(s.Enterprise, s.IotCard, s.EnterpriseCardAuthorization, deps.Logger),
|
||
MyCommission: myCommissionSvc.New(deps.DB, s.Shop, s.AgentWallet, s.CommissionWithdrawalRequest, s.CommissionWithdrawalSetting, s.CommissionRecord, s.AgentWalletTransaction),
|
||
IotCard: iotCard,
|
||
IotCardImport: iotCardImportSvc.New(deps.DB, s.IotCardImportTask, deps.QueueClient),
|
||
Device: deviceSvc.New(deps.DB, deps.Redis, s.Device, s.DeviceSimBinding, s.IotCard, s.Shop, s.AssetAllocationRecord, s.ShopPackageAllocation, s.ShopSeriesAllocation, s.PackageSeries, deps.GatewayClient),
|
||
DeviceImport: deviceImportSvc.New(deps.DB, s.DeviceImportTask, deps.QueueClient),
|
||
AssetAllocationRecord: assetAllocationRecordSvc.New(deps.DB, s.AssetAllocationRecord, s.Shop, s.Account),
|
||
Carrier: carrierSvc.New(s.Carrier),
|
||
PackageSeries: packageSeriesSvc.New(s.PackageSeries, s.ShopSeriesAllocation),
|
||
Package: packageSvc.New(s.Package, s.PackageSeries, s.ShopPackageAllocation, s.ShopSeriesAllocation),
|
||
PackageDailyRecord: packageSvc.NewDailyRecordService(deps.DB, deps.Redis, s.PackageUsageDailyRecord, deps.Logger),
|
||
PackageCustomerView: packageSvc.NewCustomerViewService(deps.DB, deps.Redis, s.PackageUsage, deps.Logger),
|
||
ShopPackageBatchAllocation: shopPackageBatchAllocationSvc.New(deps.DB, s.Package, s.ShopPackageAllocation, s.ShopSeriesAllocation, s.Shop),
|
||
ShopPackageBatchPricing: shopPackageBatchPricingSvc.New(deps.DB, s.ShopPackageAllocation, s.ShopPackageAllocationPriceHistory, s.Shop),
|
||
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, 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),
|
||
PollingAlert: pollingSvc.NewAlertService(s.PollingAlertRule, s.PollingAlertHistory, deps.Redis, deps.Logger),
|
||
PollingCleanup: pollingSvc.NewCleanupService(s.DataCleanupConfig, s.DataCleanupLog, deps.Logger),
|
||
PollingManualTrigger: pollingSvc.NewManualTriggerService(s.PollingManualTriggerLog, s.IotCard, deps.Redis, deps.Logger),
|
||
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,
|
||
),
|
||
}
|
||
}
|