|
|
@@ -3,6 +3,8 @@ declare(strict_types=1);
|
|
|
|
|
|
namespace SixShop\Lakala\Cron;
|
|
|
|
|
|
+use app\model\Order;
|
|
|
+use app\model\OrderLog;
|
|
|
use SixShop\Core\Attribute\Cron;
|
|
|
use SixShop\Lakala\Service\PaymentRecordService;
|
|
|
use SixShop\Payment\Model\ExtensionPaymentModel;
|
|
|
@@ -63,5 +65,39 @@ class WechatOrderCron
|
|
|
->select()->each(function ($payment) {
|
|
|
$this->paymentRecordService->closeOrder($payment->id);
|
|
|
});
|
|
|
+ // 订单超时确认收货状态同步到订单主表
|
|
|
+ ExtensionPaymentModel::alias('p')
|
|
|
+ ->leftJoin('lakala_wechat_payment l', 'p.id = l.payment_id')
|
|
|
+ ->leftJoin('order o', 'p.order_id = o.id')
|
|
|
+ ->where([
|
|
|
+ 'p.pay_type' => 'lakala',
|
|
|
+ 'p.biz_type' => 1,
|
|
|
+ 'l.order_state' => 4,
|
|
|
+ 'o.order_status' => 30
|
|
|
+ ])
|
|
|
+ ->field(['p.order_id'])
|
|
|
+ ->select()->each(function ($payment) {
|
|
|
+ $order = Order::where('id', $payment->order_id)->lock(true)->findOrEmpty();
|
|
|
+ if ($order->order_status == 30) {
|
|
|
+ Db::transaction(function () use ($order) {
|
|
|
+ Order::update([
|
|
|
+ 'order_status' => 40, // 已完成
|
|
|
+ 'confirm_time' => date('Y-m-d H:i:s'),
|
|
|
+ 'finish_time' => date('Y-m-d H:i:s'),
|
|
|
+ ], ['id' => $order->id]);
|
|
|
+ OrderLog::create([
|
|
|
+ 'order_id' => $order->id,
|
|
|
+ 'order_status' => 40,
|
|
|
+ 'pay_status' => $order->pay_status,
|
|
|
+ 'shipping_status' => $order->shipping_status,
|
|
|
+ 'action' => 'confirm',
|
|
|
+ 'operator_id' => 0,
|
|
|
+ 'operator_type' => 3,
|
|
|
+ 'operator_name' => '系统',
|
|
|
+ 'remark' => '订单自动确认收货',
|
|
|
+ ]);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
}
|