using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using OpenCvSharp; using System; using System.Collections.Generic; using System.IO; using System.Net.Http; using System.Security.Cryptography; using System.Text; using System.Text.Json; using System.Threading.Tasks; using VOL.Ai.IServices; using VOL.Business.IServices.School; using VOL.Core.Enums; using VOL.Core.Extensions; using VOL.Core.Filters; using VOL.Core.ManageUser; using VOL.Core.Services; using VOL.Core.Utilities; using VOL.Entity.DomainModels; using VOL.Model; using VOL.Model.Ai; using VOL.Model.Ai.Request; using VOL.Model.Ai.Response; using VOL.Model.IOT.Request; using VOL.Model.IOT.Response; using VOL.Model.Training.Response; using VOL.Order; using VOL.WebApi.Filter; namespace VOL.WebApi.Controllers { /// /// AiApp接口 /// [Route("api")] [ApiController] [ApiExplorerSettings(GroupName = "v6")] //[ServiceFilter(typeof(AISignatureValidationFilter))] //[TypeFilter(typeof(CustomApiResponseFilter))] [AllowAnonymous] public class AiAppController : ControllerBase { #region 初始化 private readonly IFaceDetectService _faceDetectService; private readonly IAiAppService _aiAppService; private readonly HttpClient _httpClient; public AiAppController(IFaceDetectService faceDetectService, IAiAppService aiAppService, HttpClient httpClient) { _faceDetectService = faceDetectService; _aiAppService = aiAppService; _httpClient = httpClient; } #endregion /// /// Test /// /// [HttpPost(nameof(Test))] [ServiceFilter(typeof(AISignatureValidationFilter))] public async Task Test([FromBody] Ai_Request paramDto) { return Ok(paramDto); } /// /// 接收AI设备的心跳 /// /// /// [HttpPost(nameof(Heartbeat))] public async Task Heartbeat([FromBody] Ai_Request paramDto) { Logger.Info(LoggerType.System, paramDto.Serialize(), paramDto.Serialize(), "接收AI设备的心跳"); return Ok("ok"); } /// /// 获取Ai设备信息 /// /// /// /// [HttpPost(nameof(AiDeviceInfo))] public async Task AiDeviceInfo([FromBody] Ai_Request paramDto) { var result = await _aiAppService.Ai_DeviceInfo(paramDto); return result; } /// /// 获取学校信息 /// /// /// [HttpGet(nameof(AiSchoolDetail))] public async Task AiSchoolDetail(Ai_SchoolRequest paramDto) { var result = await _aiAppService.Ai_SchoolDetail(paramDto); return result; } /// /// 训练项目类型 /// /// [HttpGet(nameof(ItemTypeList))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task> ItemTypeList(Ai_Request paramDto) { return await _aiAppService.ItemTypeList(); } /// /// 体测项目类型 /// /// [HttpGet(nameof(CategoryList))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task> CategoryList(Ai_Request paramDto) { return await _aiAppService.CategoryList(); } /// /// 学生人脸识别 /// /// /// [HttpPost(nameof(StudentFace))] public async Task StudentFace([FromBody] GetFaceParam paramDto) { var result = await _aiAppService.StudentFace(paramDto); return result; } /// /// 老师人脸识别 /// /// /// [HttpPost(nameof(TeacherFace))] public async Task TeacherFace([FromBody] GetFaceParam paramDto) { var result = await _aiAppService.TeacherFace(paramDto); return result; } /// /// 学生 /// /// /// [HttpGet(nameof(StudentList))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task> StudentList(Ai_StudentListRequest paramDto) { var result = await _aiAppService.Ai_StudentList(paramDto); return result; } /// /// 学生详情 /// /// /// [HttpGet(nameof(StudentDetail))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task StudentDetail(Ai_StudentDetailRequest paramDto) { var result = await _aiAppService.Ai_StudentDetail(paramDto); return result; } /// /// 获取专项教学项目 /// /// /// [HttpGet(nameof(TeachingItems))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task> TeachingItems(Ai_Request paramDto) { var result = await _aiAppService.TeachingItems(paramDto); return result; } /// /// 获取专项教学项目详情 /// /// /// [HttpGet(nameof(TeachingItemsDetail))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task TeachingItemsDetail(Ai_TeachingItemsRequest paramDto) { var result = await _aiAppService.TeachingItemsDetail(paramDto); return result; } /// /// 阿里云OSS获取上传文件的配置信息 /// /// /// [HttpGet(nameof(OSSInfo))] [ServiceFilter(typeof(ValidateDeviceFilter))] public Ai_OSSInfoDto OSSInfo(Ai_Request paramDto) { return _aiAppService.OSSInfo(paramDto); } /// /// AI设备上传成绩关联文件 /// /// /// [HttpPost(nameof(ResultFiles))] [ServiceFilter(typeof(ValidateDeviceFilter))] public Task ResultFiles(ResultFilesRequest paramDto, IFormFile file) { var result = _aiAppService.ResultFiles(paramDto, file); return result; } /// /// 获取赛事活动列表 /// /// /// [HttpGet(nameof(ActivitiesList))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task> ActivitiesList([FromQuery] Ai_ActivitiesListRequest paramDto) { var result = await _aiAppService.ActivitiesList(paramDto); return result; } /// /// 获取赛事活动报告 /// /// /// [HttpGet(nameof(ActivitiesReport))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task> ActivitiesReport([FromQuery] Ai_ActivitiesRequest paramDto) { var result = await _aiAppService.ActivitiesRanking(paramDto); return result; } /// /// 获取赛事活动排行 /// /// /// [HttpGet(nameof(ActivitiesRanking))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task> ActivitiesRanking([FromQuery] Ai_ActivitiesRequest paramDto) { var result = await _aiAppService.ActivitiesRanking(paramDto); return result; } /// /// 获取体育测试报告 /// /// /// [HttpGet(nameof(SportsTestReport))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task SportsTestReport([FromQuery] Ai_SportsTestReportRequest paramDto) { return Ok(); } /// /// 获取体测成绩排行 /// /// /// [HttpGet(nameof(SportsTestRanking))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task> SportsTestRanking([FromQuery] Ai_RankingListRequest paramDto) { var result = await _aiAppService.SportsTestRanking(paramDto); return result; } /// /// 获取体测成绩 /// /// /// [HttpGet(nameof(SportsTestResult))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task> SportsTestResult([FromQuery] Ai_SportsTestRequest paramDto) { var result = await _aiAppService.SportsTestResult(paramDto); return result; } /// /// 测试成绩上传 /// /// /// [HttpPost(nameof(SportsTestResultUpload))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task SportsTestResultUpload([FromBody] SportsTestResultUploadRequest paramDto) { await _aiAppService.SportsTestResultUpload(paramDto); return Ok("上传成功"); } /// /// 测评成绩上传 /// /// /// [HttpPost(nameof(LevelExamResultUpload))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task LevelExamResultUpload([FromBody] LevelExamDataUploadRequest paramDto) { await _aiAppService.LevelExamResultUpload(paramDto); return Ok("上传成功"); } /// /// 心率数据上传 /// /// /// [HttpPost(nameof(HeartRateResultUpload))] [ServiceFilter(typeof(ValidateDeviceFilter))] public IActionResult HeartRateResultUpload([FromBody] AddHeartRateResultUploadRequest paramDto) { _aiAppService.HeartRateResultUpload(paramDto); return Ok("上传成功"); } /// /// 新增课堂记录 /// /// /// [HttpPost(nameof(AddClassRoomRecord))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task AddClassRoomRecord([FromBody] Ai_ClassRoomRecordRequest paramDto) { var res = await _aiAppService.AddClassRoomRecord(paramDto); return res; } /// /// 结束授课 /// /// /// [HttpPost(nameof(EndTeaching))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task EndTeaching([FromBody] EndTeachingRequest paramDto) { await _aiAppService.EndTeaching(paramDto); return Ok("操作成功"); } /// /// 获取学生当前等级 /// /// /// [HttpGet(nameof(StatusLevelExam))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task StatusLevelExam([FromQuery] StatusLevelExamRequest paramDto) { var res = await _aiAppService.StatusLevelExam(paramDto); return res; } /// /// 验证学生是否在报名列表中 /// /// /// [HttpPost(nameof(IsActivityInList))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task IsActivityInList([FromBody] IsActivityInListRequest paramDto) { var res = await _aiAppService.IsActivityInList(paramDto); return res; } /// /// 速度跳绳数据上传 /// /// /// [HttpPost(nameof(FastJumpRopeResultUpload))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task FastJumpRopeResultUpload([FromBody] AddFastJumpRopeResultUploadRequest paramDto) { await _aiAppService.FastJumpRopeResultUpload(paramDto); return Ok("上传成功"); } /// /// 获取速度跳绳测试列表 /// /// /// [HttpGet(nameof(FastJumpRopeTestList))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task> FastJumpRopeTestList([FromQuery] Ai_FastJumpRopeRequest paramDto) { var result = await _aiAppService.FastJumpRopeTestList(paramDto); return result; } /// /// 获取速度跳绳成绩排行 /// /// /// [HttpGet(nameof(FastJumpRopeRanking))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task> FastJumpRopeRanking([FromQuery] Ai_FastJumpRopeRankingRequest paramDto) { var result = await _aiAppService.FastJumpRopeRanking(paramDto); return result; } #region 2.0 接口 /// /// Ai一体机扫描登录轮询 /// /// /// [HttpPost(nameof(ScanCodeLogin))] public async Task ScanCodeLogin([FromBody] Ai_Request paramDto) { var result = await _aiAppService.ScanCodeLogin(paramDto); return result; } /// /// 用户名密码登录 /// /// /// [HttpPost(nameof(Login))] public async Task Login([FromBody] Ai_LoginRequest paramDto) { var result = await _aiAppService.Login(paramDto); return result; } /// /// 退出登录 /// /// /// [HttpPost(nameof(LogOut))] public async Task LogOut([FromBody] LoginOutDto paramDto) { var result = await _aiAppService.LogOut(paramDto); return result; } /// /// 获取课堂记录列表 /// [HttpGet(nameof(ClassRoomRecordPageList))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task> ClassRoomRecordPageList([FromQuery] ClassRoomRecordPageListRequest paramDto) { var result = await _aiAppService.ClassRoomRecordPageList(paramDto); return result; } /// /// 获取课堂阶段列表 /// [HttpGet(nameof(ClassroomStagePageList))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task> ClassroomStagePageList([FromQuery] Ai_Request paramDto) { var result = await _aiAppService.ClassroomStagePageList(paramDto); return result; } /// /// 添加课堂设置 /// /// /// [HttpPost(nameof(AddClassroomSetting))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task AddClassroomSetting([FromBody] AddClassroomSettingRequest paramDto) { var result = await _aiAppService.AddClassroomSetting(paramDto); return result; } /// /// 更新课堂设置 /// /// /// [HttpPost(nameof(UpdateClassroomSetting))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task UpdateClassroomSetting([FromBody] UpdateClassroomSettingRequest paramDto) { var result = await _aiAppService.UpdateClassroomSetting(paramDto); return result; } /// /// 获取课堂心率报告 /// [HttpGet(nameof(HeartRateReport))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task HeartRateReport([FromQuery] HeartRateReportRequest paramDto) { var result = await _aiAppService.HeartRateReport(paramDto); return result; } /// /// 获取学生心率报告 /// [HttpGet(nameof(StudentHeartRateReport))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task StudentHeartRateReport([FromQuery] GetStudentClassReportDetailsDto paramDto) { var result = await _aiAppService.StudentHeartRateReport(paramDto); return result; } /// /// 获取跳绳报告 /// [HttpGet(nameof(JumpRopeReport))] [ServiceFilter(typeof(ValidateDeviceFilter))] public async Task> JumpRopeReport([FromQuery] HeartRateReportRequest paramDto) { var result = await _aiAppService.JumpRopeReport(paramDto); return result; } #endregion } }