From f8874ff60ca60488d647217936a88598713a8faf Mon Sep 17 00:00:00 2001 From: glz <694770232@qq.com> Date: Fri, 3 Jul 2026 11:24:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=90=8D=E5=AD=97=E6=AE=B5=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E7=94=A8=E6=88=B7=E6=95=B0=E6=8D=AE=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=8F=8A=E6=8E=A5=E5=8F=A3=E8=AF=B7=E6=B1=82=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 新增WxUserName字段到UsersOutput Dto用于存储微信用户名 2. 关联WxUser表查询以获取微信用户名数据 3. 将用户相关的GET接口修改为POST接口,使用FromBody接收参数 --- .../Dto/UsersDto.cs | 5 +++ .../UsersService.cs | 43 ++++++++++++++++--- .../Controllers/UsersController.cs | 20 ++++----- 3 files changed, 53 insertions(+), 15 deletions(-) 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); }