feat: 修该用户明细展示内容添加统计隐藏明细
parent
32ea7191ee
commit
20158c37d6
|
|
@ -8,7 +8,7 @@ namespace UserPointManagement.Application.Services;
|
||||||
|
|
||||||
public interface IUserPointService
|
public interface IUserPointService
|
||||||
{
|
{
|
||||||
Task<PageResultDto<UserPointDto>> GetUserPoints(GetUserPointDto req);
|
Task<PageResultDto<UserPointInfoDto>> GetUserPoints(GetUserPointDto req);
|
||||||
|
|
||||||
Task CreateUserPoint(CreateUserPointDto input);
|
Task CreateUserPoint(CreateUserPointDto input);
|
||||||
|
|
||||||
|
|
@ -24,26 +24,39 @@ public class UserPointService : IUserPointService
|
||||||
_dbContextFactory = dbContextFactory;
|
_dbContextFactory = dbContextFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<PageResultDto<UserPointDto>> GetUserPoints(GetUserPointDto req)
|
public async Task<PageResultDto<UserPointInfoDto>> GetUserPoints(GetUserPointDto req)
|
||||||
{
|
{
|
||||||
await using var _userPointManagementDbContext = await _dbContextFactory.CreateDbContextAsync();
|
await using var _userPointManagementDbContext = await _dbContextFactory.CreateDbContextAsync();
|
||||||
var queryable = from userPoint in _userPointManagementDbContext.UserPoints
|
|
||||||
join user in _userPointManagementDbContext.Users on userPoint.UserId equals user.Id
|
var queryable = _userPointManagementDbContext.Users
|
||||||
|
.Where(x => x.Id == req.UserId, req.UserId.HasValue);
|
||||||
|
|
||||||
|
// 分页筛选只能针对用户
|
||||||
|
var users = await queryable.OrderByDescending(x => x.Id).Paging(req).ToListAsync();
|
||||||
|
|
||||||
|
// 查出用户底下积分明细
|
||||||
|
var userPoints = await (from userPoint in _userPointManagementDbContext.UserPoints
|
||||||
|
where users.Select(x => x.Id).Contains(userPoint.UserId)
|
||||||
select new UserPointDto()
|
select new UserPointDto()
|
||||||
{
|
{
|
||||||
UserPointId = userPoint.Id,
|
UserPointId = userPoint.Id,
|
||||||
UserId = user.Id,
|
UserId = userPoint.UserId,
|
||||||
Name = user.Name,
|
|
||||||
Point = userPoint.Point,
|
Point = userPoint.Point,
|
||||||
CreateTime = userPoint.CreateTime
|
CreateTime = userPoint.CreateTime
|
||||||
};
|
}).ToListAsync();
|
||||||
|
|
||||||
queryable = queryable.Where(x => x.UserId == req.UserId, req.UserId.HasValue);
|
var data = userPoints.GroupBy(x => x.UserId)
|
||||||
|
.Select(x => new UserPointInfoDto()
|
||||||
|
{
|
||||||
|
UserId = x.Key,
|
||||||
|
Name = users.First(p => p.Id == x.Key).Name,
|
||||||
|
TotalPoint = x.Sum(p => p.Point),
|
||||||
|
Items = x.ToList()
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
var count = queryable.Count();
|
var count = queryable.Count();
|
||||||
var data = await queryable.OrderByDescending(x => x.CreateTime).Paging(req).ToListAsync().ConfigureAwait(false);
|
|
||||||
|
|
||||||
return new PageResultDto<UserPointDto>()
|
return new PageResultDto<UserPointInfoDto>()
|
||||||
{
|
{
|
||||||
Items = data,
|
Items = data,
|
||||||
TotalCount = count
|
TotalCount = count
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,6 @@ public class UserPointDto
|
||||||
|
|
||||||
public int UserId { get; set; }
|
public int UserId { get; set; }
|
||||||
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public int Point { get; set; }
|
public int Point { get; set; }
|
||||||
|
|
||||||
public DateTime CreateTime { get; set; }
|
public DateTime CreateTime { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
namespace UserPointManagement.Model.Dtos.UserPoint;
|
||||||
|
|
||||||
|
public class UserPointInfoDto
|
||||||
|
{
|
||||||
|
public int UserId { get; set; }
|
||||||
|
|
||||||
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
public int TotalPoint { get; set; }
|
||||||
|
|
||||||
|
public List<UserPointDto> Items { get; set; }
|
||||||
|
}
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
</Space>
|
</Space>
|
||||||
</GridCol>
|
</GridCol>
|
||||||
</GridRow>
|
</GridRow>
|
||||||
<Table TItem="UserPointDto" DataSource="@_userPoints"
|
<Table TItem="UserPointInfoDto" DataSource="@_userPoints"
|
||||||
Total="_total"
|
Total="_total"
|
||||||
Loading="_loading"
|
Loading="_loading"
|
||||||
PageIndex="@_pageIndex"
|
PageIndex="@_pageIndex"
|
||||||
|
|
@ -44,15 +44,7 @@
|
||||||
OnPageIndexChange="OnPageIndexChanged"
|
OnPageIndexChange="OnPageIndexChanged"
|
||||||
OnPageSizeChange="OnPageSizeChange">
|
OnPageSizeChange="OnPageSizeChange">
|
||||||
<PropertyColumn Property="c => c.Name" title="用户姓名"/>
|
<PropertyColumn Property="c => c.Name" title="用户姓名"/>
|
||||||
<PropertyColumn Property="c => c.Point" title="积分"/>
|
<PropertyColumn Property="c => c.TotalPoint" title="总积分"/>
|
||||||
<PropertyColumn Property="c => c.CreateTime" title="新增时间" Format="yyyy-MM-dd HH:mm"/>
|
|
||||||
<ActionColumn Title="操作" Width="220">
|
|
||||||
<Space Size=@("middle")>
|
|
||||||
<SpaceItem>
|
|
||||||
<Button Danger OnClick="()=>Delete(context.UserPointId)">删除</Button>
|
|
||||||
</SpaceItem>
|
|
||||||
</Space>
|
|
||||||
</ActionColumn>
|
|
||||||
</Table>
|
</Table>
|
||||||
</PageContainer>
|
</PageContainer>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ public class UserPointDetailBase : ComponentBase
|
||||||
[Inject] private IUserService UserService { get; set; }
|
[Inject] private IUserService UserService { get; set; }
|
||||||
[Inject] private MessageService MessageService { get; set; }
|
[Inject] private MessageService MessageService { get; set; }
|
||||||
|
|
||||||
protected List<UserPointDto> _userPoints;
|
protected List<UserPointInfoDto> _userPoints;
|
||||||
protected List<UserDto> _users;
|
protected List<UserDto> _users;
|
||||||
protected int _pageIndex = 1;
|
protected int _pageIndex = 1;
|
||||||
protected int _pageSize = 20;
|
protected int _pageSize = 20;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue