From a73fe7682b50ec64ed889a78bd312588674787ae Mon Sep 17 00:00:00 2001 From: "DESKTOP-G961P6V\\Zhh" <839860190@qq.com> Date: Fri, 7 Jun 2024 15:29:58 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9F=AD=E4=BF=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Persons/PersonAppService.cs | 77 ++++++++++--------- .../Shentun.WebPeis.Application.csproj | 1 + .../WebPeisApplicationModule.cs | 11 ++- .../appsettings.json | 4 + 4 files changed, 55 insertions(+), 38 deletions(-) diff --git a/src/Shentun.WebPeis.Application/Persons/PersonAppService.cs b/src/Shentun.WebPeis.Application/Persons/PersonAppService.cs index bccf0ac..0f627ec 100644 --- a/src/Shentun.WebPeis.Application/Persons/PersonAppService.cs +++ b/src/Shentun.WebPeis.Application/Persons/PersonAppService.cs @@ -71,7 +71,7 @@ namespace Shentun.WebPeis.Persons IRepository patientRegisterRepository, IRepository patientRepository, CacheService cacheService, - //IHttpContextAccessor httpContextAccessor, + IHttpContextAccessor httpContextAccessor, IRepository customerOrgRepository) { _repository = repository; @@ -85,7 +85,7 @@ namespace Shentun.WebPeis.Persons _patientRegisterRepository = patientRegisterRepository; _patientRepository = patientRepository; _cacheService = cacheService; - //_httpContextAccessor = httpContextAccessor; + _httpContextAccessor = httpContextAccessor; _customerOrgRepository = customerOrgRepository; } @@ -130,11 +130,14 @@ namespace Shentun.WebPeis.Persons var dicStr = dic.Select(m => m.Key + "=" + m.Value).DefaultIfEmpty().Aggregate((m, n) => m + "&" + n); var token = await GetTokenAsync(dicStr); + var options = new DistributedCacheEntryOptions() + .SetAbsoluteExpiration(TimeSpan.FromDays(3)); var sessionKey = CacheKeys.SessionKey + Guid.NewGuid().ToString(); var sessionKeyValue = Guid.NewGuid().ToString(); - _cache.Set(sessionKey, sessionKeyValue); + _cache.Set(sessionKey, sessionKeyValue, options); token.SessionKey = sessionKey; token.SessionKeyValue = sessionKeyValue; + return token; } @@ -187,7 +190,7 @@ namespace Shentun.WebPeis.Persons { throw new UserFriendlyException("该身份证号已注册,但手机号码不一致"); } - if(!string.IsNullOrWhiteSpace(person.WechatOpenId)) + if (!string.IsNullOrWhiteSpace(person.WechatOpenId)) { throw new UserFriendlyException("该微信号已注册"); } @@ -240,7 +243,7 @@ namespace Shentun.WebPeis.Persons } - + /// /// 创建亲属 /// @@ -267,12 +270,12 @@ namespace Shentun.WebPeis.Persons throw new UserFriendlyException("无效的短信校验码或已过期"); } - var person = await _repository.FindAsync(o=>o.IdNo == input.IdNo); + var person = await _repository.FindAsync(o => o.IdNo == input.IdNo); if (person != null) { - var user = (await _identityUserRepository.GetQueryableAsync()).Where(o =>o.Id == person.PersonId && - o.PhoneNumber == input.MobileTelephone).FirstOrDefault(); - if(user == null) + var user = (await _identityUserRepository.GetQueryableAsync()).Where(o => o.Id == person.PersonId && + o.PhoneNumber == input.MobileTelephone).FirstOrDefault(); + if (user == null) { throw new UserFriendlyException("该身份证号已注册,但手机号码不一致"); } @@ -285,9 +288,9 @@ namespace Shentun.WebPeis.Persons await _personKinshipRepository.InsertAsync(personKinshipExist); return; } - - + + var userWithPerson = await _personManager.CreateAsync(entity, input.PersonName, input.Email, input.MobileTelephone); @@ -306,15 +309,15 @@ namespace Shentun.WebPeis.Persons (await _userManager.RemovePasswordAsync(userWithPerson.User)).CheckErrors(); (await _userManager.AddPasswordAsync(userWithPerson.User, Shentun.Utilities. Encrypt.RandomHelper.CreateRandom(Utilities.Enums.RandomType.NumAndChar, 10) + "0Cz*")).CheckErrors(); - - + + } - /// - /// 获取体检次数列表 - /// - /// - /// + /// + /// 获取体检次数列表 + /// + /// + /// [HttpPost("api/app/Person/GetMedicalTimesListByPersonId")] public async Task> GetMedicalTimesListByPersonIdAsync(PersonIdInputDto input) { @@ -323,11 +326,11 @@ namespace Shentun.WebPeis.Persons join person in await _repository.GetQueryableAsync() on user.Id equals person.PersonId join patient in await _patientRepository.GetQueryableAsync() - on new { idNo = person.IdNo ,phone = user.PhoneNumber} equals new { idNo = patient.IdNo, phone = patient.MobileTelephone } + on new { idNo = person.IdNo, phone = user.PhoneNumber } equals new { idNo = patient.IdNo, phone = patient.MobileTelephone } join patientRegister in await _patientRegisterRepository.GetQueryableAsync() on patient.PatientId equals patientRegister.PatientId - where user.Id == input.PersonId && - ( patientRegister.CompleteFlag == PatientRegisterCompleteFlag.Audit) + where user.Id == input.PersonId && + (patientRegister.CompleteFlag == PatientRegisterCompleteFlag.Audit) orderby patientRegister.MedicalStartDate select new PersonMedicalTimesDto() { @@ -365,10 +368,10 @@ namespace Shentun.WebPeis.Persons MaritalStatusName = _cacheService.GetMaritalStatusNameAsync(person.MaritalStatusId).Result, IdNo = person.IdNo, MobileTelephone = user.PhoneNumber - + }).ToList(); - for(var i = 0; io.DisplayOrder).ToList(); + personList = personList.OrderBy(o => o.DisplayOrder).ToList(); return personList; } /// @@ -388,19 +391,19 @@ namespace Shentun.WebPeis.Persons [HttpPost("api/app/Person/GetMedicalReportByPatientRegisterId")] public async Task GetMedicalReportByPatientRegisterIdAsync(PatientRegisterIdInputDto input) { - var entity = await _patientRegisterRepository.GetAsync(o=>o.PatientRegisterId == input.PatientRegisterId); - if(string.IsNullOrWhiteSpace(entity.ReportFile)) + var entity = await _patientRegisterRepository.GetAsync(o => o.PatientRegisterId == input.PatientRegisterId); + if (string.IsNullOrWhiteSpace(entity.ReportFile)) { throw new UserFriendlyException("没有报告单"); } - var Host = $"{_httpContextAccessor.HttpContext.Request.Scheme}://{_httpContextAccessor.HttpContext.Request.Host.Host}:{ _httpContextAccessor.HttpContext.Request.Host.Port}"; + var Host = $"{_httpContextAccessor.HttpContext.Request.Scheme}://{_httpContextAccessor.HttpContext.Request.Host.Host}:{_httpContextAccessor.HttpContext.Request.Host.Port}"; var returnValue = new MedicalReportDto() { FilePath = entity.ReportFile, FileBase64 = Shentun.Utilities.FileHelper.ToBase64(Host + entity.ReportFile) - }; + }; return returnValue; - + } /// /// 获取校验码 @@ -412,7 +415,7 @@ namespace Shentun.WebPeis.Persons [HttpPost("api/app/Person/GetSmsVerifyCode")] public async Task GetSmsVerifyCodeAsync(SmsVerifyCodeInputDto input) { - if(input == null) + if (input == null) { throw new UserFriendlyException("input不能为空"); } @@ -463,7 +466,7 @@ namespace Shentun.WebPeis.Persons if (person != null) { var user = (await _identityUserRepository.GetQueryableAsync()).Where(o => o.Id == person.PersonId && - o.PhoneNumber == input.MobileTelephone).FirstOrDefault(); + o.PhoneNumber == input.MobileTelephone).FirstOrDefault(); if (user == null) { throw new UserFriendlyException("该身份证号已注册,但手机号码不一致"); @@ -517,7 +520,7 @@ namespace Shentun.WebPeis.Persons OpenId = wechatUserDto.OpenId }; var options = new DistributedCacheEntryOptions() - .SetAbsoluteExpiration(TimeSpan.FromMinutes(720)); + .SetAbsoluteExpiration(TimeSpan.FromDays(3)); _cache.Set(CacheKeys.OpenIdKey + wechatUserDto.OpenId, wechatUserDto.OpenId, options); @@ -557,7 +560,7 @@ namespace Shentun.WebPeis.Persons public async Task SendVerifySms(CreateSmsTaskDto createSmsTaskDto) { - if(createSmsTaskDto == null) + if (createSmsTaskDto == null) { throw new UserFriendlyException("createSmsTaskDto参数不能为空"); } @@ -571,20 +574,20 @@ namespace Shentun.WebPeis.Persons throw new Exception("解析校验短信有效时间错误"); } - createSmsTaskDto.Content = message+"|" + verifySmsValidTime.ToString(); + createSmsTaskDto.Content = message + "|" + verifySmsValidTime.ToString(); //发送短信 createSmsTaskDto.TaskCycleType = '0'; await SmsClientHelper.CreateVerifySmsTask(createSmsTaskDto); //存储短信校验码 var options = new DistributedCacheEntryOptions() .SetAbsoluteExpiration(TimeSpan.FromMinutes(verifySmsValidTime)); - var smsVerifyCodeKey = CacheKeys.SmsKey + createSmsTaskDto.MobileTelephone + Guid.NewGuid().ToString(); + var smsVerifyCodeKey = CacheKeys.SmsKey + createSmsTaskDto.MobileTelephone + Guid.NewGuid().ToString(); _cache.Set(smsVerifyCodeKey, message, options); return smsVerifyCodeKey; } - - + + } } diff --git a/src/Shentun.WebPeis.Application/Shentun.WebPeis.Application.csproj b/src/Shentun.WebPeis.Application/Shentun.WebPeis.Application.csproj index e3fff53..dfc8f21 100644 --- a/src/Shentun.WebPeis.Application/Shentun.WebPeis.Application.csproj +++ b/src/Shentun.WebPeis.Application/Shentun.WebPeis.Application.csproj @@ -21,6 +21,7 @@ + diff --git a/src/Shentun.WebPeis.Application/WebPeisApplicationModule.cs b/src/Shentun.WebPeis.Application/WebPeisApplicationModule.cs index 2495400..dcf1c75 100644 --- a/src/Shentun.WebPeis.Application/WebPeisApplicationModule.cs +++ b/src/Shentun.WebPeis.Application/WebPeisApplicationModule.cs @@ -3,6 +3,8 @@ using Shentun.Peis.OrganizationUnits; using Shentun.WebPeis.Users; using Volo.Abp.Account; using Volo.Abp.AutoMapper; +using Volo.Abp.Caching; +using Volo.Abp.Caching.StackExchangeRedis; using Volo.Abp.FeatureManagement; using Volo.Abp.Identity; using Volo.Abp.Modularity; @@ -20,7 +22,8 @@ namespace Shentun.WebPeis; typeof(AbpPermissionManagementApplicationModule), typeof(AbpTenantManagementApplicationModule), typeof(AbpFeatureManagementApplicationModule), - typeof(AbpSettingManagementApplicationModule) + typeof(AbpSettingManagementApplicationModule), + typeof(AbpCachingStackExchangeRedisModule) )] public class WebPeisApplicationModule : AbpModule { @@ -32,5 +35,11 @@ public class WebPeisApplicationModule : AbpModule }); context.Services.AddTransient(); context.Services.AddTransient(); + + Configure(options => + { + options.KeyPrefix = "WebPeis"; + options.HideErrors = false; + }); } } diff --git a/src/Shentun.WebPeis.HttpApi.Host/appsettings.json b/src/Shentun.WebPeis.HttpApi.Host/appsettings.json index 85ebf2d..05e2e35 100644 --- a/src/Shentun.WebPeis.HttpApi.Host/appsettings.json +++ b/src/Shentun.WebPeis.HttpApi.Host/appsettings.json @@ -55,5 +55,9 @@ "VerifySmsTypeId": "3a12e09d-438a-1d08-d4f0-712aef13708d", "VerifySmsValidTime": "1", "SmsAppId": "3a12e09f-8534-ec43-8c46-e61af0964ab6" + }, + "Redis": { + "IsEnabled": "true", + "Configuration": "127.0.0.1" } }