菜单栏
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
列表
|
||||
|
||||
@@ -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>
|
||||
登录后:请求相关全部信息对象
|
||||
|
||||
@@ -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>
|
||||
序列号操作类型
|
||||
|
||||
29
src/WMS.Web.Core/Dto/Login/Menu/MenuRequest.cs
Normal file
29
src/WMS.Web.Core/Dto/Login/Menu/MenuRequest.cs
Normal 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; }
|
||||
}
|
||||
}
|
||||
105
src/WMS.Web.Core/Dto/Login/Menu/MenuResponse.cs
Normal file
105
src/WMS.Web.Core/Dto/Login/Menu/MenuResponse.cs
Normal 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; }
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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, "可出库数量不足");
|
||||
|
||||
Reference in New Issue
Block a user