61 lines
2.1 KiB
C#
61 lines
2.1 KiB
C#
|
|
using QYZH.InteractiveMagazine.Models.Dto.Bag;
|
|||
|
|
using QYZH.InteractiveMagazine.Models.Dto.Mall;
|
|||
|
|
using QYZH.InteractiveMagazine.Models.Entity;
|
|||
|
|
|
|||
|
|
namespace QYZH.InteractiveMagazine.IService;
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 小程序商城服务接口
|
|||
|
|
/// </summary>
|
|||
|
|
public interface IWxMallService : IBaseService<ExchangeRecord>
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取商城商品列表(仅上架 + 在售商品)
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="userId">当前用户Id(用于判断是否已拥有)</param>
|
|||
|
|
/// <param name="type">按商品类型筛选(可选)</param>
|
|||
|
|
Task<List<WxProductOutput>> GetProductsAsync(long userId, string? type = null);
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取商品详情
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="userId">当前用户Id</param>
|
|||
|
|
/// <param name="productId">商品Id</param>
|
|||
|
|
Task<WxProductOutput?> GetProductDetailAsync(long userId, long productId);
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 积分兑换商品
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="userId">用户Id</param>
|
|||
|
|
/// <param name="input">兑换参数</param>
|
|||
|
|
Task<ExchangeOutput> ExchangeAsync(long userId, ExchangeInput input);
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取用户兑换记录
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="userId">用户Id</param>
|
|||
|
|
/// <param name="limit">返回数量</param>
|
|||
|
|
Task<List<ExchangeRecordOutput>> GetExchangeRecordsAsync(long userId, int limit = 20);
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取用户背包物品列表
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="userId">用户Id</param>
|
|||
|
|
/// <param name="itemType">按物品类型筛选(可选)</param>
|
|||
|
|
Task<List<UserBagOutput>> GetBagItemsAsync(long userId, string? itemType = null);
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 使用背包物品(补签卡等消耗品)
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="userId">用户Id</param>
|
|||
|
|
/// <param name="input">使用参数</param>
|
|||
|
|
Task<UseItemOutput> UseItemAsync(long userId, UseItemInput input);
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 宠物换肤
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="userId">用户Id</param>
|
|||
|
|
/// <param name="input">换肤参数</param>
|
|||
|
|
Task EquipSkinAsync(long userId, EquipSkinInput input);
|
|||
|
|
}
|