where([ 'order_no' => $get['order_no'], 'mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED, 'pay_status' => OrderStatusEnum::PAY, ]) ->andWhere(['<>', 'order_status', OrderStatusEnum::REPEAL]) ->select('id') ->scalar(); if (empty($orderId)) { return []; } // 排除售后完成(不包含换货)的order_detail_id $refundOrderDetailIds = OrderRefund::find() ->where([ 'order_id' => $orderId, 'status' => StatusEnum::ENABLED, 'refund_status' => RefundStatusEnum::FINISH, 'type' => [RefundTypeEnum::MONEY, RefundTypeEnum::MONEY_AND_PRODUCT] ]) ->select('order_detail_id') ->column(); $where = [ [ 'order_id' => $orderId, 'status' => StatusEnum::ENABLED, ], ['<>', 'order_status', OrderStatusEnum::REPEAL] ]; if ($refundOrderDetailIds) { $where[] = ['not in', 'id', $refundOrderDetailIds]; } return OrderDetail::lists([ 'where' => $where, 'select' => 'id, order_id, goods_id, goods_name, pic_url, num' ]); } }