订单赛事管理员也可以查看全部
This commit is contained in:
parent
2d3fa6e09d
commit
c38ccd8ccb
@ -7,7 +7,9 @@ using YD_Event.Application.Event;
|
||||
using YD_Event.Application.Order.Dtos;
|
||||
using YD_Event.Core.Entities;
|
||||
using YD_Event.Core.Enum;
|
||||
using YD_Event.Core.Options;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using YD_Event.Core.Domain;
|
||||
|
||||
namespace YD_Event.Application.Order;
|
||||
@ -27,6 +29,8 @@ public class OrderService : BaseService<YD_Event.Core.Entities.Order>, ITransien
|
||||
private readonly IIdGenerator _idGenerator;
|
||||
private readonly AuthManager _authManager;
|
||||
private readonly ISqlSugarClient _db;
|
||||
private readonly ISqlSugarRepository<SysUserRole> _sysUserRoleRepository;
|
||||
private readonly IOptionsMonitor<RoleOptions> _roleOptionsMonitor;
|
||||
private readonly OrderNoGeneratorService _orderNoGeneratorService;
|
||||
private readonly ILogger<OrderService> _logger;
|
||||
private readonly UnifiedRegistrationService _unifiedRegistrationService;
|
||||
@ -42,6 +46,8 @@ public class OrderService : BaseService<YD_Event.Core.Entities.Order>, ITransien
|
||||
IIdGenerator idGenerator,
|
||||
AuthManager authManager,
|
||||
ISqlSugarClient db,
|
||||
ISqlSugarRepository<SysUserRole> sysUserRoleRepository,
|
||||
IOptionsMonitor<RoleOptions> roleOptionsMonitor,
|
||||
OrderNoGeneratorService orderNoGeneratorService,
|
||||
ILogger<OrderService> logger,
|
||||
UnifiedRegistrationService unifiedRegistrationService) : base(orderRepository)
|
||||
@ -56,11 +62,26 @@ public class OrderService : BaseService<YD_Event.Core.Entities.Order>, ITransien
|
||||
_idGenerator = idGenerator;
|
||||
_authManager = authManager;
|
||||
_db = db;
|
||||
_sysUserRoleRepository = sysUserRoleRepository;
|
||||
_roleOptionsMonitor = roleOptionsMonitor;
|
||||
_orderNoGeneratorService = orderNoGeneratorService;
|
||||
_logger = logger;
|
||||
_unifiedRegistrationService = unifiedRegistrationService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 判断当前用户是否是管理员(超级管理员、系统管理员或赛事管理员)
|
||||
/// </summary>
|
||||
private async Task<bool> IsCurrentUserAdminAsync()
|
||||
{
|
||||
if (_authManager.IsSuperAdmin) return true;
|
||||
var userId = _authManager.UserId;
|
||||
var roleOptions = _roleOptionsMonitor.CurrentValue;
|
||||
return await _sysUserRoleRepository.IsAnyAsync(x =>
|
||||
x.UserId == userId &&
|
||||
(x.RoleId == roleOptions.AdminRoleId || x.RoleId == roleOptions.EventManagerRoleId));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建订单
|
||||
/// </summary>
|
||||
@ -194,8 +215,8 @@ public class OrderService : BaseService<YD_Event.Core.Entities.Order>, ITransien
|
||||
.WhereIF(input.EndTime.HasValue, (o, e, m, r, ro) => o.PaymentTime <= input.EndTime)
|
||||
.OrderByDescending((o, e, m, r, ro) => o.CreatedTime);
|
||||
|
||||
// 权限判断:非超级管理员必须过滤订单
|
||||
if (!_authManager.IsSuperAdmin)
|
||||
// 权限判断:非管理员(超级管理员或系统管理员)必须过滤订单
|
||||
if (!await IsCurrentUserAdminAsync())
|
||||
{
|
||||
if (certification != null)
|
||||
{
|
||||
@ -602,8 +623,8 @@ public class OrderService : BaseService<YD_Event.Core.Entities.Order>, ITransien
|
||||
.WhereIF(input.EndTime.HasValue, (o, e, m, r, ro) => o.CreatedTime <= input.EndTime)
|
||||
.OrderByDescending((o, e, m, r, ro) => o.CreatedTime);
|
||||
|
||||
// 权限判断:非超级管理员必须过滤订单
|
||||
if (!_authManager.IsSuperAdmin)
|
||||
// 权限判断:非管理员(超级管理员或系统管理员)必须过滤订单
|
||||
if (!await IsCurrentUserAdminAsync())
|
||||
{
|
||||
if (certification != null)
|
||||
{
|
||||
@ -864,8 +885,8 @@ public class OrderService : BaseService<YD_Event.Core.Entities.Order>, ITransien
|
||||
.WhereIF(input.StartTime.HasValue, (o, e, m, r, ro) => o.CreatedTime >= input.StartTime)
|
||||
.WhereIF(input.EndTime.HasValue, (o, e, m, r, ro) => o.CreatedTime <= input.EndTime);
|
||||
|
||||
// 权限判断:非超级管理员必须过滤订单
|
||||
if (!_authManager.IsSuperAdmin)
|
||||
// 权限判断:非管理员(超级管理员或系统管理员)必须过滤订单
|
||||
if (!await IsCurrentUserAdminAsync())
|
||||
{
|
||||
if (certification != null)
|
||||
{
|
||||
|
||||
@ -11464,6 +11464,11 @@
|
||||
订单管理服务
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:YD_Event.Application.Order.OrderService.IsCurrentUserAdminAsync">
|
||||
<summary>
|
||||
判断当前用户是否是管理员(超级管理员、系统管理员或赛事管理员)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:YD_Event.Application.Order.OrderService.Create(YD_Event.Application.Order.Dtos.CreateOrderInput)">
|
||||
<summary>
|
||||
创建订单
|
||||
|
||||
@ -167,6 +167,7 @@
|
||||
// 角色配置
|
||||
"RoleSettings": {
|
||||
"AdminRoleId": 1000,
|
||||
"EventManagerRoleId": 1002,
|
||||
"UnitUserRoleId": 1001,
|
||||
"HiddenMenuIds": [2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009]
|
||||
}
|
||||
|
||||
@ -13,6 +13,11 @@ public class RoleOptions : IConfigurableOptions
|
||||
/// </summary>
|
||||
public long AdminRoleId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 赛事管理员角色ID
|
||||
/// </summary>
|
||||
public long EventManagerRoleId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 单位用户角色ID
|
||||
/// </summary>
|
||||
|
||||
@ -5968,6 +5968,11 @@
|
||||
系统管理员角色ID
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:YD_Event.Core.Options.RoleOptions.EventManagerRoleId">
|
||||
<summary>
|
||||
赛事管理员角色ID
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:YD_Event.Core.Options.RoleOptions.UnitUserRoleId">
|
||||
<summary>
|
||||
单位用户角色ID
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user