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();
}
}
}