marry_list = collect([ ['key' => 1, 'value' => 1, 'show_value' => '未婚'], ['key' => 2, 'value' => 2, 'show_value' => '已婚'], // ['key' => 3, 'value' => 3, 'show_value' => '离婚'], ]); } public function getMarryList() { return $this->marry_list; } public function getBindPhone() { return $this['bind_phone'] == 2 ? '已绑定' : '未绑定'; } public function getMarry($key = null) { $key = empty($key) ? $this['marry'] : 1; $item = $this->marry_list->where('key', $key)->first(); return empty($item) ? '未婚' : $item['show_value']; } public function course() { return $this->belongsTo('App\Models\Course'); } public function getCheckCardDates() { return CheckCard::where('student_id', $this['id'])->whereNotNull('begin_date_time')->whereNotNull('end_date_time')->get()->pluck('begin_date_time')->map(function ($item) { return substr($item, 0, 10); })->unique(); } public function getStudentCourse() { return StudentCourse::where('student_id', $this['id'])->first(); } public function getCourseInfo() { $student_course = StudentCourse::where('student_id', $this['id'])->first(); if(empty($student_course)) { return [ 'course_name' => '', 'apply_date' => '', 'end_date' => '', 'teacher_names' => '' ]; } $course = Course::find($student_course->course_id); if(empty($course)) { $course_name = ''; } else { $course_name = $course->name; } $apply_date = $student_course->apply_date; if(empty($apply_date) || empty($student_course->duration)) { $end_date = ''; } else { $end_date = Carbon::createFromTimestamp(strtotime($apply_date))->addDays($student_course->duration)->toDateString(); } $teacher_names = $student_course->getTeacherFullNames(); return [ 'course_name' => $course_name, 'apply_date' => $apply_date, 'end_date' => $end_date, 'teacher_names' => $teacher_names ]; } public function getCourseName() { $student_course = StudentCourse::where('student_id', $this['id'])->first(); if(empty($student_course)) return ''; $course = Course::find($student_course->course_id); return empty($course) ? '' : $course->name; } public function getIsNew() { $today = Carbon::today(); $this_week_begin = null; while($today->dayOfWeekIso != 1) { $today = $today->subDay(); } $this_week_begin = $today->toDateTimeString(); $this_week_end = $today->addDays(7)->toDateTimeString(); $tmp = Remark::where([ ['student_id', '=', $this['id']], ['created_at', '>=', $this_week_begin], ['created_at', '<', $this_week_end], ])->first(); return empty($tmp) ? true : false; } public function getThisWeekAverageScore(Remark $remark) { $today = Carbon::today(); $this_week_begin = null; while($today->dayOfWeekIso != 1) { $today = $today->subDay(); } $this_week_begin = $today->toDateTimeString(); return RemarkDetail::where([ ['remark_id', '=', $remark['id']], ['created_at', '>=', $this_week_begin], ])->get()->avg('score'); } }