using Hotline.Application.Snapshot;
using Hotline.Repository.SqlSugar.Extensions;
using Hotline.Share.Dtos;
using Hotline.Share.Dtos.Snapshot;
using Hotline.Share.Tools;
using Hotline.Snapshot;
using Hotline.Snapshot.Interfaces;
using Microsoft.AspNetCore.Mvc;
using System.ComponentModel;
namespace Hotline.Api.Controllers.Snapshot;
///
/// 邀请码管理
///
[Description("邀请码管理")]
public class InviteCodeController : BaseController
{
private readonly IInviteCodeApplication _inviteCodeApplication;
public InviteCodeController(IInviteCodeApplication inviteCodeApplication)
{
_inviteCodeApplication = inviteCodeApplication;
}
///
/// 获取添加邀请码基础数据
///
///
[HttpGet("basedata")]
public async Task> GetBasedataAsync()
{
return new Dictionary
{
{ "OrgName", await _inviteCodeApplication.GetInviteCodeItemsAsync().Where(m => m.ParentOrgId == null)
.Select(m => new Kv{ Key = m.Id, Value = m.OrgName}).ToListAsync() }
};
}
///
/// 获取邀请码集合
///
///
[HttpGet]
public async Task> GetInviteCodeItemsAsync([FromQuery] GetInviteCodeItemsInDto dto)
=> (await _inviteCodeApplication.GetInviteCodeItemsAsync().ToPagedListAsync(dto)).ToPaged();
///
/// 邀请码详情
///
///
///
[HttpGet("{id}")]
public async Task GetInviteCodeDetailAsync( string id)
=> await _inviteCodeApplication.GetInviteCodeItemsAsync().Where(m => m.Id == id).FirstAsync();
///
/// 修改邀请码
///
///
///
[HttpPut]
public async Task UpdateInviteCodeAsync([FromBody] UpdateInviteCodeInDto dto)
=> await _inviteCodeApplication.UpdateInviteCodeAsync(dto);
///
/// 添加部门邀请码
///
///
///
[HttpPost]
public async Task AddInviteCodeAsync([FromBody] AddInviteCodeInDto dto)
=> await _inviteCodeApplication.AddInviteCodeAsync(dto);
}