# 监测链接接口说明(含 admin 鉴权) ## 业务场景 - 为第三方提供优惠券/活动链接,对曝光(`expose`)与点击(`click`)进行监测。 - 监测数据以多维度(平台 / 场景 / 场景+唯一ID)写入 Redis,并定时落库到 `track_daily_report`,可与 `push_data_report` 汇总分析。 - 触发接口高频,默认只触达 Redis;首次访问会通过缓存判断并自动补全 `track_links` 记录。 ## 名词与存储 - `track_links`:监测链接配置表(event_type, typename(平台,来源 platformOptions), scene, unique_id, path, description)。 - `track_daily_report`:日聚合表(event_count, track_link_id 等)。 - Redis 缓存键: - 链接缓存:`:tracks:link:{eventType}:{platform}:{scene}:{uniqueId}`(30 天)。 - 事件计数(日维):`:tracks:daily:{eventType}:{platform}:{scene}:{uniqueId}:{yyyyMMdd}`。 - 事件计数(时维):`:tracks:hour:{eventType}:{platform}:{scene}:{uniqueId}:{yyyyMMddHH}`。 - 索引集(枚举有数据的维度):`:tracks:daily:index:{yyyyMMdd}:unique` 等。 - 维度缺省值:`scene`/`uniqueId` 为空时使用空字符串。 - 路径模板(交付方自行补域名):`/Tracks/Track?track_id={id}&eventType={eventType}`。 ## 公共接口(无需鉴权) ### 触发监测 - `GET /Tracks/Track` - 用途:记录曝光/点击,快速返回(fire-and-forget)。 - 参数: - `track_id` *(必填)*:监测链接 ID - `eventType` *(必填)*:`expose` 或 `click` - 响应:`{ success: true, message: "ok" }` - 说明:接口不会自动创建链接,必须先调用生成接口拿到 `track_id`。 ### 生成监测链接 - `POST /Tracks/Create` - 参数:`eventType` *(必填)*,`typename`、`scene`、`uniqueId`、`description` *(可空,默认空字符串)* - 响应:`{ success: true, message: "ok", url: "/Tracks/Track?track_id={id}&eventType=..." }` - 说明:如果已存在则复用;内部写入 `track_links` 与缓存。 ### 日报落库 - `GET /Tracks/Daily` - 参数: - `daysAgo`:默认 1(统计昨天) - `reportDate`:`YYYY-MM-DD`,优先于 daysAgo - 响应:`{ success: true, message: "ok", rows: <写入条数> }` - 说明:读取 Redis 的日索引与计数,落库 `track_daily_report`。 ## 管理端接口(需 admin 鉴权,路径前缀 `/api/TracksAdmin/*`) 支持查询/查看/新增/删除/报表查询。 ### 列表 - `POST /api/TracksAdmin/list` - Body:`{ "current":1, "pageSize":10, "getTotal":true, "sort":"id", "order":"DESC|ASC|descending|ascending", "keyword":"tb" }` - 说明:按 event_type/typename/scene/unique_id 模糊搜索。 ### 详情 - `GET /api/TracksAdmin/info?id=123` ### 新增 - `POST /api/TracksAdmin/create` - Body:`{ "event_type":"expose", "typename":1, "scene":"coupon", "unique_id":"u1", "description":"xxx" }` - 说明:`typename` 取值来自前端 `platformOptions`(pushReport.vue 引用的 `platformList`),后台创建始终生成新链接(不复用)。 ### 删除 - `POST /api/TracksAdmin/delete` - Body:`{ "id":123 }` - 说明:删除 DB 记录并清理缓存 `:tracks:link:{eventType}:{platform}:{scene}:{uniqueId}`。 ### 报表列表 - `POST /api/TracksAdmin/report` - Body:`{ "current":1, "pageSize":10, "getTotal":true, "track_link_id":123, "event_type":"expose", "platform":"tb", "scene":"coupon", "unique_id":"u1", "start":"2024-01-01", "end":"2024-01-31" }` - 说明:按链接/事件/平台/场景/唯一ID及日期范围筛选 `track_daily_report`,分页返回。