feat 租户添加

This commit is contained in:
2024-02-23 16:59:53 +08:00
parent f255a87138
commit e04954f471
7 changed files with 76 additions and 42 deletions

View File

@@ -3,9 +3,7 @@ using Dlhis.Basic.Device.Response;
using Dlhis.Entity.Basic.Entity;
using Dlhis.Entity.Device.Entities;
using Dlhis.Entity.Device.Enums;
using Kurisu.AspNetCore.UnifyResultAndValidation;
using Kurisu.AspNetCore.Utils.Extensions;
using Kurisu.SqlSugar.Attributes;
using Kurisu.SqlSugar.Services;
using Mapster;
@@ -20,7 +18,7 @@ public class DeviceConnectService : IDeviceConnectService
_dbContext = dbContext;
}
public async Task<string> ResigterAsync(DeviceResigterRequest request)
{
var businessPlace = await _dbContext.Queryable<BusinessPlaceEntity>().Where(x => x.CustomCode == request.BusinessCustomCode).FirstAsync();
@@ -55,7 +53,7 @@ public class DeviceConnectService : IDeviceConnectService
public async Task<List<DeviceNotSetBusinessPlaceResponse>> GetNotSetBusinessPlaceDevicesAsync()
{
var devices = await _dbContext.Queryable<DeviceEntity>().Where(x => x.Enable).ToListAsync();
devices = devices.Where(x => x.Funcs.Any(item => item == DeviceFuncEnumType.Meal)).ToList();
devices = devices.Where(x => x.Type == DeviceTypeEnumType.Meal).ToList();
return devices.Adapt<List<DeviceNotSetBusinessPlaceResponse>>();
}
@@ -63,26 +61,31 @@ public class DeviceConnectService : IDeviceConnectService
public async Task SetResigterBusinessPlaceAsync(DeviceSetResigterBusinessPlaceRequest request)
{
var device = await GetEnableDeviceAsync(request.UniqueNo);
if (device.Funcs?.Any(x => x == DeviceFuncEnumType.Meal) != true)
{
throw new UserFriendlyException("当前设备无用餐功能,无法设置");
}
(device.Type != DeviceTypeEnumType.Meal).ThrowIfTrue("非就餐类型设备,无法设置");
var registry = await _dbContext.Queryable<DeviceRegistryEntity>().Where(x => x.DeviceUniqueNo == request.UniqueNo).FirstAsync();
registry.ThrowIfNull($"{request.UniqueNo}的设备注册信息不存在,无法设置营业点");
var businessPlace = await _dbContext.Queryable<BusinessPlaceEntity>().Where(x => x.Code == request.BusinessPlaceCode).FirstAsync();
businessPlace.ThrowIfNull("营业点不存在,无法设置到设备注册信息中");
if (request.BusinessPlaceCode.HasValue)
{
var businessPlace = await _dbContext.Queryable<BusinessPlaceEntity>().Where(x => x.Code == request.BusinessPlaceCode).FirstAsync();
businessPlace.ThrowIfNull("营业点不存在,无法设置到设备注册信息中");
//更新营业点信息
registry.BusinessPlaceCode = businessPlace.Code;
registry.BusinessPlaceCustomCode = businessPlace.CustomCode;
//更新营业点信息
registry.BusinessPlaceCode = businessPlace.Code;
registry.BusinessPlaceCustomCode = businessPlace.CustomCode;
}
else
{
//更新营业点信息
registry.BusinessPlaceCode = null;
registry.BusinessPlaceCustomCode = null;
}
await _dbContext.UpdateAsync(registry);
//todo 通知设备重新获取
}
public async Task HeartbeatAsync(DeviceHeartbeatRequest request)
{
var registry = await _dbContext.Queryable<DeviceRegistryEntity>().Where(x => x.DeviceUniqueNo == request.UniqueNo).FirstAsync();