From bbd4b2cecc2d8b9b141ffdf45ef5db51a0a0f53e Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期一, 11 八月 2025 14:49:26 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.Core/Entities/UserServer/Users/User.cs | 8 + FlexJobApi.Core/Enums/Users/EnumUserRealMethod.cs | 27 +++++ FlexJobApi.Core/FlexJobApi.Core.xml | 130 +++++++++++++++++++++++--- FlexJobApi.Core/Models/UserServer/Auths/Commands/PasswordLoginCommand.cs | 7 + FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml | 33 ++++++ FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalLoginInfoQuery.cs | 60 ++++++++++++ FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs | 27 ++++ 7 files changed, 270 insertions(+), 22 deletions(-) diff --git a/FlexJobApi.Core/Entities/UserServer/Users/User.cs b/FlexJobApi.Core/Entities/UserServer/Users/User.cs index 73dfbc1..ab55926 100644 --- a/FlexJobApi.Core/Entities/UserServer/Users/User.cs +++ b/FlexJobApi.Core/Entities/UserServer/Users/User.cs @@ -1,4 +1,5 @@ -锘縰sing Furion.DatabaseAccessor; +锘縰sing FlexJobApi.Core.Enums.Users; +using Furion.DatabaseAccessor; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; using System; @@ -122,6 +123,11 @@ public bool IsReal { get; set; } /// <summary> + /// 瀹炲悕鏂瑰紡 + /// </summary> + public EnumUserRealMethod? RealMethod { get; set; } + + /// <summary> /// 鎵嬫満鍙� /// </summary> /// <remarks>鑱旂郴鐢佃瘽</remarks> diff --git a/FlexJobApi.Core/Enums/Users/EnumUserRealMethod.cs b/FlexJobApi.Core/Enums/Users/EnumUserRealMethod.cs new file mode 100644 index 0000000..0119e34 --- /dev/null +++ b/FlexJobApi.Core/Enums/Users/EnumUserRealMethod.cs @@ -0,0 +1,27 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlexJobApi.Core.Enums.Users +{ + /// <summary> + /// 鐢ㄦ埛瀹炲悕鏂瑰紡 + /// </summary> + public enum EnumUserRealMethod + { + /// <summary> + /// 涓汉鎵嬫満鍙蜂笁瑕佺礌 + /// </summary> + Identity3 = 10, + /// <summary> + /// 閾惰鍗″瑕佺礌 + /// </summary> + Identity4 = 20, + /// <summary> + /// 鍒疯劯璁よ瘉 + /// </summary> + Face = 30 + } +} diff --git a/FlexJobApi.Core/FlexJobApi.Core.xml b/FlexJobApi.Core/FlexJobApi.Core.xml index 5946ca1..0066d50 100644 --- a/FlexJobApi.Core/FlexJobApi.Core.xml +++ b/FlexJobApi.Core/FlexJobApi.Core.xml @@ -1750,6 +1750,11 @@ 鏄惁瀹炲悕 </summary> </member> + <member name="P:FlexJobApi.Core.User.RealMethod"> + <summary> + 瀹炲悕鏂瑰紡 + </summary> + </member> <member name="P:FlexJobApi.Core.User.ContactPhoneNumber"> <summary> 鎵嬫満鍙� @@ -2029,6 +2034,26 @@ <member name="F:FlexJobApi.Core.Enums.Common.EnumFileStoreAccess.AliyunOSS"> <summary> 闃块噷浜慜SS + </summary> + </member> + <member name="T:FlexJobApi.Core.Enums.Users.EnumUserRealMethod"> + <summary> + 鐢ㄦ埛瀹炲悕鏂瑰紡 + </summary> + </member> + <member name="F:FlexJobApi.Core.Enums.Users.EnumUserRealMethod.Identity3"> + <summary> + 涓汉鎵嬫満鍙蜂笁瑕佺礌 + </summary> + </member> + <member name="F:FlexJobApi.Core.Enums.Users.EnumUserRealMethod.Identity4"> + <summary> + 閾惰鍗″瑕佺礌 + </summary> + </member> + <member name="F:FlexJobApi.Core.Enums.Users.EnumUserRealMethod.Face"> + <summary> + 鍒疯劯璁よ瘉 </summary> </member> <member name="T:FlexJobApi.Core.EnumFileType"> @@ -3896,21 +3921,6 @@ <param name="logier"></param> <returns></returns> </member> - <member name="T:FlexJobApi.Core.BindPhoneNumberCommand"> - <summary> - 缁戝畾鎵嬫満鍙� - </summary> - </member> - <member name="P:FlexJobApi.Core.BindPhoneNumberCommand.PhoneNumber"> - <summary> - 鎵嬫満鍙风爜 - </summary> - </member> - <member name="P:FlexJobApi.Core.BindPhoneNumberCommand.VerifyCode"> - <summary> - 楠岃瘉鐮� - </summary> - </member> <member name="T:FlexJobApi.Core.BindWxmpUserInfoCommand"> <summary> 缁戝畾寰俊灏忕▼搴忕敤鎴蜂俊鎭� @@ -3929,6 +3939,21 @@ <member name="P:FlexJobApi.Core.BindWxmpUserInfoCommand.SessionKey"> <summary> 鑾峰彇浼氳瘽瀵嗛挜 + </summary> + </member> + <member name="T:FlexJobApi.Core.ChangePhoneNumberCommand"> + <summary> + 鏇存崲鎵嬫満鍙� + </summary> + </member> + <member name="P:FlexJobApi.Core.ChangePhoneNumberCommand.PhoneNumber"> + <summary> + 鎵嬫満鍙风爜 + </summary> + </member> + <member name="P:FlexJobApi.Core.ChangePhoneNumberCommand.VerifyCode"> + <summary> + 楠岃瘉鐮� </summary> </member> <member name="T:FlexJobApi.Core.PasswordLoginCommand"> @@ -3976,6 +4001,26 @@ 鍒锋柊浠ょ墝 </summary> </member> + <member name="P:FlexJobApi.Core.LoginCommandCallback.IsBindPhoneNumber"> + <summary> + 鏄惁宸茬粦瀹氭墜鏈哄彿 + </summary> + </member> + <member name="T:FlexJobApi.Core.RegisterPersonalUserCommand"> + <summary> + 娉ㄥ唽涓汉璐﹀彿 + </summary> + </member> + <member name="P:FlexJobApi.Core.RegisterPersonalUserCommand.PhoneNumber"> + <summary> + 鎵嬫満鍙风爜 + </summary> + </member> + <member name="P:FlexJobApi.Core.RegisterPersonalUserCommand.VerifyCode"> + <summary> + 楠岃瘉鐮� + </summary> + </member> <member name="T:FlexJobApi.Core.SendLoginOrRegisterVerifyCodeCommand"> <summary> 鍙戦�佺櫥褰曟垨娉ㄥ唽鐭俊 @@ -4009,6 +4054,16 @@ <member name="P:FlexJobApi.Core.SmsLoginCommand.ClientType"> <summary> 瀹㈡埛绔被鍨� + </summary> + </member> + <member name="T:FlexJobApi.Core.UpdatePhoneNumberVerifyCodeCommand"> + <summary> + 鍙戦�佹洿鎹㈡墜鏈哄彿鐭俊 + </summary> + </member> + <member name="P:FlexJobApi.Core.UpdatePhoneNumberVerifyCodeCommand.PhoneNumber"> + <summary> + 鎵嬫満鍙风爜 </summary> </member> <member name="T:FlexJobApi.Core.WxmpLoginCommand"> @@ -6119,6 +6174,51 @@ 鍚嶇О </summary> </member> + <member name="T:FlexJobApi.Core.GetPersonalLoginInfoQuery"> + <summary> + 鏌ヨ涓汉鐢ㄦ埛鐧诲綍淇℃伅 + </summary> + </member> + <member name="T:FlexJobApi.Core.GetPersonalLoginInfoQueryResult"> + <summary> + 鏌ヨ涓汉鐢ㄦ埛淇℃伅-缁撴灉 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalLoginInfoQueryResult.Id"> + <summary> + Id + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalLoginInfoQueryResult.Name"> + <summary> + 濮撳悕 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalLoginInfoQueryResult.IsReal"> + <summary> + 鏄惁瀹炲悕 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalLoginInfoQueryResult.RealMethod"> + <summary> + 瀹炲悕鏂瑰紡 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalLoginInfoQueryResult.TaskCount"> + <summary> + 鎴戠殑鎶ュ悕 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalLoginInfoQueryResult.HirePassTaskCount"> + <summary> + 宸插綍鐢� + </summary> + </member> + <member name="P:FlexJobApi.Core.GetPersonalLoginInfoQueryResult.HireRefuseTaskCount"> + <summary> + 宸插彇娑� + </summary> + </member> <member name="T:FlexJobApi.Core.GetUserInfoRolesQuery"> <summary> 鏌ヨ鐢ㄦ埛瑙掕壊鍒楄〃 diff --git a/FlexJobApi.Core/Models/UserServer/Auths/Commands/PasswordLoginCommand.cs b/FlexJobApi.Core/Models/UserServer/Auths/Commands/PasswordLoginCommand.cs index 46aa238..44167d7 100644 --- a/FlexJobApi.Core/Models/UserServer/Auths/Commands/PasswordLoginCommand.cs +++ b/FlexJobApi.Core/Models/UserServer/Auths/Commands/PasswordLoginCommand.cs @@ -59,7 +59,12 @@ public string RefreshToken { get; set; } /// <summary> - /// 鏄惁宸茬粦瀹氭墜鏈哄彿 + /// 浼氳瘽绉橀挜锛堜粎鐢ㄤ簬寰俊灏忕▼搴忔巿鏉冪櫥褰曪級 + /// </summary> + public string SessionKey { get; set; } + + /// <summary> + /// 鏄惁宸茬粦瀹氭墜鏈哄彿锛堜粎鐢ㄤ簬寰俊灏忕▼搴忔巿鏉冪櫥褰曪級 /// </summary> public bool IsBindPhoneNumber { get; set; } } diff --git a/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalLoginInfoQuery.cs b/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalLoginInfoQuery.cs new file mode 100644 index 0000000..9f95811 --- /dev/null +++ b/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalLoginInfoQuery.cs @@ -0,0 +1,60 @@ +锘縰sing FlexJobApi.Core.Enums.Users; +using MediatR; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlexJobApi.Core +{ + /// <summary> + /// 鏌ヨ涓汉鐢ㄦ埛鐧诲綍淇℃伅 + /// </summary> + [Resource([EnumResourceController.Auth])] + public class GetPersonalLoginInfoQuery : IRequest<GetPersonalLoginInfoQueryResult> + { + + } + + /// <summary> + /// 鏌ヨ涓汉鐢ㄦ埛淇℃伅-缁撴灉 + /// </summary> + public class GetPersonalLoginInfoQueryResult + { + /// <summary> + /// Id + /// </summary> + public Guid Id { get; set; } + + /// <summary> + /// 濮撳悕 + /// </summary> + public string Name { get; set; } + + /// <summary> + /// 鏄惁瀹炲悕 + /// </summary> + public bool IsReal { get; set; } + + /// <summary> + /// 瀹炲悕鏂瑰紡 + /// </summary> + public EnumUserRealMethod? RealMethod { get; set; } + + /// <summary> + /// 鎴戠殑鎶ュ悕 + /// </summary> + public int TaskCount { get; set; } + + /// <summary> + /// 宸插綍鐢� + /// </summary> + public int HirePassTaskCount { get; set; } + + /// <summary> + /// 宸插彇娑� + /// </summary> + public int HireRefuseTaskCount { get; set; } + } +} diff --git a/FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs b/FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs index 6319fcd..afca15b 100644 --- a/FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs @@ -27,7 +27,8 @@ IRequestHandler<WxmpLoginCommand, LoginCommandCallback>, IRequestHandler<BindWxmpUserInfoCommand, LoginCommandCallback>, IRequestHandler<ChangePhoneNumberCommand, bool>, - IRequestHandler<RegisterPersonalUserCommand, bool> + IRequestHandler<RegisterPersonalUserCommand, bool>, + IRequestHandler<GetPersonalLoginInfoQuery, GetPersonalLoginInfoQueryResult> { private readonly IRepository<User> rep = rep; private readonly SmsUtils smsUtils = smsUtils; @@ -104,7 +105,7 @@ throw Oops.Oh(EnumUserErrorCodeType.u1000); if (user.Status == EnumUserStatus.Disabled) throw Oops.Oh(EnumUserErrorCodeType.u1001); - return GetCurrentLogier(user, EnumClientType.Wxmp); + return GetCurrentLogier(user, EnumClientType.Wxmp, snsJscode2session.session_key); } /// <summary> @@ -243,12 +244,31 @@ } /// <summary> + /// 鏌ヨ涓汉鐢ㄦ埛鐧诲綍淇℃伅 + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<GetPersonalLoginInfoQueryResult> Handle(GetPersonalLoginInfoQuery request, CancellationToken cancellationToken) + { + var model = await rep.GetPersonalQueryable(true) + .GetDetail<User, GetPersonalLoginInfoQueryResult>(cancellationToken); + var taskUserQueryable = rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking() + .Where(it => it.UserId == model.Id); + model.TaskCount = await taskUserQueryable.CountAsync(); + model.HirePassTaskCount = await taskUserQueryable.CountAsync(it => it.HireStatus == EnumTaskUserHireStatus.Pass); + model.HireRefuseTaskCount = await taskUserQueryable.CountAsync(it => it.HireStatus == EnumTaskUserHireStatus.Refuse); + return model; + } + + /// <summary> /// 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛 /// </summary> /// <param name="user"></param> /// <param name="clientType"></param> + /// <param name="session_key"></param> /// <returns></returns> - private LoginCommandCallback GetCurrentLogier(User user, EnumClientType clientType) + private LoginCommandCallback GetCurrentLogier(User user, EnumClientType clientType, string? session_key = null) { var logier = new CurrentLogier { @@ -269,6 +289,7 @@ Id = logier.Id, AccessToken = logier.AccessToken, RefreshToken = logier.RefreshToken, + SessionKey = session_key, IsBindPhoneNumber = logier.PhoneNumber.IsNotNull() }; } diff --git a/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml b/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml index 5dd1cce..589bf8c 100644 --- a/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml +++ b/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml @@ -38,9 +38,9 @@ <param name="cancellationToken"></param> <returns></returns> </member> - <member name="M:FlexJobApi.UserServer.Application.LoginCommandHandler.Handle(FlexJobApi.Core.BindPhoneNumberCommand,System.Threading.CancellationToken)"> + <member name="M:FlexJobApi.UserServer.Application.LoginCommandHandler.Handle(FlexJobApi.Core.ChangePhoneNumberCommand,System.Threading.CancellationToken)"> <summary> - 缁戝畾鎵嬫満鍙� + 鏇存崲鎵嬫満鍙� </summary> <param name="request"></param> <param name="cancellationToken"></param> @@ -54,6 +54,22 @@ <param name="cancellationToken"></param> <returns></returns> <exception cref="T:System.NotImplementedException"></exception> + </member> + <member name="M:FlexJobApi.UserServer.Application.LoginCommandHandler.Handle(FlexJobApi.Core.RegisterPersonalUserCommand,System.Threading.CancellationToken)"> + <summary> + 娉ㄥ唽涓汉璐﹀彿 + </summary> + <param name="request"></param> + <param name="cancellationToken"></param> + <returns></returns> + </member> + <member name="M:FlexJobApi.UserServer.Application.LoginCommandHandler.Handle(FlexJobApi.Core.GetPersonalLoginInfoQuery,System.Threading.CancellationToken)"> + <summary> + 鏌ヨ涓汉鐢ㄦ埛鐧诲綍淇℃伅 + </summary> + <param name="request"></param> + <param name="cancellationToken"></param> + <returns></returns> </member> <member name="M:FlexJobApi.UserServer.Application.LoginCommandHandler.GetCurrentLogier(FlexJobApi.Core.User,FlexJobApi.Core.EnumClientType)"> <summary> @@ -76,6 +92,14 @@ <member name="M:FlexJobApi.UserServer.Application.VerifyCodeCommandHandler.Handle(FlexJobApi.Core.SendLoginOrRegisterVerifyCodeCommand,System.Threading.CancellationToken)"> <summary> 鍙戦�佺櫥褰曟垨娉ㄥ唽鐭俊 + </summary> + <param name="request"></param> + <param name="cancellationToken"></param> + <returns></returns> + </member> + <member name="M:FlexJobApi.UserServer.Application.VerifyCodeCommandHandler.Handle(FlexJobApi.Core.UpdatePhoneNumberVerifyCodeCommand,System.Threading.CancellationToken)"> + <summary> + 鍙戦�佹洿鎹㈡墜鏈哄彿鐭俊 </summary> <param name="request"></param> <param name="cancellationToken"></param> @@ -209,6 +233,11 @@ 璐﹀彿宸茬鐢� </summary> </member> + <member name="F:FlexJobApi.UserServer.Application.EnumUserErrorCodeType.u1010"> + <summary> + 璇ユ墜鏈哄彿宸茶娉ㄥ唽 + </summary> + </member> <member name="F:FlexJobApi.UserServer.Application.EnumUserErrorCodeType.u1100"> <summary> 褰撳墠璐﹀彿鏈粦瀹氬井淇″皬绋嬪簭 -- Gitblit v1.9.1