title('女生报到率'); } /** * 处理请求. * * @param Request $request * * @return void */ public function handle(Request $request) { $number = 0; $studentsNum = 0; //取出当前年份 $config = Config::query()->where([ "unique_identification" => "annual_session" ])->first(); //取出当前年份录入的女学生 $importStudents = AdmissionNewStudents::query()->where([ "annual_session" => $config->data, "status" => AdmissionNewStudents::STATUS_YES, "is_new_student" => AdmissionNewStudents::IS_NEW_STUDENT_YES, "sex" => AdmissionNewStudents:: FEMALE, ])->get("idCard")->toArray(); if(!empty($importStudents)){ $idcardList = array_column($importStudents, "idCard"); //根据身份证集取出已注册的用户 $userList = UsersMember::query()->whereIn("idcard", $idcardList)->where("status", UsersMember::STATUS_YES)->get("unique_number")->toArray(); if(!empty($userList)){ $userList = array_column($userList, "unique_number"); //当前年份已完成二级学院扫码的学生(实际报道人数) $allCount = CompletedOfflineStep::query()->where([ "annual_session" => $config->data, ])->whereIn("unique_number", $userList)->select("unique_number")->distinct()->get()->toArray(); $number = count($allCount); } $studentsNum = count($importStudents); } if($number == 0 || $studentsNum == 0){ $this->content("0%"); }else{ $this->content(round((($number / $studentsNum) * 100), 2)."%"); } } /** * @param int $percent * * @return $this */ public function up($percent) { return $this->footer( " {$percent}人 为当前年份已分配床位数" ); } /** * @param int $percent * * @return $this */ public function down($percent) { return $this->footer( " {$percent}人 为当前年份已分配床位数" ); } /** * 设置卡片底部内容. * * @param string|Renderable|\Closure $footer * * @return $this */ public function footer($footer) { $this->footer = $footer; return $this; } /** * 渲染卡片内容. * * @return string */ public function renderContent() { $content = parent::renderContent(); return <<

{$content}

{$this->renderFooter()}
HTML; } /** * 渲染卡片底部内容. * * @return string */ public function renderFooter() { return $this->toString($this->footer); } }