<?php /** * Created by PhpStorm. * User: wuzhenke * Date: 2019/2/14 * Time: 10:03 */ namespace App\Jobs\Cron; use App\Models\MembersSetmeal; use App\Repositories\CompanyRepository; use App\Repositories\MemberLogRepository; use App\Repositories\MemberSetmealRepository; use App\Services\Company\ServiceService; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use Illuminate\Support\Facades\Log; class ClearExpiredSetmealJob implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; /** * Create a new job instance. * * @return void */ public $params=null; public function __construct($params=null) { if (!empty($params)){ $this->params=$params; } } public function handle(MemberLogRepository $memberLogRepository,MemberSetmealRepository $memberSetmealRepository, ServiceService $serviceService, CompanyRepository $companyRepository) { //所有的会员都要查询到 $condition = [ ['endtime','<=', time()], ['endtime','<>',0], ['utype','=',1] ]; $list = $memberSetmealRepository->findWhere($condition); if ($list->isNotEmpty()) { foreach ($list as $key => $val) { unset($user); unset($userObj); $user = $companyRepository->getCompanyInfo(['id'=>$val->uid]); if ($user) { $userObj =(object)['id'=>$user['id'],'utype'=>$user['utype'],'username'=>$user['username'],'subsite_id'=>$user['subsite_id']]; //判断清除积分 try{ $serviceService->clearPoint($user['id']); }catch (\Exception $exception){ } if ($val->setmeal_id==1){ //免费套餐到期了 if (!$serviceService->setFreeMembersSetmeal($userObj)) { Log::error('会员ID'.$user['id'].'套餐修改失败!'); } }else{ //其他会员到期了 if (!$serviceService->setMembersSetmeal($userObj, MembersSetmeal::FREE_SetMember,$this->params)) { Log::error('会员ID'.$user['id'].'套餐修改失败!'); } } } } } } }