Commit cc78c034 cc78c03457bf803c806e8af256c224348f0ff317 by lemon

*

1 parent 1fa2e7ec
......@@ -4,6 +4,7 @@ namespace App\Console\Commands;
use App\Helper\RedisClient;
use App\Models\Legal\Company;
use App\Models\Legal\Song;
use App\Models\Legal\SongsIp;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Redis;
......@@ -49,6 +50,29 @@ class DealSongIp extends Command
$company_ids = Company::query()->pluck('company_id')->toArray();
foreach ($company_ids as $company_id) {
SongsIp::query()->select(['id', 'song_id', 'custom_id'])->chunk(5000, function ($res) {
$res = $res->toArray();
$custom_ids = array_column($res, 'custom_id');
if (!empty($custom_ids)) {
$songs = Song::query()->whereIn('custom_id', $custom_ids)->select([])->get()->keyBy('custom_id')->toArray();
foreach ($res as $item) {
if (isset($songs[$item['custom_id']])) {
SongsIp::query()->where(['id'=>$item['id']])->update(['song_id'=>$item['id']]);
} else {
SongsIp::query()->where(['id'=>$item['id']])->update(['song_id'=>0]);
}
}
}
});
}
//2.修复缓存
foreach ($company_ids as $company_id) {
$key1 = "company:#company_id#:channel:#channel#:month:#month#:songip";
$key2 = "company:#company_id#:channel:#channel#:songip";
......@@ -59,7 +83,6 @@ class DealSongIp extends Command
$redis->del($key2);
}
SongsIp::query()->chunk(5000, function ($res) use ($redis) {
foreach ($res as $item) {
$key = "company:#company_id#:channel:#channel#:songip";
......