/*********************************************************************** * Project: CoreCms * ProjectName: 核心内容管理系统 * Web: https://www.corecms.net * Author: 大灰灰 * Email: jianweie@163.com * CreateTime: 2025/12/7 * Description: 收益服务接口 ***********************************************************************/ using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Threading.Tasks; using CoreCms.Net.Model.Entities; using CoreCms.Net.Model.ViewModels.Basics; using CoreCms.Net.Model.ViewModels.UI; using SqlSugar; namespace CoreCms.Net.IServices { /// /// 收益服务接口 /// public interface ISQEarningsServices : IBaseServices { #region 前端API方法 /// /// 获取收益统计信息 /// /// 用户ID /// 待提现收益和已提现收益 Task GetEarningsSummaryAsync(int userId); /// /// 获取收益记录列表 /// /// 用户ID /// 页码 /// 每页数量 /// 收益记录列表 Task> GetEarningsRecordListAsync(int userId, int pageIndex = 1, int pageSize = 20); /// /// 获取提现记录列表 /// /// 用户ID /// 页码 /// 每页数量 /// 提现记录列表 Task> GetWithdrawRecordListAsync(int userId, int pageIndex = 1, int pageSize = 20); /// /// 申请提现 /// /// 用户ID /// 提现金额 /// 操作结果 Task ApplyWithdrawAsync(int userId, decimal amount); #endregion #region 后台管理方法 /// /// 添加收益(后台手动添加) /// /// 用户ID /// 预约ID(可为空) /// 房间ID(可为空) /// 房号 /// 房名 /// 房费 /// 收益金额 /// 类型:1=佣金,2=鸽子费 /// 备注 /// 操作员ID /// 操作结果 Task AddEarningsAsync(int userId, int? reservationId, int? roomId, string roomNumber, string roomName, decimal roomFee, decimal earnings, int type, string remark, int operatorId); /// /// 处理提现申请(同意/拒绝/已打款) /// /// 提现记录ID /// 状态:1=已到账,2=已拒绝 /// 操作员ID /// 备注 /// 操作结果 Task ProcessWithdrawAsync(int withdrawId, int status, int operatorId, string remark = null); #endregion #region 重写增删改查操作 /// /// 重写异步插入方法 /// new Task InsertAsync(SQEarningsRecord entity); /// /// 重写异步更新方法 /// new Task UpdateAsync(SQEarningsRecord entity); /// /// 重写删除指定ID的数据 /// new Task DeleteByIdAsync(object id); /// /// 重写删除指定ID集合的数据(批量删除) /// new Task DeleteByIdsAsync(int[] ids); #endregion #region 重写根据条件查询分页数据 /// /// 重写根据条件查询分页数据 /// new Task> QueryPageAsync( Expression> predicate, Expression> orderByExpression, OrderByType orderByType, int pageIndex = 1, int pageSize = 20, bool blUseNoLock = false); #endregion } #region DTO定义 /// /// 收益统计DTO /// public class EarningsSummaryDto { /// /// 待提现收益 /// public decimal pendingAmount { get; set; } /// /// 已提现收益 /// public decimal extractedAmount { get; set; } } /// /// 收益记录DTO /// public class EarningsRecordDto { /// /// 记录ID /// public int id { get; set; } /// /// 时间 /// public string date { get; set; } /// /// 房号 /// public string roomNumber { get; set; } /// /// 房名 /// public string roomName { get; set; } /// /// 房费 /// public decimal roomFee { get; set; } /// /// 收益 /// public decimal earnings { get; set; } /// /// 预约ID /// public int? reservationId { get; set; } /// /// 类型:1=佣金,2=鸽子费 /// public int type { get; set; } /// /// 类型名称 /// public string typeName { get; set; } } /// /// 提现记录DTO /// public class WithdrawRecordDto { /// /// 记录ID /// public int id { get; set; } /// /// 时间 /// public string date { get; set; } /// /// 提现金额 /// public decimal amount { get; set; } /// /// 状态:提现中/已到账/已拒绝 /// public string status { get; set; } /// /// 状态码:0=提现中,1=已到账,2=已拒绝 /// public int statusCode { get; set; } /// /// 备注 /// public string remark { get; set; } } #endregion }