获取菜单

master
xiaochanghai 1 year ago
parent 7399fc7016
commit 1e80d92f3c
  1. 37
      Tiobon.Core.Api/Controllers/CommonController.cs
  2. 19
      Tiobon.Core.Api/Tiobon.Core.xml
  3. 6
      Tiobon.Core.Common/DB/Dapper/Utilities/DbAccess.cs
  4. 22
      Tiobon.Core.IServices/ICommonServices.cs
  5. 32
      Tiobon.Core.Model/ViewModels/Menu.cs
  6. 1657
      Tiobon.Core.Services/BASE/BaseServices.cs
  7. 90
      Tiobon.Core.Services/CommonServices.cs

@ -0,0 +1,37 @@
namespace Tiobon.Core.Controllers;
/// <summary>
/// 公共服务
/// </summary>
[Produces("application/json")]
[Route("api/Common")]
[ApiExplorerSettings(GroupName = Grouping.GroupName_System)]
public class CommonController : BaseApiController
{
private readonly ILogger<TiobonController> _logger;
private readonly ICommonServices _commonServices;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="logger"></param>
/// <param name="commonServices"></param>
public CommonController(ILogger<TiobonController> logger, ICommonServices commonServices)
{
_commonServices = commonServices;
_logger = logger;
}
#region 获取菜单
/// <summary>
/// 获取菜单
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
[HttpPost, Route("GetMenu")]
public async Task<ServiceResult<MenuReturn>> GetMenuAsync([FromBody] MenuParam param)
{
return await _commonServices.GetMenuAsync(param);
}
#endregion
}

@ -211,6 +211,25 @@
</summary>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Controllers.CommonController">
<summary>
公共服务
</summary>
</member>
<member name="M:Tiobon.Core.Controllers.CommonController.#ctor(Microsoft.Extensions.Logging.ILogger{Tiobon.Core.Controllers.TiobonController},Tiobon.Core.IServices.ICommonServices)">
<summary>
构造函数
</summary>
<param name="logger"></param>
<param name="commonServices"></param>
</member>
<member name="M:Tiobon.Core.Controllers.CommonController.GetMenuAsync(Tiobon.Core.Model.MenuParam)">
<summary>
获取菜单
</summary>
<param name="param"></param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Controllers.DbFirstController.#ctor(SqlSugar.ISqlSugarClient,Microsoft.AspNetCore.Hosting.IWebHostEnvironment)">
<summary>
构造函数

@ -90,7 +90,7 @@ public class DbAccess
public static DataTable GetDataTable(string sql, object param = null, CommandType? commandType = null, bool beginTransaction = false) => Instance.GetDataTable(sql, param, commandType, beginTransaction);
public static async Task<DataTable> GetDataTableAsync(string cmd, object param = null, IDbTransaction transaction = null, CommandType? commandType = null, int? commandTimeout = null) => await Instance.GetDataTableAsync(cmd, param, transaction, commandType, commandTimeout);
public static List<T> QueryList<T>(string cmd, object param, CommandType? commandType = null, bool beginTransaction = false) where T : class => Instance.QueryList<T>(cmd, param, commandType, beginTransaction);
public static List<T> QueryList<T>(string cmd, object param = null, CommandType? commandType = null, bool beginTransaction = false) where T : class => Instance.QueryList<T>(cmd, param, commandType, beginTransaction);
public static async Task<List<T>> QueryListAsync<T>(string cmd, object param = null, bool beginTransaction = false, CommandType? commandType = null, int? commandTimeout = null) where T : class => await Instance.QueryListAsync<T>(cmd, param, commandType, beginTransaction, commandTimeout);
@ -101,9 +101,9 @@ public class DbAccess
public static async Task<object> ExecuteScalarAsync(string cmd, object param = null, CommandType? commandType = null, bool beginTransaction = false) => await Instance.ExecuteScalarAsync(cmd, param, commandType, beginTransaction);
public static int ExcuteNonQuery(string cmd, object param, CommandType? commandType = null, bool beginTransaction = false) => Instance.ExcuteNonQuery(cmd, param, commandType, beginTransaction);
public static (List<T1>, List<T2>) QueryMultiple<T1, T2>(string cmd, object param, CommandType? commandType = null, bool beginTransaction = false) => Instance.QueryMultiple<T1, T2>(cmd, param, commandType, beginTransaction);
public static (List<T1>, List<T2>) QueryMultiple<T1, T2>(string cmd, object param = null, CommandType? commandType = null, bool beginTransaction = false) => Instance.QueryMultiple<T1, T2>(cmd, param, commandType, beginTransaction);
public static (List<T1>, List<T2>, List<T3>) QueryMultiple<T1, T2, T3>(string cmd, object param, CommandType? commandType = null, bool beginTransaction = false) => Instance.QueryMultiple<T1, T2, T3>(cmd, param, commandType, beginTransaction);
public static (List<T1>, List<T2>, List<T3>) QueryMultiple<T1, T2, T3>(string cmd, object param = null, CommandType? commandType = null, bool beginTransaction = false) => Instance.QueryMultiple<T1, T2, T3>(cmd, param, commandType, beginTransaction);
public static int ExecuteDML(string cmd, object param, CommandType? commandType = null, IDbTransaction dbTransaction = null) => Instance.ExecuteDML(cmd, param, commandType, dbTransaction);

