From a59e5d99a77fcb152e6fe49df78f69cb5fd6c5a0 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期二, 19 八月 2025 15:58:10 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.Core/Models/HumanResourcesServer/ElectronSign/EnumElectronSignUserType.cs           |   26 ++++
 FlexJobApi.Core/Models/UserServer/Users/Commands/PersonalUserIdentity3RealCommand.cs           |    2 
 FlexJobApi.Core/Enums/Common/EnumResourceService.cs                                            |    7 +
 FlexJobApi.UserServer.Application/Users/Commands/PersonalUserRealCommandHandler.cs             |   29 ++++
 FlexJobApi.Core/FlexJobApi.Core.xml                                                            |  109 +++++++++++++++++-
 FlexJobApi.Core/Models/FlexJobServer/Tasks/Queries/GetTaskInfosQuery.cs                        |   10 +
 FlexJobApi.Core/Models/HumanResourcesServer/ElectronSign/EnumElectronSignPersonalRealMethod.cs |   31 +++++
 FlexJobApi.Core/Models/HumanResourcesServer/ElectronSign/SendRealSmsInput.cs                   |   63 ++++++++++
 FlexJobApi.Core/Models/UserServer/Users/Commands/SendPersonalUserIdentity3RealSmsCommand.cs    |   17 ++
 FlexJobApi.Core/Utils/ResourceUtils/ResourceHttpUtils.cs                                       |   17 ++
 FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs                     |    4 
 11 files changed, 305 insertions(+), 10 deletions(-)

diff --git a/FlexJobApi.Core/Enums/Common/EnumResourceService.cs b/FlexJobApi.Core/Enums/Common/EnumResourceService.cs
index 0d2d4ef..49f877a 100644
--- a/FlexJobApi.Core/Enums/Common/EnumResourceService.cs
+++ b/FlexJobApi.Core/Enums/Common/EnumResourceService.cs
@@ -26,6 +26,11 @@
         /// 鐢ㄦ埛鏈嶅姟
         /// </summary>
         [ResourceService(ApplicationName = "FlexJobApi.UserServer.Application", RouteArea = "user", ServiceName = "FlexJobServices")]
-        UserServer
+        UserServer,
+        /// <summary>
+        /// 浜哄姏璧勬簮鏈嶅姟
+        /// </summary>
+        [ResourceService(ServiceName = "HumanResourcesServices")]
+        HumanResourcesServer
     }
 }
diff --git a/FlexJobApi.Core/FlexJobApi.Core.xml b/FlexJobApi.Core/FlexJobApi.Core.xml
index 515f0bc..896bc92 100644
--- a/FlexJobApi.Core/FlexJobApi.Core.xml
+++ b/FlexJobApi.Core/FlexJobApi.Core.xml
@@ -2642,6 +2642,11 @@
             鐢ㄦ埛鏈嶅姟
             </summary>
         </member>
+        <member name="F:FlexJobApi.Core.EnumResourceService.HumanResourcesServer">
+            <summary>
+            浜哄姏璧勬簮鏈嶅姟
+            </summary>
+        </member>
         <member name="T:FlexJobApi.Core.EnumSmsAccess">
             <summary>
             鐭俊閫氶亾
@@ -5736,6 +5741,16 @@
             浠诲姟鍗曞彿
             </summary>
         </member>
+        <member name="P:FlexJobApi.Core.GetTaskInfosQueryResultItem.EnterpriseName">
+            <summary>
+            浼佷笟鍏ㄧО
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetTaskInfosQueryResultItem.UserName">
+            <summary>
+            鐢ㄦ埛鍚�
+            </summary>
+        </member>
         <member name="P:FlexJobApi.Core.GetTaskInfosQueryResultItem.BillingMethod">
             <summary>
             缁撶畻鍛ㄦ湡
