using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using VOL.Ai.IServices; using VOL.Ai.Services; using VOL.Business.IServices; using VOL.Business.IServices.Training; using VOL.Core.Filters; using VOL.Core.Utilities; using VOL.Entity.Enum; using VOL.Model; using VOL.Model.HomeWork; using VOL.Model.Training.Response; using VOL.System.IRepositories; using VOL.System.Repositories; namespace VOL.WebApi.Controllers.JingShiTiJiao { [Route("api/[controller]")] [ApiController] [ApiExplorerSettings(GroupName = "v3")] [TypeFilter(typeof(CustomApiResponseFilter))] [AllowAnonymous] public class JingShiTiJiaoController : ControllerBase { #region 初始化 private readonly IS_HomeWorkService _homeWorkService; private readonly IJingShiTiJiaoService _jingShiTiJiaoService; private readonly II_TrainingDataService _trainingDataService; public JingShiTiJiaoController( IS_HomeWorkService homeWorkService, II_TrainingDataService trainingDataService,IJingShiTiJiaoService jingShiTiJiaoService) { _homeWorkService = homeWorkService; _trainingDataService = trainingDataService; _jingShiTiJiaoService = jingShiTiJiaoService; } #endregion #region 作业 /// /// 作业列表 /// /// [HttpGet(nameof(GetHomeWorkPageList))] public async Task> GetHomeWorkPageList(HomeWorkPageListParam paramDto) { return await _homeWorkService.GetHomeWorkPageList(paramDto); } /// /// 作业下学生列表 /// /// [HttpGet(nameof(GetHomeWorkStudents))] public async Task> GetHomeWorkStudents(HomeWorkStudentsParam paramDto) { return await _homeWorkService.GetHomeWorkStudents(paramDto); } /// /// 作业详情 /// /// [HttpGet(nameof(GetSubmittedAssignments))] public async Task> GetSubmittedAssignments(int homeWorkId, string studentNo) { return await _homeWorkService.GetSubmittedAssignments(homeWorkId, studentNo); } #endregion #region 课堂报告 /// /// 课堂报告列表 /// /// [HttpGet(nameof(GetClassReportList))] public async Task> GetClassReportList(ClassReportListParam paramDto) { return await _trainingDataService.GetClassReportList(paramDto); } /// /// 课堂报告详情 /// /// [HttpGet(nameof(GetClassReportDetails))] public async Task GetClassReportDetails(int id) { return await _trainingDataService.GetClassReportDetails(id); } /// /// 学生课堂报告详情 /// /// [HttpGet(nameof(GetStudentClassReportDetails))] public async Task GetStudentClassReportDetails(GetStudentClassReportDetailsDto paramDto) { return await _trainingDataService.GetStudentClassReportDetails(paramDto); } #endregion /// /// 获取所有年级名称 /// /// /// /// 获取年级列表 /// /// [HttpGet(nameof(GetGradeList))] public async Task> GetGradeList(string schoolCode) { if (string.IsNullOrWhiteSpace(schoolCode)) return new List(); // 1️⃣ 调用京师接口获取年级班级 var schoolClass = await _jingShiTiJiaoService.GetClassBySchoolAsync(schoolCode); if (schoolClass == null || schoolClass.Grades == null || !schoolClass.Grades.Any()) return new List(); // 2️⃣ 将接口结果映射为 GradeNameModel var result = schoolClass.Grades.Select(g => new GradeNameModel { Id = 0, // 如果数据库中没有对应Id,可先填0或后续映射数据库Id GradeName = g.GradeName, Class = g.Classes?.Select(c => new ClassNameModel { Id = 0, // 同理,暂时填0 ClassName = c.ClassName }).ToList() ?? new List() }).ToList(); return result; } } }