master
cody 1 week ago
parent 288d187e01
commit 86ff43e9de

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

Loading…
Cancel
Save