sunpengfei
2025-09-01 185eca1406926d46fa9f50d07a0c0ecc65ab6b96
feat:开发
4个文件已添加
8个文件已修改
171 ■■■■■ 已修改文件
FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseWallet.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Enums/Common/EnumResourceController.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Enums/Users/EnumEnterpriseWalletAccess.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/FlexJobApi.Core.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Queries/AlipayUserAgreementPageSignNotifyQuery.cs 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Utils/AlipayUtils/AlipayUtils.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.UserServer.Application/EnterpriseWallets/Queries/AlipayUserAgreementPageSignNotifyQueryHandler.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Web.Entry/Startup.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseWallet.cs
New file
@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.Core
{
    /// <summary>
    /// 企业钱包
    /// </summary>
    public class EnterpriseWallet : CommonEntity
    {
        /// <summary>
        /// 企业Id
        /// </summary>
        public Guid EnterpriseId { get; set; }
        /// <summary>
        /// 企业
        /// </summary>
        public Enterprise Enterprise { get; set; }
        /// <summary>
        /// 通道
        /// </summary>
        public EnumEnterpriseWalletAccess Access { get; set; }
    }
}
FlexJobApi.Core/Enums/Common/EnumResourceController.cs
@@ -89,6 +89,11 @@
        [ResourceController(EnumResourceService.UserServer, "Enterprise")]
        UserServerEnterprise,
        /// <summary>
        /// 企业钱包
        /// </summary>
        [ResourceController(EnumResourceService.UserServer, "EnterpriseWallet")]
        UserServerEnterpriseWallet,
        /// <summary>
        /// 灵工信息
        /// </summary>
        [ResourceController(EnumResourceService.UserServer, "EnterpriseEmployee")]
FlexJobApi.Core/Enums/Users/EnumEnterpriseWalletAccess.cs
New file
@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.Core
{
    /// <summary>
    /// 企业钱包通道
    /// </summary>
    public enum EnumEnterpriseWalletAccess
    {
        /// <summary>
        /// 支付宝
        /// </summary>
        Alipay = 10
    }
}
FlexJobApi.Core/FlexJobApi.Core.csproj
@@ -44,6 +44,7 @@
      <Folder Include="Models\CommonServer\Schedules\Commands\" />
      <Folder Include="Models\CommonServer\Schedules\Queries\" />
      <Folder Include="Models\FlexJobServer\TaskUsers\Repositories\" />
      <Folder Include="Models\UserServer\EnterpriseWallets\Commands\" />
    </ItemGroup>
</Project>
FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs
@@ -189,5 +189,10 @@
        /// </summary>
        public DateTime? EnterpriseSignContractTime { get; set; }
        /// <summary>
        /// 电子合同
        /// </summary>
        public string ContractUrl { get; set; }
    }
}
FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Queries/AlipayUserAgreementPageSignNotifyQuery.cs
New file
@@ -0,0 +1,69 @@
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.UserServerEnterpriseWallet])]
    public class AlipayUserAgreementPageSignNotifyQuery : IRequest<bool>
    {
        /// <summary>
        /// 协议产品码,商户和支付宝签约时确定,不同业务场景对应不同的签约产品码。
        /// </summary>
        public string personal_product_code { get; set; }
        /// <summary>
        /// 当前签约的协议场景。
        /// </summary>
        public string sign_scene { get; set; }
        /// <summary>
        /// NORMAL    协议当前状态 1. TEMP:暂存,协议未生效过; 2. NORMAL:正常; 3. STOP:暂停
        /// </summary>
        public string status { get; set; }
        /// <summary>
        /// 用户签约的支付宝账号对应的支付宝唯一用户号。 以2088开头的16位纯数字组成。
        /// </summary>
        public string alipay_user_id { get; set; }
        /// <summary>
        /// 支付宝系统中用以唯一标识用户签约记录的编号。
        /// </summary>
        public string agreement_no { get; set; }
        /// <summary>
        /// 支付宝代扣协议的实际签约时间,格式为yyyy-MM-dd HH:mm:ss。
        /// </summary>
        public string sign_time { get; set; }
        /// <summary>
        /// 用户在商户网站的登录账号,如果商户接口中未传,则不会返回
        /// </summary>
        public string external_logon_id { get; set; }
        /// <summary>
        /// 支付宝分配给开发者的应用Id
        /// </summary>
        public string app_id { get; set; }
        /// <summary>
        /// 支付宝分配给商户的应用Id
        /// </summary>
        public string auth_app_id { get; set; }
        /// <summary>
        /// 代扣协议中标示用户的唯一签约号(确保在商户系统中唯一)。
        /// </summary>
        public string external_agreement_no { get; set; }
        /// <summary>
        /// 用户代扣协议的实际生效时间,格式为yyyy-MM-dd HH:mm:ss。
        /// </summary>
        public string valid_time { get; set; }
        /// <summary>
        /// 返回脱敏的支付宝账号。
        /// </summary>
        public string alipay_logon_id { get; set; }
        /// <summary>
        /// 用户签约成功通知类型
        /// </summary>
        public string notify_type { get; set; }
    }
}
FlexJobApi.Core/Utils/AlipayUtils/AlipayUtils.cs
@@ -17,7 +17,6 @@
    /// </summary>
    public class AlipayUtils
    {
        private readonly IOptions<AlipayOptions> options;
        private readonly IAopClient alipayClient;
        public AlipayUtils(IOptions<AlipayOptions> options)
FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs
@@ -120,13 +120,14 @@
                UserSignContractStatus = it.UserSignContractStatus,
                HireTime = it.TaskInfoUsers
                    .OrderBy(tu => tu.HireTime)
                    .Where(tu => tu.HireStatus == EnumTaskUserHireStatus.Pass && tu.HireTime.HasValue)
                    .Where(tu => tu.HireTime.HasValue)
                    .Select(tu => tu.HireTime)
                    .FirstOrDefault(),
                UserRealTime = it.User.RealTime,
                UserSignContractTime = it.UserSignContractTime,
                EnterpriseSignContractStatus = it.EnterpriseSignContractStatus,
                EnterpriseSignContractTime = it.EnterpriseSignContractTime
                EnterpriseSignContractTime = it.EnterpriseSignContractTime,
                ContractUrl = it.ContractUrl,
            });
            return await request.PageModel.GetPagedListAsync<GetEnterpriseEmployeesQueryResult, GetEnterpriseEmployeesQueryResultItem>(s, cancellationToken);
        }
