fix 优化人员列表展示
This commit is contained in:
@@ -8,7 +8,7 @@ using Kurisu.Core.Result;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace Dlhis.Canteen.Dishes.Controllers;
|
||||
namespace Dlhis.Canteen.Order.Controllers;
|
||||
|
||||
/// <summary>
|
||||
/// 订单
|
||||
|
||||
@@ -7,10 +7,8 @@ namespace Dlhis.Canteen.Order.Services;
|
||||
|
||||
public interface IOrderService : IScopeDependency
|
||||
{
|
||||
|
||||
Task<DefaultApiResult<OrderResultResponse>> AddAsync(OrderAddRequest request);
|
||||
|
||||
|
||||
Task ReCalcOfflineAsync(ReCalcOfflineRequest request);
|
||||
|
||||
Task UpdateOffline(UpdateOfflineRequest outRequest);
|
||||
|
||||
@@ -17,5 +17,7 @@ public class RoleEntity
|
||||
|
||||
public string NormalizedName { get; set; }
|
||||
|
||||
public string Description { get; set; }
|
||||
|
||||
public Guid ConcurrencyStamp { get; set; }
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ public class RolesController : ControllerBase
|
||||
/// <returns></returns>
|
||||
[Authorize(Roles = "admin")]
|
||||
[HttpGet("page")]
|
||||
public async Task<Pagination<RoleRespone>> GetPageAsync([FromQuery] RolePageRequest request)
|
||||
public async Task<Pagination<RoleResponse>> GetPageAsync([FromQuery] RolePageRequest request)
|
||||
{
|
||||
return await _roleService.GetPageAsync(request);
|
||||
}
|
||||
@@ -40,7 +40,7 @@ public class RolesController : ControllerBase
|
||||
/// <returns></returns>
|
||||
[Authorize(Roles = "admin")]
|
||||
[HttpGet("list")]
|
||||
public async Task<List<RoleRespone>> GetListAsync()
|
||||
public async Task<List<RoleResponse>> GetListAsync()
|
||||
{
|
||||
return await _roleService.GetListAsync();
|
||||
}
|
||||
@@ -85,7 +85,7 @@ public class RolesController : ControllerBase
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("my")]
|
||||
public async Task<RoleRespone> GetMyRoleAsync(int? userId)
|
||||
public async Task<RoleResponse> GetMyRoleAsync(int? userId)
|
||||
{
|
||||
return await _roleService.GetMyRoleAsync(userId);
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ public class UsersController : ControllerBase
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
[Authorize(Roles = "admin")]
|
||||
[Authorize(Roles = "admin,tenant-admin")]
|
||||
[HttpGet("page")]
|
||||
public async Task<Pagination<UserResponse>> GetPageAsync([FromQuery] UserPageRequest request)
|
||||
{
|
||||
@@ -64,7 +64,7 @@ public class UsersController : ControllerBase
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// 创建用户
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
|
||||
@@ -6,6 +6,9 @@ public class RoleSaveRequest
|
||||
{
|
||||
public int? Id { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "角色名不能为空")]
|
||||
[Required(ErrorMessage = "角色标识不能为空")]
|
||||
public string Name { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "描述不能为空")]
|
||||
public string Description { get; set; }
|
||||
}
|
||||
|
||||
@@ -4,4 +4,8 @@ namespace Dlhis.Sys.Identity.Request;
|
||||
|
||||
public class UserPageRequest : PageDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 操作员
|
||||
/// </summary>
|
||||
public bool IsOperator { get; set; }
|
||||
}
|
||||
@@ -1,13 +1,24 @@
|
||||
namespace Dlhis.Sys.Identity.Response;
|
||||
|
||||
public class RoleRespone
|
||||
public class RoleResponse
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 标准化名称
|
||||
/// </summary>
|
||||
public string NormalizedName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 描述
|
||||
/// </summary>
|
||||
public string Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否可编辑
|
||||
/// </summary>
|
||||
@@ -6,13 +6,13 @@ namespace Dlhis.User.Identity.Services;
|
||||
|
||||
public interface IRoleService : IScopeDependency
|
||||
{
|
||||
Task<Pagination<RoleRespone>> GetPageAsync(RolePageRequest request);
|
||||
Task<Pagination<RoleResponse>> GetPageAsync(RolePageRequest request);
|
||||
|
||||
Task<List<RoleRespone>> GetListAsync();
|
||||
Task<List<RoleResponse>> GetListAsync();
|
||||
|
||||
Task SaveRoleAsync(RoleSaveRequest request);
|
||||
|
||||
Task<RoleRespone> GetMyRoleAsync(int? userId);
|
||||
Task<RoleResponse> GetMyRoleAsync(int? userId);
|
||||
|
||||
Task RemoveRoleAsync(RoleRemoveRequest request);
|
||||
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
using Dlhis.Sys.Identity.Request;
|
||||
using Dlhis.Sys.Identity.Response;
|
||||
using Dlhis.User.Identity.Services;
|
||||
using Kurisu.AspNetCore.Scope;
|
||||
using Kurisu.AspNetCore.UnifyResultAndValidation;
|
||||
using Kurisu.AspNetCore.Utils.Extensions;
|
||||
using Kurisu.Core.CustomClass;
|
||||
using Kurisu.Core.DataAccess.Dto;
|
||||
@@ -24,28 +22,23 @@ public class RoleService : IRoleService
|
||||
_dbContext = dbContext.ChangeDb("identity");
|
||||
}
|
||||
|
||||
public async Task<Pagination<RoleRespone>> GetPageAsync(RolePageRequest request)
|
||||
public async Task<Pagination<RoleResponse>> GetPageAsync(RolePageRequest request)
|
||||
{
|
||||
return await _dbContext.Queryable<RoleEntity>()
|
||||
.WhereIF(request.Search.IsPresent(), x => x.Name.Contains(request.Search) || x.NormalizedName.Contains(request.Search))
|
||||
.Where(x => x.Name != "admin")
|
||||
.Select<RoleRespone>()
|
||||
.Select<RoleResponse>()
|
||||
.ToPageListAsync(request);
|
||||
}
|
||||
|
||||
public async Task<RoleRespone> GetMyRoleAsync(int? userId)
|
||||
public async Task<RoleResponse> GetMyRoleAsync(int? userId)
|
||||
{
|
||||
userId ??= _currentUser.GetIntSubjectId();
|
||||
|
||||
return await _dbContext.Queryable<UserRoleEntity>()
|
||||
.LeftJoin<RoleEntity>((x, r) => x.RoleId == r.Id)
|
||||
.Where(x => x.UserId == userId)
|
||||
.Select((x, r) => new RoleRespone
|
||||
{
|
||||
Id = r.Id,
|
||||
Name = r.Name,
|
||||
NormalizedName = r.NormalizedName,
|
||||
})
|
||||
.Select<RoleResponse>()
|
||||
.FirstAsync();
|
||||
}
|
||||
|
||||
@@ -59,6 +52,7 @@ public class RoleService : IRoleService
|
||||
{
|
||||
Name = request.Name,
|
||||
NormalizedName = request.Name.ToUpperInvariant(),
|
||||
Description = request.Description,
|
||||
ConcurrencyStamp = Guid.NewGuid(),
|
||||
});
|
||||
}
|
||||
@@ -69,6 +63,7 @@ public class RoleService : IRoleService
|
||||
|
||||
entity.Name = request.Name;
|
||||
entity.NormalizedName = request.Name.ToUpperInvariant();
|
||||
entity.Description = request.Description;
|
||||
entity.ConcurrencyStamp = Guid.NewGuid();
|
||||
|
||||
await _dbContext.UpdateAsync(entity);
|
||||
@@ -127,11 +122,11 @@ public class RoleService : IRoleService
|
||||
await _dbContext.DeleteReallyAsync(role);
|
||||
}
|
||||
|
||||
public async Task<List<RoleRespone>> GetListAsync()
|
||||
public async Task<List<RoleResponse>> GetListAsync()
|
||||
{
|
||||
return await _dbContext.Queryable<RoleEntity>()
|
||||
.Where(x => x.Name != "admin")
|
||||
.Select<RoleRespone>()
|
||||
.Select<RoleResponse>()
|
||||
.ToListAsync();
|
||||
}
|
||||
|
||||
|
||||
@@ -104,13 +104,12 @@ public class TenantService : ITenantService
|
||||
.ToListAsync();
|
||||
|
||||
var tops = tenants.Where(x => x.PCode.IsEmpty()).ToList();
|
||||
foreach (var item in tops)
|
||||
{
|
||||
RecursionGetNext(item, tenants);
|
||||
}
|
||||
tops.ForEach(item => RecursionGetNext(item, tenants));
|
||||
|
||||
return tops;
|
||||
}
|
||||
|
||||
//****************************************************************** help methods *****************************************************************************
|
||||
|
||||
private static void RecursionGetNext(TenantTreeResponse current, List<TenantTreeResponse> data)
|
||||
{
|
||||
|
||||
@@ -3,40 +3,49 @@ using Dlhis.Sys.Identity.Request;
|
||||
using Dlhis.Sys.Identity.Response;
|
||||
using Kurisu.AspNetCore.Utils.Extensions;
|
||||
using Kurisu.Core.DataAccess.Dto;
|
||||
using Kurisu.Core.User.Abstractions;
|
||||
using Kurisu.SqlSugar.Extensions;
|
||||
using Kurisu.SqlSugar.Services;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
using SqlSugar;
|
||||
|
||||
namespace Dlhis.Sys.Identity.Services.Implements;
|
||||
|
||||
public class UserService : IUserService
|
||||
{
|
||||
private readonly ICurrentUser _currentUser;
|
||||
private readonly IDbContext _dbContext;
|
||||
|
||||
public UserService(IDbContext dbContext)
|
||||
public UserService(IDbContext dbContext, ICurrentUser currentUser)
|
||||
{
|
||||
_currentUser = currentUser;
|
||||
_dbContext = dbContext.ChangeDb("identity");
|
||||
}
|
||||
|
||||
public async Task<Pagination<UserResponse>> GetPageAsync(UserPageRequest request)
|
||||
{
|
||||
var tenant = _currentUser.GetStringTenantId();
|
||||
|
||||
var page = await _dbContext.Queryable<UserEntity>()
|
||||
.LeftJoin<UserRoleEntity>((x, ur) => x.Id == ur.UserId)
|
||||
.LeftJoin<RoleEntity>((x, ur, r) => ur.RoleId == r.Id)
|
||||
.LeftJoin<UserClaimEntity>((x, ur, r, c) => x.Id == c.UserId && c.ClaimType == "preferred_username")
|
||||
.LeftJoin<UserClaimEntity>((x, ur, r, c, cc) => x.Id == c.UserId && c.ClaimType == "tenant")
|
||||
.Where(x => x.UserName != "admin")
|
||||
.Where((x, ur, r, c, cc) => cc.ClaimValue == tenant)
|
||||
.WhereIF(request.IsOperator, (x, ur, r, c) => !SqlFunc.IsNullOrEmpty(r.Name))
|
||||
.WhereIF(!request.IsOperator, (x, ur, r, c) => SqlFunc.IsNullOrEmpty(r.Name))
|
||||
.WhereIF(request.Search.IsPresent(), (x, ur, r, c) => x.UserName == request.Search
|
||||
|| x.Email == request.Search
|
||||
|| x.PhoneNumber == request.Search
|
||||
|| c.ClaimValue == request.Search
|
||||
)
|
||||
.Select((x, ur, r, c) => new UserResponse
|
||||
.Select((x, ur, r, c, cc) => new UserResponse
|
||||
{
|
||||
Id = x.Id,
|
||||
RoleId = ur.RoleId,
|
||||
Role = r.Name,
|
||||
OperatorName = c.ClaimValue,
|
||||
|
||||
}, true)
|
||||
.ToPageListAsync(request);
|
||||
|
||||
@@ -74,7 +83,6 @@ public class UserService : IUserService
|
||||
RoleId = ur.RoleId,
|
||||
Role = r.Name,
|
||||
OperatorName = c.ClaimValue,
|
||||
|
||||
}, true)
|
||||
.FirstAsync();
|
||||
|
||||
|
||||
@@ -34,7 +34,6 @@ public class UserTenantService : IUserTenantService
|
||||
{
|
||||
UserId = request.UserId,
|
||||
TenantCode = x
|
||||
})
|
||||
.ToList());
|
||||
}).ToList());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user