From a2efd6c3bdbea77ef13205f4102cae774a233041 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期五, 05 九月 2025 13:06:02 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.UserServer.Application/Users/Commands/UserInfoCommandHandler.cs | 43 +++++++++++++ FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Commands/OpenEnterpriseWalletCommand.cs | 1 FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserBankCardQuery.cs | 49 ++++++++++++++++ FlexJobApi.Core/Models/UserServer/Users/Commands/SavePersonalUserBankCardCommand.cs | 44 ++++++++++++++ FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs | 24 +++++++ FlexJobApi.Core/Entities/UserServer/Users/UserBankCard.cs | 15 +--- 6 files changed, 162 insertions(+), 14 deletions(-) diff --git a/FlexJobApi.Core/Entities/UserServer/Users/UserBankCard.cs b/FlexJobApi.Core/Entities/UserServer/Users/UserBankCard.cs index 346dd77..990ceb9 100644 --- a/FlexJobApi.Core/Entities/UserServer/Users/UserBankCard.cs +++ b/FlexJobApi.Core/Entities/UserServer/Users/UserBankCard.cs @@ -23,6 +23,11 @@ public User User { get; set; } /// <summary> + /// 閫氶亾 + /// </summary> + public EnumEnterpriseWalletAccess Access { get; set; } + + /// <summary> /// 閾惰鍗″彿 /// </summary> [MaxLength(32)] @@ -37,16 +42,6 @@ /// 鎵�灞炴敮琛� /// </summary> public string BankBranch { get; set; } - - /// <summary> - /// 濮撳悕 - /// </summary> - public string Name { get; set; } - - /// <summary> - /// 韬唤璇� - /// </summary> - public string Identity { get; set; } /// <summary> /// 閾惰棰勭暀鎵嬫満鍙� diff --git a/FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Commands/OpenEnterpriseWalletCommand.cs b/FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Commands/OpenEnterpriseWalletCommand.cs index 48051cf..a8dd6a2 100644 --- a/FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Commands/OpenEnterpriseWalletCommand.cs +++ b/FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Commands/OpenEnterpriseWalletCommand.cs @@ -17,6 +17,7 @@ /// 浼佷笟Id /// </summary> public Guid? EnterpriseId { get; set; } + /// <summary> /// 閫氶亾 /// </summary> diff --git a/FlexJobApi.Core/Models/UserServer/Users/Commands/SavePersonalUserBankCardCommand.cs b/FlexJobApi.Core/Models/UserServer/Users/Commands/SavePersonalUserBankCardCommand.cs new file mode 100644 index 0000000..cdd1d7f --- /dev/null +++ b/FlexJobApi.Core/Models/UserServer/Users/Commands/SavePersonalUserBankCardCommand.cs @@ -0,0 +1,44 @@ +锘縰sing MediatR; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlexJobApi.Core +{ + /// <summary> + /// 淇濆瓨鐢ㄦ埛閾惰鍗′俊鎭� + /// </summary> + [Resource([EnumResourceController.UserServerUser])] + public class SavePersonalUserBankCardCommand : IRequest<Guid> + { + /// <summary> + /// 閫氶亾 + /// </summary> + public EnumEnterpriseWalletAccess Access { get; set; } + + /// <summary> + /// 閾惰鍗″彿 + /// </summary> + [MaxLength(32)] + public string Code { get; set; } + + /// <summary> + /// 鎵�灞為摱琛� + /// </summary> + public string Bank { get; set; } + + /// <summary> + /// 鎵�灞炴敮琛� + /// </summary> + public string BankBranch { get; set; } + + /// <summary> + /// 閾惰棰勭暀鎵嬫満鍙� + /// </summary> + [MaxLength(11)] + public string PhoneNumber { get; set; } + } +} diff --git a/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserBankCardQuery.cs b/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserBankCardQuery.cs new file mode 100644 index 0000000..c14a3b8 --- /dev/null +++ b/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserBankCardQuery.cs @@ -0,0 +1,49 @@ +锘縰sing MediatR; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlexJobApi.Core +{ + /// <summary> + /// 鏌ヨ涓汉鐢ㄦ埛閾惰鍗′俊鎭� + /// </summary> + [Resource([EnumResourceController.UserServerUser])] + public class GetPersonalUserBankCardQuery : IRequest<GetPersonalUserBankCardQueryResult> + { + } + + /// <summary> + /// 鏌ヨ涓汉鐢ㄦ埛閾惰鍗′俊鎭粨鏋� + /// </summary> + public class GetPersonalUserBankCardQueryResult + { + /// <summary> + /// 閫氶亾 + /// </summary> + public EnumEnterpriseWalletAccess Access { get; set; } + + /// <summary> + /// 閾惰鍗″彿 + /// </summary> + public string Code { get; set; } + + /// <summary> + /// 鎵�灞為摱琛� + /// </summary> + public string Bank { get; set; } + + /// <summary> + /// 鎵�灞炴敮琛� + /// </summary> + public string BankBranch { get; set; } + + /// <summary> + /// 閾惰棰勭暀鎵嬫満鍙� + /// </summary> + public string PhoneNumber { get; set; } + } +} diff --git a/FlexJobApi.UserServer.Application/Users/Commands/UserInfoCommandHandler.cs b/FlexJobApi.UserServer.Application/Users/Commands/UserInfoCommandHandler.cs index f2c78f9..2a88cfc 100644 --- a/FlexJobApi.UserServer.Application/Users/Commands/UserInfoCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/Users/Commands/UserInfoCommandHandler.cs @@ -1,6 +1,7 @@ 锘縰sing FlexJobApi.Core; using Furion.DatabaseAccessor; using Furion.FriendlyException; +using Mapster; using MediatR; using Microsoft.EntityFrameworkCore; using System; @@ -15,12 +16,15 @@ /// 鐢ㄦ埛淇℃伅鍛戒护澶勭悊鍣� /// </summary> public class UserInfoCommandHandler( - IRepository<User> rep + IRepository<User> rep, + IRepository<UserBankCard> repUserBankCard ) : IRequestHandler<SetUserInfoStatusCommand, int>, - IRequestHandler<SetUserInfoRolesCommand, int> + IRequestHandler<SetUserInfoRolesCommand, int>, + IRequestHandler<SavePersonalUserBankCardCommand, Guid> { private readonly IRepository<User> rep = rep; + private readonly IRepository<UserBankCard> repUserBankCard = repUserBankCard; /// <summary> /// 璁剧疆鐢ㄦ埛淇℃伅鐘舵�� @@ -63,5 +67,40 @@ 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; + } } } diff --git a/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs b/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs index 394dde3..24fe715 100644 --- a/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs +++ b/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs @@ -1,5 +1,6 @@ 锘縰sing FlexJobApi.Core; using Furion.DatabaseAccessor; +using Mapster; using MediatR; using Microsoft.EntityFrameworkCore; using System; @@ -14,12 +15,15 @@ /// C绔汉鍛樻煡璇㈠鐞嗗櫒 /// </summary> public class GetPersonalUserInfosQueryHandler( - IRepository<User> rep + IRepository<User> rep, + IRepository<UserBankCard> repUserBankCard ) : IRequestHandler<GetPersonalUserInfosQuery, GetPersonalUserInfosQueryResult>, - IRequestHandler<GetPersonalUserInfoSignContractsQuery, GetPersonalUserInfoSignContractsQueryResult> + IRequestHandler<GetPersonalUserInfoSignContractsQuery, GetPersonalUserInfoSignContractsQueryResult>, + IRequestHandler<GetPersonalUserBankCardQuery, GetPersonalUserBankCardQueryResult> { private readonly IRepository<User> rep = rep; + private readonly IRepository<UserBankCard> repUserBankCard = repUserBankCard; /// <summary> /// 鏌ヨC绔汉鍛樺垎椤靛垪琛ㄦ暟鎹� @@ -130,5 +134,21 @@ }); return request.PageModel.GetPagedListAsync<GetPersonalUserInfoSignContractsQueryResult, GetPersonalUserInfoSignContractsQueryResultItem>(q, cancellationToken); } + + /// <summary> + /// 鏌ヨ涓汉鐢ㄦ埛閾惰鍗′俊鎭� + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public Task<GetPersonalUserBankCardQueryResult> Handle(GetPersonalUserBankCardQuery request, CancellationToken cancellationToken) + { + var logier = JwtUtils.GetCurrentLogier(); + var model = repUserBankCard.AsQueryable().AsNoTracking() + .Where(it => it.UserId == logier.Id) + .ProjectToType<GetPersonalUserBankCardQueryResult>() + .FirstOrDefaultAsync(); + return model; + } } } -- Gitblit v1.9.1