2026-01-16 10:06:22 +08:00
|
|
|
|
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;
|
2026-01-16 10:17:09 +08:00
|
|
|
|
using VOL.Ai.IServices;
|
|
|
|
|
|
using VOL.Ai.Services;
|
2026-01-16 10:06:22 +08:00
|
|
|
|
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;
|
2026-01-16 10:17:09 +08:00
|
|
|
|
private readonly IJingShiTiJiaoService _jingShiTiJiaoService;
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-01-16 10:06:22 +08:00
|
|
|
|
private readonly II_TrainingDataService _trainingDataService;
|
|
|
|
|
|
public JingShiTiJiaoController(
|
2026-01-16 10:17:09 +08:00
|
|
|
|
IS_HomeWorkService homeWorkService, II_TrainingDataService trainingDataService,IJingShiTiJiaoService jingShiTiJiaoService)
|
2026-01-16 10:06:22 +08:00
|
|
|
|
{
|
|
|
|
|
|
_homeWorkService = homeWorkService;
|
|
|
|
|
|
_trainingDataService = trainingDataService;
|
2026-01-16 10:17:09 +08:00
|
|
|
|
_jingShiTiJiaoService = jingShiTiJiaoService;
|
2026-01-16 10:06:22 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 作业
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 作业列表
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpGet(nameof(GetHomeWorkPageList))]
|
|
|
|
|
|
public async Task<PageDataDto<HomeWorkListModel>> GetHomeWorkPageList(HomeWorkPageListParam paramDto)
|
|
|
|
|
|
{
|
|
|
|
|
|
return await _homeWorkService.GetHomeWorkPageList(paramDto);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 作业下学生列表
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpGet(nameof(GetHomeWorkStudents))]
|
|
|
|
|
|
public async Task<PageDataDto<HomeWorkStudentsModel>> GetHomeWorkStudents(HomeWorkStudentsParam paramDto)
|
|
|
|
|
|
{
|
|
|
|
|
|
return await _homeWorkService.GetHomeWorkStudents(paramDto);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 作业详情
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpGet(nameof(GetSubmittedAssignments))]
|
|
|
|
|
|
public async Task<List<SubmittedAssignmentsModel>> GetSubmittedAssignments(int homeWorkId, string studentNo)
|
|
|
|
|
|
{
|
|
|
|
|
|
return await _homeWorkService.GetSubmittedAssignments(homeWorkId, studentNo);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 课堂报告
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 课堂报告列表
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpGet(nameof(GetClassReportList))]
|
|
|
|
|
|
public async Task<PageDataDto<ClassReportModel>> GetClassReportList(ClassReportListParam paramDto)
|
|
|
|
|
|
{
|
|
|
|
|
|
return await _trainingDataService.GetClassReportList(paramDto);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 课堂报告详情
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpGet(nameof(GetClassReportDetails))]
|
|
|
|
|
|
public async Task<GetClassReportDetailsModel> GetClassReportDetails(int id)
|
|
|
|
|
|
{
|
|
|
|
|
|
return await _trainingDataService.GetClassReportDetails(id);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 学生课堂报告详情
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpGet(nameof(GetStudentClassReportDetails))]
|
|
|
|
|
|
public async Task<GetStudentClassReportDetailsModel> GetStudentClassReportDetails(GetStudentClassReportDetailsDto paramDto)
|
|
|
|
|
|
{
|
|
|
|
|
|
return await _trainingDataService.GetStudentClassReportDetails(paramDto);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取所有年级名称
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
2026-01-16 10:17:09 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取年级列表
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpGet(nameof(GetGradeList))]
|
|
|
|
|
|
public async Task<List<GradeNameModel>> GetGradeList(string schoolCode)
|
2026-01-16 10:06:22 +08:00
|
|
|
|
{
|
2026-01-16 10:17:09 +08:00
|
|
|
|
if (string.IsNullOrWhiteSpace(schoolCode))
|
|
|
|
|
|
return new List<GradeNameModel>();
|
|
|
|
|
|
|
|
|
|
|
|
// 1️⃣ 调用京师接口获取年级班级
|
|
|
|
|
|
var schoolClass = await _jingShiTiJiaoService.GetClassBySchoolAsync(schoolCode);
|
|
|
|
|
|
|
|
|
|
|
|
if (schoolClass == null || schoolClass.Grades == null || !schoolClass.Grades.Any())
|
|
|
|
|
|
return new List<GradeNameModel>();
|
|
|
|
|
|
|
|
|
|
|
|
// 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<ClassNameModel>()
|
|
|
|
|
|
}).ToList();
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
2026-01-16 10:06:22 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|