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); } });