diff --git a/app/Http/Controllers/Admin/CompanyController.php b/app/Http/Controllers/Admin/CompanyController.php index bd0a774..216210f 100644 --- a/app/Http/Controllers/Admin/CompanyController.php +++ b/app/Http/Controllers/Admin/CompanyController.php @@ -11,6 +11,8 @@ use App\Models\Calendar; use App\Models\Company; use App\Models\CourseContentEvaluationAsk; use App\Models\CourseContentEvaluationForm; +use App\Models\CourseSign; +use App\Models\CourseType; use App\Models\CustomForm; use App\Models\CustomFormField; use App\Models\EmailTemplate; @@ -37,6 +39,8 @@ class CompanyController extends BaseController * tags={"公司管理"}, * summary="参数", * description="", + * @OA\Parameter(name="start_date", in="query", @OA\Schema(type="string"), required=false, description="开始日期"), + * @OA\Parameter(name="end_date", in="query", @OA\Schema(type="string"), required=false, description="结束日期"), * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), * @OA\Response( * response="200", @@ -46,6 +50,9 @@ class CompanyController extends BaseController */ public function config() { + // 如果提供了开始时间和结束时间,则计算统计 + $start_date = request('start_date', CourseType::START_DATE); + $end_date = request('end_date', date('Y-m-d')); // 企业标签 $companiesTags = Company::where('company_tag', '!=', '')->pluck('company_tag'); $companiesTags = $companiesTags->flatten()->implode(','); @@ -56,7 +63,17 @@ class CompanyController extends BaseController }); $companiesTags = array_values($companiesTags); - return $this->success(compact('companiesTags')); + // 累计被投企业数(从起始日期到结束日期) + $course_signs_invested = CourseSign::yhInvestedTotal(CourseType::START_DATE, $end_date, null); + + // 入学后被投企业数量(在指定时间范围内报名的学员所在公司中,在入学后被投的公司数量) + $company_invested_after_enrollment_total = CourseSign::companyInvestedAfterEnrollment($start_date, $end_date, null); + + // 今年范围内被投企业数(在指定时间范围内报名的学员所在公司中,被投时间在年份范围内的公司数量) + $company_invested_year_total = CourseSign::companyInvestedYear($start_date, $end_date, null); + + + return $this->success(compact('companiesTags', 'course_signs_invested', 'company_invested_after_enrollment_total', 'company_invested_year_total')); } @@ -88,11 +105,13 @@ class CompanyController extends BaseController public function index() { $all = request()->all(); - $list = $this->model->with(['users' => function ($query) use ($all) { - $query->whereHas('courseSigns', function ($q) { - $q->where('status', 1); - })->with('courseSigns.course'); - }])->whereHas('users', function ($query) use ($all) { + $list = $this->model->with([ + 'users' => function ($query) use ($all) { + $query->whereHas('courseSigns', function ($q) { + $q->where('status', 1); + })->with('courseSigns.course'); + } + ])->whereHas('users', function ($query) use ($all) { if (isset($all['course_type_id'])) { $query->whereHas('courses', function ($q) use ($all) { $q->where('type', $all['course_type_id']); @@ -211,11 +230,13 @@ class CompanyController extends BaseController if ($validator->fails()) { return $this->fail([ResponseCode::ERROR_PARAMETER, implode(',', $validator->errors()->all())]); } - $detail = $this->model->with(['users' => function ($query) { - $query->whereHas('courseSigns', function ($q) { - $q->where('status', 1); - })->with('courseSigns.course'); - }])->find($all['id']); + $detail = $this->model->with([ + 'users' => function ($query) { + $query->whereHas('courseSigns', function ($q) { + $q->where('status', 1); + })->with('courseSigns.course'); + } + ])->find($all['id']); return $this->success($detail); }