diff --git a/app/Builders/RefundList.php b/app/Builders/RefundList.php index 396bdd44..6452288d 100644 --- a/app/Builders/RefundList.php +++ b/app/Builders/RefundList.php @@ -7,6 +7,7 @@ namespace App\Builders; +use App\Models\Refund as RefundModel; use App\Repos\Order as OrderRepo; use App\Repos\User as UserRepo; @@ -35,6 +36,24 @@ class RefundList extends Builder return $refunds; } + public function handleMeInfo(array $refund) + { + $me = [ + 'allow_cancel' => 0, + ]; + + $statusTypes = [ + RefundModel::STATUS_PENDING, + RefundModel::STATUS_APPROVED, + ]; + + if (in_array($refund['status'], $statusTypes)) { + $me['allow_cancel'] = 1; + } + + return $me; + } + public function getOrders(array $trades) { $ids = kg_array_column($trades, 'order_id'); diff --git a/app/Services/Logic/User/Console/RefundList.php b/app/Services/Logic/User/Console/RefundList.php index 09704ef9..dbfb4ae9 100644 --- a/app/Services/Logic/User/Console/RefundList.php +++ b/app/Services/Logic/User/Console/RefundList.php @@ -65,8 +65,9 @@ class RefundList extends LogicService $order = $orders[$refund['order_id']] ?? new \stdClass(); + $me = $builder->handleMeInfo($refund); + $items[] = [ - 'order' => $order, 'sn' => $refund['sn'], 'subject' => $refund['subject'], 'amount' => (float)$refund['amount'], @@ -75,6 +76,8 @@ class RefundList extends LogicService 'review_note' => $refund['review_note'], 'create_time' => $refund['create_time'], 'update_time' => $refund['update_time'], + 'order' => $order, + 'me' => $me, ]; }