菜单完善

This commit is contained in:
马梓彭 2026-02-28 20:59:18 +08:00
parent e41db87728
commit 9f682772c2
7 changed files with 1917 additions and 293 deletions

View File

@ -23,6 +23,8 @@ public class EventService : BaseService<EventInfo>, ITransient
private readonly ISqlSugarRepository<EventRegistration> _registrationRepository;
private readonly ISqlSugarRepository<YD_Event.Core.Entities.Merchant> _merchantRepository;
private readonly IIdGenerator _idGenerator;
private readonly YD_Event.Application.Menu.SysMenuService _sysMenuService;
private readonly YD_Event.Application.Auth.AuthManager _authManager;
public EventService(
ISqlSugarRepository<EventInfo> repository,
@ -38,7 +40,9 @@ public class EventService : BaseService<EventInfo>, ITransient
ISqlSugarRepository<EventFeeConfig> feeConfigRepository,
ISqlSugarRepository<EventRegistration> registrationRepository,
ISqlSugarRepository<YD_Event.Core.Entities.Merchant> merchantRepository,
IIdGenerator idGenerator) : base(repository)
IIdGenerator idGenerator,
YD_Event.Application.Menu.SysMenuService sysMenuService,
YD_Event.Application.Auth.AuthManager authManager) : base(repository)
{
_repository = repository;
_participantRepository = participantRepository;
@ -54,6 +58,8 @@ public class EventService : BaseService<EventInfo>, ITransient
_registrationRepository = registrationRepository;
_merchantRepository = merchantRepository;
_idGenerator = idGenerator;
_sysMenuService = sysMenuService;
_authManager = authManager;
}
/// <summary>
@ -73,7 +79,31 @@ public class EventService : BaseService<EventInfo>, ITransient
.WhereIF(input.RegistrationEndTime.HasValue, x => x.RegistrationEndTime <= input.RegistrationEndTime)
.WhereIF(input.MatchStartTime.HasValue, x => x.MatchStartTime >= input.MatchStartTime)
.WhereIF(input.MatchEndTime.HasValue, x => x.MatchEndTime <= input.MatchEndTime)
.OrderByDescending(x => x.CreatedTime)
.OrderByDescending(x => x.CreatedTime);
// 数据权限过滤
if (!_authManager.IsSuperAdmin)
{
// 检查全部数据权限
var hasAllData = await _sysMenuService.CheckPermission("event:data:all");
if (!hasAllData)
{
// 检查个人数据权限
var hasPersonalData = await _sysMenuService.CheckPermission("event:data:personal");
if (hasPersonalData)
{
var userId = _authManager.UserId;
query = query.Where(x => x.CreatedUserId == userId);
}
else
{
// 无权限,返回空
return new PageResult<EventListOutput>();
}
}
}
var resultQuery = query.OrderByDescending(x => x.CreatedTime)
.Select(x => new EventListOutput
{
Id = x.Id,
@ -90,7 +120,7 @@ public class EventService : BaseService<EventInfo>, ITransient
// AccountName 暂未关联
});
return await query.ToPagedListAsync(input);
return await resultQuery.ToPagedListAsync(input);
}
/// <summary>

View File

