From 67d5dbb966df4af4304b4168378c68ce83ad01b1 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期三, 10 九月 2025 13:05:50 +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