// +---------------------------------------------------------------------- namespace app\services\pay; use app\services\BaseServices; use app\services\order\StoreOrderInvoiceServices; use app\services\order\StoreOrderServices; use app\services\order\StoreOrderStatusServices; use app\jobs\ProductLogJob; use think\exception\ValidateException; /** * 线下支付 * Class OrderOfflineServices * @package app\services\pay */ class OrderOfflineServices extends BaseServices { /** * 线下支付 * @param int $id * @return mixed */ public function orderOffline(int $id) { /** @var StoreOrderServices $orderSerives */ $orderSerives = app()->make(StoreOrderServices::class); $orderInfo = $orderSerives->get($id); if (!$orderInfo) { throw new ValidateException('订单不存在'); } if ($orderInfo->paid) { throw new ValidateException('订单已支付'); } $orderInfo->paid = 1; $orderInfo->pay_time = time(); /** @var StoreOrderStatusServices $statusService */ $statusService = app()->make(StoreOrderStatusServices::class); $res = $statusService->save([ 'oid' => $id, 'change_type' => 'offline', 'change_message' => '线下付款', 'change_time' => time() ]); //修改开票数据支付状态 $orderInvoiceServices = app()->make(StoreOrderInvoiceServices::class); $orderInvoiceServices->update(['order_id' => $orderInfo['id']], ['is_pay' => 1]); //支付记录 ProductLogJob::dispatch(['pay', ['uid' => $orderInfo['uid'], 'order_id' => $orderInfo['id']]]); return $res && $orderInfo->save(); } }