|
|
|
@ -16,6 +16,7 @@ using Microsoft.Extensions.DependencyInjection;
|
|
|
|
|
using MiniExcelLibs;
|
|
|
|
|
using Org.BouncyCastle.Ocsp;
|
|
|
|
|
using SqlSugar;
|
|
|
|
|
using System.Data;
|
|
|
|
|
|
|
|
|
|
namespace DS.WMS.Core.Sys.Method;
|
|
|
|
|
|
|
|
|
@ -309,6 +310,113 @@ public class UserService : IUserService
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 查询客户端 用户拥有的菜单权限
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public async Task<DataResult<List<RouteItem>>> GetClientUserPermissions()
|
|
|
|
|
{
|
|
|
|
|
List<RouteItem> list = new List<RouteItem>();
|
|
|
|
|
|
|
|
|
|
var userId = long.Parse(user.UserId);
|
|
|
|
|
|
|
|
|
|
var userInfo = await db.Queryable<SysUser>().Where(x => x.Id == userId).FirstAsync();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var roleIds = await db.Queryable<SysRoleUser>().Where(x => x.UserId == userId).Select(x => x.RoleId).ToListAsync();
|
|
|
|
|
if (roleIds.Count == 0)
|
|
|
|
|
{
|
|
|
|
|
return await Task.FromResult(DataResult<List<RouteItem>>.Failed("该用户未绑定角色!"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var permissions = await db.Queryable<SysRolePermission>().Where(x => roleIds.Contains(x.RoleId))
|
|
|
|
|
.Select(x => x.PermissionId).Distinct().ToListAsync();
|
|
|
|
|
|
|
|
|
|
var perlist = await db.Queryable<SysPermissionTenant>()
|
|
|
|
|
.Where(x => x.MenuType == 1 && x.IsHidden == false && permissions.Contains(x.PermissionId) &&
|
|
|
|
|
(x.PermissionType == 1 || x.PermissionType == 0))
|
|
|
|
|
.OrderBy(x => x.SortCode)
|
|
|
|
|
.Select(a => new RouteItem
|
|
|
|
|
{
|
|
|
|
|
Id = a.Id,
|
|
|
|
|
ParentId = a.PermissionId,
|
|
|
|
|
Path = a.Url,
|
|
|
|
|
Name = a.PermissionName,
|
|
|
|
|
EnName = a.PermissionEnName,
|
|
|
|
|
Component = a.Component,
|
|
|
|
|
Redirect = a.Redirect,
|
|
|
|
|
SortCode = a.SortCode,
|
|
|
|
|
Meta = new RouteMeta()
|
|
|
|
|
{
|
|
|
|
|
Title = a.Title,
|
|
|
|
|
Icon = a.Icon,
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.ToListAsync();
|
|
|
|
|
|
|
|
|
|
list.AddRange(perlist);
|
|
|
|
|
//去重
|
|
|
|
|
list.Distinct();
|
|
|
|
|
|
|
|
|
|
//排序
|
|
|
|
|
list = list.OrderBy(x => x.SortCode).ToList();
|
|
|
|
|
|
|
|
|
|
foreach (var item in list)
|
|
|
|
|
{
|
|
|
|
|
var childs = await db.Queryable<SysPermissionTenant>().Where(x =>
|
|
|
|
|
(x.MenuType == 1 || x.MenuType == 2) && x.ParentId == item.ParentId && x.IsHidden == false &&
|
|
|
|
|
permissions.Contains(x.PermissionId) &&
|
|
|
|
|
(x.PermissionType == 1 || x.PermissionType == 0) &&
|
|
|
|
|
x.PermissionId != 1744968217220222976) //排除企业用户维护
|
|
|
|
|
.OrderBy(x => x.SortCode)
|
|
|
|
|
.Select(a => new RouteItem
|
|
|
|
|
{
|
|
|
|
|
Id = a.Id,
|
|
|
|
|
ParentId = a.PermissionId,
|
|
|
|
|
Path = a.Url,
|
|
|
|
|
Name = a.PermissionName,
|
|
|
|
|
EnName = a.PermissionEnName,
|
|
|
|
|
Component = a.Component,
|
|
|
|
|
IsCache = a.IsCache,
|
|
|
|
|
Meta = new RouteMeta()
|
|
|
|
|
{
|
|
|
|
|
Title = a.Title,
|
|
|
|
|
Icon = a.Icon,
|
|
|
|
|
}
|
|
|
|
|
}).ToListAsync();
|
|
|
|
|
|
|
|
|
|
//去重
|
|
|
|
|
childs.Distinct();
|
|
|
|
|
//排序
|
|
|
|
|
childs = childs.OrderBy(x => x.SortCode).ToList();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
item.Children = childs;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
// list = list.OrderBy(x => x.Id).ToList();
|
|
|
|
|
return await Task.FromResult(DataResult<List<RouteItem>>.Success("获取数据成功!", list));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 根据权限模块获取表单设置列表
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="permissionId"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
|
|
|
|
public async Task<DataResult<DataRuleRes>> GetDataRuleByUser(string permissionId)
|
|
|
|
|
{
|
|
|
|
|
var res = new DataRuleRes();
|
|
|
|
|
//var userId = long.Parse(user.UserId);
|
|
|
|
|
//var ruleUser = db.Queryable<SysRuleUser>().Where(x => x.UserId == userId && x.r).Select(n => n.UserId)
|
|
|
|
|
|
|
|
|
|
var data = await db.Queryable<SysDataRule>()
|
|
|
|
|
.Where(x => x.PermissionId == long.Parse(permissionId) && x.Status == StatusEnum.Enable)
|
|
|
|
|
.Select<DataRuleRes>()
|
|
|
|
|
.FirstAsync();
|
|
|
|
|
return await Task.FromResult(DataResult<DataRuleRes>.Success(data, MultiLanguageConst.DataQuerySuccess));
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 按Excel导入用户信息
|
|
|
|
|
/// </summary>
|
|
|
|
|