Files

61 lines
2.1 KiB
C#
Raw Permalink Normal View History

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);
}