fix 兼容出差
This commit is contained in:
@@ -8,6 +8,7 @@ using Dlhis.Entity.Device.Entities;
|
||||
using Dlhis.Entity.Device.Enums;
|
||||
using Dlhis.Entity.Sys.Entities;
|
||||
using Dlhis.Entity.Sys.Enums;
|
||||
using Dlhis.Entity.Visitor.Entity;
|
||||
using Dlhis.Sys.Api;
|
||||
using Kurisu.AspNetCore.Authentication.Abstractions;
|
||||
using Kurisu.AspNetCore.DataAccess.Dto;
|
||||
@@ -98,9 +99,16 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
//保存配置的权限
|
||||
if (request.Values.IsPresent())
|
||||
{
|
||||
var gainfoNos = await _dbContext.Queryable<GainfoEntity>()
|
||||
.Where(x => request.Values.Contains(x.Code) || request.Values.Contains(x.No) || request.Values.Contains(x.IdNo))
|
||||
.Select(x => x.No)
|
||||
var today = DateTime.Today;
|
||||
var factories = _currentUser.GetUserClaim("tenants").Split(",").ToList();
|
||||
|
||||
var gainfoNos = await _dbContext.Client.Queryable<GainfoEntity>()
|
||||
.Where(gainfo => factories.Contains(gainfo.Factory) || SqlFunc.Subqueryable<BusinessTripEntity>()
|
||||
.Where(x => factories.Contains(x.Destination) && SqlFunc.DateIsSame(x.BeginDate, today))
|
||||
.Any()
|
||||
)
|
||||
.Where(gainfo => request.Values.Contains(gainfo.Code) || request.Values.Contains(gainfo.No) || request.Values.Contains(gainfo.IdNo))
|
||||
.Select(gainfo => gainfo.No)
|
||||
.ToListAsync();
|
||||
|
||||
(gainfoNos.Count != request.Values.Count).ThrowIfTrue("存在非当前权限访问的人员,操作禁止!");
|
||||
|
||||
Reference in New Issue
Block a user