From b341a59359dcbf10f04de6f80c7db14a18f8b518 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Mon, 8 Jan 2024 11:36:10 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E8=B0=83=E6=95=B4=E6=97=A0=E6=8E=88?= =?UTF-8?q?=E6=9D=83=E5=A4=84=E7=90=86,=E5=A2=9E=E5=8A=A0=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E8=AE=BE=E5=A4=87=E6=98=AF=E5=90=A6=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/BusinessPlacesController.cs | 1 + .../Device/Controllers/DevicesController.cs | 11 ++++++++ .../Device/Services/IDeviceService.cs | 2 ++ .../Implements/DeviceConnectService.cs | 7 ++--- .../Services/Implements/DeviceService.cs | 26 +++++++++++++++++++ .../Services/Implements/MealUserService.cs | 4 +-- 6 files changed, 46 insertions(+), 5 deletions(-) diff --git a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacesController.cs b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacesController.cs index 9649c414..33b6db3e 100644 --- a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacesController.cs +++ b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacesController.cs @@ -74,6 +74,7 @@ public class BusinessPlacesController : ControllerBase /// /// /// + [AllowAnonymous] [HttpGet("shifts")] public async Task GetShiftsByPlaceCustomCodeHttpGetAsync([FromQuery] BusinessPlaceGetShiftsRequest request) { diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs index 6de59649..9ad46959 100644 --- a/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs +++ b/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs @@ -75,6 +75,7 @@ public class DevicesController : ControllerBase /// /// /// + [AllowAnonymous] [HttpPost("resigter")] public async Task ResigterAsync(DeviceResigterRequest request) { @@ -114,4 +115,14 @@ public class DevicesController : ControllerBase { await _deviceConnectService.HeartbeatAsync(request); } + + /// + /// 检查设备是否存在 + /// + /// + [HttpGet("exists")] + public async Task CheckExistsAsync(string deviceUniqueNo) + { + return await _deviceService.CheckExistsAsync(deviceUniqueNo); + } } diff --git a/Src/Dlhis.Basic/Device/Services/IDeviceService.cs b/Src/Dlhis.Basic/Device/Services/IDeviceService.cs index a9a84773..708b947a 100644 --- a/Src/Dlhis.Basic/Device/Services/IDeviceService.cs +++ b/Src/Dlhis.Basic/Device/Services/IDeviceService.cs @@ -9,4 +9,6 @@ public interface IDeviceService : IScopeDependency Task> GetPageAsync(DevicePageRequest request); Task SaveAsync(DeviceSaveRequest request); + + Task CheckExistsAsync(string deviceUniqueNo); } diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs index 96ffedbd..6a531783 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs @@ -35,9 +35,10 @@ public class DeviceConnectService : IDeviceConnectService RegisterTime = DateTime.Now, BusinessPlaceCode = businessPlace?.Code, BusinessPlaceCustomCode = businessPlace?.CustomCode, + TenantId = device.TenantId, }; - await _dbContext.InsertAsync(registry); + await _dbContext.InsertAsync(registry); return "设备注册成功"; } @@ -93,8 +94,8 @@ public class DeviceConnectService : IDeviceConnectService private async Task GetEnableDeviceAsync(string uniqueNo) { var device = await _dbContext.Queryable() - .Where(x => x.UniqueNo == uniqueNo) - .FirstAsync(); + .Where(x => x.UniqueNo == uniqueNo) + .FirstAsync(); device.ThrowIfNull($"未知的设备唯一编码{uniqueNo}"); device.Enable.ThrowIfFalse("设备尚未启用"); diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs index 27496c9f..73d60440 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs @@ -1,9 +1,11 @@ using Dlhis.Basic.Device.Request; using Dlhis.Basic.Device.Response; using Dlhis.Entity.Basic.Entity; +using Dlhis.Entity.Device.Entities; using Kurisu.AspNetCore.UnifyResultAndValidation; using Kurisu.AspNetCore.Utils.Extensions; using Kurisu.Core.DataAccess.Dto; +using Kurisu.SqlSugar.Attributes; using Kurisu.SqlSugar.Extensions; using Kurisu.SqlSugar.Services; using Mapster; @@ -34,6 +36,7 @@ public class DeviceService : IDeviceService return page; } + [Transactional] public async Task SaveAsync(DeviceSaveRequest request) { await CheckUniqueNoExistsAsync(request); @@ -46,6 +49,21 @@ public class DeviceService : IDeviceService entity.Code = Guid.NewGuid(); entity.Brand = template.Brand; await _dbContext.InsertAsync(entity); + //同时保存注册信息 + var registry = await _dbContext.Queryable().Where(x => x.DeviceUniqueNo == request.UniqueNo).FirstAsync(); + if (registry == null) + { + registry = new DeviceRegistryEntity() + { + DeviceUniqueNo = request.UniqueNo, + LastHeartbeatTime = DateTime.Now, + RegisterTime = DateTime.Now, + BusinessPlaceCode = null, + BusinessPlaceCustomCode = null, + }; + + await _dbContext.InsertAsync(registry); + } } else { @@ -119,5 +137,13 @@ public class DeviceService : IDeviceService exists.ThrowIfTrue("唯一号已经存在"); } + + [IgnoreTenant] + public async Task CheckExistsAsync(string deviceUniqueNo) + { + return await _dbContext.Queryable() + .Where(x => x.UniqueNo == deviceUniqueNo && x.Enable) + .AnyAsync(); + } } diff --git a/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs b/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs index 22f0f6ce..56bc97b1 100644 --- a/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs +++ b/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs @@ -35,7 +35,7 @@ public class MealUserService : IMealUserService //todo 获取档案信息 var gainfoEntity = await _gainfoStore.Queryable(GainfoStatusEnumType.Working) - .Where(x => x.Guestno.ToString() == request.UserId) + .Where(x => x.No.ToString() == request.UserId) .FirstAsync(); gainfoEntity.ThrowIfNull($"档案[{request.UserId}]不存在"); @@ -44,7 +44,7 @@ public class MealUserService : IMealUserService { UserId = request.UserId, UserType = request.UserType, - UserCode = gainfoEntity.Ename, + UserCode = gainfoEntity.Code, CarNo = gainfoEntity.CarNo, Balance = 0, BalanceOfRecharge = 0,