优化同意订单页面和推送订单到playx的功能

This commit is contained in:
2026-04-03 10:39:40 +08:00
parent 941f0f4a8c
commit 5ab85d1d53
14 changed files with 91 additions and 130 deletions

View File

@@ -66,7 +66,7 @@ class Dashboard extends Backend
$pendingPhysicalToShip = MallOrder::where('type', MallOrder::TYPE_PHYSICAL)
->where('status', MallOrder::STATUS_PENDING)
->count();
$grantFailedRetryableCount = MallOrder::whereIn('type', [MallOrder::TYPE_BONUS, MallOrder::TYPE_WITHDRAW])
$grantFailedRetryableCount = MallOrder::where('type', MallOrder::TYPE_BONUS)
->where('grant_status', MallOrder::GRANT_FAILED_RETRYABLE)
->count();

View File

@@ -202,7 +202,7 @@ class Order extends Backend
$id = $data['id'] ?? 0;
$rejectReason = $data['reject_reason'] ?? '';
if (!$id || $rejectReason === '') {
if (!$id) {
return $this->error(__('Missing required fields'));
}
@@ -214,6 +214,10 @@ class Order extends Backend
return $this->error(__('Order status must be PENDING'));
}
if ($order->type === MallOrder::TYPE_PHYSICAL && $rejectReason === '') {
return $this->error(__('Missing required fields'));
}
Db::startTrans();
try {
$asset = MallUserAsset::where('playx_user_id', $order->user_id ?? '')->find();
@@ -229,7 +233,11 @@ class Order extends Backend
$order->status = MallOrder::STATUS_REJECTED;
$order->reject_reason = $rejectReason;
$order->grant_status = MallOrder::GRANT_FAILED_FINAL;
if ($order->type === MallOrder::TYPE_BONUS) {
$order->grant_status = MallOrder::GRANT_FAILED_FINAL;
} else {
$order->grant_status = MallOrder::GRANT_NOT_APPLICABLE;
}
$order->update_time = time();
$order->save();
@@ -243,7 +251,7 @@ class Order extends Backend
}
/**
* 手动重试(仅红利/提现,且必须 FAILED_RETRYABLE
* 手动重试(仅红利推送失败可重试
*/
public function retry(Request $request): Response
{
@@ -265,8 +273,8 @@ class Order extends Backend
if (!$order) {
return $this->error(__('Record not found'));
}
if (!in_array($order->type, [MallOrder::TYPE_BONUS, MallOrder::TYPE_WITHDRAW], true)) {
return $this->error(__('Only BONUS/WITHDRAW can retry'));
if ($order->type !== MallOrder::TYPE_BONUS) {
return $this->error(__('Only BONUS can retry'));
}
if ($order->grant_status !== MallOrder::GRANT_FAILED_RETRYABLE) {
return $this->error(__('Only FAILED_RETRYABLE can retry'));