From ba9a48a0e00616f076dc61026989afe29d9dd40b Mon Sep 17 00:00:00 2001
From: "1213317725@qq.com" <1213317725@qq.com>
Date: Wed, 26 Mar 2025 09:54:49 +0800
Subject: [PATCH] 1
---
.../addon/zhjw/views/venues/venues_edit.vue | 23 +++++++-
.../app/adminapi/controller/venues/Venues.php | 13 +++--
.../service/admin/venues/VenuesService.php | 6 +--
niucloud/app/api/controller/member/Member.php | 11 ++++
niucloud/app/api/route/member.php | 2 +-
.../app/service/api/member/MemberService.php | 53 +++++++++++++++++--
6 files changed, 97 insertions(+), 11 deletions(-)
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 "操作成功";
+ }
+
}