public async Task <IActionResult> GetRecommendDoctorListAsync([FromBody] GetRecommendDoctorListRequestDto request) { var response = await new RecommendBiz().GetRecommendDoctorListAsync(request); var dictionaryBiz = new DictionaryBiz(); foreach (var item in response.CurrentPage) { if (!string.IsNullOrWhiteSpace(item.DocTitleGuid)) { item.DocTitle = dictionaryBiz.GetNameById(item.DocTitleGuid); } } return(Success(response)); }
/// <summary> /// 获取医生推荐列表 /// </summary> /// <param name="request"></param> /// <returns></returns> public async Task <GetRecommendDoctorListResponseDto> GetRecommendDoctorListAsync(GetRecommendDoctorListRequestDto request) { var sqlWhere = $@" 1=1 AND A.type = @type AND A.ENABLE = @enable and C.status='{DoctorModel.StatusEnum.Approved.ToString().ToLower()}'"; if (!string.IsNullOrWhiteSpace(request.RecommendGuid)) { sqlWhere = $"{sqlWhere} AND A.recommend_guid=@RecommendGuid"; } if (!string.IsNullOrWhiteSpace(request.HospitalGuid)) { sqlWhere = $"{sqlWhere} AND C.hospital_guid=@HospitalGuid"; } var sql = $@" SELECT A.type, A.recommend_guid AS RecommendGuid, B.owner_guid, B.detail_guid, C.hospital_guid AS HospitalGuid, C.doctor_guid AS DoctorGuid, C.work_city AS WorkCity, C.office_guid AS OfficeGuid, C.office_name AS OfficeName, C.hospital_name, C.adept_tags AS AdeptTags, C.title_guid AS DocTitleGuid, C.honor AS Honors, CONCAT( E.base_path, E.relative_path ) AS DoctorLogo, CONCAT( F.base_path, F.relative_path ) AS PortraitUrl , G.user_name FROM t_manager_recommend A INNER JOIN t_manager_recommend_detail B ON A.recommend_guid = B.recommend_guid INNER JOIN t_doctor C ON B.owner_guid = C.doctor_guid and C.`enable`=1 LEFT JOIN t_doctor_hospital D ON D.hospital_guid = C.hospital_guid LEFT JOIN t_utility_accessory E ON E.accessory_guid = D.logo_guid LEFT JOIN t_utility_accessory F ON F.accessory_guid = C.portrait_guid LEFT JOIN t_utility_user G ON G.user_guid = C.doctor_guid WHERE {sqlWhere} ORDER BY C.creation_date" ; var parameters = new { type = RecommendModel.TypeEnum.Doctor.ToString(), enable = true, request.HospitalGuid, request.RecommendGuid, }; var pageSql = $"{sql} limit {(request.PageIndex - 1) * request.PageSize},{request.PageSize}"; using (var conn = MySqlHelper.GetConnection()) { var result = await conn.QueryAsync <GetDoctorRecommendListItemDto>(pageSql, parameters); var count = await conn.QueryFirstOrDefaultAsync <int>($@"SELECT COUNT(1) AS count FROM({sql}) AS T", parameters); return(new GetRecommendDoctorListResponseDto { Total = count, CurrentPage = result }); } }