@@ -6190,6 +6205,81 @@
         <member name="P:FlexJobApi.Core.GetTaskUsersQueryResultItem.HireStatus">
             <summary>
             褰曠敤鐘舵��
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.EnumElectronSignPersonalRealMethod">
+            <summary>
+            鐢靛瓙绛�-瀹炲悕-璁よ瘉鏂瑰紡锛�10涓汉鎵嬫満鍙蜂笁瑕佺礌 20閾惰鍗″瑕佺礌 30鍒疯劯璁よ瘉锛�
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.EnumElectronSignPersonalRealMethod.Identity3">
+            <summary>
+            涓汉鎵嬫満鍙蜂笁瑕佺礌
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.EnumElectronSignPersonalRealMethod.Identity4">
+            <summary>
+            閾惰鍗″瑕佺礌
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.EnumElectronSignPersonalRealMethod.Face">
+            <summary>
+            鍒疯劯璁よ瘉
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.EnumElectronSignUserType">
+            <summary>
+            鐢靛瓙绛�-鐢ㄦ埛绫诲瀷锛�10浼佷笟 20涓汉锛�
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.EnumElectronSignUserType.Company">
+            <summary>
+            浼佷笟
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.EnumElectronSignUserType.Personal">
+            <summary>
+            涓汉
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.SendRealSmsInput">
+            <summary>
+            鍙戦�佸疄鍚嶇煭淇�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.SendRealSmsInput.UserType">
+            <summary>
+            鐢ㄦ埛绫诲瀷锛�10浼佷笟 20涓汉锛�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.SendRealSmsInput.OutUserId">
+            <summary>
+            瀵瑰浼佷笟/涓汉Id
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.SendRealSmsInput.RealMethod">
+            <summary>
+            涓汉璁よ瘉鏂瑰紡锛�10涓汉鎵嬫満鍙蜂笁瑕佺礌 20閾惰鍗″瑕佺礌 30鍒疯劯璁よ瘉锛�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.SendRealSmsInput.Name">
+            <summary>
+            濮撳悕
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.SendRealSmsInput.Identity">
+            <summary>
+            璇佷欢鍙风爜
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.SendRealSmsInput.Mobile">
+            <summary>
+            鎵嬫満鍙风爜
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign.SendRealSmsInput.BankCard">
+            <summary>
+            閾惰鍗″彿
             </summary>
         </member>
         <member name="T:FlexJobApi.Core.BindWxmpUserInfoCommand">
@@ -8999,41 +9089,46 @@
             宸ヤ綔缁忛獙
             </summary>
         </member>
-        <member name="T:FlexJobApi.Core.IdentityThreeRealPersonalUserCommand">
+        <member name="T:FlexJobApi.Core.PersonalUserIdentity3RealCommand">
             <summary>
             涓汉涓夎绱犲疄鍚嶈璇�
             </summary>
         </member>
-        <member name="P:FlexJobApi.Core.IdentityThreeRealPersonalUserCommand.Name">
+        <member name="P:FlexJobApi.Core.PersonalUserIdentity3RealCommand.Name">
             <summary>
             濮撳悕
             </summary>
         </member>
-        <member name="P:FlexJobApi.Core.IdentityThreeRealPersonalUserCommand.PhoneNumber">
+        <member name="P:FlexJobApi.Core.PersonalUserIdentity3RealCommand.PhoneNumber">
             <summary>
             鎵嬫満鍙�
             </summary>
         </member>
-        <member name="P:FlexJobApi.Core.IdentityThreeRealPersonalUserCommand.Identity">
+        <member name="P:FlexJobApi.Core.PersonalUserIdentity3RealCommand.Identity">
             <summary>
             韬唤璇佸彿
             </summary>
         </member>
-        <member name="P:FlexJobApi.Core.IdentityThreeRealPersonalUserCommand.IdentityImg">
+        <member name="P:FlexJobApi.Core.PersonalUserIdentity3RealCommand.IdentityImg">
             <summary>
             韬唤璇佷汉鍍忛潰
             </summary>
         </member>
-        <member name="P:FlexJobApi.Core.IdentityThreeRealPersonalUserCommand.IdentityBackImg">
+        <member name="P:FlexJobApi.Core.PersonalUserIdentity3RealCommand.IdentityBackImg">
             <summary>
             韬唤璇佸浗寰介潰
             </summary>
         </member>
-        <member name="P:FlexJobApi.Core.IdentityThreeRealPersonalUserCommand.VerifyCode">
+        <member name="P:FlexJobApi.Core.PersonalUserIdentity3RealCommand.VerifyCode">
             <summary>
             楠岃瘉鐮�
             </summary>
         </member>
