using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Threading.Tasks; using VOL.Business.IServices; using VOL.Business.IServices.School; using VOL.Business.Services; using VOL.Business.Services.School; using VOL.Core.Filters; using VOL.Core.ManageUser; using VOL.Core.Utilities; using VOL.Model; using VOL.Model.School.Request; using VOL.Model.School.Response; namespace VOL.WebApi.Controllers.Business { /// /// 老师管理 /// [Route("api/[controller]")] [ApiController] [ApiExplorerSettings(GroupName = "v3")] [TypeFilter(typeof(CustomApiResponseFilter))] public class TeacherController : ControllerBase { #region 初始化 private readonly IS_TeacherService _teacherService; public TeacherController( IS_TeacherService teacherService) { _teacherService = teacherService; } #endregion /// /// 获取所有老师名称 /// /// [HttpGet(nameof(GetTeacherNames))] public async Task> GetTeacherNames() { return await _teacherService.GetTeacherNames(); } /// /// 根据年级Id或班级Id获取老师 /// /// [HttpGet(nameof(GetTeacherNamesByGradeId))] public async Task> GetTeacherNamesByGradeId(TeacherListByGradeIdParam paramDto) { return await _teacherService.GetTeacherNamesByGradeId(paramDto); } /// /// 分页获教师列表 /// /// [HttpGet(nameof(GetTeacherPageList))] public async Task> GetTeacherPageList(TeacherPageListParam paramDto) { return await _teacherService.GetTeacherPageList(paramDto); } /// /// 新增 /// /// /// [HttpPost(nameof(AddTeacher))] public async Task AddTeacher([FromBody] AddTeacherParam paramDto) { await _teacherService.AddTeacher(paramDto); return Ok("新增成功"); } /// /// 修改密码 /// /// /// [HttpPost(nameof(ResetPassword))] public async Task ResetPassword(int teacherId) { await _teacherService.ResetPassword(teacherId); return Ok("修改成功"); } /// /// 更新 /// /// /// [HttpPost(nameof(ModifyTeacher))] public async Task ModifyTeacher([FromBody] AddTeacherParam paramDto) { await _teacherService.ModifyTeacher(paramDto); return Ok("更新成功"); } /// /// 更新老师状态 /// /// /// [HttpPost(nameof(UpdateTeacherStatus))] public async Task UpdateTeacherStatus([FromBody] UpdateTeacherStatusParam paramDto) { await _teacherService.UpdateTeacherStatus(paramDto); return Ok("更新成功"); } /// /// 更新老师小程序密码 /// /// /// [HttpPost(nameof(UpdateTeacherPwd))] public async Task UpdateTeacherPwd([FromBody] UpdateTeacherPwdParam paramDto) { await _teacherService.UpdateTeacherPwd(paramDto); return Ok("更新成功"); } /// /// 上传老师头像 /// /// /// 老师手机号 /// 老师姓名 /// [HttpPost(nameof(UploadTeacherPhoto))] public async Task UploadTeacherPhoto(IFormFile file, string teacherPhoneNo, string teacherName) { var url = await _teacherService.UploadTeacherPhoto(file, teacherPhoneNo, teacherName); return url; } /// /// 导出老师列表 /// /// /// [HttpGet(nameof(TeacherExport))] public async Task TeacherExport(TeacherExportParam paramDto) { var rseList = await _teacherService.GetTeacherList(paramDto); var disList = new Dictionary> { { "老师数据", rseList } }; var exportColumns = Tool.GetPropertyNames(); var excelBytes = Tool.ExportToExcel(disList, exportColumns); Response.Headers.Add("Content-Disposition", "attachment; filename=ExportedData.xlsx"); Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; return File(excelBytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $"老师数据{DateTime.Now.ToString("yyyyMMddHHmmss")}"); } /// /// 老师数据统计 /// /// /// [HttpGet(nameof(TeacherDataStats))] public async Task TeacherDataStats(TeacherDataStatsParam paramDto) { return await _teacherService.TeacherDataStats(paramDto); } /// /// 各班级授课次数占比 /// /// /// [HttpGet(nameof(ClassTeachingCountRatio))] public async Task> ClassTeachingCountRatio(QuarterlyParam paramDto) { return await _teacherService.ClassTeachingCountRatio(paramDto); } /// /// 班级体测平均成绩 /// /// /// [HttpGet(nameof(TestResultAvg))] public async Task> TestResultAvg(ClassDataStatsParam paramDto) { return await _teacherService.TestResultAvg(paramDto); } } }