|
|
|
|
@ -297,8 +297,9 @@ class UpdateUserFromCourseSign extends Command
|
|
|
|
|
{
|
|
|
|
|
$user_id = $user->id;
|
|
|
|
|
|
|
|
|
|
// 获取该用户的所有报名记录
|
|
|
|
|
$courseSigns = CourseSign::where('user_id', $user_id)
|
|
|
|
|
// 获取该用户的所有报名记录(携带课程及课程类型)
|
|
|
|
|
$courseSigns = CourseSign::with('course.typeDetail')
|
|
|
|
|
->where('user_id', $user_id)
|
|
|
|
|
->whereNotNull('data')
|
|
|
|
|
->get();
|
|
|
|
|
|
|
|
|
|
@ -309,11 +310,25 @@ class UpdateUserFromCourseSign extends Command
|
|
|
|
|
|
|
|
|
|
$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 = [];
|
|
|
|
|
$hasCompanyName = false;
|
|
|
|
|
|
|
|
|
|
foreach ($courseSigns as $courseSign) {
|
|
|
|
|
foreach ($targetCourseSigns as $courseSign) {
|
|
|
|
|
if (empty($courseSign->data) || !is_array($courseSign->data)) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|