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