ClearExpiredSetmealJob.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: wuzhenke
  5. * Date: 2019/2/14
  6. * Time: 10:03
  7. */
  8. namespace App\Jobs\Cron;
  9. use App\Models\MembersSetmeal;
  10. use App\Repositories\CompanyRepository;
  11. use App\Repositories\MemberLogRepository;
  12. use App\Repositories\MemberSetmealRepository;
  13. use App\Services\Company\ServiceService;
  14. use Illuminate\Bus\Queueable;
  15. use Illuminate\Contracts\Queue\ShouldQueue;
  16. use Illuminate\Foundation\Bus\Dispatchable;
  17. use Illuminate\Queue\InteractsWithQueue;
  18. use Illuminate\Queue\SerializesModels;
  19. use Illuminate\Support\Facades\Log;
  20. class ClearExpiredSetmealJob implements ShouldQueue
  21. {
  22. use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
  23. /**
  24. * Create a new job instance.
  25. *
  26. * @return void
  27. */
  28. public $params=null;
  29. public function __construct($params=null)
  30. {
  31. if (!empty($params)){
  32. $this->params=$params;
  33. }
  34. }
  35. public function handle(MemberLogRepository $memberLogRepository,MemberSetmealRepository $memberSetmealRepository, ServiceService $serviceService, CompanyRepository $companyRepository)
  36. {
  37. //所有的会员都要查询到
  38. $condition = [
  39. ['endtime','<=', time()],
  40. ['endtime','<>',0],
  41. ['utype','=',1]
  42. ];
  43. $list = $memberSetmealRepository->findWhere($condition);
  44. if ($list->isNotEmpty()) {
  45. foreach ($list as $key => $val) {
  46. unset($user);
  47. unset($userObj);
  48. $user = $companyRepository->getCompanyInfo(['id'=>$val->uid]);
  49. if ($user) {
  50. $userObj =(object)['id'=>$user['id'],'utype'=>$user['utype'],'username'=>$user['username'],'subsite_id'=>$user['subsite_id']];
  51. //判断清除积分
  52. try{
  53. $serviceService->clearPoint($user['id']);
  54. }catch (\Exception $exception){
  55. }
  56. if ($val->setmeal_id==1){ //免费套餐到期了
  57. if (!$serviceService->setFreeMembersSetmeal($userObj)) {
  58. Log::error('会员ID'.$user['id'].'套餐修改失败!');
  59. }
  60. }else{ //其他会员到期了
  61. if (!$serviceService->setMembersSetmeal($userObj, MembersSetmeal::FREE_SetMember,$this->params)) {
  62. Log::error('会员ID'.$user['id'].'套餐修改失败!');
  63. }
  64. }
  65. }
  66. }
  67. }
  68. }
  69. }