コード例 #1
0
        public async Task <IActionResult> GetConsumerQuestionnairesPageList([FromBody]
                                                                            GetConsumerQuestionnairesPageListRequestDto request)
        {
            var healthBiz = new HealthBiz();

            return(Success(await healthBiz.GetConsumerQuestionnairesPageList(request)));
        }
コード例 #2
0
        public async Task <IActionResult> GetConsumerQuestionnairesPageLisAsync(GetConsumerQuestionnairesPageListRequestDto requestDto)
        {
            var result = await new QuestionnaireResultBiz().GetConsumerQuestionnairesPageListAsync(requestDto);

            return(Success(result));
        }
コード例 #3
0
        /// <summary>
        /// 获取会员问卷列表
        /// </summary>
        /// <param name="requestDto"></param>
        /// <returns></returns>
        public async Task <GetConsumerQuestionnairesPageListResponseDto> GetConsumerQuestionnairesPageList(GetConsumerQuestionnairesPageListRequestDto requestDto)
        {
            var sqlWhere = string.Empty;

            if (!string.IsNullOrEmpty(requestDto.Name))
            {
                sqlWhere        = "AND q.questionnaire_name LIKE @Name";
                requestDto.Name = $"%{requestDto.Name}%";
            }

            var sqlSort = string.Empty;

            var sortCriterias = requestDto.SortCriterias;

            if (sortCriterias != null && sortCriterias.Count > 0)
            {
                var removeDuplicates = new List <string>();

                foreach (var fieldCriteria in sortCriterias)
                {
                    if (!fieldCriteria.Exist())
                    {
                        continue;
                    }

                    if (removeDuplicates.Contains(fieldCriteria.Field))
                    {
                        continue;
                    }

                    removeDuplicates.Add(fieldCriteria.Field);

                    if (fieldCriteria.IsFill())
                    {
                        //已填写
                        if (fieldCriteria.SortOrder == SortOrder.DESC)
                        {
                            sqlSort = $@"{sqlSort} qr.fill_status desc,qr.last_updated_date desc,";
                        }
                        else
                        {
                            sqlSort = $"{sqlSort} qr.fill_status asc, q.issuing_date desc,";
                        }
                    }
                    else if (fieldCriteria.IsCommented())
                    {
                        //已评论
                        if (fieldCriteria.SortOrder == SortOrder.DESC)
                        {
                            sqlSort = $@"{sqlSort} qr.commented desc, qr.fill_status desc, qr.last_updated_date desc,";
                        }
                        else
                        {
                            sqlSort = $@"{sqlSort} qr.fill_status desc,qr.last_updated_date desc,";
                        }
                    }
                }

                if (!string.IsNullOrEmpty(sqlSort))
                {
                    sqlSort = $"ORDER BY {sqlSort.TrimEnd(',')}";
                }
            }

            var sql = $@"SELECT 
                    qr.result_guid as ResultGuid,
                    q.questionnaire_guid as QuestionnaireGuid,
	                q.questionnaire_name as `Name`,
	                q.issuing_date as IssuingDate,
	                qr.fill_status as FillStatus,
	                qr.commented as CommentedStatus
                FROM  t_questionnaire_result as qr
	                INNER JOIN `t_questionnaire` as q ON qr.questionnaire_guid = q.questionnaire_guid
                WHERE qr.user_guid = @UserGuid {sqlWhere} ";

            if (!string.IsNullOrEmpty(sqlSort))
            {
                sql = $"{sql} {sqlSort}";
            }
            else
            {
                sql = $@"{sql} ORDER BY CASE 
                    WHEN  qr.fill_status = 0 THEN q.issuing_date
                    ELSE  qr.last_updated_date 
                END DESC";
            }

            return(await MySqlHelper.QueryByPageAsync <GetConsumerQuestionnairesPageListRequestDto,
                                                       GetConsumerQuestionnairesPageListResponseDto,
                                                       GetQuestionnaireItem>(sql, requestDto));
        }
コード例 #4
0
        /// <summary>
        /// 获取某一个问卷下消费者答题结果分页列表
        /// </summary>
        /// <param name="requestDto"></param>
        /// <returns></returns>
        public async Task <GetConsumerQuestionnairesPageListResponseDto> GetConsumerQuestionnairesPageListAsync(GetConsumerQuestionnairesPageListRequestDto requestDto)
        {
            var sqlWhere = string.Empty;

            if (requestDto.FillStatus != null)
            {
                sqlWhere = "and a.fill_status=@FillStatus";
            }
            if (requestDto.Commented != null)
            {
                sqlWhere = $"{sqlWhere} and a.commented=@Commented";
            }

            var sql    = $@"SELECT
                            a.result_guid,
	                        b.user_name,
	                        b.phone,
	                        CASE
		                        WHEN b.birthday IS NULL THEN
		                        NULL ELSE TIMESTAMPDIFF(
			                        YEAR,
			                        date( b.birthday ),
			                        date(
			                        NOW())) 
	                        END AS age ,
	                        a.fill_status,
	                        a.commented
                        FROM
	                        t_questionnaire_result a
	                        INNER JOIN t_utility_user b ON a.user_guid = b.user_guid 
                        WHERE
	                        a.questionnaire_guid = @QuestionnaireGuid {sqlWhere}
	                        order by a.fill_status desc ,a.commented"    ;
            var result = await MySqlHelper.QueryByPageAsync <GetConsumerQuestionnairesPageListRequestDto, GetConsumerQuestionnairesPageListResponseDto, GetConsumerQuestionnairesPageListItemDto>(sql, requestDto);

            return(result);
        }