|
|
|
|
@ -183,7 +183,40 @@ class User extends Authenticatable implements Auditable
|
|
|
|
|
public static function updateNo($userId)
|
|
|
|
|
{
|
|
|
|
|
$user = self::find($userId);
|
|
|
|
|
$no = date('Ymd', strtotime($user->created_at)) . str_pad($userId, 6, '0', STR_PAD_LEFT);
|
|
|
|
|
if (!empty($user->no)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
// 获取最早一条审核通过的报名数据
|
|
|
|
|
$courseSigns = CourseSign::with('course')
|
|
|
|
|
->where('user_id', $userId)
|
|
|
|
|
->where('status', 1)
|
|
|
|
|
->orderBy('created_at', 'asc')
|
|
|
|
|
->first();
|
|
|
|
|
if (empty($courseSigns)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (empty($courseSigns->course->start_time)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
// 编号前缀
|
|
|
|
|
$prifix = date('Ymd', strtotime($courseSigns->course->start_time));
|
|
|
|
|
// 获取同一天开始的所有课程
|
|
|
|
|
$course = Course::where('start_time', $courseSigns->course->start_time)->orderBy('created_at', 'asc')->get();
|
|
|
|
|
// 获取同一天开始所有课程的报名信息
|
|
|
|
|
$courseSigns = CourseSign::whereIn('id', function ($query) use ($course) {
|
|
|
|
|
$query->from('course_signs')
|
|
|
|
|
->where('status', 1)
|
|
|
|
|
->whereIn('course_id', $course->pluck('id'))
|
|
|
|
|
->selectRaw('MIN(id)')
|
|
|
|
|
->groupBy('user_id');
|
|
|
|
|
})->whereHas('user', function ($query) {
|
|
|
|
|
$query->whereNull('no');
|
|
|
|
|
})->orderBy('created_at', 'asc')->get();
|
|
|
|
|
// 获取当前用户id在$courseSigns中第几位
|
|
|
|
|
$index = $courseSigns->search(function ($item) use ($user) {
|
|
|
|
|
return $item->user_id == $user->id;
|
|
|
|
|
});
|
|
|
|
|
$no = $prifix . str_pad($index, 3, '0', STR_PAD_LEFT);
|
|
|
|
|
$user->no = $no;
|
|
|
|
|
$user->save();
|
|
|
|
|
return $user->no;
|
|
|
|
|
|