@ -1,4 +1,4 @@
using YD_Event.Application.Auth;
using YD_Event.Application.Auth;
using YD_Event.Application.Menu.Dtos;
using Microsoft.OpenApi;
@ -77,7 +77,7 @@ public class SysMenuService : BaseService<SysMenu>, ITransient
public async Task AddMenu(AddSysMenuInput dto)
{
SysMenu sysMenu = dto.Adapt<SysMenu>();
if (sysMenu.Type == MenuType.Button)
if (sysMenu.Type == MenuType.Button || sysMenu.Type == MenuType.DataScope)
{
sysMenu.Link = sysMenu.Icon = sysMenu.Component = sysMenu.Path = sysMenu.Redirect = sysMenu.RouteName = null;
}
@ -123,7 +123,7 @@ public class SysMenuService : BaseService<SysMenu>, ITransient
}
dto.Adapt(sysMenu);
if (sysMenu.Type == MenuType.Button)
if (sysMenu.Type == MenuType.Button || sysMenu.Type == MenuType.DataScope)
{
sysMenu.Link = sysMenu.Icon = sysMenu.Component = sysMenu.Path = sysMenu.Redirect = sysMenu.RouteName = null;
}
@ -228,7 +228,7 @@ public class SysMenuService : BaseService<SysMenu>, ITransient
if (_authManager.IsSuperAdmin)
{
list = await queryable
.Where(x => x.Type != MenuType.Button)
.Where(x => x.Type != MenuType.Button && x.Type != MenuType.DataScope)
.ToTreeAsync(x => x.Children, x => x.ParentId, null);
}
else
@ -308,7 +308,7 @@ public class SysMenuService : BaseService<SysMenu>, ITransient
.Where(role => role.Status == AvailabilityStatus.Enable)
.Select((role, userRole, roleMenu) => roleMenu);
var list = await _sysMenuRepository.AsQueryable().LeftJoin(queryable, (menu, roleMenu) => menu.Id == roleMenu.MenuId)
.Where(menu => menu.Type == MenuType.Button)
.Where(menu => menu.Type == MenuType.Button || menu.Type == MenuType.DataScope)
.Select((menu, roleMenu) => new CheckPermissionOutput
{
Code = menu.Code,
@ -327,7 +327,7 @@ public class SysMenuService : BaseService<SysMenu>, ITransient
{
for (int i = menus.Count - 1; i >= 0; i--)
{
if (menus[i].Type == MenuType.Button)
if (menus[i].Type == MenuType.Button || menus[i].Type == MenuType.DataScope)
{
menus.Remove(menus[i]);
continue;

View File

@ -1,4 +1,4 @@
using YD_Event.Application.Auth;
using YD_Event.Application.Auth;
using YD_Event.Application.Menu;
using YD_Event.Application.User.Dtos;
using YD_Event.Core.Shared;
@ -265,7 +265,8 @@ public class SysUserService : BaseService<SysUser>, ITransient
{
if (_authManager.IsSuperAdmin)
{
dto.AuthBtnList = _repository.AsSugarClient().Queryable<SysMenu>().Where(x => x.Type == MenuType.Button)
dto.AuthBtnList = _repository.AsSugarClient().Queryable<SysMenu>()
.Where(x => x.Type == MenuType.Button || x.Type == MenuType.DataScope)
.Select(x => x.Code).ToList();
}
else

View File

@ -1,4 +1,4 @@
namespace YD_Event.Core.Enum;
namespace YD_Event.Core.Enum;
public enum MenuType
{
@ -16,5 +16,10 @@ public enum MenuType
/// 按钮
/// </summary>
[Description("按钮")]
Button
Button,
/// <summary>
/// 数据权限
/// </summary>
[Description("数据权限")]
DataScope
}

File diff suppressed because it is too large Load Diff

View File

@ -1,132 +1,4 @@
[
{
"Id": 1000,
"RoleId": 1000,
"MenuId": 1000,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1001,
"RoleId": 1000,
"MenuId": 1001,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1002,
"RoleId": 1000,
"MenuId": 1002,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1003,
"RoleId": 1000,
"MenuId": 1003,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1004,
"RoleId": 1000,
"MenuId": 1004,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1005,
"RoleId": 1000,
"MenuId": 1005,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1006,
"RoleId": 1000,
"MenuId": 1006,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1007,
"RoleId": 1000,
"MenuId": 1007,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1008,
"RoleId": 1000,
"MenuId": 1008,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1009,
"RoleId": 1000,
"MenuId": 1009,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1010,
"RoleId": 1000,
"MenuId": 1010,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1011,
"RoleId": 1000,
"MenuId": 1011,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1012,
"RoleId": 1000,
"MenuId": 1012,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1013,
"RoleId": 1000,
"MenuId": 1013,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1014,
"RoleId": 1000,
"MenuId": 1014,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1015,
"RoleId": 1000,
"MenuId": 1015,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1016,
"RoleId": 1001,
@ -206,5 +78,605 @@
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1026,
"RoleId": 1000,
"MenuId": 1000,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1027,
"RoleId": 1000,
"MenuId": 1001,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1028,
"RoleId": 1000,
"MenuId": 1002,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1029,
"RoleId": 1000,
"MenuId": 1003,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1030,
"RoleId": 1000,
"MenuId": 1004,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1031,
"RoleId": 1000,
"MenuId": 1005,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1032,
"RoleId": 1000,
"MenuId": 1006,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1033,
"RoleId": 1000,
"MenuId": 1007,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1034,
"RoleId": 1000,
"MenuId": 1008,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1035,
"RoleId": 1000,
"MenuId": 1009,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1036,
"RoleId": 1000,
"MenuId": 1010,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1037,
"RoleId": 1000,
"MenuId": 1011,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1038,
"RoleId": 1000,
"MenuId": 1012,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1039,
"RoleId": 1000,
"MenuId": 1013,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1040,
"RoleId": 1000,
"MenuId": 1014,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1041,
"RoleId": 1000,
"MenuId": 1015,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1042,
"RoleId": 1000,
"MenuId": 1016,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1043,
"RoleId": 1000,
"MenuId": 1017,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1044,
"RoleId": 1000,
"MenuId": 1018,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1045,
"RoleId": 1000,
"MenuId": 1019,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1046,
"RoleId": 1000,
"MenuId": 1020,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1047,
"RoleId": 1000,
"MenuId": 1021,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1048,
"RoleId": 1000,
"MenuId": 1022,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1049,
"RoleId": 1000,
"MenuId": 1023,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1050,
"RoleId": 1000,
"MenuId": 1024,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1051,
"RoleId": 1000,
"MenuId": 1025,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1052,
"RoleId": 1000,
"MenuId": 1026,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1053,
"RoleId": 1000,
"MenuId": 1027,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1054,
"RoleId": 1000,
"MenuId": 1028,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1055,
"RoleId": 1000,
"MenuId": 1029,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1056,
"RoleId": 1000,
"MenuId": 1030,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1057,
"RoleId": 1000,
"MenuId": 1031,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1058,
"RoleId": 1000,
"MenuId": 1032,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1059,
"RoleId": 1000,
"MenuId": 1033,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1060,
"RoleId": 1000,
"MenuId": 1034,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1061,
"RoleId": 1000,
"MenuId": 1035,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1062,
"RoleId": 1000,
"MenuId": 1036,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1063,
"RoleId": 1000,
"MenuId": 1037,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1064,
"RoleId": 1000,
"MenuId": 1038,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1065,
"RoleId": 1000,
"MenuId": 1039,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1066,
"RoleId": 1000,
"MenuId": 1040,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1067,
"RoleId": 1000,
"MenuId": 1041,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1068,
"RoleId": 1000,
"MenuId": 1042,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1069,
"RoleId": 1000,
"MenuId": 1043,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1070,
"RoleId": 1000,
"MenuId": 1044,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1071,
"RoleId": 1000,
"MenuId": 1045,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1072,
"RoleId": 1000,
"MenuId": 1046,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1073,
"RoleId": 1000,
"MenuId": 1047,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1074,
"RoleId": 1000,
"MenuId": 1048,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1075,
"RoleId": 1000,
"MenuId": 1049,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1076,
"RoleId": 1000,
"MenuId": 1050,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1077,
"RoleId": 1000,
"MenuId": 1051,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1078,
"RoleId": 1000,
"MenuId": 1052,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1079,
"RoleId": 1000,
"MenuId": 1053,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1080,
"RoleId": 1000,
"MenuId": 1054,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1081,
"RoleId": 1000,
"MenuId": 1055,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1082,
"RoleId": 1000,
"MenuId": 1056,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1083,
"RoleId": 1000,
"MenuId": 1060,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1084,
"RoleId": 1000,
"MenuId": 1061,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1085,
"RoleId": 1000,
"MenuId": 1062,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1086,
"RoleId": 1000,
"MenuId": 1063,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1087,
"RoleId": 1000,
"MenuId": 1064,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1088,
"RoleId": 1000,
"MenuId": 1065,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1089,
"RoleId": 1000,
"MenuId": 1066,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1090,
"RoleId": 1000,
"MenuId": 1067,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1091,
"RoleId": 1000,
"MenuId": 2000,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1092,
"RoleId": 1000,
"MenuId": 2001,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1093,
"RoleId": 1000,
"MenuId": 2002,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1094,
"RoleId": 1000,
"MenuId": 2003,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1095,
"RoleId": 1000,
"MenuId": 2004,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1096,
"RoleId": 1000,
"MenuId": 2005,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1097,
"RoleId": 1000,
"MenuId": 2006,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1098,
"RoleId": 1000,
"MenuId": 2007,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1099,
"RoleId": 1000,
"MenuId": 2008,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
},
{
"Id": 1100,
"RoleId": 1000,
"MenuId": 2009,
"CreatedUserId": 1000,
"CreatedTime": "2023-06-01",
"DeleteMark": false
}
]

View File

@ -3500,6 +3500,11 @@
按钮
</summary>
</member>
<member name="F:YD_Event.Core.Enum.MenuType.DataScope">
<summary>
数据权限
</summary>
</member>
<member name="T:YD_Event.Core.Enum.PointsOperationType">
<summary>
积分操作类型