+        <member name="T:FlexJobApi.Core.SendPersonalUserIdentity3RealSmsCommand">
+            <summary>
+            鍙戦�佷釜浜轰笁瑕佺礌瀹炲悕鐭俊
+            </summary>
+        </member>
         <member name="T:FlexJobApi.Core.SetUserInfoRolesCommand">
             <summary>
             璁剧疆鐢ㄦ埛淇℃伅瑙掕壊
diff --git a/FlexJobApi.Core/Models/FlexJobServer/Tasks/Queries/GetTaskInfosQuery.cs b/FlexJobApi.Core/Models/FlexJobServer/Tasks/Queries/GetTaskInfosQuery.cs
index 08c245b..ad0400b 100644
--- a/FlexJobApi.Core/Models/FlexJobServer/Tasks/Queries/GetTaskInfosQuery.cs
+++ b/FlexJobApi.Core/Models/FlexJobServer/Tasks/Queries/GetTaskInfosQuery.cs
@@ -137,6 +137,16 @@
         public string Code { get; set; }
 
         /// <summary>
+        /// 浼佷笟鍏ㄧО
+        /// </summary>
+        public string EnterpriseName { get; set; }
+
+        /// <summary>
+        /// 鐢ㄦ埛鍚�
+        /// </summary>
+        public string UserName { get; set; }
+
+        /// <summary>
         /// 缁撶畻鍛ㄦ湡
         /// </summary>
         public EnumBillingMethod BillingMethod { get; set; }
