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
}
}