diff --git a/admin/src/addon/zhjw/views/venues/venues_edit.vue b/admin/src/addon/zhjw/views/venues/venues_edit.vue index 0fced6b1..84b286f3 100644 --- a/admin/src/addon/zhjw/views/venues/venues_edit.vue +++ b/admin/src/addon/zhjw/views/venues/venues_edit.vue @@ -47,6 +47,21 @@ + + + + + + + + + + + + + + + @@ -57,6 +72,9 @@ + + + @@ -95,7 +113,10 @@ const initialFormData = { type: '', capacity: 0, available_time: '', - status: '', + status: '', + address:'', + longitude:'', + latitude:'', } const formData: Record = reactive({ ...initialFormData }) diff --git a/niucloud/addon/zhjw/app/adminapi/controller/venues/Venues.php b/niucloud/addon/zhjw/app/adminapi/controller/venues/Venues.php index fff93efd..d015571b 100644 --- a/niucloud/addon/zhjw/app/adminapi/controller/venues/Venues.php +++ b/niucloud/addon/zhjw/app/adminapi/controller/venues/Venues.php @@ -59,8 +59,12 @@ class Venues extends BaseAdminController ["type",""], ["capacity",0], ["available_time",""], - ["status",""] + ["status",""], + ["longitude",""], + ["latitude",""], + ["address",""] ]); + $this->validate($data, 'addon\zhjw\app\validate\venues\Venues.add'); $id = (new VenuesService())->add($data); return success('ADD_SUCCESS', ['id' => $id]); @@ -79,7 +83,10 @@ class Venues extends BaseAdminController ["type",""], ["capacity",0], ["available_time",""], - ["status",""] + ["status",""], + ["longitude",""], + ["latitude",""], + ["address",""], ]); $this->validate($data, 'addon\zhjw\app\validate\venues\Venues.edit'); (new VenuesService())->edit($id, $data); @@ -96,7 +103,7 @@ class Venues extends BaseAdminController return success('DELETE_SUCCESS'); } - + public function getCampusesAll(){ return success(( new VenuesService())->getCampusesAll()); } diff --git a/niucloud/addon/zhjw/app/service/admin/venues/VenuesService.php b/niucloud/addon/zhjw/app/service/admin/venues/VenuesService.php index 8205ce51..5953ebd3 100644 --- a/niucloud/addon/zhjw/app/service/admin/venues/VenuesService.php +++ b/niucloud/addon/zhjw/app/service/admin/venues/VenuesService.php @@ -37,7 +37,7 @@ class VenuesService extends BaseAdminService */ public function getPage(array $where = []) { - $field = 'id,is_deleted,created_by,created_role,created_time,updated_by,updated_role,updated_time,campus_id,name,thumbnail,type,capacity,available_time,status'; + $field = 'id,is_deleted,created_by,created_role,address,created_time,updated_by,updated_role,updated_time,campus_id,name,thumbnail,type,capacity,available_time,status,longitude,latitude'; $order = 'id desc'; $search_model = $this->model->withSearch(["campus_id","name","type","capacity","available_time","status"], $where)->with(['campuses'])->field($field)->order($order); @@ -52,7 +52,7 @@ class VenuesService extends BaseAdminService */ public function getInfo(int $id) { - $field = 'id,is_deleted,created_by,created_role,created_time,updated_by,updated_role,updated_time,campus_id,name,thumbnail,type,capacity,available_time,status'; + $field = 'id,is_deleted,created_by,created_role,address,created_time,updated_by,updated_role,updated_time,campus_id,name,thumbnail,type,capacity,available_time,status,longitude,latitude'; $info = $this->model->field($field)->where([['id', "=", $id]])->with(['campuses'])->findOrEmpty()->toArray(); $info['type'] = strval($info['type']); @@ -97,7 +97,7 @@ class VenuesService extends BaseAdminService return $res; } - + public function getCampusesAll(){ $campusesModel = new Campuses(); return $campusesModel->select()->toArray(); diff --git a/niucloud/app/api/controller/member/Member.php b/niucloud/app/api/controller/member/Member.php index 2238e005..4bd3a45b 100644 --- a/niucloud/app/api/controller/member/Member.php +++ b/niucloud/app/api/controller/member/Member.php @@ -217,5 +217,16 @@ class Member extends BaseApiController return success(( new MemberService() )->member_edit($data)); } + public function ask_for_leave(){ + $data = $this->request->params([ + [ 'reason', '' ], + [ 'file_url', '' ], + [ 'schedules_id', '' ], + [ 'courses_id', '' ] + ]); + + return success(( new MemberService() )->ask_for_leave($data)); + } + } diff --git a/niucloud/app/api/route/member.php b/niucloud/app/api/route/member.php index 78052145..de98ed18 100644 --- a/niucloud/app/api/route/member.php +++ b/niucloud/app/api/route/member.php @@ -130,7 +130,7 @@ Route::group('member', function () { Route::post('member_edit', 'member.Member/member_edit'); - + Route::post('ask_for_leave', 'member.Member/ask_for_leave'); })->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 da78cc9e..e3a9e5bd 100644 --- a/niucloud/app/service/api/member/MemberService.php +++ b/niucloud/app/service/api/member/MemberService.php @@ -299,6 +299,8 @@ class MemberService extends BaseApiService $venue_id = $this->get_venues_ids($data)[0]; $where['c.id'] = $venue_id; } + + $where['a.date_time'] = $data['schedule_date']; $search_model = $schedules ->alias("a") @@ -307,12 +309,13 @@ class MemberService extends BaseApiService ->join(['school_courses' => 'd'],'a.courses_id = d.id','left') ->where($where) ->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"); + ->field("a.id,a.status,b.name as classes_name,a.date_time,a.time_slot,c.name as address,c.address as address_info,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']; + $where['a.schedules_id'] = $item['id']; $item['sign_list'] = Db::name("zhjw_students_sign") ->alias("a") ->join(['school_zhjw_students' => 'b'],'a.students_id = b.id','left') @@ -367,6 +370,13 @@ class MemberService extends BaseApiService $info['hour'] = $diffInHours; + + $dyTime = strtotime(date("H:i")); + if($dyTime > $startTime){ + $info['status'] = 2; + }else{ + $info['status'] = 1; + } return $info; } @@ -388,11 +398,18 @@ class MemberService extends BaseApiService 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'); + $where['a.students_id'] = $member_info['students_id']; + $where['a.status'] = 1; + $search_model = Db::name("zhjw_students_sign") + ->alias("a") + ->join(['school_courses' =>'b'],'a.courses_id = b.id','left') + ->where($where) + ->field("a.*,b.name") + ->order('a.create_time desc'); return $this->pageQuery($search_model); } + public function set_feedback($data){ $member_info = $this->getInfo(); Db::name("feedback")->insert([ @@ -509,5 +526,35 @@ class MemberService extends BaseApiService return "修改成功"; } + public function ask_for_leave(array $data){ + $member_info = $this->getInfo(); + $where['students_id'] = $member_info['students_id']; + $where['schedules_id'] = $data['schedules_id']; + $where['courses_id'] = $data['courses_id']; + $info = Db::name("zhjw_students_sign")->where($where)->find(); + if($info){ + Db::name("zhjw_students_sign")->where($where)->update([ + 'reason' => $data['reason'], + 'file_url' => $data['file_url'], + 'status' => 2, + 'hour' => 0, + 'create_time' => date("Y-m-d H:i:s", time()) + ]); + }else{ + Db::name("zhjw_students_sign")->insert([ + 'students_id' => $member_info['students_id'], + 'schedules_id' => $data['schedules_id'], + 'courses_id' => $data['courses_id'], + 'reason' => $data['reason'], + 'file_url' => $data['file_url'], + 'status' => 2, + 'hour' => 0, + 'create_time' => date("Y-m-d H:i:s", time()) + ]); + } + + return "操作成功"; + } + }