container = $container; parent::__construct($this->name); } public function configure() { parent::configure(); $this->setDescription('初始化普通用户1000和机器人20.'); $this->addUsage(" 无参数"); } public function handle() { self::createBots(); self::createUsers(); $nowDate = Carbon::now()->toDateTimeString(); $this->comment(sprintf('[%s]初始化机器人和用户完成', $nowDate)); } private function createOneUser($params = []) { if (empty($params['avatar'])) { $avatarNumber = str_pad((string)rand(1, 11), '3', '0', STR_PAD_LEFT); $avatar = sprintf('f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/a_%s.ceb', $avatarNumber); } else { $avatar = $params['avatar']; } $deviceNo = 'dk_'. substr(md5(random(11) . (string)time()), 0, 21); $fingerHash = substr(md5('fg_dk_'. $deviceNo) . random(7), 0, 25); $setarr = [ 'ip' => '113.238.142.208', 'avatar' => $avatar, 'device_no' => $deviceNo, 'parent_uid' => $parentUid ?? '', 'channel_id' => '', 'device_type' => self::randDeviceType(), 'version' => '1.0.0', 'finger_hash' => $fingerHash, 'last_login_at' => Carbon::now()->toDateTimeString(), 'nick' => RandomUserInfoRepository::getNickname(), 'status' => 1, 'max_view' => 0, 'vip_expired' => Carbon::now()->addDays(300)->toDateTimeString(), 'max_comment' => 1, 'vip_level' => rand(1, 5), 'creator_level' => 5, // 冗余创作者等级. ]; if (!empty($params)) { $setarr = array_merge($setarr, $params); } $user = UserModel::query()->create($setarr); $code = hashEncodeId($user->id); $user->code = $code; $user->save(); // 添加创作者表 $this->createOneCreator($user); return $user; } private function createOneCreator($botUser) { $setarr = [ 'user_uid' => $botUser->code, 'is_bot' => 1, 'status' => 1, 'level' => 5, 'reject_reason' => '', 'apply_at' => Carbon::now()->addMinutes(5)->toDateTimeString(), 'reject_at' => null, 'day_video' => 0, ]; $r = CreatorModel::query()->create($setarr); return $r; } private function createBots() { $avatar = 'f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/default.ceb'; $params = [ 'gender' => 3, 'avatar' => '', ]; $maxNum = 100; $arrAvatars = $this->getAllBotAvatars(); for($i = 0; $i < $maxNum; $i++) { $params['avatar'] = $arrAvatars[$i]; $user = self::createOneUser($params); } } private function createUsers() { $maxNum = 2300; for ($i = 0; $i < $maxNum; $i++) { $params = [ 'gender' => rand(1, 2), ]; $user = self::createOneUser($params); } } private function randDeviceType() { $arrTypes = [ 'A', 'I', ]; $key = array_rand($arrTypes); return $arrTypes[$key]; } private function getAllBotAvatars() { if (empty($this->arrBotAvatars)) { $strJson = '["f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/08MvJ5Zj.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/0VgzXv8C.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/0fSiUgdN.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/0n0N0m74.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/0ySy0PBd.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/11D8CWG1.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/1eaXux1a.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/203z0bUo.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/2436129P.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/2z8Ud88D.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/3C37z9RP.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/3yLdjbaG.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/3yh49244.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/4mMwDB0a.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/51p7YDSE.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/53q99k1k.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/5D9q5B6l.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/5qMoFVQv.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/5z88Hj3u.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/67R3F793.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/69119uuf.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/6Gpv8m8z.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/6TXmpI1D.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/6Z7BB299.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/72LZ98MY.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/7ICUq0Wd.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/7iZT7Ljx.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/87vmjkma.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/8SUzx0xS.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/8eP115sm.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/910PTqia.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/9Rdy6dPS.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/9rM8M9qP.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/A0v0cV0v.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/AOTGvJi1.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/Bb9lJj79.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/D8Sz67go.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/Ee7u15vZ.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/EuBeHYz2.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/F3FqCOQ7.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/FbZP9F2R.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/Ie89UuAM.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/Jo4Fp7p9.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/Kz6Fd1KW.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/L9933Qlh.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/LH33d1eE.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/LNh8L1N1.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/MERquYZm.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/Ns3sCdiI.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/OO7L8L8C.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/OrQ11O2n.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/Pba5pprg.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/Q9rvoX4x.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/QDtiT2z2.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/QlWpJvPQ.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/Rtgvfy21.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/SJRPRP2j.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/SmnI31sY.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/U1zwhawC.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/Vyy5u7Yw.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/W38epX9c.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/XPxYQx06.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/Xb6Q555t.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/Y0zDSh7X.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/YH6164aU.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/YSuwzz44.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/Z7Ux8R62.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/ZNzVT6ZE.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/Zf82zb70.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/bRfrJzpP.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/cTPTTrRY.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/dT5a9DU6.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/eeHHf2fz.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/exWKRWwx.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/iCkaImmM.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/iINr6idK.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/jlaAb5fX.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/kkk8YvAv.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/kzAtHnGU.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/lFDMEfTm.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/lWo2eE60.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/n59lQl5e.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/n94NnkZf.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/nEdKZE2j.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/nUpurPqU.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/oOVzZOho.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/rs8zodK7.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/siQ4Or9L.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/tLu58uHl.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/tffoz088.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/ty7TbO37.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/ua1IV1e1.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/um9C8ASj.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/vr84sVCn.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/wyzTvhhW.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/xH1LzYZL.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/xqp6v8xZ.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/y7eyWZL7.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/y8lO7MkX.ceb","f2|/'. env('STATIC_DIR_NAME', 'doukui') . '/avatars/b1/zTlWT5f5.ceb"]'; $strJson = trim($strJson); $this->arrBotAvatars = json_decode($strJson, true); } return $this->arrBotAvatars; } }