using Microsoft.AspNetCore.Mvc;
using QYZH.InteractiveMagazine.IService;
using QYZH.InteractiveMagazine.Models.Dto;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.WebApi.Controllers;
///
/// 期刊二维码管理
///
[ApiController]
[ApiExplorerSettings(GroupName = nameof(ApiVersionEnum.Platform))]
[Route("api/userJournalQrCode")]
public class UserJournalQrCodeController(IUserJournalService userJournalService) : BaseController
{
///
/// 生成期刊二维码
///
/// 生成输入
/// 二维码记录
[HttpPost("add")]
public async Task> AddAsync([FromBody] CreateUserJournalQrCodeInput input)
{
var result = await userJournalService.CreateQrCodesAsync(input, GetCurrentUserName() ?? "System");
return BaseResponse.Success(result);
}
///
/// 根据期刊Id获取未绑定用户的二维码地址
///
/// 期刊Id
/// 未绑定二维码列表
[HttpGet("unbound/{journalId:long}")]
public async Task>> GetUnboundByJournalIdAsync(long journalId)
{
var result = await userJournalService.GetUnboundQrCodesByJournalIdAsync(journalId);
return BaseResponse>.Success(result);
}
///
/// 分页查询期刊二维码
///
/// 查询条件
/// 分页结果
[HttpPost("pagelist")]
public async Task>> GetPageListAsync([FromBody] UserJournalQrCodeQueryInput input)
{
var result = await userJournalService.GetQrCodePageListAsync(input);
return BaseResponse>.Success(result);
}
///
/// 获取期刊二维码详情
///
/// 二维码记录Id
/// 二维码记录
[HttpGet("detail/{id:long}")]
public async Task> GetDetailAsync(long id)
{
var result = await userJournalService.GetQrCodeDetailAsync(id);
return BaseResponse.Success(result);
}
///
/// 删除未绑定的期刊二维码
///
/// 删除输入
/// 是否成功
[HttpPost("delete")]
public async Task> DeleteAsync([FromBody] DeleteUserJournalQrCodeInput input)
{
var result = await userJournalService.DeleteQrCodeAsync(input, GetCurrentUserName() ?? "System");
return BaseResponse.Success(result);
}
}