feat 处理设备下访客人员

This commit is contained in:
2025-08-11 10:01:43 +08:00
parent cdbd9dea83
commit 61bbde9489
3 changed files with 33 additions and 0 deletions

View File

@@ -140,4 +140,11 @@ public class DevicePermissionsController : ControllerBase
{
return await _devicePermissionAnalyzeService.GetUserAssignDeviceCodesWithTypeInTenantAsync(new List<string> { userNo });
}
[HttpGet("reset-visitors")]
[IgnoreTenant]
public async Task<int> ResetVisitorsByDeviceAsync(string deviceUniqueNo)
{
return await _devicePermissionService.ResetVisitorsByDeviceAsync(deviceUniqueNo);
}
}

View File

@@ -55,4 +55,6 @@ public interface IDevicePermissionService : IScopeDependency
Task<List<string>> GetDeviceUserCodesAsync(string deviceUniqueNo);
Task<object> ExternalAndManuallyUserNoAsync(string deviceUniqueNo);
Task<int> ResetVisitorsByDeviceAsync(string deviceUniqueNo);
}

View File

@@ -552,4 +552,28 @@ public class DevicePermissionService : IDevicePermissionService
.Distinct()
.ToList();
}
public async Task<int> ResetVisitorsByDeviceAsync(string deviceUniqueNo)
{
var device = await _dbContext.Queryable<DeviceEntity>().SingleAsync(x => x.UniqueNo == deviceUniqueNo);
device.ThrowIfNull("设备不存在");
var userNos = await GetDeviceUserNosFromVisitorAsync(device.Code);
var deviceTaskEntities = userNos.Select(x => new DeviceTaskEntity
{
Type = DeviceTaskEnumType.Add,
DeviceType = device.Type,
UserId = null,
UserNo = x,
DeviceUniqueNo = device.UniqueNo,
Status = DeviceTaskStatusEnumType.Wait,
Version = 0,
ResultMessage = null,
Source = "手动下发设备中的访客人员",
Priority = 0,
TenantId = device.TenantId
}).ToList();
return await _dbContext.InsertAsync(deviceTaskEntities);
}
}