From 332bb1990944d82811d46eaf932feaabbe8554da Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Mon, 26 Feb 2024 17:04:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 | Bin 232149 -> 232149 bytes .../Controllers/LoginController.cs | 42 ++++++- src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml | 6 + src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 110 ++++++++++++++++++ src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 18 +++ .../Dto/Login/Menu/MenuRequest.cs | 29 +++++ .../Dto/Login/Menu/MenuResponse.cs | 105 +++++++++++++++++ .../IService/Public/ILoginService.cs | 7 ++ .../Services/Public/LoginService.cs | 14 +++ src/WMS.Web.Domain/Values/ResultCodes.cs | 5 + 10 files changed, 334 insertions(+), 2 deletions(-) create mode 100644 src/WMS.Web.Core/Dto/Login/Menu/MenuRequest.cs create mode 100644 src/WMS.Web.Core/Dto/Login/Menu/MenuResponse.cs diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index a018352a958a525ffdbc1631dca37ab894318cce..ab24d821eb84860ccd797e0dae84e33f8f49a148 100644 GIT binary patch delta 21729 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 Vz)!r9r4kJ)^Tu4G=W268{uf0ij0OMz delta 22994 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 diff --git a/src/WMS.Web.Api/Controllers/LoginController.cs b/src/WMS.Web.Api/Controllers/LoginController.cs index 2519723d..bf97d937 100644 --- a/src/WMS.Web.Api/Controllers/LoginController.cs +++ b/src/WMS.Web.Api/Controllers/LoginController.cs @@ -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 _logger; + public LoginController(ILoginService loginService,ILogger 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(); - } + } + + /// + /// 菜单列表 + /// + /// + [HttpPost] + [Route("Menus")] + public async Task>> GetMenuList() + { + var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); + if (loginInfo == null || loginInfo.UserInfo == null) + return Result>.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>.ReFailure(ResultCodes.NoRoot); + } + var res = Result>.ReSuccess(list); + return res; + } } } diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml index 8f5f0934..85654cb7 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml @@ -328,6 +328,12 @@ + + + 菜单列表 + + + 列表 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 6b6b58c8..66ebbbf3 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -3773,6 +3773,116 @@ + + + 菜单的请求对象 + + + + + 用户ID(不是人员ID) + + + + + 应用ID + + + + + 菜单响应对象 + + + + + + + + + + 上级菜单 + + + + + 模块ID,对应apps表ID + + + + + 菜单标题 + + + + + 菜单标签 + + + + + 菜单路径 + + + + + 操作,比如 /admin/info + + + + + 图标 + + + + + + + + + + 排序 + + + + + 0为普通按钮/连接,1为左侧菜单 + + + + + 是否显示:0为否,1为是 + + + + + 是否禁用:0为否,1为是 + + + + + 是否禁用:true为禁用,false为启用 + + + + + 子集 + + + + + meta + + + + + 菜单名字 + + + + + 菜单图标 + + 登录后:请求相关全部信息对象 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 59d8062e..6b698a70 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -3441,6 +3441,13 @@ + + + 获取菜单 + + + + 出库任务 @@ -5066,6 +5073,12 @@ + + + 获取菜单数据 + + + ops服务 @@ -5841,6 +5854,11 @@ 数据操作失败 + + + 没有菜单权限,无法登录 + + 序列号操作类型 diff --git a/src/WMS.Web.Core/Dto/Login/Menu/MenuRequest.cs b/src/WMS.Web.Core/Dto/Login/Menu/MenuRequest.cs new file mode 100644 index 00000000..035b6c64 --- /dev/null +++ b/src/WMS.Web.Core/Dto/Login/Menu/MenuRequest.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.Login +{ + /// + /// 菜单的请求对象 + /// + public class MenuRequest + { + public MenuRequest() { } + public MenuRequest(int userId, int moduleId) + { + this.UserId = userId; + this.ModuleID = moduleId; + } + + /// + /// 用户ID(不是人员ID) + /// + public int UserId { get; set; } + + /// + /// 应用ID + /// + public int ModuleID { get; set; } + } +} diff --git a/src/WMS.Web.Core/Dto/Login/Menu/MenuResponse.cs b/src/WMS.Web.Core/Dto/Login/Menu/MenuResponse.cs new file mode 100644 index 00000000..e113d033 --- /dev/null +++ b/src/WMS.Web.Core/Dto/Login/Menu/MenuResponse.cs @@ -0,0 +1,105 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.Login +{ + /// + /// 菜单响应对象 + /// + public class MenuResponse + { + /// + /// + /// + + public int ID { get; set; } + /// + /// 上级菜单 + /// + + public int? Pid { get; set; } + /// + /// 模块ID,对应apps表ID + /// + + public int? Module { get; set; } + /// + /// 菜单标题 + /// + + public string Title { get; set; } + /// + /// 菜单标签 + /// + + public string Name { get; set; } + /// + /// 菜单路径 + /// + + public string Path { get; set; } + /// + /// 操作,比如 /admin/info + /// + + public string Component { get; set; } + /// + /// 图标 + /// + + public string Icon { get; set; } + /// + /// + /// + + public string Redirect { get; set; } + /// + /// 排序 + /// + + public int? Sort { get; set; } + /// + /// 0为普通按钮/连接,1为左侧菜单 + /// + + public int? Type { get; set; } + /// + /// 是否显示:0为否,1为是 + /// + + public bool Hidden { get; set; } + /// + /// 是否禁用:0为否,1为是 + /// + + public bool Closed { get; set; } + + /// + /// 是否禁用:true为禁用,false为启用 + /// + public bool Disable { get; set; } + + /// + /// 子集 + /// + public List Children { get; set; } + + /// + /// meta + /// + public Meta meta { get; set; } + } + + public class Meta + { + /// + /// 菜单名字 + /// + public string title { get; set; } + /// + /// 菜单图标 + /// + public string icon { get; set; } + } +} diff --git a/src/WMS.Web.Domain/IService/Public/ILoginService.cs b/src/WMS.Web.Domain/IService/Public/ILoginService.cs index dbf47fe5..ed0f36ba 100644 --- a/src/WMS.Web.Domain/IService/Public/ILoginService.cs +++ b/src/WMS.Web.Domain/IService/Public/ILoginService.cs @@ -66,5 +66,12 @@ namespace WMS.Web.Domain.IService.Public /// /// LoginInDto GetLoginInfo(string authorization); + + /// + /// 获取菜单 + /// + /// + /// + Task> GetMenuList(int userId); } } diff --git a/src/WMS.Web.Domain/Services/Public/LoginService.cs b/src/WMS.Web.Domain/Services/Public/LoginService.cs index 4b57669f..6a3ffeec 100644 --- a/src/WMS.Web.Domain/Services/Public/LoginService.cs +++ b/src/WMS.Web.Domain/Services/Public/LoginService.cs @@ -478,5 +478,19 @@ namespace WMS.Web.Domain.Services.Public } } } + + /// + /// 获取菜单数据 + /// + /// + public async Task> GetMenuList(int userId) + { + int module = _soaOptions.ModuleID; + var result = await _singleDataService.GetSingleDataNoCache, MenuRequest, SingleLoginAction> + (new MenuRequest(userId, module), SingleLoginAction.Menus, type: SingleControllerType.Login); + if (result.Success) + return result.Data.ToList(); + return null; + } } } diff --git a/src/WMS.Web.Domain/Values/ResultCodes.cs b/src/WMS.Web.Domain/Values/ResultCodes.cs index f8ecb493..73f3c853 100644 --- a/src/WMS.Web.Domain/Values/ResultCodes.cs +++ b/src/WMS.Web.Domain/Values/ResultCodes.cs @@ -24,6 +24,11 @@ namespace WMS.Web.Domain.Values public static ValueTuple NoDateError = (40005, "数据不存在"); public static ValueTuple SourceBillNoDateError = (40005, "来源单不存在,请核对后再试"); + /// + /// 没有菜单权限,无法登录 + /// + public static ValueTuple NoRoot = (40005, "没有菜单权限,无法登录"); + //出库任务单 public static ValueTuple MergeStatusError = (70000, "请选择出库状态为”待出库”且出库类型为”销售出库”发货组织和收货客户以及发货仓库一致的数据"); public static ValueTuple OutStockQtyError = (70001, "可出库数量不足");