コード例 #1
0
        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));
        }
コード例 #2
0
        /// <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
                });
            }
        }