FlexJobApi.UserServer.Application/EnterpriseWallets/Queries/AlipayUserAgreementPageSignNotifyQueryHandler.cs
New file
@@ -0,0 +1,28 @@
using FlexJobApi.Core;
using MediatR;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.UserServer.Application
{
    /// <summary>
    /// 支付宝用户授权协议签约通知
    /// </summary>
    public class AlipayUserAgreementPageSignNotifyQueryHandler :
        IRequestHandler<AlipayUserAgreementPageSignNotifyQuery, bool>
    {
        /// <summary>
        /// 支付宝用户授权协议签约通知
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public Task<bool> Handle(AlipayUserAgreementPageSignNotifyQuery request, CancellationToken cancellationToken)
        {
            return Task.FromResult(true);
        }
    }
}
FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.csproj
@@ -15,4 +15,8 @@
        <ProjectReference Include="..\FlexJobApi.Core\FlexJobApi.Core.csproj" />
    </ItemGroup>
    <ItemGroup>
      <Folder Include="EnterpriseWallets\Commands\" />
    </ItemGroup>
</Project>
FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs
@@ -82,7 +82,7 @@
                HireTime = it.EnterpriseEmployees
                    .SelectMany(ee => ee.TaskInfoUsers)
                    .OrderByDescending(e => e.HireTime)
                    .Where(e => e.HireStatus == EnumTaskUserHireStatus.Pass && e.HireTime.HasValue)
                    .Where(e => e.HireTime.HasValue)
                    .Select(e => e.HireTime)
                    .FirstOrDefault(),
                SignContractTime = it.EnterpriseEmployees
@@ -120,7 +120,7 @@
                        : EnumTaskUserHireStatus.Wait,
                    HireTime = it.TaskInfoUsers
                        .OrderBy(tu => tu.HireTime)
                        .Where(tu => tu.HireStatus == EnumTaskUserHireStatus.Pass && tu.HireTime.HasValue)
                        .Where(tu => tu.HireTime.HasValue)
                        .Select(tu => tu.HireTime)
                        .FirstOrDefault(),
                    UserSignContractStatus = it.UserSignContractStatus,
FlexJobApi.Web.Entry/Startup.cs
@@ -38,6 +38,7 @@
            services.AddComponent<DistributedCacheServiceComponent>();
            services.AddHttpRemote();
            services.AddSingleton<AlipayUtils>();
            services.AddSingleton<AliyunSmsUtils>(); 
            services.AddSingleton<WxmpUtils>();
            services.AddScoped<SmsUtils>();