You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.7 KiB
66 lines
1.7 KiB
<?php
|
|
|
|
|
|
namespace app\jobs\order;
|
|
|
|
|
|
use app\services\order\StoreOrderStatusServices;
|
|
use crmeb\basic\BaseJobs;
|
|
use crmeb\traits\QueueTrait;
|
|
use think\facade\Log;
|
|
|
|
/**
|
|
* 拆分订单后置队列
|
|
* Class SpliteOrderAfterJob
|
|
* @package app\jobs\order
|
|
*/
|
|
class SpliteOrderAfterJob extends BaseJobs
|
|
{
|
|
use QueueTrait;
|
|
|
|
/**
|
|
* 门店分配订单
|
|
* @param $orderInfo
|
|
* @return bool
|
|
*/
|
|
public function doJob($oid, $orderData)
|
|
{
|
|
if (!$oid || !$orderData || count($orderData) != 2) {
|
|
return true;
|
|
}
|
|
[$orderInfo, $otherOrder] = $orderData;
|
|
try {
|
|
/** @var StoreOrderStatusServices $statusService */
|
|
$statusService = app()->make(StoreOrderStatusServices::class);
|
|
$statusData = $statusService->getColumn(['oid' => $oid], '*');
|
|
if (!$statusData) {
|
|
return true;
|
|
}
|
|
$ids = [];
|
|
if ($orderInfo['id'] != $oid) {
|
|
$ids[] = $orderInfo['id'];
|
|
}
|
|
if ($otherOrder['id'] != $oid) {
|
|
$ids[] = $otherOrder['id'];
|
|
}
|
|
if ($ids) {
|
|
$allData = [];
|
|
foreach ($ids as $id) {
|
|
foreach ($statusData as $data) {
|
|
$data['oid'] = $id;
|
|
$allData[] = $data;
|
|
}
|
|
}
|
|
if ($allData) {
|
|
$statusService->saveAll($allData);
|
|
}
|
|
}
|
|
|
|
} catch (\Throwable $e) {
|
|
Log::error('处理拆分订单记录失败,原因:' . $e->getMessage());
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
} |