using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Net.Http; using System.Reflection.Emit; using System.Text; using System.Text.Json; using System.Threading.Tasks; using VOL.Business.IServices; using VOL.Business.IServices.School; using VOL.Business.Services; using VOL.Business.Services.Norm; using VOL.Business.Services.School; using VOL.Core.Filters; using VOL.Core.ManageUser; using VOL.Core.Utilities; using VOL.Core.Utilities.Response; using VOL.Entity.DomainModels; using VOL.IOT.IServices; using VOL.Model; using VOL.Model.IOT; using VOL.Model.IOT.Request; using VOL.Model.IOT.Response; using VOL.Model.Norm.Request; using VOL.System.IRepositories; using VOL.System.IServices; namespace VOL.WebApi.Controllers { /// /// 物联网接口 /// [Route("api/[controller]")] [ApiController] [ApiExplorerSettings(GroupName = "v4")] //[TypeFilter(typeof(CustomApiResponseFilter))] //[ServiceFilter(typeof(IOTSignatureValidationFilter))] //[AllowAnonymous] public class IOTController : ControllerBase { #region 初始化 private readonly HttpClient _httpClient; private readonly IIOTUserService _iIOTUserService; public IOTController(HttpClient httpClient, IIOTUserService iIOTUserService) { _httpClient = httpClient; _iIOTUserService = iIOTUserService; } #endregion /// /// 登录 /// /// /// [HttpPost(nameof(Login))] public async Task Login([FromBody] LoginInfo loginInfo) { //long timestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); //var requestBody = new { SchoolCode = "S_BS_001" }; //var json = JsonSerializer.Serialize(requestBody); //var signature = IOTSignatureHelper.GenerateSignature(json, timestamp); //_httpClient.DefaultRequestHeaders.Add("X-Timestamp", timestamp.ToString()); //_httpClient.DefaultRequestHeaders.Add("X-Signature", signature); //HttpContent content = new StringContent(json, Encoding.UTF8, "application/json"); //var response = await _httpClient.PostAsync("http://localhost:9991/api/IOT/Test", content); //response.EnsureSuccessStatusCode(); //var responseBody = await response.Content.ReadAsStringAsync(); //Console.WriteLine($"Response: {responseBody}"); var res = await _iIOTUserService.Login(loginInfo); return res; } /// /// Test /// /// [HttpPost(nameof(Test))] public async Task Test([FromBody] IOT_GradeListParam paramDto) { var res = await _iIOTUserService.GradePageList(paramDto); return Ok(res); } /// /// 年级列表 /// /// [HttpPost(nameof(GradePageList))] public async Task> GradePageList([FromBody] IOT_GradeListParam paramDto) { var res = await _iIOTUserService.GradePageList(paramDto); return res; } /// /// 班级列表 /// /// [HttpPost(nameof(ClassPageList))] public async Task> ClassPageList([FromBody] IOT_ClassListParam paramDto) { var res = await _iIOTUserService.ClassPageList(paramDto); return res; } /// /// 学生列表 /// /// [HttpPost(nameof(StudentPageList))] public async Task> StudentPageList([FromBody] IOT_StudentListParam paramDto) { var res = await _iIOTUserService.StudentPageList(paramDto); return res; } /// /// 老师列表 /// /// [HttpPost(nameof(TeacherPageList))] public async Task> TeacherPageList([FromBody] IOT_SchoolParam paramDto) { var res = await _iIOTUserService.TeacherPageList(paramDto); return res; } /// /// 老师详情 /// /// [HttpPost(nameof(TeacherDetails))] public async Task TeacherDetails() { var res = await _iIOTUserService.TeacherDetails(); return res; } /// /// 训练类型 /// /// [HttpPost(nameof(TrainTypeList))] public async Task> TrainTypeList() { return await _iIOTUserService.TrainTypeList(); } /// /// 训练项目类型 /// /// [HttpPost(nameof(ItemTypeList))] public async Task> ItemTypeList() { return await _iIOTUserService.ItemTypeList(); } /// /// 体测项目类型 /// /// [HttpPost(nameof(CategoryList))] public async Task> CategoryList() { return await _iIOTUserService.CategoryList(); } /// /// 上传课堂训练信息 /// /// /// [HttpPost(nameof(TankingLData))] public async Task TankingLData([FromBody] TankingDataParam paramDto) { await _iIOTUserService.TankingLData(paramDto); return Ok("上传课堂训练信息成功"); } /// /// 上传体测成绩信息 /// /// /// [HttpPost(nameof(SportsTestData))] public async Task SportsTestData([FromBody] SportsTestDataParam paramDto) { await _iIOTUserService.SportsTestData(paramDto); return Ok("上传体测成绩信息"); } /// /// 同步数据回调函数 /// /// /// [HttpPost(nameof(DataSyncCallBack))] public async Task DataSyncCallBack([FromBody] DataSyncCallBackParam paramDto) { return Ok(); } } }