using Tiobon.Core.Model.ViewModels.Extend;
namespace Tiobon.Core.Api.Controllers;
///
/// 开班管理(Controller)
///
[Route("api/[controller]")]
[ApiController, GlobalActionFilter]
[Authorize(Permissions.Name), ApiExplorerSettings(GroupName = Grouping.GroupName_Ghre)]
public class Ghre_OpenClassController : BaseController
{
public Ghre_OpenClassController(IGhre_OpenClassServices service) : base(service)
{
}
#region 查询
///
/// 根据条件查询数据
///
/// 条件
/// status
///
[HttpPost, Route("QueryList/{status}")]
public async Task> QueryByStatus([FromBody] QueryBody body, string status)
{
return await _service.QueryFilterPage(body, $"Status ='{status}'");
}
#endregion
#region 学员
///
/// 学员查询
///
/// 开班ID
///
[HttpPost, Route("QueryStaff/{Id}")]
public async Task>> QueryStaff(long Id) => await _service.QueryStaff(Id);
///
/// 学员新增
///
/// 开班ID
/// 员工ID列表
///
[HttpPost, Route("InsertStaff/{Id}")]
public async Task InsertStaff(long Id, [FromBody] List staffIds) => await _service.InsertStaff(Id, staffIds);
///
/// 学员删除
///
/// 开班ID
/// 员工ID列表
///
[HttpPost, Route("DeleteStaff/{Id}")]
public async Task DeleteStaff(long Id, [FromBody] List staffIds) => await _service.DeleteStaff(Id, staffIds);
///
/// 学员导出
///
/// 开班ID
///
[HttpPost, Route("ExportStaff/{Id}")]
public async Task> ExportStaff(long Id) => await _service.ExportStaff(Id);
#endregion
#region 费用
///
/// 查询团体费用
///
/// 开班ID
///
[HttpPost, Route("QueryGroupFee/{Id}")]
public async Task>> QueryGroupFee(long Id) => await _service.QueryGroupFee(Id);
///
/// 查询个人费用
///
/// 开班ID
///
[HttpPost, Route("QueryPersonalFee/{Id}")]
public async Task>> QueryPersonalFee(long Id) => await _service.QueryPersonalFee(Id);
///
/// 学员费用
///
/// 开班ID
/// 费用信心
///
[HttpPost, Route("InsertFee/{Id}")]
public async Task InsertFee(long Id, [FromBody] InsertGhre_OpenClassFeeInput fee) => await _service.InsertFee(Id, fee);
///
/// 费用删除
///
/// 费用数据ID列表
///
[HttpPost, Route("DeleteFee")]
public async Task DeleteFee([FromBody] List ids) => await _service.DeleteFee(ids);
#endregion
#region 总结
///
/// 总结查询
///
/// 开班ID
///
[HttpPost, Route("QuerySummary/{Id}")]
public async Task> QuerySummary(long Id) => await _service.QuerySummary(Id);
///
/// 总结新增
///
/// 开班ID
/// 员工ID列表
///
[HttpPost, Route("InsertSummary/{Id}")]
public async Task InsertSummary(long Id, [FromBody] InsertGhre_OpenClassInput insert) => await _service.InsertSummary(Id, insert);
#endregion
#region 转入已发布
[HttpPost, Route("TransferPublished/{Id}")]
public async Task TransferPublished(long Id) => await _service.UpdateStatus([Id], "Publish");
[HttpPost, Route("TransferPublished")]
public async Task TransferPublished([FromBody] List Ids) => await _service.UpdateStatus(Ids, "Publish", "TransferPublished");
#endregion
#region 取消发布
[HttpPost, Route("CancelPublished/{Id}")]
public async Task CancelPublished(long Id) => await _service.UpdateStatus([Id], "Temporary", "CancelPublished");
[HttpPost, Route("CancelPublished")]
public async Task CancelPublished([FromBody] List Ids) => await _service.UpdateStatus(Ids, "Temporary", "CancelPublished");
#endregion
#region 转入已开课
[HttpPost, Route("TransferOpening/{Id}")]
public async Task TransferOpening(long Id) => await _service.UpdateStatus([Id], "Opening", "TransferOpening");
[HttpPost, Route("TransferOpening")]
public async Task TransferOpening([FromBody] List Ids) => await _service.UpdateStatus(Ids, "Opening", "TransferOpening");
#endregion
#region 取消开课
[HttpPost, Route("CancelOpening/{Id}")]
public async Task CancelOpening(long Id) => await _service.UpdateStatus([Id], "Publish", "CancelOpening");
[HttpPost, Route("CancelOpening")]
public async Task CancelOpening([FromBody] List Ids) => await _service.UpdateStatus(Ids, "Publish", "CancelOpening");
#endregion
#region 转入已结案
[HttpPost, Route("TransferClose/{Id}")]
public async Task TransferClose(long Id) => await _service.UpdateStatus([Id], "Close");
[HttpPost, Route("TransferClose")]
public async Task TransferClose([FromBody] List Ids) => await _service.UpdateStatus(Ids, "Close");
#endregion
#region 取消结案
[HttpPost, Route("CancelClose/{Id}")]
public async Task CancelClose(long Id) => await _service.UpdateStatus([Id], "Opening");
[HttpPost, Route("CancelClose")]
public async Task CancelClose([FromBody] List Ids) => await _service.UpdateStatus(Ids, "Opening");
#endregion
#region 成绩
///
/// 查询成绩
///
/// 开班ID
///
[HttpPost, Route("QueryScore/{Id}")]
public async Task>> QueryScore(long Id) => await _service.QueryScore(Id);
#endregion
#region 报名
///
/// 报名
///
/// 开班ID
///
[HttpPost, Route("CheckIn/{Id}")]
public async Task CheckIn(long Id) => await _service.CheckIn(Id);
#endregion
#region 课表
///
/// 查询课表
///
/// 开班ID
///
[HttpPost, Route("QuerySchedule/{Id}")]
public async Task> QuerySchedule(long Id) => await _service.QuerySchedule(Id);
#endregion
#region 签到
///
/// 签到
///
/// 开班ID
///
[HttpPost, Route("AttendCheckIn/{Id}")]
public async Task AttendCheckIn(long Id) => await _service.Attend(Id, "CheckIn");
#endregion
#region 签退
///
/// 签退
///
/// 开班ID
///
[HttpPost, Route("AttendCheckOut/{Id}")]
public async Task AttendCheckOut(long Id) => await _service.Attend(Id, "CheckOut");
#endregion
#region 邮件
///
/// 邮件
///
/// 开班ID
///
[HttpPost, Route("Email/{Id}")]
public async Task Email(long Id) => await _service.Email(Id);
#endregion
#region 统计
///
/// 统计
///
/// 开班ID
///
[HttpPost, Route("QueryStatistic/{Id}")]
public async Task> QueryStatistic(long Id) => await _service.QueryStatistic(Id);
#endregion
}