菜单栏

This commit is contained in:
tongfei
2024-02-26 17:04:42 +08:00
parent 7f7179314b
commit 332bb19909
10 changed files with 334 additions and 2 deletions

View File

@@ -1,5 +1,6 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -7,6 +8,7 @@ using System.Threading.Tasks;
using WMS.Web.Core.Dto.Login;
using WMS.Web.Core.Internal.Results;
using WMS.Web.Domain.IService.Public;
using WMS.Web.Domain.Values;
namespace WMS.Web.Api.Controllers
{
@@ -18,8 +20,10 @@ namespace WMS.Web.Api.Controllers
public class LoginController : ControllerBase
{
private readonly ILoginService _loginService;
public LoginController(ILoginService loginService)
private readonly ILogger<LoginController> _logger;
public LoginController(ILoginService loginService,ILogger<LoginController> logger)
{
this._logger = logger;
this._loginService = loginService;
}
@@ -99,6 +103,40 @@ namespace WMS.Web.Api.Controllers
if (!string.IsNullOrEmpty(value))
await _loginService.LoginOutSingleAsync(value);
return Result.ReSuccess();
}
}
/// <summary>
/// 菜单列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Route("Menus")]
public async Task<Result<List<MenuResponse>>> GetMenuList()
{
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
if (loginInfo == null || loginInfo.UserInfo == null)
return Result<List<MenuResponse>>.ReFailure(ResultCodes.Token_Invalid_Error);
_logger.LogInformation($"用户ID{loginInfo.UserInfo.UcId}");
var list = await _loginService.GetMenuList(loginInfo.UserInfo.UcId);
_logger.LogInformation($"菜单数量:{list.Count}");
if (list.Count == 0)
{
//调用单点的退出接口
var dto = new LoginOutDto()
{
UcId = loginInfo.UserInfo.UcId.ToString(),
SessionId = loginInfo.UserInfo.SeesionId,
Token = loginInfo.TokenInfo.Token,
AccessToken = loginInfo.TokenInfo.PhpToken,
ExpiresIn = loginInfo.TokenInfo.Expired
};
await _loginService.LoginOut(dto);
return Result<List<MenuResponse>>.ReFailure(ResultCodes.NoRoot);
}
var res = Result<List<MenuResponse>>.ReSuccess(list);
return res;
}
}
}

View File

@@ -328,6 +328,12 @@
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Api.Controllers.LoginController.GetMenuList">
<summary>
菜单列表
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Api.Controllers.MoveBoxRecordController.GetPagedList(WMS.Web.Core.Dto.MoveBoxRecord.MoveBoxRecordQueryRequest)">
<summary>
列表

View File

@@ -3773,6 +3773,116 @@
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.Login.MenuRequest">
<summary>
菜单的请求对象
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.MenuRequest.UserId">
<summary>
用户ID不是人员ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.MenuRequest.ModuleID">
<summary>
应用ID
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.Login.MenuResponse">
<summary>
菜单响应对象
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.MenuResponse.ID">
<summary>
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.MenuResponse.Pid">
<summary>
上级菜单
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.MenuResponse.Module">
<summary>
模块ID对应apps表ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.MenuResponse.Title">
<summary>
菜单标题
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.MenuResponse.Name">
<summary>
菜单标签
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.MenuResponse.Path">
<summary>
菜单路径
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.MenuResponse.Component">
<summary>
操作,比如 /admin/info
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.MenuResponse.Icon">
<summary>
图标
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.MenuResponse.Redirect">
<summary>
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.MenuResponse.Sort">
<summary>
排序
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.MenuResponse.Type">
<summary>
0为普通按钮/连接1为左侧菜单
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.MenuResponse.Hidden">
<summary>
是否显示0为否1为是
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.MenuResponse.Closed">
<summary>
是否禁用0为否1为是
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.MenuResponse.Disable">
<summary>
是否禁用true为禁用false为启用
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.MenuResponse.Children">
<summary>
子集
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.MenuResponse.meta">
<summary>
meta
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.Meta.title">
<summary>
菜单名字
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.Meta.icon">
<summary>
菜单图标
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.Login.LoginSingleRequest">
<summary>
登录后:请求相关全部信息对象

View File

