using System.Collections.Generic; using System.Threading.Tasks; namespace LiveForum.IService.Flowers { /// /// 送花服务接口 /// public interface IFlowerService { /// /// 检查是否可以送花(1小时限制检查,优先Redis) /// /// 用户ID /// 目标类型:Streamer(主播)/Post(帖子) /// 目标ID /// 是否可以送花 Task CanSendFlowerAsync(long userId, string targetType, long targetId); /// /// 获取花数(优先Redis,再查数据库) /// /// 目标类型:Streamer(主播)/Post(帖子) /// 目标ID /// 花数 Task GetFlowerCountAsync(string targetType, long targetId); /// /// 批量查询花数(仅Post类型) /// /// 目标类型:Streamer(主播)/Post(帖子) /// 目标ID列表 /// 目标ID到花数的映射 Task> BatchGetFlowerCountAsync(string targetType, List targetIds); /// /// 执行送花操作(Redis+队列) /// /// 用户ID /// 目标类型:Streamer(主播)/Post(帖子) /// 目标ID /// 接收者ID(用于消息通知) /// 是否操作成功 Task SendFlowerAsync(long userId, string targetType, long targetId, long receiverId); } }