Пример #1
0
        /// <summary>
        /// 科室分页列表
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <GetOfficeListPagingResponseDto> GetOfficeListPaging(GetOfficeListPagingRequestDto request)
        {
            var sqlWerre = $@" 1=1 AND A.ENABLE = @enable";

            if (!string.IsNullOrWhiteSpace(request.OfficeName))
            {
                sqlWerre = $"{sqlWerre} AND A.office_name like @OfficeName";
            }
            if (!string.IsNullOrWhiteSpace(request.HospitalName))
            {
                sqlWerre = $"{sqlWerre} AND C.hospital_name like @HospitalName";
            }
            var sql        = $@"
SELECT
	A.*,
	B.accessory_guid,
	B.base_path,
	B.relative_path 
FROM
	t_doctor_office A
	LEFT JOIN t_utility_accessory B ON A.picture_guid = B.accessory_guid 
WHERE
	{sqlWerre}
ORDER BY
	A.creation_date DESC"    ;
            var parameters = new
            {
                enable       = true,
                HospitalName = $"%{request.HospitalName}%",
                OfficeName   = $"%{request.OfficeName}%",
            };
            var pageSql = $"{sql} limit {(request.PageIndex - 1) * request.PageSize},{request.PageSize}";

            using (var conn = MySqlHelper.GetConnection())
            {
                var result = await conn.QueryAsync <GetOfficeListPagingItemDto, AccessoryModel, GetOfficeListPagingItemDto>(pageSql, (a, b) =>
                {
                    a.PictureUrl = $"{b?.BasePath}{b?.RelativePath}";
                    return(a);
                }, new { enable = true }, splitOn : "accessory_guid");

                var count = await conn.QueryFirstOrDefaultAsync <int>($@"SELECT COUNT(1) AS count FROM({sql}) AS T", parameters);

                return(new GetOfficeListPagingResponseDto
                {
                    Total = count,
                    CurrentPage = result
                });
            }
        }
        public async Task <IActionResult> GetOfficeListPaging([FromBody] GetOfficeListPagingRequestDto request)
        {
            var response = await new DoctorOfficeBiz().GetOfficeListPaging(request);

            return(Success(response));
        }