setName('clearUserBlack') ->setDescription('clear black user for channel'); } public function run(Input $input, Output $output) { Request::instance()->module('admin'); $channelList = model('admin_config')->where('JSON_EXTRACT(extend,"$.clear") = ' . AdminConstants::ADMIN_EXTEND_CLEAR_WAITING)->column('admin_id'); if ($channelList) { $mUser = UserService::instance()->getUserModel(); $user_num = Config::get('db.user_num'); for ($i = 0; $i < $user_num; $i++) { $blackIds = $mUser->setConnect($i + $user_num) ->whereIn('channel_id', $channelList) ->where('is_black', '<>', UserConstants::USER_BLACK_NO) ->column('id'); if ($blackIds) { LogService::info('黑名单用户数:' . count($blackIds) . ':' . implode(',', $blackIds)); foreach ($blackIds as $blackId) { $userUpdate = new UserUpdate(); $userUpdate->setId($blackId)->setIsBlack(0); \app\source\service\UserService::instance()->updateUser($userUpdate); } } else { LogService::info('黑名单用户不存在,分库:' . $i); } } $adminList = model('AdminConfig')->whereIn('admin_id', $channelList)->select(); foreach ($adminList as $admin) { if ($admin->extend != 'null') { $extend = json_decode($admin->extend, true); $extend['clear'] = AdminConstants::ADMIN_EXTEND_CLEAR_YES; } else { $extend = ['clear' => AdminConstants::ADMIN_EXTEND_CLEAR_YES]; } $extend = json_encode($extend, JSON_UNESCAPED_UNICODE); model('AdminConfig')->update(['extend' => $extend], ['admin_id' => $admin['admin_id']]); } } } // public function rollbackUser() // { // $data = file('/data/web/cps_shell/bb.txt'); // foreach ($data as $line) { // $ids = explode(',', trim($line)); // foreach ($ids as $blackId) { // $userUpdate = new UserUpdate(); // $userUpdate->setId($blackId)->setIsBlack(1); // \app\source\service\UserService::instance()->updateUser($userUpdate); // } // } // } }