* @version : HUOSDK 8.0 */ namespace huolib\queue\job; use huo\controller\pay\ApplePay; use huo\logic\member\AccountLogic; use huo\model\account\AccountGoodsModel; use huo\model\account\AccountOrderModel; use huolib\constant\AccountConst; use huolib\constant\OrderConst; use think\Log; use think\queue\Job; class AccountOrderFire extends Fire { /** * fire方法是消息队列默认调用的方法 * * @param Job $job 当前的任务对象 * @param array|mixed $data 发布任务时自定义的数据 */ public function fire(Job $job, $data) { $_is_job_done = $this->doJob($data); if ($_is_job_done) { //如果任务执行成功, 记得删除任务 $job->delete(); } else { if ($job->attempts() > 3) { /* 记录队列值 */ Log::write( "func=".__FUNCTION__."&class=".__CLASS__.'&queue='.$job->getQueue().'&name='.$job->getName() .'&data='.json_encode($data).'&error', LOG::QUEUE ); $job->delete(); } } } /** * 根据消息中的数据进行实际的业务处理 * * @param array $data 发布任务时自定义的数据 * * @return bool 任务执行的结果 */ public function doJob($data) { if (!isset($data['order_info'])) { return false; } $_order_info = $data['order_info']; if (!isset($_order_info['id'])) { return false; } if (!isset($_order_info['ags_id'])) { return false; } //订单失效 (new AccountOrderModel())->updateData([ 'status' => OrderConst::PAY_STATUS_FAIL, ], $_order_info['id']); //小号商品重新上架 (new AccountGoodsModel())->updateData([ 'status' => AccountConst::STATUS_PULL_ON_SHELVES, ], $_order_info['ags_id']); return true; } }