|
|
|
|
@ -482,15 +482,39 @@ class CourseSign extends SoftDeletesModel
|
|
|
|
|
public static function rencai($start_date = null, $end_date = null, $course_ids = null, $retList = false)
|
|
|
|
|
{
|
|
|
|
|
$courseSignsQuery = self::getStudentList($start_date, $end_date, 1, $course_ids);
|
|
|
|
|
$courseSigns = $courseSignsQuery->whereHas('course', function ($query) {
|
|
|
|
|
|
|
|
|
|
// 条件1:人才培训课程类型的用户
|
|
|
|
|
$courseSigns1 = $courseSignsQuery->whereHas('course', function ($query) {
|
|
|
|
|
$query->whereHas('typeDetail', function ($q) {
|
|
|
|
|
$q->where('name', '人才培训');
|
|
|
|
|
});
|
|
|
|
|
})->get();
|
|
|
|
|
|
|
|
|
|
// 条件2:data 字段中 name="个人荣誉" 且 value != "其他" 的用户
|
|
|
|
|
$courseSigns2 = $courseSignsQuery->get()->filter(function ($courseSign) {
|
|
|
|
|
if (empty($courseSign->data) || !is_array($courseSign->data)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
foreach ($courseSign->data as $item) {
|
|
|
|
|
if (isset($item['name']) && $item['name'] === '个人荣誉') {
|
|
|
|
|
if (isset($item['value']) && $item['value'] !== '其他') {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 合并两个条件的结果(或关系),并去重 user_id
|
|
|
|
|
$allUserIds = $courseSigns1->pluck('user_id')
|
|
|
|
|
->merge($courseSigns2->pluck('user_id'))
|
|
|
|
|
->unique()
|
|
|
|
|
->filter();
|
|
|
|
|
|
|
|
|
|
if ($retList) {
|
|
|
|
|
return User::whereIn('id', $courseSigns->pluck('user_id'))->get();
|
|
|
|
|
return User::whereIn('id', $allUserIds)->get();
|
|
|
|
|
} else {
|
|
|
|
|
return User::whereIn('id', $courseSigns->pluck('user_id'))->count();
|
|
|
|
|
return $allUserIds->count();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|