| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <?php
- namespace App\Module\UrsPromotion\AdminControllers\Metrics;
- use App\Module\UrsPromotion\Models\UrsUserMapping;
- use Dcat\Admin\Widgets\Metrics\Card;
- use Illuminate\Http\Request;
- /**
- * URS活跃用户数字卡片
- * 显示当前活跃用户数量
- */
- class UrsActiveUsersCard extends Card
- {
- /**
- * 卡片高度
- */
- protected $height = 140;
-
- /**
- * 卡片标题
- */
- protected $title = 'URS活跃用户';
- /**
- * 初始化卡片
- */
- public function __construct()
- {
- if ($options = $this->defaultChartOptions()) {
- $this->chartOptions = $options;
- }
- $this->init();
- }
- /**
- * 处理请求
- *
- * @param Request $request
- * @return mixed|void
- */
- public function handle(Request $request)
- {
- $activeCount = $this->getActiveUsersCount();
- $this->withContent($activeCount);
- }
- /**
- * 获取活跃用户数量
- * 这里统计所有有效状态的URS用户映射数量
- *
- * @return int
- */
- private function getActiveUsersCount(): int
- {
- return UrsUserMapping::where('status', UrsUserMapping::STATUS_VALID)
- ->count();
- }
- /**
- * 设置卡片内容
- *
- * @param int $content 活跃用户数量
- * @return $this
- */
- public function withContent($content)
- {
- return $this->content(
- <<<HTML
- <div class="d-flex flex-column flex-wrap text-center">
- <h1 class="font-lg-2 mt-2 mb-0">{$content}</h1>
- <small class="text-muted">当前活跃用户数</small>
- </div>
- HTML
- );
- }
- }
|