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)); }
/// <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)); }
/// <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)); }