Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Failing after 8m39s
- 迁移 000259~000265:套餐记录沉默期字段与扫描索引、套餐默认沉默期、延期政策/流水/订单/批次/明细 5 张表、默认政策与系统配置(总开关默认关闭)、企微审批白名单、卡与设备出库时间及出库记录 - 沉默期设置(订单发放、自动购包、钱包续费)、后台购买时调整(超默认值按政策免审或企微审批)、统一判定与激活闸门、排队与孤儿扫描跳过过期套餐、过期套餐禁止退款、每 10 分钟扫描 - 总开关专用接口与打开前 4 项检查;延期政策;延期资格与计费;H5 自助与后台二维码在线支付(商户池路由)、支付回调与查单恢复、线下登记、特殊/批量延期、异常重试与原路退款;沉默期审批场景与终态处理 - 换货沉默期流水与出库时间;卡/设备列表、详情、导出与出库记录接口;延期订单与即将过期套餐列表及导出;财务流水纳入延期支付 - 沉默期与出库时间回填工具 cmd/silence-backfill;前端接口变更说明 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
71 lines
3.9 KiB
Go
71 lines
3.9 KiB
Go
package main
|
||
|
||
import (
|
||
"github.com/gofiber/fiber/v2"
|
||
"go.uber.org/zap"
|
||
|
||
"github.com/break/junhong_cmp_fiber/internal/bootstrap"
|
||
"github.com/break/junhong_cmp_fiber/internal/handler/admin"
|
||
apphandler "github.com/break/junhong_cmp_fiber/internal/handler/app"
|
||
"github.com/break/junhong_cmp_fiber/internal/handler/callback"
|
||
"github.com/break/junhong_cmp_fiber/internal/routes"
|
||
"github.com/break/junhong_cmp_fiber/pkg/openapi"
|
||
)
|
||
|
||
// generateOpenAPIDocs 生成 OpenAPI 文档
|
||
// outputPath: 文档输出路径
|
||
// logger: 日志记录器
|
||
// 生成失败时记录错误但不影响程序继续运行
|
||
func generateOpenAPIDocs(outputPath string, logger *zap.Logger) {
|
||
// 1. 创建生成器
|
||
adminDoc := openapi.NewGenerator("君鸿卡管系统 API", "1.0.0")
|
||
|
||
// 2. 创建临时 Fiber App 用于路由注册
|
||
app := fiber.New()
|
||
|
||
// 3. 创建所有 Handler(使用 nil 依赖,因为只需要路由结构)
|
||
// 新增 Handler 必须注册到 openapi.BuildDocHandlers,代理开放接口也从该入口进入文档生成器。
|
||
handlers := openapi.BuildDocHandlers()
|
||
handlers.Audit = admin.NewAuditHandler(nil, nil)
|
||
handlers.AssetPackageBatchOrder = admin.NewAssetPackageBatchOrderHandler(nil, nil)
|
||
handlers.BusinessUserGroup = admin.NewBusinessUserGroupHandler(nil, nil)
|
||
handlers.ShopBusinessOwnerImport = admin.NewShopBusinessOwnerImportHandler(nil)
|
||
handlers.PhoneAssetAssociation = admin.NewPhoneAssetAssociationHandler(nil, nil)
|
||
// 网关限流 Handler 必须同时进入文档工厂,避免新增管理接口遗漏文档注册。
|
||
handlers.GatewayRateLimit = admin.NewGatewayRateLimitHandler(nil, nil, nil)
|
||
handlers.CarrierScheduler = admin.NewCarrierSchedulerHandler(nil, nil)
|
||
handlers.PollingPause = admin.NewPollingPauseHandler(nil, nil, nil)
|
||
// 套餐真流量预警 Handler 必须同时进入文档工厂,避免新增管理接口遗漏文档注册。
|
||
handlers.PackageTrafficAlert = admin.NewPackageTrafficAlertHandler(nil, nil, nil, nil)
|
||
// 资产钱包自动续费配置 Handler 必须同时进入文档工厂,避免新增管理接口遗漏文档注册。
|
||
handlers.AssetAutoRenewal = admin.NewAssetAutoRenewalConfigHandler(nil, nil)
|
||
// 运营报表 Handler 必须同时进入文档工厂,避免新增管理接口遗漏文档注册。
|
||
handlers.OperationsReport = admin.NewOperationsReportHandler(nil, nil, nil)
|
||
handlers.StopResumeRule = admin.NewStopResumeRuleHandler(nil, nil, nil)
|
||
handlers.ClientPopup = apphandler.NewClientPopupHandler(nil, nil, nil)
|
||
handlers.ClientPackageSilence = apphandler.NewClientPackageSilenceHandler(nil, nil, nil)
|
||
handlers.PackageSilence = admin.NewPackageSilenceHandler(nil, nil, nil, nil, nil)
|
||
handlers.H5PopupConfiguration = admin.NewH5PopupConfigurationHandler(nil, nil, nil)
|
||
// 企业微信 Handler 在此显式装配,避免新增管理接口遗漏文档注册。
|
||
handlers.WeCom = admin.NewWeComHandler(nil, nil)
|
||
handlers.PaymentMerchant = admin.NewPaymentMerchantHandler(nil)
|
||
handlers.EmployeeCollection = admin.NewEmployeeCollectionHandler(nil, nil, nil)
|
||
handlers.AgentDistributionRegistration = admin.NewAgentDistributionRegistrationHandler(nil, nil, nil)
|
||
handlers.WithdrawalQualification = admin.NewWithdrawalQualificationHandler(nil, nil, nil)
|
||
handlers.CMCCRealnameCallback = callback.NewCMCCRealnameHandler(nil, nil, nil, nil, nil, nil, nil)
|
||
handlers.CUCCRealnameCallback = callback.NewCUCCRealnameHandler(nil, nil, nil, nil, nil, nil, nil)
|
||
handlers.CUCCRealnameRemovalCallback = callback.NewCUCCRealnameRemovalHandler(nil, nil, nil, nil, nil)
|
||
handlers.WeComApprovalCallback = callback.NewWeComApprovalHandler(nil)
|
||
|
||
// 4. 注册所有路由到文档生成器
|
||
routes.RegisterRoutesWithDoc(app, handlers, &bootstrap.Middlewares{}, adminDoc)
|
||
|
||
// 5. 保存规范到指定路径
|
||
if err := adminDoc.Save(outputPath); err != nil {
|
||
logger.Error("生成 OpenAPI 文档失败", zap.String("path", outputPath), zap.Error(err))
|
||
return
|
||
}
|
||
|
||
logger.Info("OpenAPI 文档生成成功", zap.String("path", outputPath))
|
||
}
|