love_php/app/Jobs/addActivityUser.php

77 lines
3.2 KiB
PHP
Raw Permalink Normal View History

2026-04-02 09:20:51 +08:00
<?php
namespace App\Jobs;
use App\Models\ActivityMember;
use App\Models\User;
use App\Utils\Messenger;
use Illuminate\Support\Facades\DB;
use App\Models\Dynamic;
use App\Models\Live\ActivityUser;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
class addActivityUser implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $tries = 1;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
try {
// $users = Dynamic::select(DB::raw('count(*) as user_count, user_id'))->whereHas('user', function ($query){
// $query->where('is_approved', 1);
// $users = Dynamic::select(DB::raw('count(*) as user_count, user_id'))->whereHas('user', function ($query){
// $query->where('belief', '基督教');
// })->groupBy('user_id')->orderBy('user_count', 'asc')->get();
// $users = Dynamic::select(DB::raw('count(*) as user_count, user_id'))->whereHas('user', function ($query){
// $query->whereBetween('created_at', ['2020-08-01 00:00:00', '2020-09-09 00:00:00']);
// })->groupBy('user_id')->orderBy('user_count', 'asc')->get();
// $mobile_array = \App\Models\Live\Messenger::where('is_audit', 1)->pluck('mobile')->toArray();
// $users = User::whereIn('mobile', $mobile_array)->get();
// $has_join_user_id = ActivityMember::whereIn('activity_id', [351,344])->pluck('user_id')->toArray();
// $users = Dynamic::select(DB::raw('count(*) as user_count, user_id'))->orWhereHas('user', function ($query){
// $query->where('is_approved', 1);
// })->whereNotIn('user_id', $has_join_user_id)->whereBetween('created_at', ['2020-06-01 00:00:00', '2020-09-09 00:00:00'])->groupBy('user_id')->orderBy('user_count', 'asc')->get();
//空号手机号码
$false_mobile = \App\Models\CheckMobile::whereNotIn('status', [1,2,4])->pluck('mobile')->toArray();
$activity_user_ids = ActivityUser::pluck('user_id')->toArray();
$users = Dynamic::select(DB::raw('count(*) as user_count, user_id'))->whereNotIn('user_id', $activity_user_ids)->whereBetween('created_at', [ '2020-06-01 00:00:00' , '2020-09-28 00:00:00'])->groupBy('user_id')->having('user_count', '>', 10)->get();
$insert_arr = [];
$new_arr = [];
foreach ($users as $user){
$new_arr['user_id'] = $user->user_id;
$new_arr['type'] = 4;
$new_arr['created_at'] = date('Y-m-d H:i:s');
$new_arr['updated_at'] = date('Y-m-d H:i:s');
$insert_arr[] = $new_arr;
}
ActivityUser::insert($insert_arr);
return true;
} catch (\Exception $e) {
\Log::info('checkActivitie'.$e->getMessage());
return false;
}
}
}