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 } } 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> 设置用户信息角色 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; } FlexJobApi.Core/Models/HumanResourcesServer/ElectronSign/EnumElectronSignPersonalRealMethod.cs
New file @@ -0,0 +1,31 @@ using 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 } } FlexJobApi.Core/Models/HumanResourcesServer/ElectronSign/EnumElectronSignUserType.cs
New file @@ -0,0 +1,26 @@ using 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 } } FlexJobApi.Core/Models/HumanResourcesServer/ElectronSign/SendRealSmsInput.cs
New file @@ -0,0 +1,63 @@ using 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; } } } FlexJobApi.Core/Models/UserServer/Users/Commands/PersonalUserIdentity3RealCommand.cs
File was renamed from FlexJobApi.Core/Models/UserServer/Users/Commands/IdentityThreeRealPersonalUserCommand.cs @@ -12,7 +12,7 @@ /// 个人三要素实名认证 /// </summary> [Resource([EnumResourceController.User])] public class IdentityThreeRealPersonalUserCommand : IRequest<Guid> public class PersonalUserIdentity3RealCommand : IRequest<Guid> { /// <summary> /// 姓名 FlexJobApi.Core/Models/UserServer/Users/Commands/SendPersonalUserIdentity3RealSmsCommand.cs
New file @@ -0,0 +1,17 @@ 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.User])] public class SendPersonalUserIdentity3RealSmsCommand : IRequest<Guid> { } } 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); 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; FlexJobApi.UserServer.Application/Users/Commands/PersonalUserRealCommandHandler.cs
New file @@ -0,0 +1,29 @@ using 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(); } } }