master
cody 2 weeks ago
parent a22eb8cad7
commit 93676a6f67

@ -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();
// 条件2data 字段中 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();
}
}

Loading…
Cancel
Save