using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Hosting; using System.Diagnostics; using System.Security.Claims; using UserCenter.Model; using VideoAnalysisCore.Common; using VideoAnalysisCore.Controllers.Dto; namespace VideoAnalysisCore.Controllers { /// /// 通用接口 /// [Authorize(AuthenticationSchemes = Authentication.vdAdmin)] [Route("api/[controller]")] public class PublicController : ControllerBase { private readonly IHostEnvironment _environment; public PublicController(Repository baseService, IHostEnvironment environment) { _environment = environment; } /// /// App.EntityDto.Enum 枚举转下拉列表 /// /// 枚举名称 例子type='ExamStatusEnum' /// [HttpGet, Route("enum/{type}")] [ResponseCache(Duration = 5)] public IActionResult GetExamStatusData(string type) { if (!AppCommon.EnumType.ContainsKey(type)) return BadRequest("无效类型"); return Ok( Enum.GetValues(AppCommon.EnumType[type]).Cast() .Select(enumValue => new ComboModel() { Text = enumValue.ToString(), Value = (int)enumValue }).ToList()); } /// /// App.EntityDto.Enum 枚举转下拉列表 /// /// 枚举名称 例子type='ExamStatusEnum' /// [HttpGet, Route("enum/{type}/Dic")] [ResponseCache(Duration = 5)] public IActionResult GetExamStatusDictionary(string type) { if (!AppCommon.EnumType.ContainsKey(type)) return BadRequest("无效类型"); return Ok(Enum.GetValues(AppCommon.EnumType[type]).Cast() .ToDictionary(s => (int)s, s => s.ToString())); } # if DEBUG /// /// 获取当前环境变量,配置文件 /// /// [HttpGet] public IActionResult NewENV() { var envName = _environment.EnvironmentName; var env = "无配置"; if (_environment.IsDevelopment()) env = "开发环境"; else if (_environment.IsStaging()) env = "测试/预发布环境"; else if (_environment.IsProduction()) env = "生产环境"; return Ok(new { envName, env, AppCommon.Config }); } #endif /// /// 视频处理 /// /// 请求体 /// [HttpPost, AllowAnonymous] public async Task> Login(AdminLoginReq req) { if (!ModelState.IsValid) return BadRequest(ModelState); if (string.IsNullOrWhiteSpace(req.Account) || string.IsNullOrWhiteSpace(req.Password)) return BadRequest("无效的登录信息"); return Ok(new { //按钮权限 Permissions = "*", //用户名 UserName = "管理员", NickName = "管理员", AccessToken = JwtHelper.GetToken(AppCommon.Config.AuthKey, [ new Claim("Id","999"), ]) }); } } }