| | |
| | | public EnumEnterpriseWalletAccess Access { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 账号 |
| | | /// </summary> |
| | | public string Account { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 商户Id |
| | | /// </summary> |
| | | public string MerchantId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 余额 |
| | | /// </summary> |
| | | public decimal Balance { get; set; } |
| | |
| | | /// 818钱包开通 |
| | | /// 验证码${code},用户您好,您正在进行平台钱包开通,该验证码5分钟内有效,请勿泄露于他人。 |
| | | /// </summary> |
| | | BankWalletAccountOpen |
| | | BankWalletAccountOpen, |
| | | |
| | | /// <summary> |
| | | /// 电子签邀约 |
| | | /// ${name}请您点击签约http://testwww.81812333.com/sg/${code} |
| | | /// </summary> |
| | | InviteElectronSign, |
| | | /// <summary> |
| | | /// 签约地址 |
| | | /// ${name}请您点击签约https://testwww.81812333.com/sgu/${code} |
| | | /// </summary> |
| | | ElectronSignUrl, |
| | | } |
| | | } |
| | |
| | | public enum EnumEnterpriseWalletExpandindirectOrderStatus |
| | | { |
| | | /// <summary> |
| | | /// 未进件 |
| | | /// </summary> |
| | | Wait = 1, |
| | | /// <summary> |
| | | /// 审批中 |
| | | /// </summary> |
| | | PROCESSING = 10, |
| | | /// <summary> |
| | | /// 已生效 |
| | | /// 已进件 |
| | | /// </summary> |
| | | VALID = 20, |
| | | /// <summary> |
| | |
| | | public enum EnumEnterpriseWalletSignStatus |
| | | { |
| | | /// <summary> |
| | | /// 未签约 |
| | | /// </summary> |
| | | Wait = 1, |
| | | /// <summary> |
| | | /// 申请中 |
| | | /// </summary> |
| | | Apply = 10, |
| | |
| | | 通道 |
| | | </summary> |
| | | </member> |
| | | <member name="P:FlexJobApi.Core.EnterpriseWallet.Account"> |
| | | <summary> |
| | | 账号 |
| | | </summary> |
| | | </member> |
| | | <member name="P:FlexJobApi.Core.EnterpriseWallet.MerchantId"> |
| | | <summary> |
| | | 商户Id |
| | | </summary> |
| | | </member> |
| | | <member name="P:FlexJobApi.Core.EnterpriseWallet.Balance"> |
| | | <summary> |
| | | 余额 |
| | |
| | | 验证码${code},用户您好,您正在进行平台钱包开通,该验证码5分钟内有效,请勿泄露于他人。 |
| | | </summary> |
| | | </member> |
| | | <member name="F:FlexJobApi.Core.EnumSmsTemplateCode.InviteElectronSign"> |
| | | <summary> |
| | | 电子签邀约 |
| | | ${name}请您点击签约http://testwww.81812333.com/sg/${code} |
| | | </summary> |
| | | </member> |
| | | <member name="F:FlexJobApi.Core.EnumSmsTemplateCode.ElectronSignUrl"> |
| | | <summary> |
| | | 签约地址 |
| | | ${name}请您点击签约https://testwww.81812333.com/sgu/${code} |
| | | </summary> |
| | | </member> |
| | | <member name="T:FlexJobApi.Core.EnumValidationTypes"> |
| | | <summary> |
| | | 验证类型 |
| | |
| | | 企业钱包代进件单状态 |
| | | </summary> |
| | | </member> |
| | | <member name="F:FlexJobApi.Core.EnumEnterpriseWalletExpandindirectOrderStatus.Wait"> |
| | | <summary> |
| | | 未进件 |
| | | </summary> |
| | | </member> |
| | | <member name="F:FlexJobApi.Core.EnumEnterpriseWalletExpandindirectOrderStatus.PROCESSING"> |
| | | <summary> |
| | | 审批中 |
| | |
| | | </member> |
| | | <member name="F:FlexJobApi.Core.EnumEnterpriseWalletExpandindirectOrderStatus.VALID"> |
| | | <summary> |
| | | 已生效 |
| | | 已进件 |
| | | </summary> |
| | | </member> |
| | | <member name="F:FlexJobApi.Core.EnumEnterpriseWalletExpandindirectOrderStatus.INVALID"> |
| | |
| | | <member name="T:FlexJobApi.Core.EnumEnterpriseWalletSignStatus"> |
| | | <summary> |
| | | 企业钱包签约状态 |
| | | </summary> |
| | | </member> |
| | | <member name="F:FlexJobApi.Core.EnumEnterpriseWalletSignStatus.Wait"> |
| | | <summary> |
| | | 未签约 |
| | | </summary> |
| | | </member> |
| | | <member name="F:FlexJobApi.Core.EnumEnterpriseWalletSignStatus.Apply"> |
| | |
| | | 任务Id |
| | | </summary> |
| | | </member> |
| | | <member name="P:FlexJobApi.Core.GetSettlementTaskUsersQuery.Keywords"> |
| | | <summary> |
| | | 关键字 |
| | | </summary> |
| | | </member> |
| | | <member name="P:FlexJobApi.Core.GetSettlementTaskUsersQuery.SettlementOrderUrl"> |
| | | <summary> |
| | | 结算单地址 |
| | |
| | | <member name="T:FlexJobApi.Core.GetSettlementTaskUsersQueryResult"> |
| | | <summary> |
| | | 查询结算任务分页列表数据 |
| | | </summary> |
| | | </member> |
| | | <member name="P:FlexJobApi.Core.GetSettlementTaskUsersQueryResult.Data"> |
| | | <summary> |
| | | 结算名单 |
| | | </summary> |
| | | </member> |
| | | <member name="P:FlexJobApi.Core.GetSettlementTaskUsersQueryResult.Errors"> |
| | |
| | | 签署合同长链接 |
| | | </summary> |
| | | </member> |
| | | <member name="T:FlexJobApi.Core.SendInviteElectronSignSmsCommand"> |
| | | <summary> |
| | | 发送邀请签约短信 |
| | | </summary> |
| | | </member> |
| | | <member name="P:FlexJobApi.Core.SendInviteElectronSignSmsCommand.Ids"> |
| | | <summary> |
| | | Id |
| | | </summary> |
| | | </member> |
| | | <member name="T:FlexJobApi.Core.StopElectronSignCommand"> |
| | | <summary> |
| | | 灵工解约 |
| | |
| | | 通道 |
| | | </summary> |
| | | </member> |
| | | <member name="P:FlexJobApi.Core.OpenEnterpriseWalletCommand.Account"> |
| | | <summary> |
| | | 账号 |
| | | </summary> |
| | | </member> |
| | | <member name="P:FlexJobApi.Core.OpenEnterpriseWalletCommand.MerchantId"> |
| | | <summary> |
| | | 商户Id |
| | | </summary> |
| | | </member> |
| | | <member name="T:FlexJobApi.Core.OpenEnterpriseWalletCommandResult"> |
| | | <summary> |
| | | 开通企业钱包 |
| | |
| | | 通道 |
| | | </summary> |
| | | </member> |
| | | <member name="P:FlexJobApi.Core.GetEnterpriseWalletQueryResult.Account"> |
| | | <summary> |
| | | 账号 |
| | | </summary> |
| | | </member> |
| | | <member name="P:FlexJobApi.Core.GetEnterpriseWalletQueryResult.MerchantId"> |
| | | <summary> |
| | | 商户Id |
| | | </summary> |
| | | </member> |
| | | <member name="P:FlexJobApi.Core.GetEnterpriseWalletQueryResult.Code"> |
| | | <summary> |
| | | 协议号 |
| | |
| | | <member name="P:FlexJobApi.Core.GetEnterpriseWalletQueryResult.SignStatus"> |
| | | <summary> |
| | | 签约状态 |
| | | </summary> |
| | | </member> |
| | | <member name="P:FlexJobApi.Core.GetEnterpriseWalletQueryResult.ExpandindirectOrderStatus"> |
| | | <summary> |
| | | 待进件状态 |
| | | </summary> |
| | | </member> |
| | | <member name="T:FlexJobApi.Core.GetEnterpriseWalletTransactionQuery"> |
| | |
| | | 验证码 |
| | | </summary> |
| | | </member> |
| | | <member name="T:FlexJobApi.Core.SendSmsModel"> |
| | | <summary> |
| | | 发送短信 |
| | | </summary> |
| | | </member> |
| | | <member name="P:FlexJobApi.Core.SendSmsModel.PhoneNumber"> |
| | | <summary> |
| | | 手机号码 |
| | | </summary> |
| | | </member> |
| | | <member name="P:FlexJobApi.Core.SendSmsModel.TemplateCode"> |
| | | <summary> |
| | | 短信模板编号 |
| | | </summary> |
| | | </member> |
| | | <member name="T:FlexJobApi.Core.SendVerifyCodeModel"> |
| | | <summary> |
| | | 发送验证码 |
| | |
| | | [UnitOfWork(false)] |
| | | public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken) |
| | | { |
| | | var now = DateTime.Now; |
| | | var env = App.GetConfig<string>("Environment"); |
| | | if (env != "Local") |
| | | { |
| | | var now = DateTime.Now; |
| | | var q = rep.AsQueryable() |
| | | .Where(it => it.SettlementStatus == EnumTaskSettlementStatus.InProcess); |
| | | var minTime = env == "Local" |
| | | ? now.AddMinutes(-1) |
| | | : env == "Test" |
| | | var minTime = env == "Test" |
| | | ? now.AddMinutes(-5) |
| | | : now.AddDays(-1); |
| | | q = q.Where(it => it.SettlementStartTime.HasValue && it.SettlementStartTime < minTime); |
| | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | private async Task SetCode(EnterpriseWalletTransaction entity) |
| | | { |
| | |
| | | using Aop.Api.Domain; |
| | | using Furion; |
| | | using Furion.DatabaseAccessor; |
| | | using Furion.FriendlyException; |
| | | using Furion.Schedule; |
| | |
| | | |
| | | [UnitOfWork(false)] |
| | | public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken) |
| | | { |
| | | var env = App.GetConfig<string>("Environment"); |
| | | if (env != "Local") |
| | | { |
| | | var entities = await rep.AsQueryable() |
| | | .Include(it => it.Enterprise) |
| | |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | using Aop.Api.Domain; |
| | | using Furion; |
| | | using Furion.DatabaseAccessor; |
| | | using Furion.FriendlyException; |
| | | using Furion.Schedule; |
| | |
| | | private readonly AlipayUtils alipayUtils = alipayUtils; |
| | | |
| | | public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken) |
| | | { |
| | | var env = App.GetConfig<string>("Environment"); |
| | | if (env != "Local") |
| | | { |
| | | var entities = await rep.AsQueryable() |
| | | .Where(it => |
| | |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | /// 查询结算名单分页列表数据 |
| | | /// </summary> |
| | | [Resource([EnumResourceController.FlexJobServerTaskUser])] |
| | | public class GetSettlementTaskUsersQuery : PagedListQuery<GetSettlementTaskUsersQueryResult, GetSettlementTaskUsersQueryResultItem> |
| | | public class GetSettlementTaskUsersQuery : IRequest<GetSettlementTaskUsersQueryResult> |
| | | { |
| | | /// <summary> |
| | | /// 任务Id |
| | | /// </summary> |
| | | public Guid TaskInfoId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 关键字 |
| | | /// </summary> |
| | | public string Keywords { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 结算单地址 |
| | |
| | | /// <summary> |
| | | /// 查询结算任务分页列表数据 |
| | | /// </summary> |
| | | public class GetSettlementTaskUsersQueryResult : PagedListQueryResult<GetSettlementTaskUsersQueryResultItem> |
| | | public class GetSettlementTaskUsersQueryResult |
| | | { |
| | | /// <summary> |
| | | /// 结算名单 |
| | | /// </summary> |
| | | public List<GetSettlementTaskUsersQueryResultItem> Data { get; set; } |
| | | /// <summary> |
| | | /// 错误信息 |
| | | /// </summary> |
| | | public List<GetSettlementTaskUsersQueryResultError> Errors { get; set; } |
New file |
| | |
| | | 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.UserServerEnterpriseEmployee])] |
| | | public class SendInviteElectronSignSmsCommand : IRequest<int> |
| | | { |
| | | public SendInviteElectronSignSmsCommand() |
| | | { |
| | | Ids = []; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Id |
| | | /// </summary> |
| | | public List<Guid> Ids { get; set; } |
| | | } |
| | | } |
| | |
| | | /// </summary> |
| | | public EnumEnterpriseWalletAccess Access { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 账号 |
| | | /// </summary> |
| | | public string Account { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 商户Id |
| | | /// </summary> |
| | | public string MerchantId { get; set; } |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <summary> |
| | | /// 钱包Id |
| | | /// </summary> |
| | | public Guid Id { get; set; } |
| | | public Guid? Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 通道 |
| | | /// </summary> |
| | | public EnumEnterpriseWalletAccess Access { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 账号 |
| | | /// </summary> |
| | | public string Account { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 商户Id |
| | | /// </summary> |
| | | public string MerchantId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 协议号 |
| | |
| | | /// 签约状态 |
| | | /// </summary> |
| | | public EnumEnterpriseWalletSignStatus SignStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 待进件状态 |
| | | /// </summary> |
| | | public EnumEnterpriseWalletExpandindirectOrderStatus ExpandindirectOrderStatus { get; set; } |
| | | } |
| | | } |
New file |
| | |
| | | using Furion.DataValidation; |
| | | using MediatR; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace FlexJobApi.Core |
| | | { |
| | | /// <summary> |
| | | /// 发送短信 |
| | | /// </summary> |
| | | public class SendSmsModel |
| | | { |
| | | /// <summary> |
| | | /// 手机号码 |
| | | /// </summary> |
| | | [Required, DataValidation(ValidationTypes.PhoneNumber)] |
| | | public string PhoneNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 短信模板编号 |
| | | /// </summary> |
| | | public EnumSmsTemplateCode TemplateCode { get; set; } |
| | | } |
| | | } |
| | |
| | | this.aliyunSmsUtils = aliyunSmsUtils; |
| | | } |
| | | |
| | | public async Task<Guid> Send(SendSmsModel model, object templateParam, CancellationToken cancellationToken = default) |
| | | { |
| | | var entity = new SmsLog(); |
| | | model.Adapt(entity); |
| | | entity.Expiry = DateTime.Now.AddMinutes(10); |
| | | entity.TemplateParam = templateParam.ToJson(); |
| | | await aliyunSmsUtils.SendAsync(model.PhoneNumber, model.TemplateCode, entity.TemplateParam, cancellationToken); |
| | | await rep.InsertAsync(entity); |
| | | return entity.Id; |
| | | } |
| | | |
| | | public async Task<Guid> SendVerifyCode(SendVerifyCodeModel model, CancellationToken cancellationToken = default) |
| | | { |
| | | var code = new Random().Next(100000, 999999).ToString(); |
| | |
| | | public async Task<GetSettlementTaskUsersQueryResult> Handle(GetSettlementTaskUsersQuery request, CancellationToken cancellationToken) |
| | | { |
| | | var logier = JwtUtils.GetCurrentLogier(); |
| | | var list = new GetSettlementTaskUsersQueryResult(); |
| | | var q = rep.AsQueryable().AsNoTracking() |
| | | .Where(it => it.TaskInfoId == request.TaskInfoId); |
| | | var s = q |
| | | list.Data = q |
| | | .Select(it => new GetSettlementTaskUsersQueryResultItem |
| | | { |
| | | Id = it.Id, |
| | |
| | | SettlementAmount = it.SettlementAmount, |
| | | ActualSettlementAmount = it.ActualSettlementAmount, |
| | | SettlementTime = it.SettlementTime |
| | | }); |
| | | var list = await request.PageModel.GetPagedListAsync<GetSettlementTaskUsersQueryResult, GetSettlementTaskUsersQueryResultItem>(s, cancellationToken); |
| | | }) |
| | | .ToList(); |
| | | |
| | | var successList = new List<GetSettlementTaskUsersQueryResultExcelRow>(); |
| | | if (request.SettlementOrderUrl.IsNotNull()) |
| | |
| | | } |
| | | } |
| | | |
| | | var pagedList = await list.Data |
| | | list.Data = list.Data |
| | | .Where(it => successList.Any(s => s.Identity == it.Identity)) |
| | | .AsQueryable() |
| | | .ToPagedListAsync(request.PageModel.Page, request.PageModel.Rows, cancellationToken); |
| | | list.PageModel = request.PageModel.Adapt<PagedListQueryResultPageModel>(); |
| | | list.PageModel.TotalCount = pagedList.TotalCount; |
| | | list.PageModel.TotalPage = pagedList.TotalPages; |
| | | list.Data = pagedList.Items.ToList(); |
| | | .ToList(); |
| | | |
| | | return list; |
| | | } |
| | |
| | | faceRealUrl: result.Result.FaceUrl); |
| | | await repUser.UpdateAsync(user); |
| | | |
| | | return result.Result.FaceUrl; |
| | | return result.Result.FaceUrl.Replace("https://h5-v2.kych5.com", "https://wx05.ssqian.com.cn"); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// 灵工命令处理器 |
| | | /// </summary> |
| | | public class EnterpriseEmployeesCommandHandler( |
| | | SmsUtils smsUtils, |
| | | IMediator mediator, |
| | | IRepository<EnterpriseEmployee> rep, |
| | | IRepository<User> repUser, |
| | |
| | | IRequestHandler<InviteElectronSignCommand, int>, |
| | | IRequestHandler<PersonalUserElectronSignCommand, PersonalUserElectronSignCommandResult>, |
| | | IRequestHandler<EnterpriseUserElectronSignCommand, EnterpriseUserElectronSignCommandResult>, |
| | | IRequestHandler<StopElectronSignCommand, int> |
| | | IRequestHandler<StopElectronSignCommand, int>, |
| | | IRequestHandler<SendInviteElectronSignSmsCommand, int> |
| | | { |
| | | private readonly SmsUtils smsUtils = smsUtils; |
| | | private readonly IMediator mediator = mediator; |
| | | private readonly IRepository<EnterpriseEmployee> rep = rep; |
| | | private readonly IRepository<User> repUser = repUser; |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 发送邀请签约短信 |
| | | /// </summary> |
| | | /// <param name="request"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public async Task<int> Handle(SendInviteElectronSignSmsCommand request, CancellationToken cancellationToken) |
| | | { |
| | | var logier = JwtUtils.GetCurrentLogier(); |
| | | var entities = await rep.AsQueryable() |
| | | .Include(it => it.Enterprise) |
| | | .Include(it => it.ContractTemplate) |
| | | .Where(it => |
| | | it.EnterpriseId == logier.EnterpriseId |
| | | && request.Ids.Contains(it.Id) |
| | | && it.UserSignContractStatus == EnumTaskUserSignContractStatus.Wait) |
| | | .ToListAsync(); |
| | | foreach (var entity in entities) |
| | | { |
| | | await smsUtils.Send(new SendSmsModel |
| | | { |
| | | PhoneNumber = entity.ContactPhoneNumber, |
| | | TemplateCode = EnumSmsTemplateCode.InviteElectronSign, |
| | | }, |
| | | new |
| | | { |
| | | name = entity.Enterprise.EnterpriseName, |
| | | code = entity.ContractTemplate.Code |
| | | }); |
| | | } |
| | | return entities.Count; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 个人用户签约 |
| | | /// </summary> |
| | | /// <param name="request"></param> |
| | |
| | | { |
| | | throw Oops.Oh(EnumErrorCodeType.s510, result?.Message ?? "签约失败"); |
| | | } |
| | | return result.Result.Adapt<PersonalUserElectronSignCommandResult>(); |
| | | var model = result.Result.Adapt<PersonalUserElectronSignCommandResult>(); |
| | | model.SignContractLongUrl = model.SignContractLongUrl |
| | | .Replace("https://openapi.bestsign.info:443", "https://wx115.bestsign.info") |
| | | .Replace("https://openapi.bestsign.cn:443", "https://wx115.bestsign.cn"); |
| | | return model; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | { |
| | | throw Oops.Oh(EnumErrorCodeType.s510, result?.Message ?? "签约失败"); |
| | | } |
| | | return result.Result.Adapt<EnterpriseUserElectronSignCommandResult>(); |
| | | var model = result.Result.Adapt<EnterpriseUserElectronSignCommandResult>(); |
| | | model.SignContractLongUrl = model.SignContractLongUrl |
| | | .Replace("https://openapi.bestsign.info:443", "https://wx115.bestsign.info") |
| | | .Replace("https://openapi.bestsign.cn:443", "https://wx115.bestsign.cn"); |
| | | return model; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | |
| | | return entities.Count; |
| | | } |
| | | |
| | | } |
| | | } |
| | |
| | | entity = new EnterpriseWallet(); |
| | | entity.EnterpriseId = request.EnterpriseId!.Value; |
| | | entity.Access = EnumEnterpriseWalletAccess.Alipay; |
| | | entity.Account = request.Account; |
| | | entity.MerchantId = request.MerchantId; |
| | | entity.PersonalProductCode = "FUND_SAFT_SIGN_WITHHOLDING_P"; |
| | | entity.SignScene = "INDUSTRY|SATF_ACC"; |
| | | entity.ThirdPartyType = "PARTNER"; |
| | |
| | | else |
| | | { |
| | | if (entity.SignStatus == EnumEnterpriseWalletSignStatus.Normal) throw Oops.Oh(EnumErrorCodeType.s510, "已签约"); |
| | | entity.Account = request.Account; |
| | | entity.MerchantId = request.MerchantId; |
| | | entity.SignStatus = EnumEnterpriseWalletSignStatus.Apply; |
| | | await rep.UpdateAsync(entity); |
| | | } |
| | |
| | | public class EnterpriseWalletQueryHandler( |
| | | IRepository<EnterpriseWallet> rep, |
| | | IRepository<EnterpriseWalletTransaction> repEnterpriseWalletTransaction, |
| | | IRepository<EnterpriseWalletExpandindirectOrder> repEnterpriseWalletExpandindirectOrder, |
| | | IRepository<Enterprise> repEnterprise, |
| | | AlipayUtils alipayUtils |
| | | ) : |
| | |
| | | { |
| | | private readonly IRepository<EnterpriseWallet> rep = rep; |
| | | private readonly IRepository<EnterpriseWalletTransaction> repEnterpriseWalletTransaction = repEnterpriseWalletTransaction; |
| | | private readonly IRepository<EnterpriseWalletExpandindirectOrder> repEnterpriseWalletExpandindirectOrder = repEnterpriseWalletExpandindirectOrder; |
| | | private readonly IRepository<Enterprise> repEnterprise = repEnterprise; |
| | | private readonly AlipayUtils alipayUtils = alipayUtils; |
| | | |
| | |
| | | var entity = await rep.AsQueryable() |
| | | .Where(it => it.EnterpriseId == request.EnterpriseId && it.Access == request.Access) |
| | | .FirstOrDefaultAsync(); |
| | | if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "企业钱包"); |
| | | if (entity == null) |
| | | { |
| | | return new GetEnterpriseWalletQueryResult |
| | | { |
| | | Access = request.Access, |
| | | SignStatus = EnumEnterpriseWalletSignStatus.Wait, |
| | | ExpandindirectOrderStatus = EnumEnterpriseWalletExpandindirectOrderStatus.Wait |
| | | }; |
| | | } |
| | | var update = false; |
| | | if (entity.Access == EnumEnterpriseWalletAccess.Alipay) |
| | | { |
| | |
| | | } |
| | | |
| | | var model = entity.Adapt<GetEnterpriseWalletQueryResult>(); |
| | | |
| | | var expandindirectOrder = await repEnterpriseWalletExpandindirectOrder.AsQueryable().AsNoTracking() |
| | | .OrderByDescending(it => it.CreatedTime) |
| | | .Where(it => it.WalletId == model.Id) |
| | | .Select(it => new |
| | | { |
| | | it.OrderStatus |
| | | }) |
| | | .FirstOrDefaultAsync(); |
| | | model.ExpandindirectOrderStatus = expandindirectOrder == null |
| | | ? EnumEnterpriseWalletExpandindirectOrderStatus.Wait |
| | | : expandindirectOrder.OrderStatus; |
| | | |
| | | return model; |
| | | } |
| | | |
| | |
| | | 灵工命令处理器 |
| | | </summary> |
| | | </member> |
| | | <member name="M:FlexJobApi.UserServer.Application.EnterpriseEmployeesCommandHandler.#ctor(MediatR.IMediator,Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseEmployee},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.User},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.Enterprise},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseEmployeeContract},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.ElectronSignSetting},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.ContractTemplate},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseCost},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.TaskInfoUser})"> |
| | | <member name="M:FlexJobApi.UserServer.Application.EnterpriseEmployeesCommandHandler.#ctor(FlexJobApi.Core.SmsUtils,MediatR.IMediator,Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseEmployee},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.User},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.Enterprise},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseEmployeeContract},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.ElectronSignSetting},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.ContractTemplate},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseCost},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.TaskInfoUser})"> |
| | | <summary> |
| | | 灵工命令处理器 |
| | | </summary> |
| | |
| | | <member name="M:FlexJobApi.UserServer.Application.EnterpriseEmployeesCommandHandler.Handle(FlexJobApi.Core.InviteElectronSignCommand,System.Threading.CancellationToken)"> |
| | | <summary> |
| | | 邀请灵工签约 |
| | | </summary> |
| | | <param name="request"></param> |
| | | <param name="cancellationToken"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:FlexJobApi.UserServer.Application.EnterpriseEmployeesCommandHandler.Handle(FlexJobApi.Core.SendInviteElectronSignSmsCommand,System.Threading.CancellationToken)"> |
| | | <summary> |
| | | 发送邀请签约短信 |
| | | </summary> |
| | | <param name="request"></param> |
| | | <param name="cancellationToken"></param> |
| | |
| | | 企业钱包查询处理器 |
| | | </summary> |
| | | </member> |
| | | <member name="M:FlexJobApi.UserServer.Application.EnterpriseWalletQueryHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseWallet},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseWalletTransaction},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.Enterprise},FlexJobApi.Core.AlipayUtils)"> |
| | | <member name="M:FlexJobApi.UserServer.Application.EnterpriseWalletQueryHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseWallet},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseWalletTransaction},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseWalletExpandindirectOrder},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.Enterprise},FlexJobApi.Core.AlipayUtils)"> |
| | | <summary> |
| | | 企业钱包查询处理器 |
| | | </summary> |
| | |
| | | "UserElectronSign": "SMS_476485061", |
| | | |
| | | //818钱包开通 验证码${code},用户您好,您正在进行平台钱包开通,该验证码5分钟内有效,请勿泄露于他人。 |
| | | "BankWalletAccountOpen": "SMS_473860301" |
| | | "BankWalletAccountOpen": "SMS_473860301", |
| | | |
| | | "InviteElectronSign": "SMS_493755029", |
| | | "ElectronSignUrl": "SMS_493715033" |
| | | } |
| | | } |
| | | }, |