@ -0,0 +1,22 @@
using Microsoft.AspNetCore.Mvc;
using Tiobon.Core.IServices.BASE;
using Tiobon.Core.Model;
namespace Tiobon.Core.IServices;
/// <summary>
/// IPayServices
/// </summary>
public interface ICommonServices : IBaseServices<RootEntityTkey<int>>
{
/// <summary>
/// 获取菜单
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
Task<ServiceResult<MenuReturn>> GetMenuAsync([FromBody] MenuParam param);
}

@ -0,0 +1,32 @@
namespace Tiobon.Core.Model;
public class MenuParam
{
public int langId { get; set; }
public string menuName { get; set; }
public string timestamp { get; set; }
public string token { get; set; }
public dynamic jsonParam { get; set; }
}
public class MenuReturn
{
public List<DT_SubMenu> DT_SubMenu { get; set; }
public List<DT_MenuColType> DT_MenuColType { get; set; }
}
public class DT_SubMenu
{
public string IconType { get; set; }
public string MenuGroupTitle { get; set; }
public string MenuName { get; set; }
public string MenuNo { get; set; }
public string MenuUrl { get; set; }
}
public class DT_MenuColType
{
public string MenuColType { get; set; }
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,90 @@
using System.Data;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Tiobon.Core.Common;
using Tiobon.Core.Common.DB.Dapper;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Services.BASE;
namespace Tiobon.Core.Services;
public partial class CommonServices : BaseServices<RootEntityTkey<int>>, ICommonServices
{
IHttpContextAccessor _httpContextAccessor;
ILogger<PayServices> _logger;
public CommonServices(ILogger<PayServices> logger, IHttpContextAccessor httpContextAccessor)
{
_logger = logger;
_httpContextAccessor = httpContextAccessor;
}
#region 获取菜单
/// <summary>
/// 获取菜单
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
public async Task<ServiceResult<MenuReturn>> GetMenuAsync([FromBody] MenuParam param)
{
var result = new MenuReturn();
string sql = "SELECT MenuID, MenuType FROM Ghrs_Menu WHERE IsEnable = 1 AND MenuNo = '{0}'";
sql = string.Format(sql, param.menuName);
DataTable dt = await DbAccess.GetDataTableAsync(sql);
int MenuID = 0;
string MenuType = string.Empty;
if (dt.Rows.Count > 0)
{
MenuID = int.Parse(dt.Rows[0]["MenuID"].ToString());
MenuType = dt.Rows[0]["MenuType"].ToString();
}
switch (MenuType)
{
case "MenuForm":
{
sql = @"SELECT MenuNo,
[dbo].[FLangKeyToValue] (MKey, {0}, MenuName) MenuName,
IconType,
MenuUrl,
[dbo].[FParaDetailNoToName] ('GHRPara',
'MenuGroupTitle',
MenuGroupTitle,
{0},
1) MenuGroupTitle
FROM Ghrs_Menu
WHERE ParentmenuID ='{1}'
AND IsEnable = 1
AND (SELECT count (1)
FROM Ghrs_UserRole
WHERE UserID = '{2}'
AND IsEnable = 1
AND dbo.Fs_GetMenuIsCheckByRole (RoleId, MenuID, '') > 0) >
0
ORDER BY SortNo";
sql = string.Format(sql, param.langId, MenuID, App.User.ID);
result.DT_SubMenu = await Db.Ado.SqlQueryAsync<DT_SubMenu>(sql);
sql = @"SELECT iif (MenuColDisplayType ! = 'Tile', 'Tab', 'Tile') MenuColType
FROM Ghrs_Menu
WHERE menuID = 120";
sql = string.Format(sql, MenuID);
result.DT_MenuColType = await Db.Ado.SqlQueryAsync<DT_MenuColType>(sql);
break;
}
default:
{
break;
}
}
return new ServiceResult<MenuReturn>() { Success = true, Message = "查询成功", Data = result, };
}
#endregion
}
Loading…
Cancel
Save