Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Failing after 8h37m36s
- M2 批量换绑表头改为“平台登录账号”,只认手机号,细分格式、不存在、多匹配、非平台、已禁用失败原因 - M3 后台订单列表与详情返回 C 端在线购买的交易流水号、支付渠道、商户名称,详情新增全部支付单 payments - M16 预警规则不再返回 real_data_mb,预警列表/详情新增 threshold_mb,导出末列追加“阈值流量(MB)” - M23 设备导入 IMEI 必填,空 IMEI 行记为失败 - OpenSpec Change fix-august-iteration-follow-up-gaps:13/18,导入任务、导出任务的 Worker 端到端验证与前端/运营通知待部署后完成
87 lines
4.4 KiB
Go
87 lines
4.4 KiB
Go
package routes
|
||
|
||
import (
|
||
"github.com/gofiber/fiber/v2"
|
||
|
||
"github.com/break/junhong_cmp_fiber/internal/handler/admin"
|
||
"github.com/break/junhong_cmp_fiber/internal/model/dto"
|
||
"github.com/break/junhong_cmp_fiber/pkg/constants"
|
||
"github.com/break/junhong_cmp_fiber/pkg/errors"
|
||
"github.com/break/junhong_cmp_fiber/pkg/middleware"
|
||
"github.com/break/junhong_cmp_fiber/pkg/openapi"
|
||
)
|
||
|
||
// registerPackageTrafficAlertRoutes 注册套餐真流量预警规则与达量预警路由。
|
||
// 沿用超管/平台路由组级 gate 先例:代理、企业与个人客户账号一律 403。
|
||
// gate 必须挂在功能路径组上:Fiber 的组中间件按路径前缀生效,挂在空路径组上会落到
|
||
// /api/admin 前缀,从而拦截该层其余全部接口。
|
||
func registerPackageTrafficAlertRoutes(router fiber.Router, handler *admin.PackageTrafficAlertHandler, doc *openapi.Generator, basePath string) {
|
||
gate := func(c *fiber.Ctx) error {
|
||
userType := middleware.GetUserTypeFromContext(c.UserContext())
|
||
if userType != constants.UserTypeSuperAdmin && userType != constants.UserTypePlatform {
|
||
return errors.New(errors.CodeForbidden, constants.PlatformManagementForbiddenMessage)
|
||
}
|
||
return c.Next()
|
||
}
|
||
|
||
ruleGroup := router.Group("/package-traffic-alert-rules", gate)
|
||
rulePath := basePath + "/package-traffic-alert-rules"
|
||
|
||
Register(ruleGroup, doc, rulePath, "GET", "", handler.ListRules, RouteSpec{
|
||
Summary: "查询套餐真流量预警规则列表",
|
||
Description: "返回套餐、阈值百分比、启用状态、备注与更新时间,不返回套餐流量额度:判定时按资产当前有效的主套餐与加油包真流量汇总计算,规则创建时无法得知汇总额度;仅超级管理员与平台账号可访问",
|
||
Tags: []string{"套餐管理"},
|
||
Input: new(dto.ListPackageTrafficAlertRuleRequest),
|
||
Output: new(dto.PackageTrafficAlertRuleListResponse),
|
||
Auth: true,
|
||
})
|
||
|
||
Register(ruleGroup, doc, rulePath, "POST", "", handler.CreateRule, RouteSpec{
|
||
Summary: "创建套餐真流量预警规则",
|
||
Description: "每个套餐商品至多一条当前规则;创建时校验套餐存在且商品真流量额度大于零,阈值为 1%~100% 的小数百分比",
|
||
Tags: []string{"套餐管理"},
|
||
Body: new(dto.CreatePackageTrafficAlertRuleRequest),
|
||
Output: new(dto.PackageTrafficAlertRuleItem),
|
||
Auth: true,
|
||
})
|
||
|
||
Register(ruleGroup, doc, rulePath, "PUT", "/:id", handler.UpdateRule, RouteSpec{
|
||
Summary: "修改套餐真流量预警规则",
|
||
Description: "允许修改阈值、启停与备注;修改不影响既有预警快照,停用后扫描不再创建新预警",
|
||
Tags: []string{"套餐管理"},
|
||
Input: new(dto.UpdatePackageTrafficAlertRuleParams),
|
||
Output: new(dto.PackageTrafficAlertRuleItem),
|
||
Auth: true,
|
||
})
|
||
|
||
alertGroup := router.Group("/package-traffic-alerts", gate)
|
||
alertPath := basePath + "/package-traffic-alerts"
|
||
|
||
Register(alertGroup, doc, alertPath, "GET", "", handler.ListAlerts, RouteSpec{
|
||
Summary: "查询套餐真流量达量预警列表",
|
||
Description: "先应用既有资产数据范围;资产、套餐、用量、阈值、到期时间与触发时归属均为触发快照,真流量已用量与额度为主套餐与加油包汇总,threshold_mb 为额度 × 阈值 ÷ 100;支持按触发时间闭区间与通知投递结果筛选",
|
||
Tags: []string{"套餐流量预警"},
|
||
Input: new(dto.ListPackageTrafficAlertRequest),
|
||
Output: new(dto.PackageTrafficAlertListResponse),
|
||
Auth: true,
|
||
})
|
||
|
||
Register(alertGroup, doc, alertPath, "GET", "/:id", handler.GetAlert, RouteSpec{
|
||
Summary: "查询套餐真流量达量预警详情",
|
||
Description: "越权与不存在统一按资源不可见处理;返回冻结快照、通知投递结果与通知已读展示期",
|
||
Tags: []string{"套餐流量预警"},
|
||
Input: new(dto.IDReq),
|
||
Output: new(dto.PackageTrafficAlertDetailResponse),
|
||
Auth: true,
|
||
})
|
||
|
||
Register(alertGroup, doc, alertPath, "POST", "/export", handler.ExportAlerts, RouteSpec{
|
||
Summary: "导出套餐真流量达量预警",
|
||
Description: "复用既有异步导出任务,创建时冻结操作者、筛选、时间范围与可见资产范围;归属列按执行时当前归属补充",
|
||
Tags: []string{"套餐流量预警"},
|
||
Body: new(dto.ExportPackageTrafficAlertRequest),
|
||
Output: new(dto.CreateExportTaskResponse),
|
||
Auth: true,
|
||
})
|
||
}
|