fix 修复已知问题

This commit is contained in:
2024-12-13 16:31:04 +08:00
parent 02a2971256
commit a33f86969b
17 changed files with 162 additions and 225 deletions

View File

@@ -23,17 +23,6 @@ public class GainfoPermissionsController : ControllerBase
_gainfoPermissions = gainfoPermissions;
}
/// <summary>
/// 根据用户查看餐饮点
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpGet("placesByGainfo")]
public async Task<Pagination<BusinessPlaceResponse>> GetPlaceByGainfoAsync([FromQuery] DeviceAssRequest request)
{
return await _gainfoPermissions.GetPlaceByGainfoAsync(request);
}
/// <summary>
/// 根据档案号 设备组查询设备
/// </summary>
@@ -57,16 +46,6 @@ public class GainfoPermissionsController : ControllerBase
return await _gainfoPermissions.GetAssignDeviceCodesAsync(request);
}
/// <summary>
/// 当前绑定的设备组信息
/// </summary>
/// <returns></returns>
[HttpGet("assignGroups")]
public async Task<List<DeviceGroupTreeResponse>> GetAssignGroupAsync(string userNo)
{
return await _gainfoPermissions.GetAssignGroupAsync(userNo);
}
/// <summary>
/// 权限重置
/// </summary>

View File

@@ -9,13 +9,9 @@ namespace Dlhis.Basic.Organization.Services;
public interface IGainfoPermissionService : IScopeDependency
{
Task<Pagination<BusinessPlaceResponse>> GetPlaceByGainfoAsync(DeviceAssRequest request);
Task<List<GetDevicesUnderGroupByUserNoResponse>> GetDevicesUnderGroupByUserNoAsync(string userNo, Guid deviceGroupCode);
Task<Pagination<GainfoDevicePermissionResponse>> GetAssignDeviceCodesAsync(DeviceAssRequest request);
Task<List<DeviceGroupTreeResponse>> GetAssignGroupAsync(string userNo);
Task<DevicePermissionAssignResponse> ResetPermissionsAsync(string userNo, DeviceTaskEnumType type, List<Guid> deviceCodes);
}

View File

@@ -29,44 +29,6 @@ public class GainfoPermissionService : IGainfoPermissionService
_dbContext = dbContext;
}
public async Task<Pagination<BusinessPlaceResponse>> GetPlaceByGainfoAsync(DeviceAssRequest request)
{
var gainfo = await _gainfoStore.Queryable()
.Where(x => x.No == request.UserNo)
.SingleAsync();
if (gainfo == null)
{
return new Pagination<BusinessPlaceResponse>();
}
//用户所有deviceCode权限
var deviceCodes = await _devicePermissionAnalyzeService.GetAssignDeviceCodesAsync(gainfo.Code);
return await _dbContext.Queryable<DeviceEntity>()
.LeftJoin<DeviceRegistryEntity>((x, dr) => x.UniqueNo == dr.DeviceUniqueNo)
.LeftJoin<BusinessPlaceEntity>((x, dr, place) => dr.BusinessPlaceCode == place.Code)
.LeftJoin<BusinessPlaceShiftRelationshipEntity>((x, dr, place, ps) => place.Code == ps.PlaceCode)
.LeftJoin<BusinessShiftEntity>((x, dr, place, ps, s) => s.Code == ps.ShiftCode)
.Where(x => x.Type == DeviceTypeEnumType.Meal)
.Where(x => deviceCodes.Contains(x.Code))
.Where((x, dr) => dr.BusinessPlaceCode.HasValue)
.Select((x, dr, place, ps, s) => new BusinessPlaceResponse
{
Id = place.Id,
Code = place.Code,
Status = place.Status,
Name = place.Name,
Catalog = place.Catalog,
CustomCode = place.CustomCode,
Source = place.Source,
ShiftCode = s.Code,
ShiftName = s.Name
})
.Distinct()
.ToPageListAsync(request);
}
public async Task<List<GetDevicesUnderGroupByUserNoResponse>> GetDevicesUnderGroupByUserNoAsync(string userNo, Guid deviceGroupCode)
{
@@ -129,6 +91,7 @@ public class GainfoPermissionService : IGainfoPermissionService
var page = await _dbContext.Queryable<DeviceEntity>()
.LeftJoin<DeviceRegistryEntity>((d, dr) => d.UniqueNo == dr.DeviceUniqueNo)
.WhereIF(request.DeviceType.HasValue, d => d.Type == request.DeviceType)
.WhereIF(request.Search.IsPresent(), d => d.UniqueNo == request.Search)
.Where(d => codes.Contains(d.Code))
.Select((d, dr) => new GainfoDevicePermissionResponse { Factory = d.TenantId }, true)
.ToPageListAsync(request);
@@ -239,21 +202,4 @@ public class GainfoPermissionService : IGainfoPermissionService
var deleteCount = type == DeviceTaskEnumType.Delete ? tasks.Count : 0;
return new DevicePermissionAssignResponse(addCount, deleteCount);
}
public async Task<List<DeviceGroupTreeResponse>> GetAssignGroupAsync(string userNo)
{
//(DeviceAssignmentTypeEnumType.Group, AssignTypeEnumType.User, userNo
var groups = await _devicePermissionAnalyzeService.GetAssignmentsAsync(new DeviceGetAssignmentsRequest
{
UniqueType = DeviceAssignmentTypeEnumType.Group,
AssignType = AssignTypeEnumType.User,
AssignValue = userNo
});
return await _dbContext.Queryable<DeviceGroupEntity>()
.Where(x => groups.Contains(x.Code))
.Select<DeviceGroupTreeResponse>()
.ToListAsync();
}
}