@@ -3441,6 +3441,13 @@
<param name="authorization"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.Public.ILoginService.GetMenuList(System.Int32)">
<summary>
获取菜单
</summary>
<param name="userId"></param>
<returns></returns>
</member>
<member name="T:WMS.Web.Domain.IService.Public.IOutStockTaskService">
<summary>
出库任务
@@ -5066,6 +5073,12 @@
</summary>
<param name="token"></param>
</member>
<member name="M:WMS.Web.Domain.Services.Public.LoginService.GetMenuList(System.Int32)">
<summary>
获取菜单数据
</summary>
<returns></returns>
</member>
<member name="T:WMS.Web.Domain.Services.Public.OpsService">
<summary>
ops服务
@@ -5841,6 +5854,11 @@
数据操作失败
</summary>
</member>
<member name="F:WMS.Web.Domain.Values.ResultCodes.NoRoot">
<summary>
没有菜单权限,无法登录
</summary>
</member>
<member name="T:WMS.Web.Domain.Values.SerialNumberOperateType">
<summary>
序列号操作类型

View File

@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace WMS.Web.Core.Dto.Login
{
/// <summary>
/// 菜单的请求对象
/// </summary>
public class MenuRequest
{
public MenuRequest() { }
public MenuRequest(int userId, int moduleId)
{
this.UserId = userId;
this.ModuleID = moduleId;
}
/// <summary>
/// 用户ID不是人员ID
/// </summary>
public int UserId { get; set; }
/// <summary>
/// 应用ID
/// </summary>
public int ModuleID { get; set; }
}
}

View File

@@ -0,0 +1,105 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace WMS.Web.Core.Dto.Login
{
/// <summary>
/// 菜单响应对象
/// </summary>
public class MenuResponse
{
/// <summary>
///
///</summary>
public int ID { get; set; }
/// <summary>
/// 上级菜单
///</summary>
public int? Pid { get; set; }
/// <summary>
/// 模块ID对应apps表ID
///</summary>
public int? Module { get; set; }
/// <summary>
/// 菜单标题
///</summary>
public string Title { get; set; }
/// <summary>
/// 菜单标签
///</summary>
public string Name { get; set; }
/// <summary>
/// 菜单路径
///</summary>
public string Path { get; set; }
/// <summary>
/// 操作,比如 /admin/info
///</summary>
public string Component { get; set; }
/// <summary>
/// 图标
///</summary>
public string Icon { get; set; }
/// <summary>
///
///</summary>
public string Redirect { get; set; }
/// <summary>
/// 排序
///</summary>
public int? Sort { get; set; }
/// <summary>
/// 0为普通按钮/连接1为左侧菜单
///</summary>
public int? Type { get; set; }
/// <summary>
/// 是否显示0为否1为是
///</summary>
public bool Hidden { get; set; }
/// <summary>
/// 是否禁用0为否1为是
///</summary>
public bool Closed { get; set; }
/// <summary>
/// 是否禁用true为禁用false为启用
/// </summary>
public bool Disable { get; set; }
/// <summary>
/// 子集
/// </summary>
public List<MenuResponse> Children { get; set; }
/// <summary>
/// meta
/// </summary>
public Meta meta { get; set; }
}
public class Meta
{
/// <summary>
/// 菜单名字
/// </summary>
public string title { get; set; }
/// <summary>
/// 菜单图标
/// </summary>
public string icon { get; set; }
}
}

View File

@@ -66,5 +66,12 @@ namespace WMS.Web.Domain.IService.Public
/// <param name="authorization"></param>
/// <returns></returns>
LoginInDto GetLoginInfo(string authorization);
/// <summary>
/// 获取菜单
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
Task<List<MenuResponse>> GetMenuList(int userId);
}
}

View File

@@ -478,5 +478,19 @@ namespace WMS.Web.Domain.Services.Public
}
}
}
/// <summary>
/// 获取菜单数据
/// </summary>
/// <returns></returns>
public async Task<List<MenuResponse>> GetMenuList(int userId)
{
int module = _soaOptions.ModuleID;
var result = await _singleDataService.GetSingleDataNoCache<ResultList<MenuResponse>, MenuRequest, SingleLoginAction>
(new MenuRequest(userId, module), SingleLoginAction.Menus, type: SingleControllerType.Login);
if (result.Success)
return result.Data.ToList();
return null;
}
}
}

View File

@@ -24,6 +24,11 @@ namespace WMS.Web.Domain.Values
public static ValueTuple<int, string> NoDateError = (40005, "数据不存在");
public static ValueTuple<int, string> SourceBillNoDateError = (40005, "来源单不存在,请核对后再试");
/// <summary>
/// 没有菜单权限,无法登录
/// </summary>
public static ValueTuple<int, string> NoRoot = (40005, "没有菜单权限,无法登录");
//出库任务单
public static ValueTuple<int, string> MergeStatusError = (70000, "请选择出库状态为”待出库”且出库类型为”销售出库”发货组织和收货客户以及发货仓库一致的数据");
public static ValueTuple<int, string> OutStockQtyError = (70001, "可出库数量不足");