using QYZH.InteractiveMagazine.Models.Dto; using QYZH.InteractiveMagazine.Models.Dto.Points; using QYZH.InteractiveMagazine.Models.Entity; namespace QYZH.InteractiveMagazine.IService; /// /// 积分服务接口 /// public interface IPointsService : IBaseService { // ==================== 带事务版本(独立调用) ==================== /// /// 增加积分(带事务) /// /// 增加积分参数 /// 增加结果 Task AddPointsAsync(AddPointsInput input); /// /// 扣除积分(带事务,含余额不足校验) /// /// 扣除积分参数 /// 扣除结果 Task DeductPointsAsync(DeductPointsInput input); // ==================== 无事务版本(供外部事务调用) ==================== /// /// 增加积分(无事务,需在外部事务中调用) /// /// 增加积分参数 /// 增加结果 Task AddPointsInTranAsync(AddPointsInput input); /// /// 扣除积分(无事务,需在外部事务中调用,含余额不足校验) /// /// 扣除积分参数 /// 扣除结果 Task DeductPointsInTranAsync(DeductPointsInput input); // ==================== 查询 ==================== /// /// 查询用户当前积分余额 /// /// 用户Id /// 当前积分余额 Task GetUserPointsAsync(long userId); /// /// 获取用户积分概览(当前余额 + 累计收入 + 累计支出) /// /// 用户Id /// 积分概览 Task GetPointsSummaryAsync(long userId); /// /// 分页查询积分流水 /// /// 查询参数 /// 分页流水列表 Task> GetPointsRecordsAsync(PointsRecordQueryInput input); }