// +---------------------------------------------------------------------- namespace crmeb\jobs; use app\common\repositories\user\UserRepository; use app\common\repositories\wechat\WechatUserRepository; use crmeb\interfaces\JobInterface; use crmeb\services\WechatService; use think\queue\Job; class SendNewsJob implements JobInterface { public function fire($job, $data) { $wechatUserRepository = app()->make(WechatUserRepository::class); $userRepository = app()->make(UserRepository::class); [$id, $news] = $data; if(!$id || !$userInfo = $userRepository->get($id)){ return $job->delete(); } if (!($openId = $wechatUserRepository->idByOpenId((int)$userInfo['wechat_user_id']))) { return $job->delete(); } try { WechatService::create()->staffTo($openId, WechatService::newsMessage($news)); } catch (\Exception $e) { $job->failed($e); } $job->delete(); } public function failed($data) { // TODO: Implement failed() method. } }