修改激活逻辑
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
52dc6e05d4
commit
e43dce220c
|
@ -30,7 +30,8 @@ public class TrialGlobalLimitAttribute : Attribute
|
||||||
|
|
||||||
public class TrialGlobalLimitEndpointFilter(IFusionCache _fusionCache, IUserInfo _userInfo, IRepository<Trial> _trialRepository,
|
public class TrialGlobalLimitEndpointFilter(IFusionCache _fusionCache, IUserInfo _userInfo, IRepository<Trial> _trialRepository,
|
||||||
IOptionsMonitor<ServiceVerifyConfigOption> _basicSystemConfigConfig,
|
IOptionsMonitor<ServiceVerifyConfigOption> _basicSystemConfigConfig,
|
||||||
IOptionsMonitor<SystemHospitalOption> _hospitalOption, IStringLocalizer _localizer) : IEndpointFilter
|
IRepository<HIRHospital> _hirHospitalRepository,
|
||||||
|
IStringLocalizer _localizer) : IEndpointFilter
|
||||||
|
|
||||||
{
|
{
|
||||||
public async ValueTask<object?> InvokeAsync(EndpointFilterInvocationContext context, EndpointFilterDelegate next)
|
public async ValueTask<object?> InvokeAsync(EndpointFilterInvocationContext context, EndpointFilterDelegate next)
|
||||||
|
@ -158,6 +159,9 @@ public class TrialGlobalLimitEndpointFilter(IFusionCache _fusionCache, IUserInfo
|
||||||
if (!string.IsNullOrWhiteSpace(trialIdStr))
|
if (!string.IsNullOrWhiteSpace(trialIdStr))
|
||||||
{
|
{
|
||||||
var trialInfo = await _fusionCache.GetOrSetAsync(CacheKeys.Trial(trialIdStr), _ => CacheHelper.GetTrialStatusAsync(Guid.Parse(trialIdStr), _trialRepository), TimeSpan.FromDays(7));
|
var trialInfo = await _fusionCache.GetOrSetAsync(CacheKeys.Trial(trialIdStr), _ => CacheHelper.GetTrialStatusAsync(Guid.Parse(trialIdStr), _trialRepository), TimeSpan.FromDays(7));
|
||||||
|
|
||||||
|
var hospitalInfo = await _fusionCache.GetOrSetAsync(CacheKeys.Hospital, _ => CacheHelper.GetHospitalCode(_hirHospitalRepository), TimeSpan.FromDays(7));
|
||||||
|
|
||||||
var trialStatusStr = string.Empty;
|
var trialStatusStr = string.Empty;
|
||||||
|
|
||||||
|
|
||||||
|
@ -187,7 +191,7 @@ public class TrialGlobalLimitEndpointFilter(IFusionCache _fusionCache, IUserInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var hospitalCode = _hospitalOption.CurrentValue.HospitalCode;
|
var hospitalCode = hospitalInfo.HospitalCode;
|
||||||
var authInfo = JsonConvert.DeserializeObject<TrialAuthorizationInfo>(decodedText);
|
var authInfo = JsonConvert.DeserializeObject<TrialAuthorizationInfo>(decodedText);
|
||||||
|
|
||||||
if (authInfo != null)
|
if (authInfo != null)
|
||||||
|
|
|
@ -44,7 +44,7 @@ namespace IRaCIS.Core.Application
|
||||||
IRepository<TrialStateChange> _trialStateChangeRepository,
|
IRepository<TrialStateChange> _trialStateChangeRepository,
|
||||||
IRepository<ReadingTableQuestionTrial> _readingTableQuestionTrialRepository,
|
IRepository<ReadingTableQuestionTrial> _readingTableQuestionTrialRepository,
|
||||||
IOptionsMonitor<ServiceVerifyConfigOption> _basicSystemConfigConfig,
|
IOptionsMonitor<ServiceVerifyConfigOption> _basicSystemConfigConfig,
|
||||||
IOptionsMonitor<SystemHospitalOption> _hospitalOption,
|
IRepository<HIRHospital> _hIRHospitalRepository,
|
||||||
IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer, IFusionCache _fusionCache) : BaseService, ITrialConfigService
|
IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer, IFusionCache _fusionCache) : BaseService, ITrialConfigService
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -1243,30 +1243,38 @@ namespace IRaCIS.Core.Application
|
||||||
|
|
||||||
#region 自动激活一个月
|
#region 自动激活一个月
|
||||||
|
|
||||||
var hospitalCode = _hospitalOption.CurrentValue.HospitalCode;
|
if (trial.AuthorizationDate == null && trial.AuthorizationEncrypt.IsNotNullOrEmpty())
|
||||||
var hospitalName = _hospitalOption.CurrentValue.HospitalName;
|
|
||||||
var deadLineDate = DateTime.Now.Date.AddMonths(1).AddDays(1).AddSeconds(-1);
|
|
||||||
|
|
||||||
var authorizationInfo = new TrialAuthorizationInfo()
|
|
||||||
{
|
{
|
||||||
ActiveTime = DateTime.Now,
|
|
||||||
PurchaseDuration = 1,
|
|
||||||
CriterionTypeList = trial.CriterionTypeList,
|
|
||||||
HospitalCode = hospitalCode,
|
|
||||||
HospitalName = hospitalName,
|
|
||||||
CreateUserId = trial.CreateUserId,
|
|
||||||
TrialId = trial.Id,
|
|
||||||
TrialCode = trial.TrialCode,
|
|
||||||
AuthorizationDeadLineDate = deadLineDate,
|
|
||||||
ActiveDeadLineDate = DateTime.Now.Date.AddDays(8).AddSeconds(-1)
|
|
||||||
};
|
|
||||||
|
|
||||||
var newActivationCode = AesEncryption.Encrypt($"{JsonConvert.SerializeObject(authorizationInfo)}", _basicSystemConfigConfig.CurrentValue.AESKey, "Trial_AuthorizationEncrypt");
|
var query = _hIRHospitalRepository.Where(t => t.IsDefault == true).ProjectTo<HIRHospitalView>(_mapper.ConfigurationProvider);
|
||||||
|
|
||||||
trial.AuthorizationEncrypt = newActivationCode;
|
var hospitalInfo = await query.FirstNotNullAsync();
|
||||||
trial.AuthorizationDate = deadLineDate;
|
|
||||||
|
|
||||||
//await _trialRepository.BatchUpdateNoTrackingAsync(t => t.Id == trialId, u => new Trial() { AuthorizationEncrypt = newActivationCode, AuthorizationDate = deadLineDate });
|
var hospitalCode = hospitalInfo.HospitalCode;
|
||||||
|
var hospitalName = hospitalInfo.HospitalName;
|
||||||
|
var deadLineDate = DateTime.Now.Date.AddMonths(1).AddDays(1).AddSeconds(-1);
|
||||||
|
|
||||||
|
var authorizationInfo = new TrialAuthorizationInfo()
|
||||||
|
{
|
||||||
|
ActiveTime = DateTime.Now,
|
||||||
|
PurchaseDuration = 1,
|
||||||
|
CriterionTypeList = trial.CriterionTypeList,
|
||||||
|
HospitalCode = hospitalCode,
|
||||||
|
HospitalName = hospitalName,
|
||||||
|
CreateUserId = trial.CreateUserId,
|
||||||
|
TrialId = trial.Id,
|
||||||
|
TrialCode = trial.TrialCode,
|
||||||
|
AuthorizationDeadLineDate = deadLineDate,
|
||||||
|
ActiveDeadLineDate = DateTime.Now.Date.AddDays(8).AddSeconds(-1)
|
||||||
|
};
|
||||||
|
|
||||||
|
var newActivationCode = AesEncryption.Encrypt($"{JsonConvert.SerializeObject(authorizationInfo)}", _basicSystemConfigConfig.CurrentValue.AESKey, "Trial_AuthorizationEncrypt");
|
||||||
|
|
||||||
|
trial.AuthorizationEncrypt = newActivationCode;
|
||||||
|
trial.AuthorizationDate = deadLineDate;
|
||||||
|
|
||||||
|
//await _trialRepository.BatchUpdateNoTrackingAsync(t => t.Id == trialId, u => new Trial() { AuthorizationEncrypt = newActivationCode, AuthorizationDate = deadLineDate });
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue