diff --git a/QYZH.InteractiveMagazine.Models/Dto/UsersDto.cs b/QYZH.InteractiveMagazine.Models/Dto/UsersDto.cs index 2613141..3ac9930 100644 --- a/QYZH.InteractiveMagazine.Models/Dto/UsersDto.cs +++ b/QYZH.InteractiveMagazine.Models/Dto/UsersDto.cs @@ -26,6 +26,11 @@ public class UsersOutput /// public string WxUserId { get; set; } = string.Empty; + /// + /// 微信用户名 + /// + public string? WxUserName { get; set; } + /// /// 昵称 /// diff --git a/QYZH.InteractiveMagazine.Service/UsersService.cs b/QYZH.InteractiveMagazine.Service/UsersService.cs index f7f3ea6..240027f 100644 --- a/QYZH.InteractiveMagazine.Service/UsersService.cs +++ b/QYZH.InteractiveMagazine.Service/UsersService.cs @@ -28,10 +28,27 @@ public class UsersService( /// public async Task>> GetListAsync(UsersQueryInput input) { - var page = Queryable() - .WhereIF(!string.IsNullOrEmpty(input.WxUserId), u => u.WxUserId.ToString() == input.WxUserId) - .OrderBy(u => u.Id, OrderByType.Desc) - .ToPage(input); + RefAsync totalNumber = 0; + var list = await Queryable() + .LeftJoin((u, w) => u.WxUserId == w.Id && !w.IsDeleted) + .WhereIF(!string.IsNullOrEmpty(input.WxUserId), (u, w) => u.WxUserId.ToString() == input.WxUserId) + .OrderBy((u, w) => u.Id, OrderByType.Desc) + .Select((u, w) => new UsersOutput + { + Id = u.Id, + WxUserId = u.WxUserId.ToString(), + WxUserName = w.Name, + Name = u.Name, + AvatarUrl = u.AvatarUrl, + Points = u.Points, + Type = u.Type.ToString(), + Status = u.Status.ToString(), + GrowthPoints = u.GrowthPoints, + UploadDomain = u.UploadDomain + }) + .ToPageListAsync(input.PageIndex, input.PageSize, totalNumber); + + var page = new PageListModel(list, input.PageIndex, input.PageSize, totalNumber); return BaseResponse>.Success(page); } @@ -41,7 +58,23 @@ public class UsersService( /// public async Task> GetDetailAsync(long id) { - var user = await GetByIdAsync(u => u.Id == id); + var user = await Queryable() + .LeftJoin((u, w) => u.WxUserId == w.Id && !w.IsDeleted) + .Where((u, w) => u.Id == id) + .Select((u, w) => new UsersOutput + { + Id = u.Id, + WxUserId = u.WxUserId.ToString(), + WxUserName = w.Name, + Name = u.Name, + AvatarUrl = u.AvatarUrl, + Points = u.Points, + Type = u.Type.ToString(), + Status = u.Status.ToString(), + GrowthPoints = u.GrowthPoints, + UploadDomain = u.UploadDomain + }) + .FirstAsync(); if (user == null) { return BaseResponse.Fail("用户不存在"); diff --git a/QYZH.InteractiveMagazine.WebApi/Controllers/UsersController.cs b/QYZH.InteractiveMagazine.WebApi/Controllers/UsersController.cs index ebc6763..4873972 100644 --- a/QYZH.InteractiveMagazine.WebApi/Controllers/UsersController.cs +++ b/QYZH.InteractiveMagazine.WebApi/Controllers/UsersController.cs @@ -28,8 +28,8 @@ public class UsersController : BaseController /// /// 获取用户列表(分页) /// - [HttpGet] - public async Task>> GetList([FromQuery] UsersQueryInput input) + [HttpPost] + public async Task>> GetList([FromBody] UsersQueryInput input) { return await _usersService.GetListAsync(input); } @@ -46,8 +46,8 @@ public class UsersController : BaseController /// /// 分页查询用户积分记录 /// - [HttpGet("{id}/pointsRecords")] - public async Task>> GetUserPointsRecords(long id, [FromQuery] PointsRecordQueryInput input) + [HttpPost("{id}/pointsRecords")] + public async Task>> GetUserPointsRecords(long id, [FromBody] PointsRecordQueryInput input) { return await _usersService.GetUserPointsRecordsAsync(id, input); } @@ -55,8 +55,8 @@ public class UsersController : BaseController /// /// 分页查询用户签到记录 /// - [HttpGet("{id}/checkInRecords")] - public async Task>> GetUserCheckInRecords(long id, [FromQuery] PageQueryModel input) + [HttpPost("{id}/checkInRecords")] + public async Task>> GetUserCheckInRecords(long id, [FromBody] PageQueryModel input) { return await _usersService.GetUserCheckInRecordsAsync(id, input); } @@ -64,8 +64,8 @@ public class UsersController : BaseController /// /// 分页查询用户补偿任务 /// - [HttpGet("{id}/compensationTasks")] - public async Task>> GetUserCompensationTasks(long id, [FromQuery] CompensationTaskQueryInput input) + [HttpPost("{id}/compensationTasks")] + public async Task>> GetUserCompensationTasks(long id, [FromBody] CompensationTaskQueryInput input) { return await _usersService.GetUserCompensationTasksAsync(id, input); } @@ -73,8 +73,8 @@ public class UsersController : BaseController /// /// 分页查询用户期刊列表 /// - [HttpGet("{id}/journals")] - public async Task>> GetUserJournals(long id, [FromQuery] UserJournalQueryInput input) + [HttpPost("{id}/journals")] + public async Task>> GetUserJournals(long id, [FromBody] UserJournalQueryInput input) { return await _usersService.GetUserJournalsAsync(id, input); }