From 1b84c97dd1cf5a746c5bbb185a0b7400b7f5ca24 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期五, 15 八月 2025 10:08:40 +0800 Subject: [PATCH] pref:优化 --- FlexJobApi.UserServer.Application/Users/Commands/UserInfoCommandHandler.cs | 29 +++++++++++++++++++++++++++-- 1 files changed, 27 insertions(+), 2 deletions(-) diff --git a/FlexJobApi.UserServer.Application/Users/Commands/UserInfoCommandHandler.cs b/FlexJobApi.UserServer.Application/Users/Commands/UserInfoCommandHandler.cs index b91f501..b554866 100644 --- a/FlexJobApi.UserServer.Application/Users/Commands/UserInfoCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/Users/Commands/UserInfoCommandHandler.cs @@ -1,5 +1,6 @@ 锘縰sing FlexJobApi.Core; using Furion.DatabaseAccessor; +using Furion.FriendlyException; using MediatR; using Microsoft.EntityFrameworkCore; using System; @@ -15,8 +16,9 @@ /// </summary> public class UserInfoCommandHandler( IRepository<User> rep - ) : - IRequestHandler<SetUserInfoStatusCommand, int> + ) : + IRequestHandler<SetUserInfoStatusCommand, int>, + IRequestHandler<SetUserInfoRolesCommand, int> { private readonly IRepository<User> rep = rep; @@ -37,5 +39,28 @@ } return entities.Count; } + + /// <summary> + /// 璁剧疆鐢ㄦ埛淇℃伅瑙掕壊 + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<int> Handle(SetUserInfoRolesCommand request, CancellationToken cancellationToken) + { + var entity = await rep.AsQueryable() + .Include(it => it.UserRoles) + .Where(it => it.Id == request.UserInfoId) + .FirstOrDefaultAsync(cancellationToken); + if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "鐢ㄦ埛"); + entity.UserRoles = request.RoleIds + .Select(it => new UserRole + { + RoleId = it + }) + .ToList(); + await rep.UpdateAsync(entity); + return entity.UserRoles.Count; + } } } -- Gitblit v1.9.1