package com.imutil.service; import java.time.OffsetDateTime; /** * 用量统计服务 *

* 按小时窗口从 im_message / api_call_log 聚合用量到 usage_stat(计费拆账依据)。 * * @author imutil */ public interface UsageStatService { /** * 聚合某小时窗口 [start, end) 的用量,upsert 到 usage_stat(stat_level=1) *

* 幂等:ON CONFLICT,重复跑不产生重复数据,取最新聚合值。 * * @param start 窗口起点(含,整点) * @param end 窗口终点(不含) */ void aggregateHour(OffsetDateTime start, OffsetDateTime end); }