ltx 48151578a1 feat: 运动馆班级批量删除与菜单权限登记
新增 SportsHall/BatchDeleteClasses 接口:校验批量数量、本校运动馆班级归属及空班条件,在可串行化事务中清理班级和教练关联,并发送物联网删除同步。

学生批量删除增加 BatchDelete 动作权限校验;按实际页面菜单匹配权限,兼容生产库中重复的学生管理菜单。运动馆班级删除由已授权角色使用,不硬编码学校角色。

新增幂等菜单权限脚本,仅向学生管理和运动馆班级管理的有效页面菜单登记批量删除动作,不自动给角色授权。QA 与生产库已核验菜单动作;代码上线仍需独立部署。

验证:Debug/Release 构建通过,SQL 在 QA 重跑无重复写入。
2026-10-15 14:51:56 +08:00

78 lines
2.4 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;
using VOL.Model.SportsHall;
namespace VOL.Business.IServices.SportsHall
{
public interface ISportsHallService
{
/// <summary>
/// 添加班级
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
Task AddClass(AddSportsHallClassParam paramDto);
/// <summary>
/// 更新班级
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
Task ModifyClass(ModifySportsHallClassParam paramDto);
/// <summary>
/// 批量删除当前学校的运动馆空班级
/// </summary>
Task<int> BatchDeleteClasses(List<int> ids);
/// <summary>
/// 导入运动馆学生体测成绩
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
Task SportsHallImportStudentsTestData(IFormFile file);
/// <summary>
/// 导入体测成绩管理学生体测成绩
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
Task SummaryOfGradesImportStudentsTestData(IFormFile file);
/// <summary>
/// 运动馆体测成绩分页列表
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
Task<PageDataDto<SportsHallStudentsTestModel>> GetSportsHallStudentsTestPageList(SportsHallStudentsTestParam paramDto);
/// <summary>
/// 体测成绩管理分页列表(全部体测项目)
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
Task<PageDataDto<SummaryOfGradesStudentsTestModel>> GetSummaryOfGradesStudentsTestPageList(SportsHallStudentsTestParam paramDto);
/// <summary>
/// 成绩推送
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
Task ScorePush(SportsHallStudentsTestParam paramDto);
/// <summary>
/// 成绩修正
/// </summary>
/// <param name="paramDto"></param>
/// <returns></returns>
Task ScoreUpdate(SportsHallStudentsTestDataUpdateParam paramDto);
}
}