<?php

namespace app\admin\service\order;

use app\model\PayDetail;
use support\Db;

class PayDetailService
{
    public static function checkPaying()
    {
        Db::beginTransaction();
        try {
            $timeUnix = strtotime("-30 minutes");
            $payDetails = PayDetail::where('pay_status', 'WAITING')
                ->where('pay_addtimes', '<', $timeUnix)
                ->get();
            foreach ($payDetails as $payDetail) {
                // 订单主表
                PayDetail::where('pay_id', $payDetail->pay_id)->update([
                    'pay_status' => 'CANCEL',
                ]);
            }

            Db::commit();
        } catch (\Exception $e) {
            Db::rollBack();
        }
    }
}