数据权限修改部分

usertest
cjy 2 months ago
parent 59989f370b
commit 4b701dd0bc

@ -112,6 +112,14 @@ public class PermissionReq
/// 是否缓存标识
/// </summary>
public bool IsCache { get; set; } = false;
/// <summary>
///权限实体
/// </summary>
public string PermissionEntity { get; set; } = "";
/// <summary>
/// 中文视图名
/// </summary>
public string ColumnView { get; set; } = "";
}
/// <summary>

@ -20,7 +20,8 @@ public class SysDataRule : BaseTenantModel<long>
/// <summary>
/// 规则类型 user / public
/// </summary>
public string RuleType { get; set; }
public string RuleType { get; set; }
/// <summary>
/// 状态
/// </summary>

@ -146,4 +146,9 @@ public class SysPermission : BaseModel<long>
/// 权限实体
/// </summary>
public string PermissionEntity { get; set; }
/// <summary>
/// 中文视图名
/// </summary>
public string ColumnView { get; set; }
}

@ -149,4 +149,9 @@ public class SysPermissionTenant : BaseTenantModel<long>
///权限实体
/// </summary>
public string PermissionEntity { get; set; }
/// <summary>
/// 中文视图名
/// </summary>
public string ColumnView { get; set; }
}

@ -50,4 +50,11 @@ public interface IUserService
/// <param name="file"></param>
/// <returns></returns>
public Task<DataResult<string>> ImportUserByExcel(IFormFile file);
/// <summary>
/// 查询客户端 用户拥有的菜单权限
/// </summary>
/// <returns></returns>
public Task<DataResult<List<RouteItem>>> GetClientUserPermissions();
}

@ -858,94 +858,7 @@ public class CommonService : ICommonService
#region 客户端通用
/// <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>

@ -57,6 +57,7 @@ public class PermissionService : IPermissionService
.Map(dto => dto.IsRoute, poco => poco.IsRoute)
.Map(dto => dto.IsCache, poco => poco.IsCache)
.Map(dto => dto.PermissionEntity, poco => poco.PermissionEntity)
.Map(dto => dto.ColumnView, poco => poco.ColumnView)
;
}
@ -284,6 +285,7 @@ public class PermissionService : IPermissionService
per.IsRoute = info.IsRoute;
per.IsCache = info.IsCache;
per.PermissionEntity = info.PermissionEntity;
per.ColumnView = info.ColumnView;
per.Note = info.Note;
}
db.Updateable(tenantPers).IgnoreColumns(ignoreAllNullColumns: true).IgnoreColumns(it => new

@ -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>

@ -99,5 +99,15 @@ public class UserController : ApiController
var res = await _invokeService.ImportUserByExcel(file);
return res;
}
/// <summary>
/// 查询客户端 用户拥有的菜单权限
/// </summary>
/// <returns></returns>
[HttpGet]
[Route("GetClientUserPermissions")]
public async Task<DataResult<List<RouteItem>>> GetClientUserPermissions()
{
var res = await _invokeService.GetClientUserPermissions();
return res;
}
}
Loading…
Cancel
Save