feat: 新增微信用户名字段并优化用户数据查询及接口请求方式
1. 新增WxUserName字段到UsersOutput Dto用于存储微信用户名 2. 关联WxUser表查询以获取微信用户名数据 3. 将用户相关的GET接口修改为POST接口,使用FromBody接收参数
This commit is contained in:
@ -26,6 +26,11 @@ public class UsersOutput
|
||||
/// </summary>
|
||||
public string WxUserId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 微信用户名
|
||||
/// </summary>
|
||||
public string? WxUserName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 昵称
|
||||
/// </summary>
|
||||
|
||||
@ -28,10 +28,27 @@ public class UsersService(
|
||||
/// </summary>
|
||||
public async Task<BaseResponse<PageListModel<UsersOutput>>> GetListAsync(UsersQueryInput input)
|
||||
{
|
||||
var page = Queryable()
|
||||
.WhereIF(!string.IsNullOrEmpty(input.WxUserId), u => u.WxUserId.ToString() == input.WxUserId)
|
||||
.OrderBy(u => u.Id, OrderByType.Desc)
|
||||
.ToPage<Users, UsersOutput>(input);
|
||||
RefAsync<int> totalNumber = 0;
|
||||
var list = await Queryable()
|
||||
.LeftJoin<WxUser>((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<UsersOutput>(list, input.PageIndex, input.PageSize, totalNumber);
|
||||
|
||||
return BaseResponse<PageListModel<UsersOutput>>.Success(page);
|
||||
}
|
||||
@ -41,7 +58,23 @@ public class UsersService(
|
||||
/// </summary>
|
||||
public async Task<BaseResponse<UserDetailOutput>> GetDetailAsync(long id)
|
||||
{
|
||||
var user = await GetByIdAsync<UsersOutput>(u => u.Id == id);
|
||||
var user = await Queryable()
|
||||
.LeftJoin<WxUser>((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<UserDetailOutput>.Fail("用户不存在");
|
||||
|
||||
@ -28,8 +28,8 @@ public class UsersController : BaseController
|
||||
/// <summary>
|
||||
/// 获取用户列表(分页)
|
||||
/// </summary>
|
||||
[HttpGet]
|
||||
public async Task<BaseResponse<PageListModel<UsersOutput>>> GetList([FromQuery] UsersQueryInput input)
|
||||
[HttpPost]
|
||||
public async Task<BaseResponse<PageListModel<UsersOutput>>> GetList([FromBody] UsersQueryInput input)
|
||||
{
|
||||
return await _usersService.GetListAsync(input);
|
||||
}
|
||||
@ -46,8 +46,8 @@ public class UsersController : BaseController
|
||||
/// <summary>
|
||||
/// 分页查询用户积分记录
|
||||
/// </summary>
|
||||
[HttpGet("{id}/pointsRecords")]
|
||||
public async Task<BaseResponse<PageListModel<PointsRecordOutput>>> GetUserPointsRecords(long id, [FromQuery] PointsRecordQueryInput input)
|
||||
[HttpPost("{id}/pointsRecords")]
|
||||
public async Task<BaseResponse<PageListModel<PointsRecordOutput>>> GetUserPointsRecords(long id, [FromBody] PointsRecordQueryInput input)
|
||||
{
|
||||
return await _usersService.GetUserPointsRecordsAsync(id, input);
|
||||
}
|
||||
@ -55,8 +55,8 @@ public class UsersController : BaseController
|
||||
/// <summary>
|
||||
/// 分页查询用户签到记录
|
||||
/// </summary>
|
||||
[HttpGet("{id}/checkInRecords")]
|
||||
public async Task<BaseResponse<PageListModel<CheckInRecordOutput>>> GetUserCheckInRecords(long id, [FromQuery] PageQueryModel input)
|
||||
[HttpPost("{id}/checkInRecords")]
|
||||
public async Task<BaseResponse<PageListModel<CheckInRecordOutput>>> GetUserCheckInRecords(long id, [FromBody] PageQueryModel input)
|
||||
{
|
||||
return await _usersService.GetUserCheckInRecordsAsync(id, input);
|
||||
}
|
||||
@ -64,8 +64,8 @@ public class UsersController : BaseController
|
||||
/// <summary>
|
||||
/// 分页查询用户补偿任务
|
||||
/// </summary>
|
||||
[HttpGet("{id}/compensationTasks")]
|
||||
public async Task<BaseResponse<PageListModel<CompensationTaskOutput>>> GetUserCompensationTasks(long id, [FromQuery] CompensationTaskQueryInput input)
|
||||
[HttpPost("{id}/compensationTasks")]
|
||||
public async Task<BaseResponse<PageListModel<CompensationTaskOutput>>> GetUserCompensationTasks(long id, [FromBody] CompensationTaskQueryInput input)
|
||||
{
|
||||
return await _usersService.GetUserCompensationTasksAsync(id, input);
|
||||
}
|
||||
@ -73,8 +73,8 @@ public class UsersController : BaseController
|
||||
/// <summary>
|
||||
/// 分页查询用户期刊列表
|
||||
/// </summary>
|
||||
[HttpGet("{id}/journals")]
|
||||
public async Task<BaseResponse<PageListModel<UserJournalItemOutput>>> GetUserJournals(long id, [FromQuery] UserJournalQueryInput input)
|
||||
[HttpPost("{id}/journals")]
|
||||
public async Task<BaseResponse<PageListModel<UserJournalItemOutput>>> GetUserJournals(long id, [FromBody] UserJournalQueryInput input)
|
||||
{
|
||||
return await _usersService.GetUserJournalsAsync(id, input);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user