ltx e049955f9c feat: 完善学生数据管理及作业批量导出
- 完善学生Excel导入的文件、行数据和重复学号校验,并返回实际导入数量
- 调整学生导出字段名称与排列顺序,移除学籍号字段
- 规范单张及ZIP批量人脸导入校验,限制格式、大小、数量和解压总量
- 批量人脸导入返回总数、成功数、失败数及详细失败原因
- 新增作业按作业、班级、完成状态等条件批量导出,每名学生一条记录
2026-07-31 14:21:04 +08:00

196 lines
6.2 KiB
C#

using Microsoft.AspNetCore.Http;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VOL.Model;
using VOL.Model.School.Request;
using VOL.Model.School.Response;
namespace VOL.Business.IServices.School
{
public interface IS_StudentService
{
/// <summary>
/// 获取学生列表
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
Task<PageDataDto<StudentPageListModel>> GetStudentPageList(StudentPageListParam paramDto);
/// <summary>
/// 导出
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
Task<List<StudentPageListModel>> GetStudentList(StudentExportParam paramDto);
/// <summary>
/// 获取场馆学员
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
Task<List<StudentPageListModel>> GetStudentListBySportsHall(StudentExportParam paramDto);
/// <summary>
/// 添加学生
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
Task AddStudent(AddStudentParam paramDto);
/// <summary>
/// 更新学生
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
Task ModifyStudent(AddStudentParam paramDto);
/// <summary>
/// 更新学生状态
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
Task UpdateStudentStatus(UpdateStudentStatusParam paramDto);
/// <summary>
/// 更新学生密码
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
Task UpdateStudentPwd(UpdateStudentPwdParam paramDto);
/// <summary>
/// 批量删除当前学校学生
/// </summary>
/// <param name="ids">学生Id</param>
/// <returns>实际删除数量</returns>
Task<int> BatchDeleteStudents(List<int> ids);
/// <summary>
/// 转班
/// </summary>
/// <param name="studentNo"></param>
/// <returns></returns>
Task ChangeClasses(string studentNo, int classId);
/// <summary>
/// 导入学生
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
Task<int> ImportStudents(IFormFile file);
/// <summary>
/// 上传学生头像
/// </summary>
/// <param name="file"></param>
/// <param name="gradeId"></param>
/// <param name="classId"></param>
/// <param name="studentNo"></param>
/// <returns></returns>
Task<string> UploadPhoto(IFormFile file, int gradeId, int classId, string studentNo, string studentName);
/// <summary>
/// 批量导入学生头像
/// </summary>
/// <param name="files"></param>
/// <returns></returns>
Task<BatchUploadStudentPhotoResult> BatchUploadPhoto(IFormFile zipFile);
///// <summary>
///// 学生整体数据统计
/////</summary>
///// <param name="studentNo"></param>
///// <returns></returns>
//Task<StudentDataStatsModel> StudentWholeDataStats(string studentNo);
/// <summary>
/// 学生数据统计
/// </summary>
/// <param name="studentNo"></param>
/// <returns></returns>
Task<StudentDataStatsModel> StudentWholeDataStats(StudentDataStatsParam paramDto);
///// <summary>
///// 学生单项数据统计
///// </summary>
///// <param name="studentNo"></param>
///// <returns></returns>
//Task<StudentSingleDataStatsModel> StudentSingleDataStats(string studentNo, string categoryEnum);
/// <summary>
/// 各项目成绩
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
Task<Dictionary<string, float>> TestResultAvg(StudentCategoryParam paramDto);
/// <summary>
/// 个人成绩对比
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
Task<Dictionary<string, float>> TestResultContrast(StudentCategoryParam paramDto);
///// <summary>
///// 个人成绩比较
///// </summary>
///// <param name="paramDto"></param>
///// <returns></returns>
//Task<ExcellentRateChart> TestResultcompare(CategoryParam paramDto);
/// <summary>
/// 成绩趋势
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
Task<VariousSportsProportion> ResultTrends(StudentResultTrendsParam paramDto);
/// <summary>
/// 训练记录
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
Task<PageDataDto<StudentTrainingRecordsModel>> TrainingRecords(StudentTrainingRecordsParam paramDto);
/// <summary>
/// 体测记录
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
Task<PageDataDto<StudentTestRecordsModel>> TestRecords(StudentTrainingRecordsParam paramDto);
/// <summary>
/// 学生名单列表
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
Task<List<StudentNamePageListModel>> GetStudentNamePageList(StudentNamePageListParam paramDto);
/// <summary>
/// 更换班级
/// </summary>
/// <param name="studentNo"></param>
/// <returns></returns>
Task ReplaceClasses(List<string> studentNoList, int classId);
/// <summary>
/// 获取当前学校一键升学状态
/// </summary>
Task<StudentPromotionStatusModel> GetPromotionStatus();
/// <summary>
/// 当前学校学生一键升学
/// </summary>
Task<StudentPromotionStatusModel> PromoteStudents();
/// <summary>
/// 撤回当前学校最近一次升学
/// </summary>
Task<StudentPromotionStatusModel> UndoPromotion();
}
}