HaniBlindBox/server/HoneyBox/src/HoneyBox.Core/Interfaces/IOrderService.cs
2026-01-27 18:24:03 +08:00

168 lines
5.5 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 HoneyBox.Model.Models;
using HoneyBox.Model.Models.Order;
namespace HoneyBox.Core.Interfaces;
/// <summary>
/// 订单服务接口
/// </summary>
public interface IOrderService
{
#region
/// <summary>
/// 一番赏订单金额计算
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="request">计算请求</param>
/// <returns>计算结果</returns>
Task<OrderCalculationDto> CalculateOrderMoneyAsync(int userId, OrderMoneyRequest request);
/// <summary>
/// 无限赏订单金额计算
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="request">计算请求</param>
/// <returns>计算结果</returns>
Task<OrderCalculationDto> CalculateInfiniteOrderMoneyAsync(int userId, InfiniteOrderMoneyRequest request);
/// <summary>
/// 商城订单金额计算
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="request">计算请求</param>
/// <returns>计算结果</returns>
Task<OrderCalculationDto> CalculateMallOrderMoneyAsync(int userId, MallOrderMoneyRequest request);
#endregion
#region
/// <summary>
/// 一番赏订单创建
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="request">创建请求</param>
/// <returns>创建结果</returns>
Task<OrderBuyResponseDto> CreateOrderAsync(int userId, OrderBuyRequest request);
/// <summary>
/// 无限赏订单创建
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="request">创建请求</param>
/// <returns>创建结果</returns>
Task<OrderBuyResponseDto> CreateInfiniteOrderAsync(int userId, InfiniteOrderBuyRequest request);
#endregion
#region
/// <summary>
/// 获取订单列表
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="request">查询请求</param>
/// <returns>订单列表</returns>
Task<PageResponse<OrderListDto>> GetOrderListAsync(int userId, OrderListRequest request);
/// <summary>
/// 获取订单详情
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="orderNum">订单号</param>
/// <returns>订单详情扁平结构包含goods_list</returns>
Task<OrderInfoDto> GetOrderDetailAsync(int userId, string orderNum);
#endregion
#region
/// <summary>
/// 获取一番赏抽奖结果
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="orderNum">订单号</param>
/// <returns>抽奖结果响应</returns>
Task<PrizeOrderLogResponseDto> GetPrizeOrderLogAsync(int userId, string orderNum);
/// <summary>
/// 获取无限赏抽奖结果
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="orderNum">订单号</param>
/// <returns>无限赏抽奖结果响应</returns>
Task<InfinitePrizeOrderLogResponseDto> GetInfinitePrizeOrderLogAsync(int userId, string orderNum);
#endregion
#region
/// <summary>
/// 获取订单支付状态
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="orderNum">订单号</param>
/// <returns>订单状态响应</returns>
Task<OrderStatusResponseDto> GetOrderStatusAsync(int userId, string orderNum);
/// <summary>
/// 获取订单列表GET方式
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="page">页码</param>
/// <param name="pageSize">每页数量</param>
/// <returns>订单列表响应</returns>
Task<GetOrderListResponseDto> GetOrderListByGetAsync(int userId, int page, int pageSize);
/// <summary>
/// 创建网页支付订单
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="orderNum">订单号</param>
/// <returns>网页支付订单响应</returns>
Task<WebPayOrderResponseDto> CreateWebPayOrderAsync(int userId, string orderNum);
/// <summary>
/// 获取订单URL链接
/// </summary>
/// <param name="orderNum">订单号</param>
/// <returns>订单链接响应</returns>
Task<OrderUrlLinkResponseDto> GetOrderUrlLinkAsync(string orderNum);
/// <summary>
/// 商城下单
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="request">下单请求</param>
/// <returns>订单创建响应</returns>
Task<OrderBuyResponseDto> CreateMallOrderAsync(int userId, MallOrderBuyRequest request);
/// <summary>
/// 获取道具卡列表
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="page">页码</param>
/// <param name="pageSize">每页数量</param>
/// <returns>道具卡列表响应</returns>
Task<ItemCardListResponseDto> GetItemCardListAsync(int userId, int page, int pageSize);
/// <summary>
/// 连击赏秘宝下单
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="request">下单请求</param>
/// <returns>订单创建响应</returns>
Task<OrderBuyResponseDto> CreateInfiniteMibaoOrderAsync(int userId, InfiniteMibaoOrderBuyRequest request);
/// <summary>
/// 获取测试用户Token仅测试环境
/// </summary>
/// <param name="userId">当前用户ID</param>
/// <param name="targetUserId">目标用户ID</param>
/// <returns>测试用户Token</returns>
Task<string> GetUserTestTokenAsync(int userId, int targetUserId);
#endregion
}