Esempio n. 1
0
        /// <summary>
        /// 会员列表
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <GetMemberPageResponseDto> GetMemberPageAsync(GetMemberPageRequestDto request)
        {
            var sqlWhere = $@"1 = 1 and enable=1";

            if (request.BeginDate != null)
            {
                request.BeginDate = request.BeginDate?.Date;
                sqlWhere          = $"{sqlWhere} AND creation_date > @BeginDate";
            }
            if (request.EndDate != null)
            {
                request.EndDate = request.EndDate?.AddDays(1).Date;
                sqlWhere        = $"{sqlWhere} AND creation_date < @EndDate";
            }
            if (!string.IsNullOrWhiteSpace(request.Name))
            {
                sqlWhere = $"{sqlWhere} AND (nick_name like @Name or user_name like @Name)";
            }
            if (!string.IsNullOrWhiteSpace(request.Phone))
            {
                sqlWhere = $"{sqlWhere} AND phone like @phone";
            }
            var sqlOrderBy = "last_buy_date desc";
            var sql        = $@"
SELECT * FROM(
    SELECT
	    a.*,
	    b.order_qty,
	    b.order_total_amount,
	    b.order_average,
	    b.last_buy_date,
        c.variation
    FROM
	    t_utility_user a
	    LEFT JOIN (
	        SELECT
		        user_guid,
		        count( 1 ) AS order_qty,
		        SUM( IFNULL( paid_amount, 0 ) ) AS order_total_amount,
		        AVG( paid_amount ) AS order_average,
		        MAX( creation_date ) AS last_buy_date 
	        FROM
		        t_mall_order 
	        WHERE
		        order_status IN ( 'Shipped', 'Received', 'Completed' ) and enable=1
	        GROUP BY
		        user_guid 
	    ) b ON a.user_guid = b.user_guid
        LEFT JOIN (SELECT user_guid,SUM(variation) variation FROM t_utility_score WHERE `enable`=1 AND user_type_guid='{UserType.Consumer}' GROUP BY user_guid ) c ON a.user_guid = c.user_guid
)___T
 WHERE
	{sqlWhere}
ORDER BY
	{sqlOrderBy}"    ;

            request.Name  = $"%{request.Name}%";
            request.Phone = $"%{request.Phone}%";
            return(await MySqlHelper.QueryByPageAsync <GetMemberPageRequestDto, GetMemberPageResponseDto, GetMemberPageItemDto>(sql, request));
        }
Esempio n. 2
0
        public async Task <IActionResult> GetMemberPageAsync([FromBody] GetMemberPageRequestDto request)
        {
            var response = await new UserBiz().GetMemberPageAsync(request);

            return(Success(response));
        }