From 8c3b5674cfe3425e880801cff64d46d3dcfca327 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=99=AF=E7=AB=8B?= <zoujingli@qq.com> Date: Thu, 28 Jan 2021 11:44:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BC=9A=E5=91=98=E7=AD=89?= =?UTF-8?q?=E7=BA=A7=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/data/command/UserBalance.php | 2 +- app/data/command/UserLevel.php | 25 +++++++++++++++++++++++++ app/data/sys.php | 2 ++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/app/data/command/UserBalance.php b/app/data/command/UserBalance.php index a9fe112c5..834062066 100644 --- a/app/data/command/UserBalance.php +++ b/app/data/command/UserBalance.php @@ -34,7 +34,7 @@ class UserBalance extends Command foreach ($this->app->db->name('DataUser')->field('id')->cursor() as $user) { $this->queue->message($total, ++$count, "正在计算用户 [{$user['id']}] 的余额"); UserService::instance()->balance($user['id']); - $this->queue->message($total, $count, "完成计算用户 [{$user['id']}] 的余额"); + $this->queue->message($total, $count, "完成计算用户 [{$user['id']}] 的余额", 1); } } catch (\Exception $exception) { $this->queue->error($exception->getMessage()); diff --git a/app/data/command/UserLevel.php b/app/data/command/UserLevel.php index 63ec30a81..9b245b5b4 100644 --- a/app/data/command/UserLevel.php +++ b/app/data/command/UserLevel.php @@ -2,12 +2,37 @@ namespace app\data\command; +use app\data\service\UserService; use think\admin\Command; +use think\admin\Exception; +use think\console\Input; +use think\console\Output; class UserLevel extends Command { protected function configure() { + $this->setName('xdata:UserLevel'); + $this->setDescription('批量重新计算用户等级'); + } + /** + * @param Input $input + * @param Output $output + * @return void + * @throws Exception + */ + protected function execute(Input $input, Output $output) + { + try { + [$total, $count] = [$this->app->db->name('DataUser')->count(), 0]; + foreach ($this->app->db->name('DataUser')->field('id')->cursor() as $user) { + $this->queue->message($total, ++$count, "正在计算用户 [{$user['id']}] 的等级"); + UserService::instance()->syncLevel($user['id']); + $this->queue->message($total, $count, "完成计算用户 [{$user['id']}] 的等级", 1); + } + } catch (\Exception $exception) { + $this->queue->error($exception->getMessage()); + } } } \ No newline at end of file diff --git a/app/data/sys.php b/app/data/sys.php index de52125f1..541fbcd21 100644 --- a/app/data/sys.php +++ b/app/data/sys.php @@ -2,12 +2,14 @@ use app\data\command\OrderClear; use app\data\command\UserBalance; +use app\data\command\UserLevel; use think\Console; Console::starting(function (Console $console) { if (app()->request->isCli()) { $console->addCommand(OrderClear::class); $console->addCommand(UserBalance::class); + $console->addCommand(UserLevel::class); } });