コード例 #1
0
        public async Task <IActionResult> GetMerchantOrderPageListAsync([FromQuery] GetMerchantOrderPageListRequestDto requestDto)
        {
            var orderBiz  = new OrderBiz();
            var orderList = await orderBiz.GetMerchantOrderPageListAsync(requestDto);

            if (!orderList.CurrentPage.Any())
            {
                return(Success(orderList));
            }
            var orderIds = orderList.CurrentPage.Select(a => a.OrderGuid).ToList();
            var products = await orderBiz.GetOrderProductListV2Async(orderIds);

            var productIds = products.Select(a => a.ProductGuid).Distinct().ToList();
            var projects   = await orderBiz.GetOrderProductProjectsAsync(productIds);

            foreach (var order in orderList.CurrentPage)
            {
                order.Products = products.Where(a => a.OrderGuid == order.OrderGuid).OrderBy(a => a.ProductName).ToList();
                foreach (var product in order.Products)
                {
                    product.Projects = projects.Where(a => a.ProductGuid == product.ProductGuid).OrderBy(a => a.ProjectName).ToList();
                }
            }
            return(Success(orderList));
        }
コード例 #2
0
        /// <summary>
        /// 查询商户订单分页列表
        /// </summary>
        public async Task <GetMerchantOrderPageListResponseDto> GetMerchantOrderPageListAsync(GetMerchantOrderPageListRequestDto requestDto)
        {
            var sqlWhere = string.Empty;

            requestDto.StartDate = requestDto.StartDate.Date;
            requestDto.EndDate   = requestDto.EndDate.AddDays(1).Date;
            if (!string.IsNullOrWhiteSpace(requestDto.Keyword))
            {
                requestDto.Keyword = $"%{requestDto.Keyword}%";
                sqlWhere           = $"{sqlWhere} and (b.phone like @Keyword or b.nick_name like @Keyword)";
            }
            if (!string.IsNullOrWhiteSpace(requestDto.OrderNo))
            {
                sqlWhere = $"{sqlWhere} and a.order_no=@OrderNo";
            }
            //待线下支付
            if (requestDto.OrderStatus == OrderStatusConditionEnum.OffLinePay)
            {
                sqlWhere = $"{sqlWhere} and a.order_status='{OrderStatusConditionEnum.Obligation.ToString()}' and a.pay_type='{PayTypeEnum.OffLinePay.ToString()}'";
            }
            else if (requestDto.OrderStatus == OrderStatusConditionEnum.Obligation)
            {
                sqlWhere = $"{sqlWhere} and a.order_status='{OrderStatusConditionEnum.Obligation.ToString()}' and a.pay_type<>'{PayTypeEnum.OffLinePay.ToString()}'";
            }
            else if (requestDto.OrderStatus == OrderStatusConditionEnum.Shipped)//待收货和待发货订单的状态值实际都为“待收货”,区别是待收货是填了物流单号,待发货没填
            {
                sqlWhere = $"{sqlWhere} and a.order_status='{OrderStatusConditionEnum.Received.ToString()}' and a.express_no is null";
            }
            else if (requestDto.OrderStatus == OrderStatusConditionEnum.Received)//待收货和待发货订单的状态值实际都为“待收货”,区别是待收货是填了物流单号,待发货没填
            {
                sqlWhere = $"{sqlWhere} and a.order_status='{OrderStatusConditionEnum.Received.ToString()}' and a.express_no is not null";
            }
            else if (requestDto.OrderStatus != OrderStatusConditionEnum.All)
            {
                sqlWhere = $"{sqlWhere} and a.order_status='{requestDto.OrderStatus.ToString()}'";
            }
            var sql = $@"SELECT
	                        a.order_guid,
	                        a.order_no,
	                        b.nick_name,
	                        b.phone,
	                        a.paid_amount,
	                        a.creation_date,
	                        a.order_status ,
	                        a.payment_date,
	                        a.pay_type,
	                        a.payables_amount,
                            a.freight,
	                        a.discount_amout,
	                        a.order_receiver,
	                        a.order_phone,
	                        a.express_company,
	                        a.express_no,
	                        a.order_address
                        FROM
	                        t_mall_order a
	                        INNER JOIN t_utility_user b ON a.user_guid = b.user_guid
                        WHERE
	                        a.merchant_guid = @MerchantGuid
	                        AND a.`enable` = 1
                            and a.creation_date BETWEEN @StartDate and @EndDate
                            {sqlWhere}
                        ORDER BY
	                        a.creation_date DESC"    ;

            return(await MySqlHelper.QueryByPageAsync <GetMerchantOrderPageListRequestDto, GetMerchantOrderPageListResponseDto, GetMerchantOrderPageListItemDto>(sql, requestDto));
        }