diff --git a/FlexJobApi.Core/Models/HumanResourcesServer/ElectronSign/EnumElectronSignPersonalRealMethod.cs b/FlexJobApi.Core/Models/HumanResourcesServer/ElectronSign/EnumElectronSignPersonalRealMethod.cs
new file mode 100644
index 0000000..fa29ebb
--- /dev/null
+++ b/FlexJobApi.Core/Models/HumanResourcesServer/ElectronSign/EnumElectronSignPersonalRealMethod.cs
@@ -0,0 +1,31 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign
+{
+    /// <summary>
+    /// 鐢靛瓙绛�-瀹炲悕-璁よ瘉鏂瑰紡锛�10涓汉鎵嬫満鍙蜂笁瑕佺礌 20閾惰鍗″瑕佺礌 30鍒疯劯璁よ瘉锛�
+    /// </summary>
+    public enum EnumElectronSignPersonalRealMethod
+    {
+        /// <summary>
+        /// 涓汉鎵嬫満鍙蜂笁瑕佺礌
+        /// </summary>
+        [Description("涓汉鎵嬫満鍙蜂笁瑕佺礌")]
+        Identity3 = 10,
+        /// <summary>
+        /// 閾惰鍗″瑕佺礌
+        /// </summary>
+        [Description("閾惰鍗″瑕佺礌")]
+        Identity4 = 20,
+        /// <summary>
+        /// 鍒疯劯璁よ瘉
+        /// </summary>
+        [Description("鍒疯劯璁よ瘉")]
+        Face = 30
+    }
+}
diff --git a/FlexJobApi.Core/Models/HumanResourcesServer/ElectronSign/EnumElectronSignUserType.cs b/FlexJobApi.Core/Models/HumanResourcesServer/ElectronSign/EnumElectronSignUserType.cs
new file mode 100644
index 0000000..257ee0b
--- /dev/null
+++ b/FlexJobApi.Core/Models/HumanResourcesServer/ElectronSign/EnumElectronSignUserType.cs
@@ -0,0 +1,26 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign
+{
+    /// <summary>
+    /// 鐢靛瓙绛�-鐢ㄦ埛绫诲瀷锛�10浼佷笟 20涓汉锛�
+    /// </summary>
+    public enum EnumElectronSignUserType
+    {
+        /// <summary>
+        /// 浼佷笟
+        /// </summary>
+        [Description("浼佷笟")]
+        Company = 10,
+        /// <summary>
+        /// 涓汉
+        /// </summary>
+        [Description("涓汉")]
+        Personal = 20
+    }
+}
diff --git a/FlexJobApi.Core/Models/HumanResourcesServer/ElectronSign/SendRealSmsInput.cs b/FlexJobApi.Core/Models/HumanResourcesServer/ElectronSign/SendRealSmsInput.cs
new file mode 100644
index 0000000..fc23fb2
--- /dev/null
+++ b/FlexJobApi.Core/Models/HumanResourcesServer/ElectronSign/SendRealSmsInput.cs
@@ -0,0 +1,63 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign
+{
+    /// <summary>
+    /// 鍙戦�佸疄鍚嶇煭淇�
+    /// </summary>
+    public class SendRealSmsInput
+    {
+        /// <summary>
+        /// 鐢ㄦ埛绫诲瀷锛�10浼佷笟 20涓汉锛�
+        /// </summary>
+        [DisplayName("鐢ㄦ埛绫诲瀷")]
+        [Required(ErrorMessage = "{0}涓嶈兘涓虹┖")]
+        public EnumElectronSignUserType UserType { get; set; }
+
+        /// <summary>
+        /// 瀵瑰浼佷笟/涓汉Id
+        /// </summary>
+        [DisplayName("澶栭儴浼佷笟Id")]
+        [Required(ErrorMessage = "{0}涓嶈兘涓虹┖")]
+        public string OutUserId { get; set; }
+
+        /// <summary>
+        /// 涓汉璁よ瘉鏂瑰紡锛�10涓汉鎵嬫満鍙蜂笁瑕佺礌 20閾惰鍗″瑕佺礌 30鍒疯劯璁よ瘉锛�
+        /// </summary>
+        [DisplayName("涓汉璁よ瘉鏂瑰紡")]
+        [Required(ErrorMessage = "{0}涓嶈兘涓虹┖")]
+        public EnumElectronSignPersonalRealMethod RealMethod { get; set; }
+
+        /// <summary>
+        /// 濮撳悕
+        /// </summary>
+        [DisplayName("濮撳悕")]
+        [Required(ErrorMessage = "{0}涓嶈兘涓虹┖")]
+        public string Name { get; set; }
+
+        /// <summary>
+        /// 璇佷欢鍙风爜
+        /// </summary>
+        [DisplayName("璇佷欢鍙风爜")]
+        [Required(ErrorMessage = "{0}涓嶈兘涓虹┖")]
+        public string Identity { get; set; }
+
+        /// <summary>
+        /// 鎵嬫満鍙风爜
+        /// </summary>
+        [DisplayName("鎵嬫満鍙风爜")]
+        [Required(ErrorMessage = "{0}涓嶈兘涓虹┖")]
+        public string Mobile { get; set; }
+
+        /// <summary>
+        /// 閾惰鍗″彿
+        /// </summary>
+        public string BankCard { get; set; }
+    }
+}
diff --git a/FlexJobApi.Core/Models/UserServer/Users/Commands/IdentityThreeRealPersonalUserCommand.cs b/FlexJobApi.Core/Models/UserServer/Users/Commands/PersonalUserIdentity3RealCommand.cs
similarity index 94%
rename from FlexJobApi.Core/Models/UserServer/Users/Commands/IdentityThreeRealPersonalUserCommand.cs
rename to FlexJobApi.Core/Models/UserServer/Users/Commands/PersonalUserIdentity3RealCommand.cs
index 9e20b71..b28edb6 100644
--- a/FlexJobApi.Core/Models/UserServer/Users/Commands/IdentityThreeRealPersonalUserCommand.cs
+++ b/FlexJobApi.Core/Models/UserServer/Users/Commands/PersonalUserIdentity3RealCommand.cs
@@ -12,7 +12,7 @@
     /// 涓汉涓夎绱犲疄鍚嶈璇�
     /// </summary>
     [Resource([EnumResourceController.User])]
-    public class IdentityThreeRealPersonalUserCommand : IRequest<Guid>
+    public class PersonalUserIdentity3RealCommand : IRequest<Guid>
     {
         /// <summary>
         /// 濮撳悕
diff --git a/FlexJobApi.Core/Models/UserServer/Users/Commands/SendPersonalUserIdentity3RealSmsCommand.cs b/FlexJobApi.Core/Models/UserServer/Users/Commands/SendPersonalUserIdentity3RealSmsCommand.cs
new file mode 100644
index 0000000..57d3564
--- /dev/null
+++ b/FlexJobApi.Core/Models/UserServer/Users/Commands/SendPersonalUserIdentity3RealSmsCommand.cs
@@ -0,0 +1,17 @@
+锘縰sing MediatR;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 鍙戦�佷釜浜轰笁瑕佺礌瀹炲悕鐭俊
+    /// </summary>
+    [Resource([EnumResourceController.User])]
+    public class SendPersonalUserIdentity3RealSmsCommand : IRequest<Guid>
+    {
+    }
+}
diff --git a/FlexJobApi.Core/Utils/ResourceUtils/ResourceHttpUtils.cs b/FlexJobApi.Core/Utils/ResourceUtils/ResourceHttpUtils.cs
index 6de17f0..40da33e 100644
--- a/FlexJobApi.Core/Utils/ResourceUtils/ResourceHttpUtils.cs
+++ b/FlexJobApi.Core/Utils/ResourceUtils/ResourceHttpUtils.cs
@@ -6,7 +6,9 @@
 using Microsoft.Extensions.Caching.Distributed;
 using System;
 using System.Collections.Generic;
