fix 处理已知异常
This commit is contained in:
@@ -76,6 +76,22 @@ public class GainfoFaceService : IGainfoFaceService
|
||||
public async Task<GainfoFacePageSummaryResponse> GetPageAsync(GainfoFacePageRequest request)
|
||||
{
|
||||
var tenantIds = _currentUser.GetUserClaim("tenants").Split(",").ToList();
|
||||
if (tenantIds.IsEmpty())
|
||||
{
|
||||
return new GainfoFacePageSummaryResponse
|
||||
{
|
||||
Total = 0,
|
||||
Exists = 0,
|
||||
Page = new Pagination<GainfoFacePageResponse>
|
||||
{
|
||||
PageIndex = request.PageIndex,
|
||||
PageSize = request.PageSize,
|
||||
Total = 0,
|
||||
Data = null
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
var factories = request.Factories;
|
||||
factories = factories.Where(x => tenantIds.Contains(x)).ToList();
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ using Dlhis.Jip.Api.Requests;
|
||||
using Dlhis.ScheduledTask.DeviceUploadLog.Request;
|
||||
using Dlhis.ScheduledTask.DeviceUploadLog.Response;
|
||||
using Kurisu.AspNetCore.Authentication.Abstractions;
|
||||
using Kurisu.AspNetCore.Cache;
|
||||
using Kurisu.AspNetCore.CustomClass;
|
||||
using Kurisu.AspNetCore.DataAccess.Dto;
|
||||
using Kurisu.AspNetCore.DataAccess.SqlSugar.Services;
|
||||
@@ -25,6 +26,7 @@ namespace Dlhis.ScheduledTask.DeviceUploadLog.Services.Implements;
|
||||
public class DeviceUploadLogService : IDeviceUploadLogService
|
||||
{
|
||||
private readonly IDbContext _dbContext;
|
||||
private readonly RedisCache _redisCache;
|
||||
private readonly IDormitoryRoomPowerSwitchApi _dormitoryRoomPowerSwitchApi;
|
||||
private readonly ICurrentUser _currentUser;
|
||||
private readonly IJinkoJipApi _jinkoJipApi;
|
||||
@@ -32,6 +34,7 @@ public class DeviceUploadLogService : IDeviceUploadLogService
|
||||
private readonly IDingTalkApi _dingTalkApi;
|
||||
|
||||
public DeviceUploadLogService(IDbContext dbContext,
|
||||
RedisCache redisCache,
|
||||
IDormitoryRoomPowerSwitchApi dormitoryRoomPowerSwitchApi,
|
||||
ICurrentUser currentUser,
|
||||
IJinkoJipApi jinkoJipApi,
|
||||
@@ -39,6 +42,7 @@ public class DeviceUploadLogService : IDeviceUploadLogService
|
||||
IDingTalkApi dingTalkApi)
|
||||
{
|
||||
_dbContext = dbContext;
|
||||
_redisCache = redisCache;
|
||||
_dormitoryRoomPowerSwitchApi = dormitoryRoomPowerSwitchApi;
|
||||
_currentUser = currentUser;
|
||||
_jinkoJipApi = jinkoJipApi;
|
||||
@@ -313,6 +317,10 @@ public class DeviceUploadLogService : IDeviceUploadLogService
|
||||
|
||||
var room = await _dbContext.Queryable<DormitoryRoomEntity>().Where(x => x.RoomId == roomInfo.RoomId).SingleAsync();
|
||||
if (room == null)
|
||||
{
|
||||
//这里会有并发问题,加分布式锁
|
||||
await using var lockHandler = await _redisCache.LockAsync("dormitory_room_key_" + roomInfo.RoomId, TimeSpan.FromSeconds(10), retryCount: 5);
|
||||
if (lockHandler.Acquired)
|
||||
{
|
||||
room = new DormitoryRoomEntity
|
||||
{
|
||||
@@ -345,6 +353,7 @@ public class DeviceUploadLogService : IDeviceUploadLogService
|
||||
await _dbContext.DeleteAsync(person);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var existsPersons = await _dbContext.Queryable<DormitoryRoomPersonEntity>()
|
||||
|
||||
Reference in New Issue
Block a user