feat(规则管理): 规则查询接口返回关联通知渠道

Motivation:
前端在展示规则详情与规则列表时,需要同时看到每条规则绑定了哪些通知渠道以及各渠道的启用状态。此前规则接口只返回规则本身,渠道绑定信息需要额外请求才能获取,增加了交互成本。本次让规则读取接口一次性携带关联渠道信息。

Changes:

* 规则模型新增 Channels 字段及渠道条目结构,包含渠道标识、名称、类型和按规则维度的启用开关
* 创建、查询单条、列表查询规则接口在返回结果时填充绑定的渠道信息,无绑定时返回空列表
* 新增批量查询规则与渠道绑定关系的数据访问能力,按规则聚合返回,避免列表场景下逐条查询
* 单个渠道数据读取失败时跳过该条目,不阻断整体结果返回
This commit is contained in:
2026-08-18 14:09:02 +08:00
parent 5eebddc680
commit 7651c57536
3 changed files with 111 additions and 1 deletions
+10
View File
@@ -35,6 +35,13 @@ type Channel struct {
UpdatedAt time.Time `db:"updated_at" json:"updated_at"`
}
type RuleChannelItem struct {
ID int `json:"id"`
Name string `json:"name"`
Type string `json:"type"`
Enabled int `json:"enabled"`
}
type Rule struct {
ID int `db:"id" json:"id"`
Name string `db:"name" json:"name"`
@@ -45,6 +52,9 @@ type Rule struct {
Enabled int `db:"enabled" json:"enabled"`
CreatedAt time.Time `db:"created_at" json:"created_at"`
UpdatedAt time.Time `db:"updated_at" json:"updated_at"`
// Channels holds the channels bound to this rule. Populated by handlers when
// reading rules; each item includes the per-rule enabled switch.
Channels []RuleChannelItem `json:"channels"`
}
type Condition struct {