添加LinkVerificationCode

Test_IRC_Net10
he 2026-06-17 17:33:09 +08:00
parent ddd06c8313
commit 67f17cffe0
7 changed files with 22477 additions and 3 deletions

View File

@ -20885,7 +20885,7 @@
<returns></returns> <returns></returns>
<exception cref="T:IRaCIS.Core.Infrastructure.BusinessValidationFailedException"></exception> <exception cref="T:IRaCIS.Core.Infrastructure.BusinessValidationFailedException"></exception>
</member> </member>
<member name="M:IRaCIS.Core.Application.TrialConfigService.SetTrialLinkExpirationTime(IRaCIS.Core.Application.Contracts.SetTrialLinkExpirationTimeDto)"> <member name="M:IRaCIS.Core.Application.TrialConfigService.SetTrialLinkExpirationTime(IRaCIS.Core.Application.Contracts.TrialLinkExpirationTimeDto)">
<summary> <summary>
设置项目链接过期时间 设置项目链接过期时间
</summary> </summary>
@ -20899,6 +20899,19 @@
<param name="inDto"></param> <param name="inDto"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:IRaCIS.Core.Application.TrialConfigService.GetLinkLinkExpirationTime(IRaCIS.Core.Application.Contracts.VerifyLinkExpirationTimeDto)">
<summary>
获取时间是否过期 过期返回true 没有过期返回false
</summary>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.TrialConfigService.GetLinkVerificationCodeIsEffective(IRaCIS.Core.Application.Contracts.GetLinkVerificationCodeIsEffectiveDto)">
<summary>
获取是否Code是否有效 有效返回true 无效返回false
</summary>
<param name="inDto"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.TrialConfigService.GetTrialConfirmCriterionList(IRaCIS.Core.Application.Contracts.GetTrialConfirmCriterionListInDto)"> <member name="M:IRaCIS.Core.Application.TrialConfigService.GetTrialConfirmCriterionList(IRaCIS.Core.Application.Contracts.GetTrialConfirmCriterionListInDto)">
<summary> <summary>
获取项目已经确认的标准 获取项目已经确认的标准

View File

@ -750,7 +750,14 @@ namespace IRaCIS.Core.Application.Contracts
public Guid TrialReadingCriterionId { get; set; } public Guid TrialReadingCriterionId { get; set; }
} }
public class TrialLinkExpirationTimeDto
{
public Guid TrialId { get; set; }
public int ExpirationDays { get; set; }
public string LinkVerificationCode { get; set; }
}
public class SetTrialLinkExpirationTimeDto public class SetTrialLinkExpirationTimeDto
{ {
public Guid TrialId { get; set; } public Guid TrialId { get; set; }
@ -759,6 +766,38 @@ namespace IRaCIS.Core.Application.Contracts
} }
public class VerifyLinkExpirationTimeDto
{
public Guid TrialId { get; set; }
}
public class VerifyLinkExpirationTimeOutDto
{
public DateTime? LinkExpirationTime { get; set; }
public bool isIsExpired
{
get
{
return this.LinkExpirationTime != null && this.LinkExpirationTime < DateTime.Now;
}
}
}
public class GetLinkVerificationCodeIsEffectiveDto
{
public Guid TrialId { get; set; }
public string LinkVerificationCode { get; set; }
}
public class GetLinkVerificationCodeIsEffectiveOutDto
{
public bool IsEffective { get; set; }
}
public class GetTrialReadingCriterionInfoOutDto public class GetTrialReadingCriterionInfoOutDto
{ {

View File

@ -85,11 +85,12 @@ namespace IRaCIS.Core.Application
/// <param name="inDto"></param> /// <param name="inDto"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public async Task<IResponseOutput> SetTrialLinkExpirationTime(SetTrialLinkExpirationTimeDto inDto) public async Task<IResponseOutput> SetTrialLinkExpirationTime(TrialLinkExpirationTimeDto inDto)
{ {
await _trialRepository.UpdatePartialFromQueryAsync(x => x.Id == inDto.TrialId, x => new Trial() await _trialRepository.UpdatePartialFromQueryAsync(x => x.Id == inDto.TrialId, x => new Trial()
{ {
LinkExpirationTime = inDto.LinkExpirationTime LinkExpirationTime = DateTime.Now.AddDays(inDto.ExpirationDays),
LinkVerificationCode=inDto.LinkVerificationCode,
}); });
await _trialRepository.SaveChangesAsync(); await _trialRepository.SaveChangesAsync();
@ -115,6 +116,37 @@ namespace IRaCIS.Core.Application
return result; return result;
} }
/// <summary>
/// 获取时间是否过期 过期返回true 没有过期返回false
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<VerifyLinkExpirationTimeOutDto> GetLinkLinkExpirationTime(VerifyLinkExpirationTimeDto inDto)
{
var time = await _trialRepository.Where(x => x.Id == inDto.TrialId).Select(x
=> new VerifyLinkExpirationTimeOutDto() {
LinkExpirationTime = x.LinkExpirationTime
} ).FirstNotNullAsync();
return time;
}
/// <summary>
/// 获取是否Code是否有效 有效返回true 无效返回false
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<GetLinkVerificationCodeIsEffectiveOutDto> GetLinkVerificationCodeIsEffective(GetLinkVerificationCodeIsEffectiveDto inDto)
{
var trial=await _trialRepository.Where(x => x.Id == inDto.TrialId).Select(x => new { x.LinkVerificationCode, x.ResearchProgramNo }).FirstNotNullAsync();
return new GetLinkVerificationCodeIsEffectiveOutDto()
{
IsEffective = inDto.LinkVerificationCode == (trial.LinkVerificationCode.IsNotNullOrEmpty() ? trial.ResearchProgramNo : trial.LinkVerificationCode)
};
}
/// <summary> /// <summary>
/// 获取项目已经确认的标准 /// 获取项目已经确认的标准
/// </summary> /// </summary>

View File

@ -338,6 +338,11 @@ public partial class Trial : BaseFullDeleteAuditEntity
/// </summary> /// </summary>
public DateTime? LinkExpirationTime { get; set; } public DateTime? LinkExpirationTime { get; set; }
/// <summary>
/// 中心调研链接验证码 (默认用项目方案号)
/// </summary>
public string LinkVerificationCode { get; set; } = string.Empty;
} }
public enum TrialDataStore public enum TrialDataStore

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,30 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace IRaCIS.Core.Infra.EFCore.Migrations
{
/// <inheritdoc />
public partial class LinkVerificationCode : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "LinkVerificationCode",
table: "Trial",
type: "nvarchar(400)",
maxLength: 400,
nullable: false,
defaultValue: "");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "LinkVerificationCode",
table: "Trial");
}
}
}

View File

@ -12711,6 +12711,11 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
b.Property<DateTime?>("LinkExpirationTime") b.Property<DateTime?>("LinkExpirationTime")
.HasColumnType("datetime2"); .HasColumnType("datetime2");
b.Property<string>("LinkVerificationCode")
.IsRequired()
.HasMaxLength(400)
.HasColumnType("nvarchar(400)");
b.Property<string>("MainResearchUnit") b.Property<string>("MainResearchUnit")
.IsRequired() .IsRequired()
.HasMaxLength(400) .HasMaxLength(400)