using Attribute;
using Common;
using Dto;
using Vo;
using Enums;
using Filters;
using Infrastructure;
using Infrastructure.Model;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using Middleware;
using Model;
using Services.Client;
using Model.Base;
using Base;
namespace Controllers
{
///
/// App)Controller
///
// [Route("app")]
// [ApiExplorerSettings(GroupName = "App")]
public class AppController : BaseController
{
///
/// api分组接口
///
private readonly IAppBottomNavsService _AppBottomNavsService;
private readonly IFileUpdateInfoService _FileUpdateInfoService;
private readonly IPageUpdateInfoService _PageUpdateInfoService;
public AppController(IAppBottomNavsService AppBottomNavsService,IFileUpdateInfoService FileUpdateInfoService,IPageUpdateInfoService PageUpdateInfoService)
{
_AppBottomNavsService = AppBottomNavsService;
_FileUpdateInfoService = FileUpdateInfoService;
_PageUpdateInfoService = PageUpdateInfoService;
}
///
/// APP底部导航列表
///
/// 请求参数
/// APP底部导航列表
[HttpGet]
[Route("/v1/kxsconfig/app/appBottomNavs")]
public IActionResult AppBottomNavs([FromQuery] AppAppBottomNavsDto parm)
{
string kind = Function.CheckNull(parm.kind);
if(kind.Contains("/"))
{
string[] data = kind.Split('/');
parm.kind = data[0];
parm.appVersion = data[1];
}
var response = _AppBottomNavsService.AppBottomNavs(parm);
response.Extra = new Dictionary();
response.Extra.Add("greyStyle", "");
return SUCCESS(response);
}
///
/// APP静态资源
///
/// 请求参数
/// APP静态资源
[HttpGet]
[Route("/v1/kxsconfig/app/staticFiles")]
public IActionResult StaticFiles([FromQuery] AppStaticFilesDto parm)
{
string kind = Function.CheckNull(parm.kind);
if(kind.Contains("/"))
{
string[] data = kind.Split('/');
parm.kind = data[0];
parm.appVersion = data[1];
}
var response = _FileUpdateInfoService.StaticFiles(parm);
OssConfigs ossConfigs = new();
AppSettings.Bind("OssConfigs", ossConfigs);
foreach(var sub in response.Records)
{
sub.downloadUrl = ossConfigs.Host + "skin/app/" + parm.kind + "/" + sub.path + sub.fileName;
sub.dataId = Function.MD5_16(sub.id.ToString() + "123890");
}
return SUCCESS(response);
}
///
/// APP页面数据检查
///
/// 请求参数
/// APP页面数据检查
[HttpGet]
[Route("/v1/kxsconfig/app/pageInfo")]
public IActionResult PageInfo([FromQuery] AppPageInfoDto parm)
{
string kind = Function.CheckNull(parm.kind);
if(kind.Contains("/"))
{
string[] data = kind.Split('/');
parm.kind = data[0];
parm.appVersion = data[1];
}
OssConfigs ossConfigs = new();
AppSettings.Bind("OssConfigs", ossConfigs);
string modulePath = parm.modulePath + ".html";
var response = _PageUpdateInfoService.Queryable()
.First(x => x.modulePath == modulePath && x.appVersion == parm.appVersion)
.Adapt() ?? new AppPageInfoVo();
response.dataId = Function.MD5_16(response.id.ToString() + "123890");
if (parm.moduleVersion < response.moduleVersion)
{
string PagePath = "template/app/" + kind + "/" + response.modulePath;
string pageContent = Function.GetNetFileContent(ossConfigs.Host + PagePath);
response.moduleContent = pageContent; //模板内容
}
else
{
response.moduleContent = ""; //模板内容
}
return SUCCESS(response);
}
}
}