@ -14,6 +14,7 @@ namespace app\service\api\member;
use addon\zhjw\app\model\assignments\Assignments;
use addon\zhjw\app\model\classes\Classes;
use addon\zhjw\app\model\courses\Courses;
use addon\zhjw\app\model\schedules\Schedules;
use addon\zhjw\app\model\staff\Staff;
use addon\zhjw\app\model\students\Students;
use addon\zhjw\app\model\timetables\Timetables;
@ -289,33 +290,29 @@ class MemberService extends BaseApiService
$member_info = $this->getInfo();
$venues = new Venues();
$classes = new Classes();
$schedules = new Schedules();
$where = [];
if($data['venue_id']){
$venue_id = $data['venue_id'];
$where['a.venue_ id'] = $venue_id;
$where['c. id'] = $venue_id;
}else{
$venue_id = $this->get_venues_ids($data)[0];
$where['a.venue_ id'] = $venue_id;
$where['c. id'] = $venue_id;
}
$search_model = $class es
$where['a.date_time'] = $data['schedule_date'];
$search_model = $s chedu les
->alias("a")
->join(['school_venues' => 'b'],'a.venue_id = b.id','left')
->join(['school_timetables' => 'c'],'a.id = c.class_id','left')
->join(['school_courses' => 'd'],'c.courses_id = d.id','left')
->where('a.start_date', '< =', $data['schedule_date'])
->where('a.end_date', '>=', $data['schedule_date'])
->join(['school_classes' => 'b'],'a.class_id = b.id','left')
->join(['school_venues' => 'c'],'b.venue_id = c.id','left')
->join(['school_courses' => 'd'],'a.courses_id = d.id','left')
->where($where)
->where('a.status','< ',3)
->whereRaw("FIND_IN_SET(?, a.max_students)", [$member_info['students_id']])
->field("a.id,a.status,a.venue_id,a.start_date,a.end_date,a.max_students,a.name,b.name as address,d.name as courses_name,
LENGTH(a.max_students) - LENGTH(REPLACE(a.max_students, ',', '')) + 1 as students_count,d.id as courses_id
")
->group("a.venue_id");
->whereRaw("FIND_IN_SET(?, b.max_students)", [$member_info['students_id']])
->field("a.id,b.name as classes_name,a.date_time,a.time_slot,c.name as address,d.name as courses_name,d.id as courses_id,LENGTH(b.max_students) - LENGTH(REPLACE(b.max_students, ',', '')) + 1 as students_count,b.max_students");
$list = $this->pageQuery($search_model, function ($item) use($member_info){
$where['a.students_id'] = $member_info['students_id'];
$where['a.courses_id'] = $item['courses_id'];
$item['sign_list'] = Db::name("zhjw_students_sign")
->alias("a")
->join(['school_zhjw_students' => 'b'],'a.students_id = b.id','left')
@ -329,8 +326,8 @@ class MemberService extends BaseApiService
$has_sign = Db::name("zhjw_students_sign")->where(['courses_id' => $item['courses_id']])->count();
$item['has_sign_count'] = $has_sign;
$item['date'] = formatTimeRange($item['start_date'], $item['end_date']) ;
$time = explode(",",$item['time_slot']);
$item['date'] = $item['date_time'].' '.$time[0].' - '.$time[1] ;
});
@ -338,6 +335,41 @@ class MemberService extends BaseApiService
return ['list' => $list,'venues_info' => $info];
}
public function course_info($data){
$member_info = $this->getInfo();
$schedules = new Schedules();
$where = [];
$where['a.id'] = $data['id'];
$info = $schedules
->alias("a")
->join(['school_classes' => 'b'],'a.class_id = b.id','left')
->join(['school_venues' => 'c'],'b.venue_id = c.id','left')
->join(['school_courses' => 'd'],'a.courses_id = d.id','left')
->join(['school_staff' => 'e'],'a.staff_id = e.id','left')
->where($where)
->field("
a.id,b.name as classes_name,a.date_time,a.time_slot,c.name as address,
d.name as courses_name,
d.id as courses_id,LENGTH(b.max_students) - LENGTH(REPLACE(b.max_students, ',', '')) + 1 as students_count,
b.max_students,e.name as staff_name,e.phone as staff_phone
")
->find()->toArray();
$time = explode(",",$info['time_slot']);
$startTime = strtotime($time[0]);
$endTime = strtotime($time[1]);
$diffInSeconds = $endTime - $startTime;
$diffInHours = $diffInSeconds / 3600;
$info['hour'] = $diffInHours;
return $info;
}
public function getDate()
{
$dates = [];