| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- <?php
- namespace addons\Agent\backend\services;
- use common\enums\OrderStatusEnum;
- use common\enums\RefundStatusEnum;
- use common\enums\RefundTypeEnum;
- use common\enums\StatusEnum;
- use common\models\order\Order;
- use common\models\order\OrderDetail;
- use common\models\order\OrderRefund;
- class OrderService extends \services\common\BaseService
- {
- /**
- * @param array $get
- *
- * @return array
- */
- public function getOrderDetails(array $get): array
- {
- if (!isset($get['order_no']) || $get['order_no'] === '') {
- return [];
- }
- $orderId = Order::find()
- ->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'
- ]);
- }
- }
|