You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

117 lines
3.3 KiB

3 years ago
using learun.iapplication;
using learun.operat;
using learun.util;
using EC.Web.Models;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;
using System.Threading.Tasks;
namespace EC.Web.Controllers
{
/// <summary>
/// 版 本 EasyCode EC管理后台
/// Copyright (c) 2019-present EC管理有限公司
/// 创建人:tobin
/// 日 期:2019.09.26
/// 描 述:主页面模块控制器
/// </summary>
public class HomeController : MvcControllerBase
{
private readonly LogIBLL _logIBLL;
private readonly IHttpContextAccessor _iHttpContextAccessor;
public HomeController(LogIBLL logIBLL, IHttpContextAccessor iHttpContextAccessor)
{
_logIBLL = logIBLL;
_iHttpContextAccessor = iHttpContextAccessor;
}
#region 视图功能
/// <summary>
/// 主页面
/// </summary>
/// <returns></returns>
[HttpGet]
public IActionResult Index()
{
string uitheme = GetCookies("lr_adms_core_ui");
switch (uitheme)
{
case "1":
return View("AdminDefault"); // 经典版本
case "2":
return View("AdminAccordion"); // 手风琴版本
case "3":
return View("AdminWindos"); // Windows版本
case "4":
return View("AdminTop"); // 顶部菜单版本
default:
return View("AdminDefault"); // 经典版本
}
}
/// <summary>
/// 桌面
/// </summary>
/// <returns></returns>
public async Task<IActionResult> AdminDesktop()
{
var userInfo = await this.CurrentUser();
string uItheme = userInfo.F_HeadIcon;
string[] uIthemeList = ConfigHelper.GetConfig().UItheme.Split(",");
bool findFlag = false;
foreach (var item in uIthemeList)
{
findFlag |= item == uItheme;
}
if (!findFlag)
{
uItheme = "default";
}
return uItheme switch
{
"default" => View("DesktopDefault"), // 经典版本
"accordion" => View("DesktopAccordion"), // 手风琴版本
"windows" => View("DesktopWindos"), // Windos版本
"top" => View("DesktopTop"), // 顶部菜单版本
_ => View("DesktopDefault"), // 经典版本
};
}
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
#endregion 视图功能
/// <summary>
/// 访问功能
/// </summary>
/// <param name="moduleName">功能模块</param>
/// <param name="moduleUrl">访问路径</param>
/// <returns></returns>
[HttpPost]
public async Task<IActionResult> VisitModule(string moduleName, string moduleUrl)
{
var userInfo = await this.CurrentUser();
LogEntity logEntity = new LogEntity();
logEntity.F_CategoryId = 2;
logEntity.F_OperateTypeId = ((int)OperationType.Visit).ToString();
logEntity.F_OperateType = EnumAttribute.GetDescription(OperationType.Visit);
logEntity.F_OperateAccount = userInfo.F_Account;
logEntity.F_OperateUserId = userInfo.F_UserId;
logEntity.F_Module = moduleName;
logEntity.F_ExecuteResult = 1;
logEntity.F_IPAddress = _iHttpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString();
logEntity.F_ExecuteResultJson = "访问地址:" + moduleUrl;
await _logIBLL.Write(logEntity);
return Success("ok");
}
}
}