Files
QYZH.InteractiveMagazine/QYZH.InteractiveMagazine.IService/IUserJournalService.cs
glz b95c5029f1 feat: 添加期刊二维码管理功能,调整UserJournal的UserId为可空类型
1.  新增数据库脚本修改User表UserId字段为可空
2.  新增期刊二维码CRUD接口与控制器
3.  重构绑定期刊逻辑,优化重复绑定校验
4.  删除冗余的JwtHelper重载方法
2026-07-01 17:05:38 +08:00

64 lines
2.2 KiB
C#

using QYZH.InteractiveMagazine.Models.Dto;
using QYZH.InteractiveMagazine.Models.Entity;
namespace QYZH.InteractiveMagazine.IService;
/// <summary>
/// 用户期刊关联服务接口
/// </summary>
public interface IUserJournalService : IBaseService<UserJournal>
{
/// <summary>
/// 用户绑定期刊(扫码绑定)
/// </summary>
/// <param name="userId">当前用户Id</param>
/// <param name="input">绑定输入</param>
/// <returns>绑定结果</returns>
Task<BindJournalOutput> BindJournalAsync(long userId, BindJournalInput input);
/// <summary>
/// 获取用户的期刊绑定列表
/// </summary>
/// <param name="userId">用户Id</param>
/// <param name="input">查询条件</param>
/// <returns>分页结果</returns>
Task<PageListModel<BindJournalOutput>> GetUserJournalsAsync(long userId, UserJournalQueryInput input);
/// <summary>
/// 取消期刊绑定
/// </summary>
/// <param name="userId">用户Id</param>
/// <param name="id">绑定记录Id</param>
Task UnbindJournalAsync(long userId, long id);
/// <summary>
/// 生成期刊二维码记录
/// </summary>
/// <param name="input">生成输入</param>
/// <param name="operatorId">操作人Id</param>
/// <returns>二维码记录</returns>
Task<UserJournalQrCodeOutput> CreateQrCodeAsync(CreateUserJournalQrCodeInput input, long operatorId);
/// <summary>
/// 分页查询期刊二维码记录
/// </summary>
/// <param name="input">查询条件</param>
/// <returns>分页结果</returns>
Task<PageListModel<UserJournalQrCodeOutput>> GetQrCodePageListAsync(UserJournalQrCodeQueryInput input);
/// <summary>
/// 获取期刊二维码详情
/// </summary>
/// <param name="id">二维码记录Id</param>
/// <returns>二维码记录</returns>
Task<UserJournalQrCodeOutput> GetQrCodeDetailAsync(long id);
/// <summary>
/// 删除未绑定的期刊二维码记录
/// </summary>
/// <param name="input">删除输入</param>
/// <param name="operatorId">操作人Id</param>
/// <returns>是否成功</returns>
Task<bool> DeleteQrCodeAsync(DeleteUserJournalQrCodeInput input, long operatorId);
}