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);
}