public async Task <IActionResult> GetChangeHealthManagers([FromQuery] GetChangeHealthManagerListRequestDto request) { var managerBiz = new HealthManagerBiz(); var response = await managerBiz.GetChangeHealthManagers(request); return(Success(response)); }
/// <summary> /// 获取更换健康管理师分页列表 /// </summary> /// <param name="requestDto"></param> /// <returns></returns> public async Task <GetMealAccountListResponseDto <GetChangeHealthManagerItem> > GetChangeHealthManagers(GetChangeHealthManagerListRequestDto requestDto) { var parameters = new DynamicParameters(); var response = new GetMealAccountListResponseDto <GetChangeHealthManagerItem>(); var consumerManagerGuid = await GetConsumerHealthManager(requestDto.ConsumerGuid); var sql = $@"select m.manager_guid, m.user_name, m.gender,m.phone, concat(p.base_path, p.relative_path) as portrait_img, m.creation_date as registration_time from t_health_manager as m left join t_utility_accessory AS p on m.portrait_guid = p.accessory_guid where m.`enable` = 1"; if (!string.IsNullOrEmpty(requestDto.KeyWord)) { sql = $"{sql} and (m.user_name like '%{requestDto.KeyWord}%' or m.phone like '%{requestDto.KeyWord}%')"; } if (requestDto.RegistrationTime.HasValue && requestDto.EndTime.HasValue) { requestDto.EndTime = requestDto.EndTime.Value.AddDays(1); sql = $"{sql} and m.creation_date >= @RegistrationTime and m.creation_date < @EndTime"; parameters.Add("@RegistrationTime", requestDto.RegistrationTime); parameters.Add("@EndTime", requestDto.EndTime); } sql = $"{sql} order by m.creation_date desc"; var items = (List <GetChangeHealthManagerItem>)null; using (var conn = MySqlHelper.GetConnection()) { items = (await conn.QueryAsync <GetChangeHealthManagerItem>(sql, parameters)).ToList(); } if (items is null || items.Count <= 0) { return(response); } if (!string.IsNullOrEmpty(consumerManagerGuid)) { #region 若在第一页则将指定会员健康管理师移至首位 var consumerIndex = items.FindIndex(d => d.ManagerGuid.Equals(consumerManagerGuid)); if (consumerIndex > -1) { var item = items[consumerIndex]; items.RemoveAt(consumerIndex); item.Default = true; items.Insert(0, item); } #endregion } response.Total = items.Count; items = items.Skip((requestDto.PageIndex - 1) * requestDto.PageSize) .Take(requestDto.PageSize).ToList(); response.CurrentPage = items; return(response); }