|
|
|
@ -17,21 +17,33 @@ namespace Shentun.WebPeis.DiseaseRiskLevels |
|
|
|
/// </summary>
|
|
|
|
[ApiExplorerSettings(GroupName = "Work")] |
|
|
|
[Authorize] |
|
|
|
public class DiseaseRiskLevelAppService:ApplicationService |
|
|
|
public class DiseaseRiskLevelAppService : ApplicationService |
|
|
|
{ |
|
|
|
|
|
|
|
private readonly IRepository<DiseaseRiskLevel> _diseaseRiskLevelRepository; |
|
|
|
private readonly IRepository<DiseaseRiskLevelAnswer> _diseaseRiskLevelAnswerRepository; |
|
|
|
private readonly IRepository<DiseaseRiskLevelAsbitem> _diseaseRiskLevelAsbitemRepository; |
|
|
|
private readonly IRepository<QuestionAnswer> _questionAnswerRepository; |
|
|
|
private readonly IRepository<Asbitem> _asbitemRepository; |
|
|
|
private readonly DiseaseRiskLevelManager _diseaseRiskLevelManager; |
|
|
|
private readonly CacheService _cacheService; |
|
|
|
|
|
|
|
public DiseaseRiskLevelAppService( |
|
|
|
IRepository<DiseaseRiskLevel> diseaseRiskLevelRepository, |
|
|
|
DiseaseRiskLevelManager diseaseRiskLevelManager, |
|
|
|
CacheService cacheService) |
|
|
|
CacheService cacheService, |
|
|
|
IRepository<DiseaseRiskLevelAnswer> diseaseRiskLevelAnswerRepository, |
|
|
|
IRepository<QuestionAnswer> questionAnswerRepository, |
|
|
|
IRepository<DiseaseRiskLevelAsbitem> diseaseRiskLevelAsbitemRepository, |
|
|
|
IRepository<Asbitem> asbitemRepository) |
|
|
|
{ |
|
|
|
_diseaseRiskLevelRepository = diseaseRiskLevelRepository; |
|
|
|
_diseaseRiskLevelManager = diseaseRiskLevelManager; |
|
|
|
_cacheService = cacheService; |
|
|
|
_diseaseRiskLevelAnswerRepository = diseaseRiskLevelAnswerRepository; |
|
|
|
_questionAnswerRepository = questionAnswerRepository; |
|
|
|
_diseaseRiskLevelAsbitemRepository = diseaseRiskLevelAsbitemRepository; |
|
|
|
_asbitemRepository = asbitemRepository; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -70,6 +82,9 @@ namespace Shentun.WebPeis.DiseaseRiskLevels |
|
|
|
return dto; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 删除
|
|
|
|
/// </summary>
|
|
|
|
@ -81,6 +96,121 @@ namespace Shentun.WebPeis.DiseaseRiskLevels |
|
|
|
await _diseaseRiskLevelManager.CheckAndDeleteAsync(input.DiseaseRiskLevelId); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 设置疾病风险级别对应的答案
|
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpPost("api/app/DiseaseRiskLevel/CreateDiseaseRiskLevelAnswer")] |
|
|
|
public async Task CreateDiseaseRiskLevelAnswerAsync(CreateDiseaseRiskLevelAnswerDto input) |
|
|
|
{ |
|
|
|
await _diseaseRiskLevelAnswerRepository.DeleteAsync(d => d.DiseaseRiskLevelId == input.DiseaseRiskLevelId); |
|
|
|
if (input.QuestionAnswerIds.Any()) |
|
|
|
{ |
|
|
|
foreach (var questionAnswerId in input.QuestionAnswerIds) |
|
|
|
{ |
|
|
|
var isQuestionAnswer = await _diseaseRiskLevelAnswerRepository.FirstOrDefaultAsync(f => f.QuestionAnswerId == questionAnswerId && f.DiseaseRiskLevelId == input.DiseaseRiskLevelId); |
|
|
|
if (isQuestionAnswer == null) |
|
|
|
{ |
|
|
|
await _diseaseRiskLevelAnswerRepository.InsertAsync(new DiseaseRiskLevelAnswer |
|
|
|
{ |
|
|
|
DiseaseRiskLevelId = input.DiseaseRiskLevelId, |
|
|
|
QuestionAnswerId = questionAnswerId |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 根据疾病风险级别ID获取对应的答案
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpPost("api/app/DiseaseRiskLevel/GetDiseaseRiskLevelAnswerByDiseaseRiskLevelId")] |
|
|
|
public async Task<List<DiseaseRiskLevelAnswerDto>> GetDiseaseRiskLevelAnswerByDiseaseRiskLevelIdAsync(DiseaseRiskLevelIdInputDto input) |
|
|
|
{ |
|
|
|
var query = from diseaseRiskLevelAnswer in await _diseaseRiskLevelAnswerRepository.GetQueryableAsync() |
|
|
|
join questionAnswer in await _questionAnswerRepository.GetQueryableAsync() |
|
|
|
on diseaseRiskLevelAnswer.QuestionAnswerId equals questionAnswer.QuestionAnswerId |
|
|
|
where diseaseRiskLevelAnswer.DiseaseRiskLevelId == input.DiseaseRiskLevelId |
|
|
|
orderby questionAnswer.DisplayOrder ascending |
|
|
|
select new |
|
|
|
{ |
|
|
|
diseaseRiskLevelAnswer.DiseaseRiskLevelId, |
|
|
|
questionAnswer.QuestionAnswerId, |
|
|
|
questionAnswer.QuestionAnswerName |
|
|
|
}; |
|
|
|
|
|
|
|
var entListDto = query.Select(s => new DiseaseRiskLevelAnswerDto |
|
|
|
{ |
|
|
|
DiseaseRiskLevelId = s.DiseaseRiskLevelId, |
|
|
|
QuestionAnswerId = s.QuestionAnswerId, |
|
|
|
QuestionAnswerName = s.QuestionAnswerName |
|
|
|
}).ToList(); |
|
|
|
|
|
|
|
return entListDto; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 设置疾病风险级别推荐的组合项目
|
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpPost("api/app/DiseaseRiskLevel/CreateDiseaseRiskLevelAsbitem")] |
|
|
|
public async Task CreateDiseaseRiskLevelAsbitemAsync(CreateDiseaseRiskLevelAsbitemDto input) |
|
|
|
{ |
|
|
|
await _diseaseRiskLevelAsbitemRepository.DeleteAsync(d => d.DiseaseRiskLevelId == input.DiseaseRiskLevelId); |
|
|
|
if (input.Details.Any()) |
|
|
|
{ |
|
|
|
foreach (var item in input.Details) |
|
|
|
{ |
|
|
|
var isAsbitem = await _diseaseRiskLevelAsbitemRepository.FirstOrDefaultAsync(f => f.AsbitemId == item.AsbitemId && f.DiseaseRiskLevelId == input.DiseaseRiskLevelId); |
|
|
|
if (isAsbitem == null) |
|
|
|
{ |
|
|
|
await _diseaseRiskLevelAsbitemRepository.InsertAsync(new DiseaseRiskLevelAsbitem |
|
|
|
{ |
|
|
|
DiseaseRiskLevelId = input.DiseaseRiskLevelId, |
|
|
|
AsbitemId = item.AsbitemId, |
|
|
|
AsbitemRecommendLevelId = item.AsbitemRecommendLevelId |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 根据疾病风险级别ID获取推荐的组合项目
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpPost("api/app/DiseaseRiskLevel/GetDiseaseRiskLevelAsbitemByDiseaseRiskLevelId")] |
|
|
|
public async Task<List<DiseaseRiskLevelAsbitemDto>> GetDiseaseRiskLevelAsbitemByDiseaseRiskLevelIdAsync(DiseaseRiskLevelIdInputDto input) |
|
|
|
{ |
|
|
|
var query = from diseaseRiskLevelAsbitem in await _diseaseRiskLevelAsbitemRepository.GetQueryableAsync() |
|
|
|
join asbitem in await _asbitemRepository.GetQueryableAsync() |
|
|
|
on diseaseRiskLevelAsbitem.AsbitemId equals asbitem.AsbitemId |
|
|
|
where diseaseRiskLevelAsbitem.DiseaseRiskLevelId == input.DiseaseRiskLevelId |
|
|
|
orderby asbitem.DisplayOrder ascending |
|
|
|
select new |
|
|
|
{ |
|
|
|
diseaseRiskLevelAsbitem.DiseaseRiskLevelId, |
|
|
|
asbitem.AsbitemId, |
|
|
|
asbitem.AsbitemName |
|
|
|
}; |
|
|
|
|
|
|
|
var entListDto = query.Select(s => new DiseaseRiskLevelAsbitemDto |
|
|
|
{ |
|
|
|
DiseaseRiskLevelId = s.DiseaseRiskLevelId, |
|
|
|
AsbitemId = s.AsbitemId, |
|
|
|
AsbitemName = s.AsbitemName |
|
|
|
}).ToList(); |
|
|
|
|
|
|
|
return entListDto; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 修改排序 置顶,置底
|
|
|
|
/// </summary>
|
|
|
|
|