|
|
|
|
@ -383,58 +383,6 @@ class CourseSign extends SoftDeletesModel
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 入学后上市公司数量(在指定时间范围内报名的学员所在公司中,在入学后上市的公司数量)
|
|
|
|
|
* @param string $start_date 开始日期
|
|
|
|
|
* @param string $end_date 结束日期
|
|
|
|
|
* @param array|null $course_ids 课程ID数组,不传则统计所有课程
|
|
|
|
|
* @param bool $retList 是否返回列表,false返回数量,true返回列表
|
|
|
|
|
* @return int|array
|
|
|
|
|
*/
|
|
|
|
|
public static function companyMarketAfterEnrollment($start_date, $end_date, $course_ids = null, $retList = false)
|
|
|
|
|
{
|
|
|
|
|
$courseSignsQuery = self::getStudentList($start_date, $end_date, null, $course_ids);
|
|
|
|
|
$courseSignsForStock = $courseSignsQuery->with(['user.company', 'course'])->get();
|
|
|
|
|
$companiesAfterEnrollment = [];
|
|
|
|
|
foreach ($courseSignsForStock as $sign) {
|
|
|
|
|
if ($sign->user && $sign->user->company && $sign->user->company->company_market == 1) {
|
|
|
|
|
// 入学时间:使用参与课程的课程开始时间(course->start_date),不使用报名时间(created_at)
|
|
|
|
|
$enrollmentDate = null;
|
|
|
|
|
if ($sign->course && $sign->course->start_date) {
|
|
|
|
|
$enrollmentDate = \Carbon\Carbon::parse($sign->course->start_date)->format('Y-m-d');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 如果没有课程开始时间,跳过这条记录
|
|
|
|
|
if (!$enrollmentDate) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$stockDate = $sign->user->company->stock_date;
|
|
|
|
|
// 上市时间 >= 课程开始时间(入学时间),说明是入学后上市
|
|
|
|
|
if ($stockDate && $stockDate >= $enrollmentDate) {
|
|
|
|
|
$companyId = $sign->user->company->id;
|
|
|
|
|
if (!isset($companiesAfterEnrollment[$companyId])) {
|
|
|
|
|
$companiesAfterEnrollment[$companyId] = [
|
|
|
|
|
'company' => $sign->user->company,
|
|
|
|
|
'first_enrollment_date' => $enrollmentDate, // 首次入学时间(课程开始时间)
|
|
|
|
|
'stock_date' => $stockDate,
|
|
|
|
|
'users' => [],
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
if ($retList) {
|
|
|
|
|
$companiesAfterEnrollment[$companyId]['users'][] = $sign->user;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($retList) {
|
|
|
|
|
return $companiesAfterEnrollment;
|
|
|
|
|
} else {
|
|
|
|
|
return count($companiesAfterEnrollment);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 当前入学后被投企业数量(被投时间在指定时间范围内,且学员入学时间小于等于被投时间的公司数量)
|
|
|
|
|
* @param string $start_date 开始日期
|
|
|
|
|
|