1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- <?php
- namespace 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;
- }
- }
|