口径:DAU = 区间内有任意事件的去重活跃身份数 = 去重登录用户(user_id>0) + 去重匿名身份(anon_id 非空且 user_id 空/0)。 + * 登录与匿名分别 COUNT(DISTINCT) 后相加——同一自然人登录前后会被分别计入登录/匿名两类(MVP 看板可接受, + * 真精确合并需稳定 device→user 映射,属后续)。
+ *仿 trade/telemetry 既有 selectMaps 聚合范式(不依赖 DO 列别名映射,跨方言稳); + * ts 为 epoch 毫秒,由 Service 把自然日端点换算为毫秒区间传入。tenant_id 由 MP 多租户拦截自动追加。
+ * + * @param tsStart 区间起始时间戳(epoch 毫秒,含) + * @param tsEnd 区间结束时间戳(epoch 毫秒,含) + * @return DAU(去重活跃身份数;无数据兜底 0) + */ + default Long countActiveIdentities(Long tsStart, Long tsEnd) { + // 登录用户去重数(仅统计 user_id>0 的登录态身份) + List