sunpengfei
2025-08-19 a59e5d99a77fcb152e6fe49df78f69cb5fd6c5a0
feat:开发
5个文件已添加
1 文件已重命名
5个文件已修改
315 ■■■■■ 已修改文件
FlexJobApi.Core/Enums/Common/EnumResourceService.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/FlexJobApi.Core.xml 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/FlexJobServer/Tasks/Queries/GetTaskInfosQuery.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/HumanResourcesServer/ElectronSign/EnumElectronSignPersonalRealMethod.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/HumanResourcesServer/ElectronSign/EnumElectronSignUserType.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/HumanResourcesServer/ElectronSign/SendRealSmsInput.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/UserServer/Users/Commands/PersonalUserIdentity3RealCommand.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/UserServer/Users/Commands/SendPersonalUserIdentity3RealSmsCommand.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Utils/ResourceUtils/ResourceHttpUtils.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.UserServer.Application/Users/Commands/PersonalUserRealCommandHandler.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();
        }
    }
}