+using System.ComponentModel.Design;
 using System.Linq;
+using System.Net.Http;
 using System.Text;
 using System.Threading.Tasks;
 
@@ -71,6 +73,21 @@
             return response;
         }
 
+        public async Task<string> SendHttpAsync(EnumResourceService service, HttpMethod method, string route, string request, IResourceHttpProvider provider = null)
+        {
+            var serviceName = service.GetCustomAttribute<EnumResourceService, ResourceServiceAttribute>().ServiceName;
+            var url = await GetUrl(serviceName, route);
+            var builder = HttpRequestBuilder.Create(method, url);
+            if (method == HttpMethod.Get)
+                builder = builder.WithQueryParameters(request);
+            else
+                builder = builder.SetJsonContent(request);
+            provider = provider ?? new DefaultResourceHttpProvider();
+            builder = provider.AddAuthentication(builder);
+            var response = await provider.SendAsStringAsync(httpRemoteService, builder);
+            return response;
+        }
+
         public async Task<string> GetUrl(string serviceName, string route)
         {
             var domain = await GetHealthyServiceDomain(serviceName);
diff --git a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs
index 78c77de..6bf42ce 100644
--- a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs
+++ b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs
@@ -180,6 +180,8 @@
                         Id = t.Id,
                         Name = t.Name,
                         Code = t.Code,
+                        EnterpriseName = t.Enterprise.EnterpriseName,
+                        UserName = t.Enterprise.Users.Where(u => u.Id == t.CreatedUserId).Select(u => u.UserName).FirstOrDefault(),
                         BillingMethod = t.BillingMethod,
                         ServiceFee = t.ServiceFee,
                         SettlementCycle = t.SettlementCycle,
@@ -218,7 +220,7 @@
                                 .Select(tu => tu.HireStatus as EnumTaskUserHireStatus?)
                                 .FirstOrDefault()
                             : null,
-                        
+
                     };
             var result = await request.PageModel.GetPagedListAsync<GetTaskInfosQueryResult, GetTaskInfosQueryResultItem>(s, cancellationToken);
             result.ObjectData = count;
diff --git a/FlexJobApi.UserServer.Application/Users/Commands/PersonalUserRealCommandHandler.cs b/FlexJobApi.UserServer.Application/Users/Commands/PersonalUserRealCommandHandler.cs
new file mode 100644
index 0000000..1ee6544
--- /dev/null
+++ b/FlexJobApi.UserServer.Application/Users/Commands/PersonalUserRealCommandHandler.cs
@@ -0,0 +1,29 @@
+锘縰sing FlexJobApi.Core;
+using FlexJobApi.Core.Models.HumanResourcesServer.ElectronSign;
+using MediatR;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.UserServer.Application
+{
+    public class PersonalUserRealCommandHandler(
+            ResourceHttpUtils resourceHttpUtils
+        ) :
+        IRequestHandler<SendPersonalUserIdentity3RealSmsCommand, Guid>
+    {
+        private readonly ResourceHttpUtils resourceHttpUtils = resourceHttpUtils;
+
+        public async Task<Guid> Handle(SendPersonalUserIdentity3RealSmsCommand request, CancellationToken cancellationToken)
+        {
+            await resourceHttpUtils.SendHttpAsync(EnumResourceService.HumanResourcesServer, HttpMethod.Post, "/api/ElectronSign/SendRealSms", new SendRealSmsInput
+            {
+
+
+            }.ToJson());
+            throw new Exception();
+        }
+    }
+}

--
Gitblit v1.9.1