live-forum/server/webapi/LiveForum/LiveForum.IService/Flowers/IFlowerService.cs
2026-03-24 11:27:37 +08:00

48 lines
1.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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