From 173a8e6a757e8c7c324d5d00cd1ec90d0f13d281 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期四, 14 八月 2025 18:55:48 +0800 Subject: [PATCH] feat:开发 --- 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..e489ec1 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