FlexJobApi.Core/Entities/UserServer/Enterprises/Enterprise.cs
@@ -88,7 +88,27 @@ public DictionaryData IndustryType { get; set; } /// <summary> /// 主营业务 /// 企业类型 /// </summary> public string EnterpriseType { get; set; } /// <summary> /// 注册资本 /// </summary> public string RegisteredCapital { get; set; } /// <summary> /// 成立日期 /// </summary> public string EstablishmentDate { get; set; } /// <summary> /// 企业地址 /// </summary> public string Address { get; set; } /// <summary> /// 经营范围 /// </summary> public string MainBusiness { get; set; } FlexJobApi.Core/Entities/UserServer/Users/User.cs
@@ -260,6 +260,16 @@ /// </summary> public List<EnterpriseUserCollect> EnterpriseUserCollects { get; set; } /// <summary> /// 数据来源 /// </summary> public EnumDataSource? DataSource { get; set; } /// <summary> /// 数据来源Id /// </summary> public Guid? DataSourceId { get; set; } public void Configure(EntityTypeBuilder<User> entityBuilder, DbContext dbContext, Type dbContextLocator) { entityBuilder FlexJobApi.Core/Enums/Common/EnumErrorCodeType.cs
@@ -26,7 +26,7 @@ [ErrorCodeItemMetadata("{0}不存在")] s404 = 404, /// <summary> /// 该{0}已存在,请确认后再试 /// {0}已存在,请确认后再试 /// </summary> [ErrorCodeItemMetadata("{0}已存在,请确认后再试")] s405 = 405, FlexJobApi.Core/Enums/Users/EnumUserSource.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 EnumDataSource { /// <summary> /// 818 /// </summary> HumanResources = 10 } } FlexJobApi.Core/FlexJobApi.Core.xml
@@ -1244,9 +1244,29 @@ 所属行业 </summary> </member> <member name="P:FlexJobApi.Core.Enterprise.EnterpriseType"> <summary> 企业类型 </summary> </member> <member name="P:FlexJobApi.Core.Enterprise.RegisteredCapital"> <summary> 注册资本 </summary> </member> <member name="P:FlexJobApi.Core.Enterprise.EstablishmentDate"> <summary> 成立日期 </summary> </member> <member name="P:FlexJobApi.Core.Enterprise.Address"> <summary> 企业地址 </summary> </member> <member name="P:FlexJobApi.Core.Enterprise.MainBusiness"> <summary> 主营业务 经营范围 </summary> </member> <member name="P:FlexJobApi.Core.Enterprise.Contacts"> @@ -2157,6 +2177,16 @@ 谁家企业收藏/联系我 </summary> </member> <member name="P:FlexJobApi.Core.User.DataSource"> <summary> 数据来源 </summary> </member> <member name="P:FlexJobApi.Core.User.DataSourceId"> <summary> 数据来源Id </summary> </member> <member name="T:FlexJobApi.Core.UserAuth"> <summary> 用户认证 @@ -2284,7 +2314,7 @@ </member> <member name="F:FlexJobApi.Core.EnumErrorCodeType.s405"> <summary> 该{0}已存在,请确认后再试 {0}已存在,请确认后再试 </summary> </member> <member name="F:FlexJobApi.Core.EnumErrorCodeType.s406"> @@ -3140,6 +3170,16 @@ <member name="F:FlexJobApi.Core.EnumUserRealMethod.Face"> <summary> 刷脸认证 </summary> </member> <member name="T:FlexJobApi.Core.EnumDataSource"> <summary> 数据来源 </summary> </member> <member name="F:FlexJobApi.Core.EnumDataSource.HumanResources"> <summary> 818 </summary> </member> <member name="T:FlexJobApi.Core.EnumUserStatus"> @@ -8509,6 +8549,191 @@ 状态 </summary> </member> <member name="T:FlexJobApi.Core.SyncEnterpriseUserCommand"> <summary> 同步企业用户 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommand.DataSource"> <summary> 数据来源 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommand.DataSourceId"> <summary> 数据来源Id </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommand.Password"> <summary> 密码 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommand.Name"> <summary> 姓名 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommand.UserName"> <summary> 用户名 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommand.PhoneNumber"> <summary> 手机号 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommand.Enterprise"> <summary> 企业 </summary> </member> <member name="T:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise"> <summary> 同步企业用户 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.EnterpriseName"> <summary> 企业全称 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.SocietyCreditCode"> <summary> 统一社会信用代码 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.LicenseImage"> <summary> 营业执照照片 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.LegalPerson"> <summary> 法人姓名 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.LegalIdentity"> <summary> 法人身份证号 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.ProvinceCode"> <summary> 所在省份编号 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.CityCode"> <summary> 所在城市编号 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.IndustryTypeCode"> <summary> 所属行业编号 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.EnterpriseType"> <summary> 企业类型 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.RegisteredCapital"> <summary> 注册资本 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.EstablishmentDate"> <summary> 成立日期 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.Address"> <summary> 企业地址 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.MainBusiness"> <summary> 经营范围 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.Contacts"> <summary> 联系人 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.ContactPhoneNumber"> <summary> 联系电话 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.ContactEmail"> <summary> 联系邮箱 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.PayAccess"> <summary> 支付通道 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.BankName"> <summary> 开户总行 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.BankBranchName"> <summary> 开户支行 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.BankCard"> <summary> 银行账户 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.IsCheckedBankCard"> <summary> 是否已校验银行账户 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.RealAccess"> <summary> 实名通道 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.RealVerifyCost"> <summary> 实名费用 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.SignCost"> <summary> 签约费用 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.MergeSignCost"> <summary> 一口价 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.SmsAccess"> <summary> 短信通道 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.SmsCost"> <summary> 短信费用 </summary> </member> <member name="P:FlexJobApi.Core.SyncEnterpriseUserCommandEnterprise.IsReal"> <summary> 是否实名 </summary> </member> <member name="T:FlexJobApi.Core.GetEnterpriseLoginInfoQuery"> <summary> 查询企业用户登录信息 @@ -9099,7 +9324,7 @@ 企业地址 </summary> </member> <member name="P:FlexJobApi.Core.BaiduOcrBusinessLicenseResultModel.BusinessScope"> <member name="P:FlexJobApi.Core.BaiduOcrBusinessLicenseResultModel.MainBusiness"> <summary> 经营范围 </summary> FlexJobApi.Core/Models/UserServer/Users/Commands/SyncEnterpriseUserCommand.cs
@@ -1,5 +1,8 @@ using System; using Mapster; using MediatR; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -9,8 +12,198 @@ /// <summary> /// 同步企业用户 /// </summary> public class SyncEnterpriseUserCommand [Resource([EnumResourceController.User])] public class SyncEnterpriseUserCommand : IRequest<Guid> { /// <summary> /// 数据来源 /// </summary> public EnumDataSource? DataSource { get; set; } /// <summary> /// 数据来源Id /// </summary> public Guid? DataSourceId { get; set; } /// <summary> /// 密码 /// </summary> public string Password { get; set; } /// <summary> /// 姓名 /// </summary> public string Name { get; set; } /// <summary> /// 用户名 /// </summary> public string UserName { get; set; } /// <summary> /// 手机号 /// </summary> public string PhoneNumber { get; set; } /// <summary> /// 企业 /// </summary> [AdaptIgnore] public SyncEnterpriseUserCommandEnterprise Enterprise { get; set; } } /// <summary> /// 同步企业用户 /// </summary> public class SyncEnterpriseUserCommandEnterprise { /// <summary> /// 企业全称 /// </summary> [Required] [MaxLength(128)] public string EnterpriseName { get; set; } /// <summary> /// 统一社会信用代码 /// </summary> [Required] [MaxLength(18)] public string SocietyCreditCode { get; set; } /// <summary> /// 营业执照照片 /// </summary> public string LicenseImage { get; set; } /// <summary> /// 法人姓名 /// </summary> [MaxLength(32)] public string LegalPerson { get; set; } /// <summary> /// 法人身份证号 /// </summary> [MaxLength(18)] public string LegalIdentity { get; set; } /// <summary> /// 所在省份编号 /// </summary> public string ProvinceCode { get; set; } /// <summary> /// 所在城市编号 /// </summary> public string CityCode { get; set; } /// <summary> /// 所属行业编号 /// </summary> public string IndustryTypeCode { get; set; } /// <summary> /// 企业类型 /// </summary> public string EnterpriseType { get; set; } /// <summary> /// 注册资本 /// </summary> public string RegisteredCapital { get; set; } /// <summary> /// 成立日期 /// </summary> public string EstablishmentDate { get; set; } /// <summary> /// 企业地址 /// </summary> public string Address { get; set; } /// <summary> /// 经营范围 /// </summary> public string MainBusiness { get; set; } /// <summary> /// 联系人 /// </summary> [MaxLength(32)] public string Contacts { get; set; } /// <summary> /// 联系电话 /// </summary> [MaxLength(11)] public string ContactPhoneNumber { get; set; } /// <summary> /// 联系邮箱 /// </summary> public string ContactEmail { get; set; } /// <summary> /// 支付通道 /// </summary> public EnumPayAccess? PayAccess { get; set; } /// <summary> /// 开户总行 /// </summary> public string BankName { get; set; } /// <summary> /// 开户支行 /// </summary> public string BankBranchName { get; set; } /// <summary> /// 银行账户 /// </summary> [MaxLength(32)] public string BankCard { get; set; } /// <summary> /// 是否已校验银行账户 /// </summary> public bool IsCheckedBankCard { get; set; } /// <summary> /// 实名通道 /// </summary> public EnumRealAccess? RealAccess { get; set; } /// <summary> /// 实名费用 /// </summary> public decimal? RealVerifyCost { get; set; } /// <summary> /// 签约费用 /// </summary> public decimal? SignCost { get; set; } /// <summary> /// 一口价 /// </summary> public decimal? MergeSignCost { get; set; } /// <summary> /// 短信通道 /// </summary> public EnumSmsAccess? SmsAccess { get; set; } /// <summary> /// 短信费用 /// </summary> public decimal SmsCost { get; set; } /// <summary> /// 是否实名 /// </summary> public bool IsReal { get; set; } } } FlexJobApi.Core/Utils/BaiduUtils/BaiduOcrBusinessLicenseResult.cs
@@ -85,6 +85,6 @@ /// <summary> /// 经营范围 /// </summary> public string BusinessScope { get; set; } public string MainBusiness { get; set; } } } FlexJobApi.Core/Utils/BaiduUtils/BaiduOcrUtils.cs
@@ -61,7 +61,7 @@ RegisteredCapital = result.WordsResult["注册资本"].Words, EstablishmentDate = result.WordsResult["成立日期"].Words, Address = result.WordsResult["地址"].Words, BusinessScope = result.WordsResult["经营范围"].Words, MainBusiness = result.WordsResult["经营范围"].Words, }; return result; } FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml
@@ -296,7 +296,7 @@ </member> <member name="F:FlexJobApi.UserServer.Application.EnumUserErrorCodeType.u1010"> <summary> 该手机号已被注册 手机号已被注册 </summary> </member> <member name="F:FlexJobApi.UserServer.Application.EnumUserErrorCodeType.u1100"> @@ -687,6 +687,24 @@ <param name="cancellationToken"></param> <returns></returns> </member> <member name="T:FlexJobApi.UserServer.Application.SyncEnterpriseUserCommandHandler"> <summary> </summary> </member> <member name="M:FlexJobApi.UserServer.Application.SyncEnterpriseUserCommandHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.User},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.Enterprise})"> <summary> </summary> </member> <member name="M:FlexJobApi.UserServer.Application.SyncEnterpriseUserCommandHandler.Handle(FlexJobApi.Core.SyncEnterpriseUserCommand,System.Threading.CancellationToken)"> <summary> 同步企业用户 </summary> <param name="request"></param> <param name="cancellationToken"></param> <returns></returns> </member> <member name="T:FlexJobApi.UserServer.Application.UserInfos.Commands.UserInfoCommandHandler"> <summary> 用户信息命令处理器 FlexJobApi.UserServer.Application/Users/Commands/SyncEnterpriseUserCommandHandler.cs
New file @@ -0,0 +1,70 @@ using FlexJobApi.Core; using Furion.DatabaseAccessor; using Furion.FriendlyException; using Mapster; using MediatR; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.UserServer.Application { /// <summary> /// /// </summary> public class SyncEnterpriseUserCommandHandler( IRepository<User> repUser, IRepository<Enterprise> repEnterprise ) : IRequestHandler<SyncEnterpriseUserCommand, Guid> { private readonly IRepository<User> repUser = repUser; private readonly IRepository<Enterprise> repEnterprise = repEnterprise; /// <summary> /// 同步企业用户 /// </summary> /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task<Guid> Handle(SyncEnterpriseUserCommand request, CancellationToken cancellationToken) { var enterprise = await repEnterprise.AsQueryable() .Where(it => it.SocietyCreditCode == request.Enterprise.SocietyCreditCode) .FirstOrDefaultAsync(cancellationToken); if (enterprise == null) { enterprise = new Enterprise(); request.Enterprise.Adapt(enterprise); await repEnterprise.InsertAsync(enterprise); } else { request.Enterprise.Adapt(enterprise); await repEnterprise.UpdateAsync(enterprise); } var user = await repUser.AsQueryable() .Where(it => it.Type == EnumUserType.Enterprise && it.EnterpriseId == enterprise.Id && it.UserName == request.UserName) .FirstOrDefaultAsync(cancellationToken); if (user == null) { var exist = await repUser.AsQueryable().AsNoTracking() .AnyAsync(it => it.Type == EnumUserType.Enterprise && it.UserName == request.UserName); if (exist) throw Oops.Oh(EnumErrorCodeType.s405, "账号"); user = new User(); request.Adapt(user); await repUser.InsertAsync(user); } else { request.Adapt(user); await repUser.UpdateAsync(user); } return user.Id; } } } FlexJobApi.UserServer.Application/Users/Commands/UserInfoCommandHandler.cs
@@ -62,5 +62,6 @@ await rep.UpdateAsync(entity); return entity.UserRoles.Count; } } } FlexJobApi.Web.Entry/appsettings.json
@@ -42,57 +42,57 @@ "RoleSessionName": "SessionTest", "Policy": "{\"Version\":\"1\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":\"oss:PutObject\",\"Resource\":[\"acs:oss:*:*:waterdroptest2/*\",\"acs:oss:*:*:parkmanagement/*\",\"acs:oss:*:*:jurenlian/*\"]}]}", "DurationSeconds": 3600 }, "SMS": { "Enable": true, "AccessKeyId": "LTAI5tMS7qz1duiyncCqxB8H", "AccessSecret": "TEHSXK6f6Njg0v0MSFkrjURofdjuKQ", "Version": "2017-05-25", "SignName": "818数字人力资产平台", "RegionId": "cn-hangzhou", "TemplateCodes": { //818平台短信验证码 验证码:${code},请于5分钟内填写,请勿泄露,若非本人操作请忽略。 "VerifyCode": "SMS_471100021", //818平台登录/注册 验证码${code},用户您好,您正在进行平台登录/注册,验证码10分钟内有效。 "LoginOrRegister": "SMS_472170005", //818账号开通(管理端)尊敬的用户您好,人力无忧账号已开通,账号:${account},密码:${pwd},请登录网址 https://admin.81812333.com "CreateOperationAccount": "SMS_471970028", //818手机号码修改 验证码${code},您正在进行修改手机号码操作,请勿泄露,若非本人操作请忽略。 "UpdateUserPhoneNumber": "SMS_471100097", //818手机号换绑 尊敬的用户您好,818平台${code}的账户绑定手机号成功修改为${account},你可以使用该手机号登录,登录网址 https://www.81812333.com "UpdateUserPhoneNumberNotice": "SMS_471925037", //818重置密码 验证码${code},您正在进行重置密码操作,请勿泄露,若非本人操作请忽略。 "ResetUserPhoneNumber": "SMS_471240080", //818平台密码重置(通知) 您好,您的密码已重置,账号:${account},密码:${password},请妥善保存 "ResetPasswordNotice": "SMS_476790229", //账号修改 尊敬的用户您好: 您的818平台账号成功修改为${account}您可以使用该账号进行登录,登录网址:https://www.81812333.com "ChangeUserName": "SMS_475895109", //818账号开通 尊敬的用户您好,您的账号:${account},初始密码:${password},请妥善保存,您可使用账号密码登录并修改密码,登录网址 https://www.81812333.com "CreateAccountNotice": "SMS_471980029", //手机号解绑 尊敬的用户您好:818平台${account}的账号与${number}已解绑,你可以登录网址:https://www.81812333.com重新绑定手机号。 "UnbindingUserPhoneNumber": "SMS_475840188", //解绑邮箱 尊敬的用户您好:818平台${account}的账号与${mail}已解绑,你可以登录网址:https://www.81812333.com重新绑定邮箱。 "UnbindingUserEmail": "SMS_475875117", //818实名认证 验证码${code},您正在进行实名认证操作,请勿泄露,若非本人操作请忽略。 "UserCertificationAudit": "SMS_471230080", //申请数字证书 验证码${code},用户您好,您正在申请数字证书,验证码10分钟内有效。 "ApplyUserCertificate": "SMS_475345383", //电子签 ${unit_name}请您点击签约t.81812333.com/Inter/${code} "UserElectronSign": "SMS_476485061", //818钱包开通 验证码${code},用户您好,您正在进行平台钱包开通,该验证码5分钟内有效,请勿泄露于他人。 "BankWalletAccountOpen": "SMS_473860301" } } }, "Baidu": { "Ocr": { "Key": "Htx3y6eFnlW92WvHx9aW44f8", "Secret": "k1rDa3vjVtArrQio9LtR5AjqARSw45WO" } }, "SMS": { "Enable": true, "AccessKeyId": "LTAI5tMS7qz1duiyncCqxB8H", "AccessSecret": "TEHSXK6f6Njg0v0MSFkrjURofdjuKQ", "Version": "2017-05-25", "SignName": "818数字人力资产平台", "RegionId": "cn-hangzhou", "TemplateCodes": { //818平台短信验证码 验证码:${code},请于5分钟内填写,请勿泄露,若非本人操作请忽略。 "VerifyCode": "SMS_471100021", //818平台登录/注册 验证码${code},用户您好,您正在进行平台登录/注册,验证码10分钟内有效。 "LoginOrRegister": "SMS_472170005", //818账号开通(管理端)尊敬的用户您好,人力无忧账号已开通,账号:${account},密码:${pwd},请登录网址 https://admin.81812333.com "CreateOperationAccount": "SMS_471970028", //818手机号码修改 验证码${code},您正在进行修改手机号码操作,请勿泄露,若非本人操作请忽略。 "UpdateUserPhoneNumber": "SMS_471100097", //818手机号换绑 尊敬的用户您好,818平台${code}的账户绑定手机号成功修改为${account},你可以使用该手机号登录,登录网址 https://www.81812333.com "UpdateUserPhoneNumberNotice": "SMS_471925037", //818重置密码 验证码${code},您正在进行重置密码操作,请勿泄露,若非本人操作请忽略。 "ResetUserPhoneNumber": "SMS_471240080", //818平台密码重置(通知) 您好,您的密码已重置,账号:${account},密码:${password},请妥善保存 "ResetPasswordNotice": "SMS_476790229", //账号修改 尊敬的用户您好: 您的818平台账号成功修改为${account}您可以使用该账号进行登录,登录网址:https://www.81812333.com "ChangeUserName": "SMS_475895109", //818账号开通 尊敬的用户您好,您的账号:${account},初始密码:${password},请妥善保存,您可使用账号密码登录并修改密码,登录网址 https://www.81812333.com "CreateAccountNotice": "SMS_471980029", //手机号解绑 尊敬的用户您好:818平台${account}的账号与${number}已解绑,你可以登录网址:https://www.81812333.com重新绑定手机号。 "UnbindingUserPhoneNumber": "SMS_475840188", //解绑邮箱 尊敬的用户您好:818平台${account}的账号与${mail}已解绑,你可以登录网址:https://www.81812333.com重新绑定邮箱。 "UnbindingUserEmail": "SMS_475875117", //818实名认证 验证码${code},您正在进行实名认证操作,请勿泄露,若非本人操作请忽略。 "UserCertificationAudit": "SMS_471230080", //申请数字证书 验证码${code},用户您好,您正在申请数字证书,验证码10分钟内有效。 "ApplyUserCertificate": "SMS_475345383", //电子签 ${unit_name}请您点击签约t.81812333.com/Inter/${code} "UserElectronSign": "SMS_476485061", //818钱包开通 验证码${code},用户您好,您正在进行平台钱包开通,该验证码5分钟内有效,请勿泄露于他人。 "BankWalletAccountOpen": "SMS_473860301" } } }