feat 租户添加
This commit is contained in:
@@ -10,6 +10,6 @@
|
||||
/// <summary>
|
||||
/// 营业点
|
||||
/// </summary>
|
||||
public Guid BusinessPlaceCode { get; set; }
|
||||
public Guid? BusinessPlaceCode { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -8,23 +8,11 @@ namespace Dlhis.Entity.Device.Enums;
|
||||
[Description("设备功能")]
|
||||
public enum DeviceFuncEnumType
|
||||
{
|
||||
/// <summary>
|
||||
/// 门禁
|
||||
/// </summary>
|
||||
[Description("门禁")]
|
||||
Door = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 就餐
|
||||
/// </summary>
|
||||
[Description("就餐")]
|
||||
Meal,
|
||||
|
||||
/// <summary>
|
||||
/// 人脸
|
||||
/// </summary>
|
||||
[Description("人脸")]
|
||||
Face,
|
||||
Face = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 刷卡
|
||||
@@ -38,22 +26,9 @@ public enum DeviceFuncEnumType
|
||||
[Description("二维码")]
|
||||
QrCode,
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 布控
|
||||
/// </summary>
|
||||
[Description("布控")]
|
||||
Control,
|
||||
|
||||
/// <summary>
|
||||
/// 考勤
|
||||
/// </summary>
|
||||
[Description("考勤")]
|
||||
Attendance,
|
||||
|
||||
/// <summary>
|
||||
/// 计划
|
||||
/// </summary>
|
||||
[Description("计划")]
|
||||
Schedule
|
||||
}
|
||||
|
||||
@@ -61,6 +61,17 @@ public class TenantsController : ControllerBase
|
||||
return await _tenantService.GetTenantByCode(code);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存租户
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("save")]
|
||||
public async Task SaveTenantAsync(TenantSaveRequest request)
|
||||
{
|
||||
await _tenantService.SaveTenantAsync(request);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取我的管理租户
|
||||
/// </summary>
|
||||
|
||||
20
Src/Dlhis.Sys/Identity/Request/TenantSaveRequest.cs
Normal file
20
Src/Dlhis.Sys/Identity/Request/TenantSaveRequest.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Dlhis.Sys.Identity.Request;
|
||||
|
||||
public class TenantSaveRequest
|
||||
{
|
||||
public int? Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 代码
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "基地/租户代码不能为空")]
|
||||
public string Code { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 名称
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "基地/租户名称不能为空")]
|
||||
public string Name { get; set; }
|
||||
}
|
||||
@@ -13,4 +13,6 @@ public interface ITenantService : IScopeDependency
|
||||
Task<TenantResponse> GetTenantByCode(string code);
|
||||
|
||||
Task<List<TenantResponse>> GetMyTenantsAsync();
|
||||
|
||||
Task SaveTenantAsync(TenantSaveRequest request);
|
||||
}
|
||||
|
||||
@@ -45,6 +45,29 @@ public class TenantService : ITenantService
|
||||
.FirstAsync();
|
||||
}
|
||||
|
||||
|
||||
public async Task SaveTenantAsync(TenantSaveRequest request)
|
||||
{
|
||||
if (!request.Id.HasValue)
|
||||
{
|
||||
await _dbContext.InsertAsync(new TenantEntity
|
||||
{
|
||||
Code = request.Code,
|
||||
Name = request.Name,
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
var entity = await _dbContext.Queryable<TenantEntity>().FirstAsync(x => x.Id == request.Id);
|
||||
entity.ThrowIfNull("基地/租户信息不存在");
|
||||
|
||||
entity.Code = request.Code;
|
||||
entity.Name = request.Name;
|
||||
|
||||
await _dbContext.UpdateAsync(entity);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<List<TenantResponse>> GetMyTenantsAsync()
|
||||
{
|
||||
var userId = _currentUser.GetIntSubjectId();
|
||||
|
||||
Reference in New Issue
Block a user