fix 处理已知问题

This commit is contained in:
2024-08-26 16:11:32 +08:00
parent 7493e5a3a3
commit 4cb7d419de
8 changed files with 65 additions and 32 deletions

View File

@@ -17,25 +17,35 @@ namespace Dlhis.Basic.Device.Services.Implements;
public class DeviceConnectService : IDeviceConnectService
{
private readonly IDbContext _dbContext;
private readonly IHttpContextAccessor _httpContextAccessor;
public DeviceConnectService(IDbContext dbContext, IHttpContextAccessor httpContextAccessor)
public DeviceConnectService(IDbContext dbContext)
{
_dbContext = dbContext;
_httpContextAccessor = httpContextAccessor;
}
public async Task<string> RegisterAsync(DeviceResigterRequest request)
{
var businessPlace = await _dbContext.Queryable<BusinessPlaceEntity>().Where(x => x.CustomCode == request.BusinessCustomCode).FirstAsync();
var businessPlace = await _dbContext.Queryable<BusinessPlaceEntity>().Where(x => x.CustomCode == request.BusinessCustomCode).SingleAsync();
businessPlace.ThrowIfNull("营业点不存在");
var device = await GetEnableDeviceAsync(request.UniqueNo, false, request.DeployPlace, businessPlace.TenantId);
var registry = await _dbContext.Queryable<DeviceRegistryEntity>().Where(x => x.DeviceUniqueNo == request.UniqueNo).FirstAsync();
if (device.DeployPlace.Equals("AUTO", StringComparison.OrdinalIgnoreCase))
{
device.DeployPlace = businessPlace.Name;
await _dbContext.UpdateAsync(device);
}
var registry = await _dbContext.Queryable<DeviceRegistryEntity>().Where(x => x.DeviceUniqueNo == request.UniqueNo).SingleAsync();
if (registry != null)
{
registry.LastHeartbeatTime = DateTime.Now;
registry.RegisterTime = DateTime.Now;
registry.BusinessPlaceCode = businessPlace.Code;
await _dbContext.UpdateAsync(registry);
return "请勿重复注册设备";
}
@@ -48,12 +58,6 @@ public class DeviceConnectService : IDeviceConnectService
TenantId = device.TenantId
};
if (device.DeployPlace == "AUTO")
{
device.DeployPlace = businessPlace.Name;
await _dbContext.UpdateAsync(device);
}
await _dbContext.InsertAsync(registry);
return "设备注册成功";
}
@@ -156,9 +160,7 @@ public class DeviceConnectService : IDeviceConnectService
/// <returns></returns>
private async Task<DeviceEntity> GetEnableDeviceAsync(string uniqueNo, bool checkExists = true, string deployPlace = "", string tenantId = "")
{
var device = await _dbContext.Queryable<DeviceEntity>()
.Where(x => x.UniqueNo == uniqueNo)
.FirstAsync();
var device = await _dbContext.Queryable<DeviceEntity>().Where(x => x.UniqueNo == uniqueNo).SingleAsync();
if (checkExists)
{