diff --git a/app/Admin/Controllers/HomeController.php b/app/Admin/Controllers/HomeController.php index 1176872..ac87f90 100644 --- a/app/Admin/Controllers/HomeController.php +++ b/app/Admin/Controllers/HomeController.php @@ -3,7 +3,9 @@ namespace App\Admin\Controllers; use App\Admin\Metrics\Chart\ColumnCharts; -use App\Admin\Metrics\Chart\Registering; +use App\Admin\Metrics\Chart\FemaleColumnCharts; +use App\Admin\Metrics\Chart\FullPaymentRateColumnCharts; +use App\Admin\Metrics\Chart\MaleColumnCharts; use App\Admin\Metrics\Examples; use App\Admin\Metrics\Examples\AdmissionExcelUsers; use App\Admin\Metrics\Examples\AdmissionOnLineUser; @@ -29,17 +31,21 @@ class HomeController extends Controller $row->column(12, function (Column $column) { $column->row(function (Row $row) { - $row->column(6, new Examples\NewUsers()); - $row->column(6, new TotalUsers()); - $row->column(6, new AdmissionExcelUsers()); - $row->column(6, new AdmissionOnLineUser()); - $row->column(4, new AdmissionStepUsers()); - $row->column(4, new SelectedDormitoryTotal()); - $row->column(4, new Examples\ReportRate()); -// $row->column(6, new Examples\ProductOrders()); -// $row->column(6, new Examples\Sessions()); -// $row->column(6, Card::make('各学院报到率',Registering::make())); + $row->column(2, new Examples\NewUsers()); + $row->column(2, new TotalUsers()); + $row->column(2, new AdmissionExcelUsers()); + $row->column(2, new AdmissionOnLineUser()); + $row->column(2, new AdmissionStepUsers()); + $row->column(2, new SelectedDormitoryTotal()); + $row->column(3, new Examples\ReportRate()); //新生总报到率 + $row->column(3, new Examples\FullPaymentRate()); //全额缴费率 + $row->column(3, new Examples\MaleRegistering()); //男生报到率 + $row->column(3, new Examples\FemaleRegistering()); //女生报到率 + $row->column(6, Card::make('各学院报到率',ColumnCharts::make())); + $row->column(6, Card::make('各学院全额缴费率',FullPaymentRateColumnCharts::make())); + $row->column(6, Card::make('各学院男生报到率',MaleColumnCharts::make())); + $row->column(6, Card::make('各学院女生报到率',FemaleColumnCharts::make())); }); diff --git a/app/Admin/Metrics/Chart/ColumnCharts.php b/app/Admin/Metrics/Chart/ColumnCharts.php index e8b86d3..085a44f 100644 --- a/app/Admin/Metrics/Chart/ColumnCharts.php +++ b/app/Admin/Metrics/Chart/ColumnCharts.php @@ -64,6 +64,7 @@ class ColumnCharts extends Chart $importStudents = AdmissionNewStudents::query()->where([ "annual_session" => $config->data, "status" => AdmissionNewStudents::STATUS_YES, + "is_new_student" => AdmissionNewStudents::IS_NEW_STUDENT_YES, ])->whereIn("speciality_id", $specialityIds)->get("idCard")->toArray(); if(!empty($importStudents)){ $idcardList = array_column($importStudents, "idCard"); @@ -73,7 +74,7 @@ class ColumnCharts extends Chart $userList = array_column($userList, "unique_number"); //线下迎新有几步 $stepCount = OfflineStep::query()->where("status", OfflineStep::STATUS_YES)->count(); - //检测是否存在线下报到步骤,存在则视为已到校 + //检测是否存在线下报到步骤,存在则视为已到校(实际报到学生) $completedOfflineStep = CompletedOfflineStep::query()->whereIn("unique_number", $userList)->where("annual_session", $config->data)->where("step_id",">=",$stepCount)->count(); //报到率 diff --git a/app/Admin/Metrics/Chart/FemaleColumnCharts.php b/app/Admin/Metrics/Chart/FemaleColumnCharts.php new file mode 100644 index 0000000..916fb76 --- /dev/null +++ b/app/Admin/Metrics/Chart/FemaleColumnCharts.php @@ -0,0 +1,112 @@ +setUpOptions(); + } + + + //初始化方法,主要是调用$this->options()方法,执行整个option的初始化操作。 + protected function setUpOptions() + { + $this->options([ + "chart"=>[ + "height"=>350, //高度 + "type"=>"bar", //chart 类型 + ], + ]); + + $data = [[ + "name" => "报道率", + "data" => [], + ]]; + $label = []; + + // 执行你的数据查询逻辑 + //取出当前年份 + $config = Config::query()->where([ + "unique_identification" => "annual_session" + ])->first(); + + //二级学院 + $list = SecondaryCollege::query()->where([ + "status" => SecondaryCollege::STATUS_YES + ])->get(["id", "name"])->toArray(); + + //不为空时 + if(!empty($list)){ + + + foreach($list as $key => $item){ + //取出该学院下的专业 + $speciality = Speciality::query()->where([ + "status" => Speciality::STATUS_YES, + "secondary_college_id" => $item["id"], + ])->get()->toArray(); + //专业ID + $specialityIds = array_column($speciality, "id"); + + //二级学院已录入的学生 + $importStudents = AdmissionNewStudents::query()->where([ + "annual_session" => $config->data, + "status" => AdmissionNewStudents::STATUS_YES, + "is_new_student" => AdmissionNewStudents::IS_NEW_STUDENT_YES, + "sex" => AdmissionNewStudents::FEMALE, + ])->whereIn("speciality_id", $specialityIds)->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"); + + //线下迎新有几步 + $stepCount = OfflineStep::query()->where("status", OfflineStep::STATUS_YES)->count(); + //检测是否存在线下报到步骤,存在则视为已到校(实际报到学生) + $completedOfflineStep = CompletedOfflineStep::query()->whereIn("unique_number", $userList)->where("annual_session", $config->data)->where("step_id",">=",$stepCount)->count(); + + + $studentsNum = count($importStudents); + + //报到率 + $registering = (($completedOfflineStep / $studentsNum) * 100) ; + $list[$key]["registering"] = $registering; + } + } + } + + + foreach($list as $item){ + array_push($label, $item["name"]); + if(!empty($item["registering"])){ + array_push($data[0]["data"], $item["registering"]); + }else{ + array_push($data[0]["data"], 0); + } + } + } + + + $this->option("series",$data); + $this->option("labels",$label); + $this->option("yaxis",["max" => 100]); //Y轴最大值 + + } +} diff --git a/app/Admin/Metrics/Chart/FullPaymentRateColumnCharts.php b/app/Admin/Metrics/Chart/FullPaymentRateColumnCharts.php new file mode 100644 index 0000000..4de719f --- /dev/null +++ b/app/Admin/Metrics/Chart/FullPaymentRateColumnCharts.php @@ -0,0 +1,118 @@ +setUpOptions(); + } + + + //初始化方法,主要是调用$this->options()方法,执行整个option的初始化操作。 + protected function setUpOptions() + { + $this->options([ + "chart"=>[ + "height"=>350, //高度 + "type"=>"bar", //chart 类型 + ], + ]); + + $data = [[ + "name" => "缴费率", + "data" => [], + ]]; + $label = []; + + // 执行你的数据查询逻辑 + //取出当前年份 + $config = Config::query()->where([ + "unique_identification" => "annual_session" + ])->first(); + + //二级学院 + $list = SecondaryCollege::query()->where([ + "status" => SecondaryCollege::STATUS_YES + ])->get(["id", "name"])->toArray(); + + //不为空时 + if(!empty($list)){ + + + foreach($list as $key => $item){ + //取出该学院下的专业 + $speciality = Speciality::query()->where([ + "status" => Speciality::STATUS_YES, + "secondary_college_id" => $item["id"], + ])->get()->toArray(); + //专业ID + $specialityIds = array_column($speciality, "id"); + + //二级学院已录入的学生 + $importStudents = AdmissionNewStudents::query()->where([ + "annual_session" => $config->data, + "status" => AdmissionNewStudents::STATUS_YES, + "is_new_student" => AdmissionNewStudents::IS_NEW_STUDENT_YES, + ])->whereIn("speciality_id", $specialityIds)->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"); + + //线下迎新有几步 + $stepCount = OfflineStep::query()->where("status", OfflineStep::STATUS_YES)->count(); + //检测是否存在线下报到步骤,存在则视为已到校(实际报到学生) + $completedOfflineStep = CompletedOfflineStep::query()->whereIn("unique_number", $userList)->where("annual_session", $config->data)->where("step_id",">=",$stepCount)->count(); + + //全额缴费人数 + $paymentList = PaymentList::query()->where("annual_session", $config->data) + ->whereIn("unique_number", $userList) + ->select('unique_number', DB::raw('SUM(amount) as total_amount')) + ->groupBy('unique_number') + ->havingRaw('total_amount = ?', [0]) + ->get()->toArray(); + + $studentsNum = count($paymentList); + + //报到率 + $registering = (($studentsNum / $completedOfflineStep ) * 100) ; + $list[$key]["registering"] = $registering; + } + } + } + + + foreach($list as $item){ + array_push($label, $item["name"]); + if(!empty($item["registering"])){ + array_push($data[0]["data"], $item["registering"]); + }else{ + array_push($data[0]["data"], 0); + } + } + } + + + $this->option("series",$data); + $this->option("labels",$label); + $this->option("yaxis",["max" => 100]); //Y轴最大值 + + } +} diff --git a/app/Admin/Metrics/Chart/MaleColumnCharts.php b/app/Admin/Metrics/Chart/MaleColumnCharts.php new file mode 100644 index 0000000..1baefc6 --- /dev/null +++ b/app/Admin/Metrics/Chart/MaleColumnCharts.php @@ -0,0 +1,112 @@ +setUpOptions(); + } + + + //初始化方法,主要是调用$this->options()方法,执行整个option的初始化操作。 + protected function setUpOptions() + { + $this->options([ + "chart"=>[ + "height"=>350, //高度 + "type"=>"bar", //chart 类型 + ], + ]); + + $data = [[ + "name" => "报道率", + "data" => [], + ]]; + $label = []; + + // 执行你的数据查询逻辑 + //取出当前年份 + $config = Config::query()->where([ + "unique_identification" => "annual_session" + ])->first(); + + //二级学院 + $list = SecondaryCollege::query()->where([ + "status" => SecondaryCollege::STATUS_YES + ])->get(["id", "name"])->toArray(); + + //不为空时 + if(!empty($list)){ + + + foreach($list as $key => $item){ + //取出该学院下的专业 + $speciality = Speciality::query()->where([ + "status" => Speciality::STATUS_YES, + "secondary_college_id" => $item["id"], + ])->get()->toArray(); + //专业ID + $specialityIds = array_column($speciality, "id"); + + //二级学院已录入的学生 + $importStudents = AdmissionNewStudents::query()->where([ + "annual_session" => $config->data, + "status" => AdmissionNewStudents::STATUS_YES, + "is_new_student" => AdmissionNewStudents::IS_NEW_STUDENT_YES, + "sex" => AdmissionNewStudents::MALE, + ])->whereIn("speciality_id", $specialityIds)->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"); + + //线下迎新有几步 + $stepCount = OfflineStep::query()->where("status", OfflineStep::STATUS_YES)->count(); + //检测是否存在线下报到步骤,存在则视为已到校(实际报到学生) + $completedOfflineStep = CompletedOfflineStep::query()->whereIn("unique_number", $userList)->where("annual_session", $config->data)->where("step_id",">=",$stepCount)->count(); + + + $studentsNum = count($importStudents); + + //报到率 + $registering = (($completedOfflineStep / $studentsNum) * 100) ; + $list[$key]["registering"] = $registering; + } + } + } + + + foreach($list as $item){ + array_push($label, $item["name"]); + if(!empty($item["registering"])){ + array_push($data[0]["data"], $item["registering"]); + }else{ + array_push($data[0]["data"], 0); + } + } + } + + + $this->option("series",$data); + $this->option("labels",$label); + $this->option("yaxis",["max" => 100]); //Y轴最大值 + + } +} diff --git a/app/Admin/Metrics/Chart/Registering.php b/app/Admin/Metrics/Chart/Registering.php index e901496..7eda151 100644 --- a/app/Admin/Metrics/Chart/Registering.php +++ b/app/Admin/Metrics/Chart/Registering.php @@ -5,6 +5,7 @@ use Dcat\Admin\Widgets\ApexCharts\Chart; class Registering extends Chart { + //饼状图(测试用) public function __construct($containerSelector = null, $options = []) { parent::__construct($containerSelector, $options); diff --git a/app/Admin/Metrics/Examples/FemaleRegistering.php b/app/Admin/Metrics/Examples/FemaleRegistering.php new file mode 100644 index 0000000..67a7f10 --- /dev/null +++ b/app/Admin/Metrics/Examples/FemaleRegistering.php @@ -0,0 +1,154 @@ +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((($number / $studentsNum) * 100)."%"); + } + + } + + /** + * @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); + } +} diff --git a/app/Admin/Metrics/Examples/FullPaymentRate.php b/app/Admin/Metrics/Examples/FullPaymentRate.php new file mode 100644 index 0000000..0bec56b --- /dev/null +++ b/app/Admin/Metrics/Examples/FullPaymentRate.php @@ -0,0 +1,164 @@ +title('全额缴费率'); + + } + + /** + * 处理请求. + * + * @param Request $request + * + * @return void + */ + public function handle(Request $request) + { + + $number = 0; + $studentsNum = 0; + + //取出当前年份 + $config = Config::query()->where([ + "unique_identification" => "annual_session" + ])->first(); + + //当前年份已完成二级学院扫码的学生(实际报道人数) + $allCount = CompletedOfflineStep::query()->where([ + "annual_session" => $config->data, + ])->select("unique_number")->distinct()->get()->toArray(); + if(!empty($allCount)){ + $number = count($allCount); + } + + + + //取出当前年份录入的学生 + $importStudents = AdmissionNewStudents::query()->where([ + "annual_session" => $config->data, + "status" => AdmissionNewStudents::STATUS_YES, + "is_new_student" => AdmissionNewStudents::IS_NEW_STUDENT_YES, + ])->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"); + + //全额缴费人数 + $paymentList = PaymentList::query()->where("annual_session", $config->data) + ->whereIn("unique_number", $userList) + ->select('unique_number', DB::raw('SUM(amount) as total_amount')) + ->groupBy('unique_number') + ->havingRaw('total_amount = ?', [0]) + ->get()->toArray(); + + $studentsNum = count($paymentList); + + } + } + + if($number == 0 || $studentsNum == 0){ + $this->content("0%"); + }else{ + $this->content((($studentsNum / $number) * 100)."%"); + } + + + } + + /** + * @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); + } +} diff --git a/app/Admin/Metrics/Examples/MaleRegistering.php b/app/Admin/Metrics/Examples/MaleRegistering.php new file mode 100644 index 0000000..7dd1ac0 --- /dev/null +++ b/app/Admin/Metrics/Examples/MaleRegistering.php @@ -0,0 +1,154 @@ +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:: MALE, + ])->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((($number / $studentsNum) * 100)."%"); + } + + } + + /** + * @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); + } +} diff --git a/app/Admin/Metrics/Examples/NewUsers.php b/app/Admin/Metrics/Examples/NewUsers.php index 21840cf..751a08f 100644 --- a/app/Admin/Metrics/Examples/NewUsers.php +++ b/app/Admin/Metrics/Examples/NewUsers.php @@ -20,10 +20,10 @@ class NewUsers extends Line { parent::init(); - $this->title('该时间内注册'); + $this->title('七天内注册'); #日期选择开始 - $id = $this->id(); + /*$id = $this->id(); $this->datepicker($id) ->click("#{$id} .datepicker .btn-primary") ->addVariables([ @@ -31,7 +31,7 @@ class NewUsers extends Line 'start' => date('Y-m-d', strtotime('-7 days')), 'end' => date('Y-m-d', time()), ] - ]); + ]);*/ #日期选择结束 } @@ -44,12 +44,13 @@ class NewUsers extends Line */ public function handle(Request $request) { - $start = $request->get('started'); - $end = $request->get('ended'); + $start = $request->get('started', date('Y-m-d', strtotime('-7 days'))); + $end = $request->get('ended', date('Y-m-d', time())); if(empty($start) && empty($end)){ $start = date("Y-m-d 00:00:00", strtotime('-7 days')); $end = date("Y-m-d 23:59:59", time()); + //取出今日注册量 $todayNum = UsersMember::query()->whereBetween("create_time", [strtotime($start), strtotime($end)])->count(); $this->withContent($todayNum.'人'); diff --git a/app/Admin/Metrics/Examples/ReportRate.php b/app/Admin/Metrics/Examples/ReportRate.php index 75e74d2..07ef7a0 100644 --- a/app/Admin/Metrics/Examples/ReportRate.php +++ b/app/Admin/Metrics/Examples/ReportRate.php @@ -5,7 +5,6 @@ namespace App\Admin\Metrics\Examples; use App\Models\AdmissionNewStudents; use App\Models\CompletedOfflineStep; use App\Models\Config; -use App\Models\SelectedDormitory; use Dcat\Admin\Widgets\Metrics\Card; use Illuminate\Contracts\Support\Renderable; use Illuminate\Http\Request; @@ -40,6 +39,9 @@ class ReportRate extends Card public function handle(Request $request) { + $number = 0; + $studentsNum = 0; + //取出当前年份 $config = Config::query()->where([ "unique_identification" => "annual_session" @@ -48,18 +50,27 @@ class ReportRate extends Card //当前年份已完成二级学院扫码的学生 $allCount = CompletedOfflineStep::query()->where([ "annual_session" => $config->data, - ])->select("unique_number")->distinct()->get(); - $number = count($allCount); + ])->select("unique_number")->distinct()->get()->toArray(); + if(!empty($allCount)){ + $number = count($allCount); + } + //取出当前年份录入的学生 $studentsList = AdmissionNewStudents::query()->where([ "annual_session" => $config->data, - "status" => AdmissionNewStudents::STATUS_YES - ])->select("idCard")->distinct()->get(); - - $studentsNum = count($studentsList); - - $this->content((($number / $studentsNum) * 100)."%"); + "status" => AdmissionNewStudents::STATUS_YES, + "is_new_student" => AdmissionNewStudents::IS_NEW_STUDENT_YES + ])->select("idCard")->distinct()->get()->toArray(); + if(!empty($studentsList)){ + $studentsNum = count($studentsList); + } + + if($number == 0 || $studentsNum == 0){ + $this->content("0%"); + }else{ + $this->content((($number / $studentsNum) * 100)."%"); + } } diff --git a/app/Models/AdmissionNewStudents.php b/app/Models/AdmissionNewStudents.php index 4c32829..5ec0b6a 100644 --- a/app/Models/AdmissionNewStudents.php +++ b/app/Models/AdmissionNewStudents.php @@ -35,4 +35,7 @@ class AdmissionNewStudents extends Model const STATUS_YES = 1; //状态 1正常 2禁用 const STATUS_NO = 2; + + const MALE = 1; //性别 1男 2女 + const FEMALE = 2; }