|
@@ -15,6 +15,7 @@ use App\Models\Setting;
|
|
use App\Models\Student;
|
|
use App\Models\Student;
|
|
use App\Models\StudentCourse;
|
|
use App\Models\StudentCourse;
|
|
use App\Models\StudentCourseTeacher;
|
|
use App\Models\StudentCourseTeacher;
|
|
|
|
+use App\Models\Teacher;
|
|
use App\Models\WeChatUser;
|
|
use App\Models\WeChatUser;
|
|
use Carbon\Carbon;
|
|
use Carbon\Carbon;
|
|
use EasyWeChat\Factory;
|
|
use EasyWeChat\Factory;
|
|
@@ -212,7 +213,12 @@ class ApiController extends Controller
|
|
$result = 'ok';
|
|
$result = 'ok';
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- return response()->json(['status' => 'success', 'result' => $result]);
|
|
|
|
|
|
+ $now = Carbon::today()->toDateTimeString();
|
|
|
|
+ $checkCard = CheckCard::where([
|
|
|
|
+ ['begin_date_time', '>', $now]
|
|
|
|
+ ])->whereNull('end_date_time')->orderBy('begin_date_time', 'desc')->first();
|
|
|
|
+
|
|
|
|
+ return response()->json(['status' => 'success', 'result' => $result, 'checkCard' => $checkCard]);
|
|
}
|
|
}
|
|
|
|
|
|
public function startCheckCard(Request $request)
|
|
public function startCheckCard(Request $request)
|
|
@@ -270,7 +276,9 @@ class ApiController extends Controller
|
|
if(empty($share_text) || empty($share_text->value)) {
|
|
if(empty($share_text) || empty($share_text->value)) {
|
|
return response()->json(['status' => 'fail', 'info' => '找不到分享的文字!']);
|
|
return response()->json(['status' => 'fail', 'info' => '找不到分享的文字!']);
|
|
}
|
|
}
|
|
- $text = str_replace_array('{days}', [$items->count() + 1], $share_text->value);
|
|
|
|
|
|
+ $now = Carbon::now()->toDateString();
|
|
|
|
+ $count = $items->contains($now) ? $items->count() : $items->count() + 1;
|
|
|
|
+ $text = str_replace_array('{days}', [$count], $share_text->value);
|
|
$share_text_pos = Setting::where('key', 'share_text_pos')->first();
|
|
$share_text_pos = Setting::where('key', 'share_text_pos')->first();
|
|
if(empty($share_text_pos) || empty($share_text_pos->value) || count($pos = explode(',', $share_text_pos->value)) < 2) {
|
|
if(empty($share_text_pos) || empty($share_text_pos->value) || count($pos = explode(',', $share_text_pos->value)) < 2) {
|
|
return response()->json(['status' => 'fail', 'info' => '分享文字位置错误或未设置!']);
|
|
return response()->json(['status' => 'fail', 'info' => '分享文字位置错误或未设置!']);
|
|
@@ -297,6 +305,9 @@ class ApiController extends Controller
|
|
$item->url = url($item->content);
|
|
$item->url = url($item->content);
|
|
}
|
|
}
|
|
$article_list = Content::where('type', 4)->orderBy('sort')->offset($article_offset)->limit(15)->get();
|
|
$article_list = Content::where('type', 4)->orderBy('sort')->offset($article_offset)->limit(15)->get();
|
|
|
|
+ foreach($article_list as $item) {
|
|
|
|
+ $item->publish_date = substr($item->updated_at, 0, 10);
|
|
|
|
+ }
|
|
return response()->json(['status' => 'success', 'video_list' => $video_list, 'article_list' => $article_list, 'type' => $request->input('type')]);
|
|
return response()->json(['status' => 'success', 'video_list' => $video_list, 'article_list' => $article_list, 'type' => $request->input('type')]);
|
|
} else if($request->input('type') == 'video') {
|
|
} else if($request->input('type') == 'video') {
|
|
$list = Content::where('type', 3)->orderBy('sort')->offset($video_offset)->limit(15)->get();
|
|
$list = Content::where('type', 3)->orderBy('sort')->offset($video_offset)->limit(15)->get();
|
|
@@ -310,6 +321,9 @@ class ApiController extends Controller
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
$list = Content::where('type', 4)->orderBy('sort')->offset($article_offset)->limit(15)->get();
|
|
$list = Content::where('type', 4)->orderBy('sort')->offset($article_offset)->limit(15)->get();
|
|
|
|
+ foreach($list as $item) {
|
|
|
|
+ $item->publish_date = substr($item->updated_at, 0, 10);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
return response()->json(['status' => 'success', 'list' => $list, 'type' => $request->input('type')]);
|
|
return response()->json(['status' => 'success', 'list' => $list, 'type' => $request->input('type')]);
|
|
@@ -341,20 +355,7 @@ class ApiController extends Controller
|
|
$student_course->short_leave_times = $student->short_leave_times;
|
|
$student_course->short_leave_times = $student->short_leave_times;
|
|
$student_course->long_leave_times = $student->long_leave_times;
|
|
$student_course->long_leave_times = $student->long_leave_times;
|
|
|
|
|
|
- $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', '=', $student->id],
|
|
|
|
- ['created_at', '>=', $this_week_begin],
|
|
|
|
- ['created_at', '<', $this_week_end],
|
|
|
|
- ])->first();
|
|
|
|
- $is_new = empty($tmp) ? true : false;
|
|
|
|
|
|
+ $is_new = $student->getIsNew();
|
|
|
|
|
|
return response()->json(['status' => 'success', 'courseInfo' => $student_course, 'is_new' => $is_new]);
|
|
return response()->json(['status' => 'success', 'courseInfo' => $student_course, 'is_new' => $is_new]);
|
|
}
|
|
}
|
|
@@ -428,6 +429,9 @@ class ApiController extends Controller
|
|
if(empty($request->input('student_id')) || empty($student = Student::find($request->input('student_id')))) {
|
|
if(empty($request->input('student_id')) || empty($student = Student::find($request->input('student_id')))) {
|
|
return response()->json(['status' => 'fail', 'info' => '找不到学员']);
|
|
return response()->json(['status' => 'fail', 'info' => '找不到学员']);
|
|
}
|
|
}
|
|
|
|
+ if(empty($request->input('type')) || !in_array($request->input('type'), [1, 2])) {
|
|
|
|
+ return response()->json(['status' => 'fail', 'info' => '找不到学员']);
|
|
|
|
+ }
|
|
$student_course = StudentCourse::where('student_id', $student->id)->first();
|
|
$student_course = StudentCourse::where('student_id', $student->id)->first();
|
|
if(empty($student_course)) {
|
|
if(empty($student_course)) {
|
|
return response()->json(['status' => 'fail', 'info' => '暂无课程']);
|
|
return response()->json(['status' => 'fail', 'info' => '暂无课程']);
|
|
@@ -436,6 +440,7 @@ class ApiController extends Controller
|
|
'student_id' => $student->id,
|
|
'student_id' => $student->id,
|
|
'course_id' => $student_course->course_id,
|
|
'course_id' => $student_course->course_id,
|
|
'student_course_id' => $student_course->id,
|
|
'student_course_id' => $student_course->id,
|
|
|
|
+ 'type' => $request->input('type'),
|
|
'date' => $request->input('date'),
|
|
'date' => $request->input('date'),
|
|
'days' => $request->input('days'),
|
|
'days' => $request->input('days'),
|
|
'remark' => $request->input('remark')
|
|
'remark' => $request->input('remark')
|
|
@@ -448,8 +453,45 @@ class ApiController extends Controller
|
|
|
|
|
|
public function getRemarkTitles(Request $request)
|
|
public function getRemarkTitles(Request $request)
|
|
{
|
|
{
|
|
- $titles = RemarkTitle::where('status', 2)->get();
|
|
|
|
- return response()->json(['status' => 'success', 'titles' => $titles]);
|
|
|
|
|
|
+ if(empty($request->input('id')) || empty($student = Student::find($request->input('id')))) {
|
|
|
|
+ return response()->json(['status' => 'fail', 'info' => '找不到学员']);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(empty($student_course = StudentCourse::where('student_id', $student->id)->first())) {
|
|
|
|
+ return response()->json(['status' => 'fail', 'info' => '找不到课程']);
|
|
|
|
+ }
|
|
|
|
+ if($student_course->assign_teacher == 1) {
|
|
|
|
+ $teachers = Teacher::all();
|
|
|
|
+ } else {
|
|
|
|
+ $teacher_ids = StudentCourseTeacher::where('student_course_id', $student_course->id)->get()->pluck('teacher_id')->unique();
|
|
|
|
+ $teachers = Teacher::whereIn('id', $teacher_ids)->get();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $is_new = $student->getIsNew();
|
|
|
|
+ if($is_new) {
|
|
|
|
+ $titles = RemarkTitle::where('status', 2)->get();
|
|
|
|
+ return response()->json(['status' => 'success', 'titles' => $titles, 'teachers' => $teachers, 'is_new' => $is_new]);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ foreach($teachers as $teacher) {
|
|
|
|
+ $remark = Remark::where([
|
|
|
|
+ ['student_id', '=', $student->id],
|
|
|
|
+ ['teacher_id', '=', $teacher->id],
|
|
|
|
+ ])->first();
|
|
|
|
+ if(!empty($remark)) {
|
|
|
|
+ $remark_time = RemarkDetail::where([
|
|
|
|
+ ['remark_id', '=', $remark->id],
|
|
|
|
+ ['teacher_id', '=', $teacher->id],
|
|
|
|
+ ])->orderBy('updated_at', 'desc')->first();
|
|
|
|
+ $teacher->remark_time = empty($remark_time) ? '' : substr($remark_time->updated_at, 0, 10);
|
|
|
|
+ $teacher->average_score = $student->getThisWeekAverageScore($remark);
|
|
|
|
+ } else {
|
|
|
|
+ $teacher->remark_time = '';
|
|
|
|
+ $teacher->average_score = 0;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return response()->json(['status' => 'success', 'titles' => [], 'teachers' => $teachers, 'is_new' => $is_new]);
|
|
}
|
|
}
|
|
|
|
|
|
public function remarkTeacher(Request $request)
|
|
public function remarkTeacher(Request $request)
|
|
@@ -462,26 +504,39 @@ class ApiController extends Controller
|
|
if(empty($student_course)) {
|
|
if(empty($student_course)) {
|
|
return response()->json(['status' => 'fail', 'info' => '找不到课程']);
|
|
return response()->json(['status' => 'fail', 'info' => '找不到课程']);
|
|
}
|
|
}
|
|
- $student_course_teacher = StudentCourseTeacher::where('student_id', $student->id)->first();
|
|
|
|
- if(empty($student_course_teacher)) {
|
|
|
|
- return response()->json(['status' => 'fail', 'info' => '找不到讲师']);
|
|
|
|
- }
|
|
|
|
- $remarks = $request->except(['student_id']);
|
|
|
|
- foreach($remarks as $key => $value) {
|
|
|
|
- $remark_title = RemarkTitle::find($key);
|
|
|
|
- if(!empty($remark_title) && !empty($value) && $value != 'null') {
|
|
|
|
- $res = Remark::create([
|
|
|
|
- 'course_id' => $student_course->course_id,
|
|
|
|
- 'teacher_id' => $student_course_teacher->teacher_id,
|
|
|
|
- 'student_id' => $student->id,
|
|
|
|
- ]);
|
|
|
|
- RemarkDetail::create([
|
|
|
|
- 'remark_id' => $res->id,
|
|
|
|
- 'question' => $remark_title->name,
|
|
|
|
- 'score' => $value,
|
|
|
|
- ]);
|
|
|
|
- } else {
|
|
|
|
- return response()->json(['status' => 'fail', 'info' => '评价不能为空']);
|
|
|
|
|
|
+// $student_course_teacher = StudentCourseTeacher::where('student_id', $student->id)->first();
|
|
|
|
+// if(empty($student_course_teacher)) {
|
|
|
|
+// return response()->json(['status' => 'fail', 'info' => '找不到讲师']);
|
|
|
|
+// }
|
|
|
|
+// $remarks = $request->except(['student_id']);
|
|
|
|
+ $data = $request->input('data');
|
|
|
|
+ if(!is_array($data)) {
|
|
|
|
+ return response()->json(['status' => 'fail', 'info' => '参数错误']);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ foreach($data as $teacher_key => $teacher_value) {
|
|
|
|
+ $teacher = Teacher::find($teacher_key);
|
|
|
|
+ if(empty($teacher) || !is_array($teacher_value)) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ $remark = Remark::firstOrCreate([
|
|
|
|
+ 'teacher_id' => $teacher->id,
|
|
|
|
+ 'student_id' => $student->id
|
|
|
|
+ ], [
|
|
|
|
+ 'course_id' => $student_course->course_id
|
|
|
|
+ ]);
|
|
|
|
+ $remark->updated_at = Carbon::now()->toDateTimeString();
|
|
|
|
+ $remark->save();
|
|
|
|
+ foreach($teacher_value as $title_key => $title_value) {
|
|
|
|
+ $remark_title = RemarkTitle::find($title_key);
|
|
|
|
+ if(!empty($remark_title)) {
|
|
|
|
+ RemarkDetail::create([
|
|
|
|
+ 'remark_id' => $remark->id,
|
|
|
|
+ 'teacher_id' => $teacher->id,
|
|
|
|
+ 'question' => $remark_title->name,
|
|
|
|
+ 'score' => $title_value,
|
|
|
|
+ ]);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|