master
cody 4 days ago
parent 1e343f0ae2
commit caae3d6202

@ -297,8 +297,9 @@ class UpdateUserFromCourseSign extends Command
{ {
$user_id = $user->id; $user_id = $user->id;
// 获取该用户的所有报名记录 // 获取该用户的所有报名记录(携带课程及课程类型)
$courseSigns = CourseSign::where('user_id', $user_id) $courseSigns = CourseSign::with('course.typeDetail')
->where('user_id', $user_id)
->whereNotNull('data') ->whereNotNull('data')
->get(); ->get();
@ -309,11 +310,25 @@ class UpdateUserFromCourseSign extends Command
$this->info("找到 {$courseSigns->count()} 条报名记录"); $this->info("找到 {$courseSigns->count()} 条报名记录");
// 如果用户报名了多个课程,并且其中包含课程类型是「高研班」或者「攀峰班」的课程
// 则优先使用这些课程的报名信息更新用户
$targetCourseSigns = $courseSigns;
if ($courseSigns->count() > 1) {
$specialCourseSigns = $courseSigns->filter(function ($sign) {
$typeName = $sign->course->typeDetail->name ?? '';
return in_array($typeName, ['高研班', '攀峰班']);
});
if ($specialCourseSigns->isNotEmpty()) {
$this->info('检测到高研班/攀峰班课程报名记录,将优先使用这些课程的报名信息更新用户');
$targetCourseSigns = $specialCourseSigns;
}
}
// 收集所有需要更新的用户字段 // 收集所有需要更新的用户字段
$userData = []; $userData = [];
$hasCompanyName = false; $hasCompanyName = false;
foreach ($courseSigns as $courseSign) { foreach ($targetCourseSigns as $courseSign) {
if (empty($courseSign->data) || !is_array($courseSign->data)) { if (empty($courseSign->data) || !is_array($courseSign->data)) {
continue; continue;
} }

Loading…
Cancel
Save