From c33b59a63a99a4598d6d6bc56750efd4f7ad550d Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期二, 09 九月 2025 15:19:42 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.UserServer.Application/Users/Commands/UserInfoCommandHandler.cs | 71 ++++++++++++++++++++++++++++++++++- 1 files changed, 68 insertions(+), 3 deletions(-) diff --git a/FlexJobApi.UserServer.Application/Users/Commands/UserInfoCommandHandler.cs b/FlexJobApi.UserServer.Application/Users/Commands/UserInfoCommandHandler.cs index b91f501..2a88cfc 100644 --- a/FlexJobApi.UserServer.Application/Users/Commands/UserInfoCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/Users/Commands/UserInfoCommandHandler.cs @@ -1,5 +1,7 @@ 锘縰sing FlexJobApi.Core; using Furion.DatabaseAccessor; +using Furion.FriendlyException; +using Mapster; using MediatR; using Microsoft.EntityFrameworkCore; using System; @@ -14,11 +16,15 @@ /// 鐢ㄦ埛淇℃伅鍛戒护澶勭悊鍣� /// </summary> public class UserInfoCommandHandler( - IRepository<User> rep - ) : - IRequestHandler<SetUserInfoStatusCommand, int> + IRepository<User> rep, + IRepository<UserBankCard> repUserBankCard + ) : + IRequestHandler<SetUserInfoStatusCommand, int>, + IRequestHandler<SetUserInfoRolesCommand, int>, + IRequestHandler<SavePersonalUserBankCardCommand, Guid> { private readonly IRepository<User> rep = rep; + private readonly IRepository<UserBankCard> repUserBankCard = repUserBankCard; /// <summary> /// 璁剧疆鐢ㄦ埛淇℃伅鐘舵�� @@ -37,5 +43,64 @@ } 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; + } + + /// <summary> + /// 淇濆瓨鐢ㄦ埛閾惰鍗′俊鎭� + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<Guid> Handle(SavePersonalUserBankCardCommand request, CancellationToken cancellationToken) + { + var logier = JwtUtils.GetCurrentLogier(); + var entity = await repUserBankCard.AsQueryable() + .Where(it => it.UserId == logier.Id) + .FirstOrDefaultAsync(); + var add = false; + if (entity == null) + { + entity = new UserBankCard(); + entity.UserId = logier.Id; + add = true; + } + request.Adapt(entity); + if (entity.Access == EnumEnterpriseWalletAccess.Alipay) + { + entity.Bank = "鏀粯瀹�"; + entity.BankBranch = null; + } + if (add) + { + await repUserBankCard.InsertAsync(entity); + } + else + { + await repUserBankCard.UpdateAsync(entity); + } + return entity.Id; + } } } -- Gitblit v1.9.1