78 lines
2.5 KiB
C#
78 lines
2.5 KiB
C#
using YD_Event.Application.AppUser.Dtos;
|
|
using YD_Event.Application.Auth;
|
|
using YD_Event.Core.Entities;
|
|
using AppUserEntity = YD_Event.Core.Entities.AppUser;
|
|
|
|
namespace YD_Event.Application.AppUser;
|
|
|
|
/// <summary>
|
|
/// 普通用户服务
|
|
/// </summary>
|
|
public class AppUserService : BaseService<AppUserEntity>, ITransient
|
|
{
|
|
private readonly ISqlSugarRepository<AppUserEntity> _appUserRep;
|
|
private readonly AuthManager _authManager;
|
|
|
|
public AppUserService(ISqlSugarRepository<AppUserEntity> appUserRep,
|
|
AuthManager authManager) : base(appUserRep)
|
|
{
|
|
_appUserRep = appUserRep;
|
|
_authManager = authManager;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 分页查询普通用户
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("page")]
|
|
public async Task<PageResult<AppUserOutput>> Page([FromQuery] AppUserPageInput input)
|
|
{
|
|
var query = _appUserRep.AsQueryable()
|
|
.WhereIF(!string.IsNullOrWhiteSpace(input.Name), u => u.Name.Contains(input.Name))
|
|
.WhereIF(input.Gender.HasValue, u => u.Gender == input.Gender)
|
|
.WhereIF(!string.IsNullOrWhiteSpace(input.Mobile), u => u.Mobile.Contains(input.Mobile))
|
|
.WhereIF(input.AuditStatus.HasValue, u => u.AuditStatus == input.AuditStatus)
|
|
.WhereIF(input.StartTime.HasValue, u => u.CreatedTime >= input.StartTime)
|
|
.WhereIF(input.EndTime.HasValue, u => u.CreatedTime <= input.EndTime)
|
|
.OrderByDescending(u => u.CreatedTime);
|
|
|
|
return await query.Select<AppUserOutput>().ToPagedListAsync(input);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取普通用户详情
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("{id}")]
|
|
public async Task<AppUserOutput> Detail([FromRoute] long id)
|
|
{
|
|
return await _appUserRep.AsQueryable()
|
|
.Where(u => u.Id == id)
|
|
.Select<AppUserOutput>()
|
|
.FirstAsync();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 审核普通用户
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("audit")]
|
|
[UnitOfWork]
|
|
public async Task Audit([FromBody] AuditInput input)
|
|
{
|
|
if (input.Ids == null || !input.Ids.Any()) return;
|
|
|
|
// 更新状态
|
|
await _appUserRep.UpdateAsync(u => new AppUserEntity
|
|
{
|
|
AuditStatus = input.Status,
|
|
AuditRemark = input.Remark,
|
|
UpdatedTime = DateTime.Now,
|
|
UpdatedUserId = _authManager.UserId
|
|
}, u => input.Ids.Contains(u.Id));
|
|
}
|
|
}
|