| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | <?phpnamespace App\Service\Callback;use Illuminate\Support\Facades\DB;class TrackService{    public static function getTrackRecord($callbackType, $searchInfo) {        switch ($callbackType) {            case 'juliangAccount':                $ip =  $searchInfo['ip'];                $ranseId = $searchInfo['ranseId'];                $now = time();                foreach (self::getTrackTable($now,180) as $table) {                    $record = DB::connection('track_record')                        ->table($table)                        ->where([                            'ip' => $ip, 'connection_id' => $ranseId, 'link_source' => 'tiktok',                        ])->where('created_at', '>=', $now - 180)                        ->orderBy('id', 'desc')                        ->first();                    if($record) {                        break;                    }                }                return $record ? [                    'callback' => $record->callback,                    'advertiser_id' => $record->advertiser_id,                    'adv_promotion_id' => $record->promotion_id                ] : null;                break;        }        return null;    }    public static function getTrackTable($endTimstamp, $duration) {        $currentYm = date('Ym', $endTimstamp);        $startCurrentYm = date('Ym', $endTimstamp - $duration);        $tables = ['douyin_tracks'.$currentYm];        if($currentYm != $startCurrentYm) {            $tables[] = 'douyin_tracks'.$startCurrentYm;        }        return $tables;    }}
 |