コード例 #3
0
        /// <summary>
        /// 查询商户订单分页列表
        /// </summary>
        public async Task <GetMerchantOrderPageListResponseDto> GetMerchantOrderPageListAsync(GetMerchantOrderPageListRequestDto requestDto)
        {
            var sqlWhere = "a.`enable` = 1 ";

            if (requestDto.BeginDate != null)
            {
                requestDto.BeginDate = requestDto.BeginDate?.Date;
                sqlWhere             = $"{sqlWhere} and a.creation_date >= @BeginDate";
            }
            if (requestDto.EndDate != null)
            {
                requestDto.EndDate = requestDto.EndDate?.AddDays(1).Date;
                sqlWhere           = $"{sqlWhere} and a.creation_date < @EndDate";
            }
            if (!string.IsNullOrWhiteSpace(requestDto.Keyword))
            {
                requestDto.Keyword = $"%{requestDto.Keyword}%";
                sqlWhere           = $"{sqlWhere} and (b.phone like @Keyword or b.nick_name like @Keyword)";
            }
            if (!string.IsNullOrWhiteSpace(requestDto.OrderNo))
            {
                sqlWhere = $"{sqlWhere} and a.order_no=@OrderNo";
            }
            if (!string.IsNullOrWhiteSpace(requestDto.MerchantName))
            {
                sqlWhere = $"{sqlWhere} and c.merchant_name=@MerchantName";
            }

            switch (requestDto.OrderStatus)
            {
            case OrderStatusConditionEnum.Obligation:
                sqlWhere = $"{sqlWhere} and a.order_status='{OrderStatusConditionEnum.Obligation.ToString()}' and a.pay_type<>'{PayTypeEnum.OffLinePay.ToString()}'";
                break;

            case OrderStatusConditionEnum.OffLinePay:
                sqlWhere = $"{sqlWhere} and a.order_status='{OrderStatusConditionEnum.Obligation.ToString()}' and a.pay_type='{PayTypeEnum.OffLinePay.ToString()}'";
                break;

            case OrderStatusConditionEnum.Shipped:
                sqlWhere = $"{sqlWhere} and a.order_status='{OrderStatusConditionEnum.Received.ToString()}' and a.express_no is null";
                break;

            case OrderStatusConditionEnum.Received:
                sqlWhere = $"{sqlWhere} and a.order_status='{OrderStatusConditionEnum.Received.ToString()}' and a.express_no is not null";
                break;
            }
            if (requestDto.OrderStatus != null)
            {
                sqlWhere = $"{sqlWhere} and a.order_status='{requestDto.OrderStatus.ToString()}'";
            }
            var sql = $@"SELECT
	                        a.order_guid,
	                        a.order_no,
	                        b.nick_name,
	                        b.phone,
	                        a.paid_amount,
	                        a.creation_date,
	                        a.order_status ,
	                        a.payment_date,
	                        a.pay_type,
	                        a.payables_amount,
                            a.freight,
	                        a.discount_amout,
	                        a.order_receiver,
	                        a.order_phone,
	                        a.express_company,
	                        a.express_no,
	                        a.order_address,
                            c.merchant_name
                        FROM
	                        t_mall_order a
	                        INNER JOIN t_utility_user b ON a.user_guid = b.user_guid
                            LEFT JOIN t_merchant c on a.merchant_guid=c.merchant_guid
                        WHERE
                            {sqlWhere}
                        ORDER BY
	                        a.creation_date DESC"    ;

            return(await MySqlHelper.QueryByPageAsync <GetMerchantOrderPageListRequestDto, GetMerchantOrderPageListResponseDto, GetMerchantOrderPageListItemDto>(sql, requestDto));
        }