Files
junhong_cmp_fiber/internal/routes/admin.go
邹进 909f4d0ec2
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Failing after 8m39s
feat: 实名即生效套餐沉默期、延期办理与资产出库时间
- 迁移 000259~000265:套餐记录沉默期字段与扫描索引、套餐默认沉默期、延期政策/流水/订单/批次/明细 5 张表、默认政策与系统配置(总开关默认关闭)、企微审批白名单、卡与设备出库时间及出库记录
- 沉默期设置(订单发放、自动购包、钱包续费)、后台购买时调整(超默认值按政策免审或企微审批)、统一判定与激活闸门、排队与孤儿扫描跳过过期套餐、过期套餐禁止退款、每 10 分钟扫描
- 总开关专用接口与打开前 4 项检查;延期政策;延期资格与计费;H5 自助与后台二维码在线支付(商户池路由)、支付回调与查单恢复、线下登记、特殊/批量延期、异常重试与原路退款;沉默期审批场景与终态处理
- 换货沉默期流水与出库时间;卡/设备列表、详情、导出与出库记录接口;延期订单与即将过期套餐列表及导出;财务流水纳入延期支付
- 沉默期与出库时间回填工具 cmd/silence-backfill;前端接口变更说明

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 16:32:58 +09:00

213 lines
8.7 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package routes
import (
"github.com/gofiber/fiber/v2"
"github.com/break/junhong_cmp_fiber/internal/bootstrap"
"github.com/break/junhong_cmp_fiber/pkg/openapi"
)
// RegisterAdminRoutes 注册管理后台相关路由
func RegisterAdminRoutes(router fiber.Router, handlers *bootstrap.Handlers, middlewares *bootstrap.Middlewares, doc *openapi.Generator, basePath string) {
// 认证路由已迁移到 /api/auth,参见 RegisterAuthRoutes
authGroup := router.Group("", middlewares.AdminAuth)
if handlers.Account != nil {
registerAccountRoutes(authGroup, handlers.Account, doc, basePath)
}
if handlers.Role != nil {
registerRoleRoutes(authGroup, handlers.Role, doc, basePath)
}
if handlers.Permission != nil {
registerPermissionRoutes(authGroup, handlers.Permission, doc, basePath)
}
// 店铺负责人批量交接与导入的静态路径必须先于 /shops/:id 注册,否则会被动态参数吞掉。
if handlers.BusinessUserGroup != nil {
registerShopBusinessOwnerBatchRoute(authGroup, handlers.BusinessUserGroup, doc, basePath)
}
if handlers.ShopBusinessOwnerImport != nil {
registerShopBusinessOwnerImportRoutes(authGroup, handlers.ShopBusinessOwnerImport, doc, basePath)
}
// 手机号资产关联的静态路径必须先于 DELETE /:id 注册,避免导入任务路径被动态主键吞掉。
if handlers.PhoneAssetAssociation != nil {
registerPhoneAssetAssociationRoutes(authGroup, handlers.PhoneAssetAssociation, doc, basePath)
}
if handlers.Shop != nil {
registerShopRoutes(authGroup, handlers.Shop, doc, basePath)
}
if handlers.ShopRole != nil {
registerShopRoleRoutes(authGroup, handlers.ShopRole, doc, basePath)
}
if handlers.ShopCommission != nil {
registerShopCommissionRoutes(authGroup, handlers.ShopCommission, doc, basePath)
}
if handlers.AgentDistributionRegistration != nil {
registerAgentDistributionRegistrationRoutes(authGroup, handlers.AgentDistributionRegistration, doc, basePath)
}
if handlers.WithdrawalQualification != nil {
registerWithdrawalQualificationRoutes(authGroup, handlers.WithdrawalQualification, doc, basePath)
}
if handlers.Shop != nil {
registerShopDetailRoute(authGroup, handlers.Shop, doc, basePath)
}
if handlers.CommissionWithdrawal != nil {
registerCommissionWithdrawalRoutes(authGroup, handlers.CommissionWithdrawal, doc, basePath)
}
if handlers.CommissionWithdrawalSetting != nil {
registerCommissionWithdrawalSettingRoutes(authGroup, handlers.CommissionWithdrawalSetting, doc, basePath)
}
if handlers.Enterprise != nil {
registerEnterpriseRoutes(authGroup, handlers.Enterprise, doc, basePath)
}
if handlers.EnterpriseCard != nil {
registerEnterpriseCardRoutes(authGroup, handlers.EnterpriseCard, doc, basePath)
}
if handlers.EnterpriseDevice != nil {
registerEnterpriseDeviceRoutes(authGroup, handlers.EnterpriseDevice, doc, basePath)
}
if handlers.Authorization != nil {
registerAuthorizationRoutes(authGroup, handlers.Authorization, doc, basePath)
}
if handlers.IotCard != nil {
registerIotCardRoutes(authGroup, handlers.IotCard, handlers.IotCardImport, doc, basePath)
}
if handlers.ExportTask != nil {
registerExportTaskRoutes(authGroup, handlers.ExportTask, doc, basePath)
}
if handlers.Notification != nil {
registerNotificationRoutes(authGroup, handlers.Notification, doc, basePath)
}
if handlers.H5PopupConfiguration != nil {
registerH5PopupConfigurationRoutes(authGroup, handlers.H5PopupConfiguration, doc, basePath)
}
if handlers.Device != nil {
registerDeviceRoutes(authGroup, handlers.Device, handlers.DeviceImport, doc, basePath)
}
if handlers.AssetLifecycle != nil {
registerAssetLifecycleRoutes(authGroup, handlers.AssetLifecycle, doc, basePath)
}
if handlers.AssetAllocationRecord != nil {
registerAssetAllocationRecordRoutes(authGroup, handlers.AssetAllocationRecord, doc, basePath)
}
if handlers.Storage != nil {
registerStorageRoutes(authGroup, handlers.Storage, doc, basePath)
}
if handlers.Carrier != nil {
registerCarrierRoutes(authGroup, handlers.Carrier, doc, basePath)
}
if handlers.PackageSeries != nil {
registerPackageSeriesRoutes(authGroup, handlers.PackageSeries, doc, basePath)
}
if handlers.Package != nil {
registerPackageRoutes(authGroup, handlers.Package, doc, basePath)
}
if handlers.PackageUsage != nil {
registerPackageUsageRoutes(authGroup, handlers.PackageUsage, doc, basePath)
}
if handlers.PackageTrafficAlert != nil {
registerPackageTrafficAlertRoutes(authGroup, handlers.PackageTrafficAlert, doc, basePath)
}
if handlers.AssetAutoRenewal != nil {
registerAssetAutoRenewalRoutes(authGroup, handlers.AssetAutoRenewal, doc, basePath)
}
if handlers.StopResumeRule != nil {
registerStopResumeRuleRoutes(authGroup, handlers.StopResumeRule, doc, basePath)
}
if handlers.OperationsReport != nil {
registerOperationsReportRoutes(authGroup, handlers.OperationsReport, doc, basePath)
}
if handlers.ShopPackageBatchAllocation != nil {
registerShopPackageBatchAllocationRoutes(authGroup, handlers.ShopPackageBatchAllocation, doc, basePath)
}
if handlers.ShopPackageBatchPricing != nil {
registerShopPackageBatchPricingRoutes(authGroup, handlers.ShopPackageBatchPricing, doc, basePath)
}
if handlers.ShopSeriesGrant != nil {
registerShopSeriesGrantRoutes(authGroup, handlers.ShopSeriesGrant, doc, basePath)
}
if handlers.AdminOrder != nil {
registerAdminOrderRoutes(authGroup, handlers.AdminOrder, doc, basePath)
}
if handlers.AdminExchange != nil {
registerAdminExchangeRoutes(authGroup, handlers.AdminExchange, doc, basePath)
}
if handlers.PollingConfig != nil {
registerPollingConfigRoutes(authGroup, handlers.PollingConfig, doc, basePath)
}
if handlers.PackageSilence != nil {
registerPackageSilenceRoutes(authGroup, handlers.PackageSilence, doc, basePath)
}
if handlers.PollingPause != nil {
registerPollingPauseRoutes(authGroup, handlers.PollingPause, doc, basePath)
}
if handlers.CarrierScheduler != nil {
registerCarrierSchedulerRoutes(authGroup, handlers.CarrierScheduler, doc, basePath)
}
if handlers.GatewayRateLimit != nil {
registerGatewayRateLimitRoutes(authGroup, handlers.GatewayRateLimit, doc, basePath)
}
if handlers.PollingConcurrency != nil {
registerPollingConcurrencyRoutes(authGroup, handlers.PollingConcurrency, doc, basePath)
}
if handlers.PollingMonitoring != nil {
registerPollingMonitoringRoutes(authGroup, handlers.PollingMonitoring, doc, basePath)
}
if handlers.PollingAlert != nil {
registerPollingAlertRoutes(authGroup, handlers.PollingAlert, doc, basePath)
}
if handlers.PollingCleanup != nil {
registerPollingCleanupRoutes(authGroup, handlers.PollingCleanup, doc, basePath)
}
if handlers.PollingManualTrigger != nil {
registerPollingManualTriggerRoutes(authGroup, handlers.PollingManualTrigger, doc, basePath)
}
if handlers.PollingPriority != nil {
registerPollingPriorityRoutes(authGroup, handlers.PollingPriority, doc, basePath)
}
if handlers.Asset != nil {
registerAssetRoutes(authGroup, handlers.Asset, handlers.AssetWallet, doc, basePath)
registerPackageExpiryRoutes(authGroup, handlers.Asset, doc, basePath)
}
if handlers.WechatConfig != nil {
registerWechatConfigRoutes(authGroup, handlers.WechatConfig, doc, basePath)
}
if handlers.PaymentMerchant != nil {
registerPaymentMerchantRoutes(authGroup, handlers.PaymentMerchant, doc, basePath)
}
if handlers.EmployeeCollection != nil {
registerEmployeeCollectionRoutes(authGroup, handlers.EmployeeCollection, doc, basePath)
registerEmployeeCollectionBillRoutes(authGroup, handlers.EmployeeCollection, doc, basePath)
registerEmployeeCollectionApplicationRoutes(authGroup, handlers.EmployeeCollection, doc, basePath)
}
if handlers.AgentRecharge != nil {
registerAgentSelfRechargePaymentMethodRoutes(authGroup, handlers.AgentRecharge, doc, basePath)
registerAgentRechargeRoutes(authGroup, handlers.AgentRecharge, doc, basePath)
}
if handlers.Refund != nil {
registerRefundRoutes(authGroup, handlers.Refund, doc, basePath)
}
if handlers.OrderPackageInvalidate != nil {
registerOrderPackageInvalidateRoutes(authGroup, handlers.OrderPackageInvalidate, doc, basePath)
}
if handlers.AssetPackageBatchOrder != nil {
registerAssetPackageBatchOrderRoutes(authGroup, handlers.AssetPackageBatchOrder, doc, basePath)
}
if handlers.BusinessUserGroup != nil {
registerBusinessUserGroupRoutes(authGroup, handlers.BusinessUserGroup, doc, basePath)
}
if handlers.SuperAdmin != nil {
registerSuperAdminRoutes(authGroup, handlers.SuperAdmin, doc, basePath)
}
if handlers.SystemConfig != nil {
registerSystemConfigRoutes(authGroup, handlers.SystemConfig, doc, basePath)
}
if handlers.Audit != nil {
registerAuditRoutes(authGroup, handlers.Audit, doc, basePath)
}
if handlers.WeCom != nil {
registerWeComRoutes(authGroup, handlers.WeCom, doc, basePath)
}
}