예제 #1
0
        public async Task <IActionResult> GetChangeHealthManagers([FromQuery]
                                                                  GetChangeHealthManagerListRequestDto request)
        {
            var managerBiz = new HealthManagerBiz();
            var response   = await managerBiz.GetChangeHealthManagers(request);

            return(Success(response));
        }
예제 #2
0
        /// <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);
        }