diff --git a/admin/.env.development b/admin/.env.development index 6a50c8f1..a9c984b0 100644 --- a/admin/.env.development +++ b/admin/.env.development @@ -2,7 +2,7 @@ VITE_APP_BASE_URL='http://zhjw.cc/adminapi/' # 图片服务器地址 -VITE_IMG_DOMAIN='http://zhjw.cc' +VITE_IMG_DOMAIN='http://146.56.228.75:20021' # 请求时header中token的参数名 VITE_REQUEST_HEADER_TOKEN_KEY='token' \ No newline at end of file diff --git a/niucloud/addon/zhjw/app/adminapi/route/route.php b/niucloud/addon/zhjw/app/adminapi/route/route.php index bc810dd0..e881c33a 100644 --- a/niucloud/addon/zhjw/app/adminapi/route/route.php +++ b/niucloud/addon/zhjw/app/adminapi/route/route.php @@ -450,3 +450,27 @@ Route::group('zhjw', function () { AdminLog::class ]); // USER_CODE_END -- classes + +// USER_CODE_BEGIN -- feedback + +Route::group('zhjw', function () { + + //意见反馈列表 + Route::get('feedback', 'addon\zhjw\app\adminapi\controller\feedback\Feedback@lists'); + //意见反馈详情 + Route::get('feedback/:id', 'addon\zhjw\app\adminapi\controller\feedback\Feedback@info'); + //添加意见反馈 + Route::post('feedback', 'addon\zhjw\app\adminapi\controller\feedback\Feedback@add'); + //编辑意见反馈 + Route::put('feedback/:id', 'addon\zhjw\app\adminapi\controller\feedback\Feedback@edit'); + //删除意见反馈 + Route::delete('feedback/:id', 'addon\zhjw\app\adminapi\controller\feedback\Feedback@del'); + + Route::get('students_all','addon\zhjw\app\adminapi\controller\feedback\Feedback@getStudentsAll'); + +})->middleware([ + AdminCheckToken::class, + AdminCheckRole::class, + AdminLog::class +]); +// USER_CODE_END -- feedback diff --git a/niucloud/app/api/controller/member/Member.php b/niucloud/app/api/controller/member/Member.php index 3c1f9a62..17442df1 100644 --- a/niucloud/app/api/controller/member/Member.php +++ b/niucloud/app/api/controller/member/Member.php @@ -50,7 +50,7 @@ class Member extends BaseApiController [ 'field', $field ], ]); $data[ $field ] = $data[ 'value' ]; - $this->validate($data, 'app\validate\member\Member.modify'); +// $this->validate($data, 'app\validate\member\Member.modify'); ( new MemberService() )->modify($field, $data[ 'value' ]); return success('MODIFY_SUCCESS'); } @@ -142,4 +142,17 @@ class Member extends BaseApiController return success(( new MemberService() )->course_list($data)); } + //课时列表 + public function students_sign_list(){ + return success(( new MemberService() )->students_sign_list()); + } + + public function set_feedback(){ + $data = $this->request->params([ + [ 'content', '' ], + ['images',''], + ['mailbox',''] + ]); + return success(( new MemberService() )->set_feedback($data)); + } } diff --git a/niucloud/app/api/route/member.php b/niucloud/app/api/route/member.php index 31503957..823f6859 100644 --- a/niucloud/app/api/route/member.php +++ b/niucloud/app/api/route/member.php @@ -110,6 +110,10 @@ Route::group('member', function () { Route::post('course_list', 'member.Member/course_list'); + Route::post('students_sign_list', 'member.Member/students_sign_list'); + + Route::post('set_feedback', 'member.Member/set_feedback'); + })->middleware(ApiChannel::class) ->middleware(ApiCheckToken::class, true) ->middleware(ApiLog::class); diff --git a/niucloud/app/service/api/member/MemberService.php b/niucloud/app/service/api/member/MemberService.php index b55f3876..7a6d9c8e 100644 --- a/niucloud/app/service/api/member/MemberService.php +++ b/niucloud/app/service/api/member/MemberService.php @@ -72,7 +72,22 @@ class MemberService extends BaseApiService ->field($field) ->append(['sex_name']) ->findOrEmpty()->toArray(); - $info['students_id'] = (new Students())->where(['user_id' => $this->member_id])->value('id'); + $data = (new Students())->where(['user_id' => $this->member_id])->find(); + $info['students_id'] = $data['id']; + $info['name'] = $data['name'] ?? ''; + + //课程 + $classes = new Classes(); + + $classes_list = $classes + ->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') + ->whereRaw("FIND_IN_SET(?, a.max_students)", [$info['students_id']]) + ->group("d.id") + ->column("d.name"); + $info['classes_list'] = implode(",", $classes_list); return $info; } @@ -199,8 +214,6 @@ class MemberService extends BaseApiService $member_info = $this->getInfo(); $venues = new Venues(); $classes = new Classes(); - $timetables = new Timetables(); - $courses = new Courses(); $classes_list = $classes ->alias("a") @@ -210,7 +223,7 @@ class MemberService extends BaseApiService ->where('a.start_date', '<=', $data['schedule_date']) ->where('a.end_date', '>=', $data['schedule_date']) ->whereRaw("FIND_IN_SET(?, a.max_students)", [$member_info['students_id']]) - ->field("a.id,a.venue_id,a.start_date,a.end_date,a.max_students,a.name,b.name as address,d.name as courses_name, + ->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") @@ -221,6 +234,7 @@ class MemberService extends BaseApiService $groupedClassesList = []; + $venue_ids = []; foreach ($classes_list as $item) { $has_sign = Db::name("zhjw_students_sign") @@ -233,40 +247,36 @@ class MemberService extends BaseApiService $item['has_sign_list'] = $has_sign; $venueId = $item['venue_id']; + $venue_ids[] = $venueId; if (!isset($groupedClassesList[$venueId])) { $groupedClassesList[$venueId] = []; } $groupedClassesList[$venueId][] = $item; } + $venue_ids = array_unique($venue_ids); + $venue_list = $venues->where('id','in',$venue_ids)->select()->toArray(); + return ['classes_list' => $groupedClassesList, 'venue_list' => $venue_list]; - return $groupedClassesList; - - - $list = $venues->order("id desc")->select()->toArray(); - - foreach ($list as $k=>$v){ - $list[$k]['list'] = []; - $classes_list = $classes->where(['venue_id' => $v['id']])->select(); - if($classes_list){ - foreach ($classes_list as $k1=>$v1){ - $timetables_info = $timetables->where(['class_id' => $v1['id'],'schedule_date' => $data['schedule_date']])->find(); - $courses_info = $courses->where(['id' => $timetables_info['courses_id']])->find(); - if($timetables_info and $courses_info){ - $info = [ - 'bj' => $v1['name'], - 'status' => $v1['status'], - 'courses_info' => $courses_info, - 'datetime' => $data['schedule_date'], - 'address' => '', - 'name' => $courses_info['name'] - ]; - $list[$k]['list'][] = $info; - } - - } - } - } + } - return $list; + public function students_sign_list(){ + $member_info = $this->getInfo(); + $where['students_id'] = $member_info['students_id']; + $search_model = Db::name("zhjw_students_sign")->where($where)->order('create_time desc'); + return $this->pageQuery($search_model); } + + public function set_feedback($data){ + $member_info = $this->getInfo(); + Db::name("feedback")->insert([ + 'students_id' => $member_info['students_id'], + 'content' => $data['content'], + 'images' => $data['images'], + 'mailbox' => $data['mailbox'], + 'create_time' => date("Y-m-d H:i:s", time()), + ]); + return true; + } + + }