于宏哲PHP 1 year ago
parent
commit
ba9a48a0e0
  1. 23
      admin/src/addon/zhjw/views/venues/venues_edit.vue
  2. 13
      niucloud/addon/zhjw/app/adminapi/controller/venues/Venues.php
  3. 6
      niucloud/addon/zhjw/app/service/admin/venues/VenuesService.php
  4. 11
      niucloud/app/api/controller/member/Member.php
  5. 2
      niucloud/app/api/route/member.php
  6. 53
      niucloud/app/service/api/member/MemberService.php

23
admin/src/addon/zhjw/views/venues/venues_edit.vue

@ -47,6 +47,21 @@
<el-form-item :label="t('availableTime')" prop="available_time">
<el-input v-model="formData.available_time" clearable :placeholder="t('availableTimePlaceholder')" class="input-width" />
</el-form-item>
<el-form-item label="经度" prop="address">
<el-input v-model="formData.address" clearable placeholder="经度" class="input-width" />
</el-form-item>
<el-form-item label="经度" prop="longitude">
<el-input v-model="formData.longitude" clearable placeholder="经度" class="input-width" />
</el-form-item>
<el-form-item label="纬度" prop="latitude">
<el-input v-model="formData.latitude" clearable placeholder="纬度" class="input-width" />
</el-form-item>
<el-form-item :label="t('status')" prop="status">
<el-radio-group v-model="formData.status" :placeholder="t('statusPlaceholder')">
@ -57,6 +72,9 @@
</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
</el-card>
@ -95,7 +113,10 @@ const initialFormData = {
type: '',
capacity: 0,
available_time: '',
status: '',
status: '',
address:'',
longitude:'',
latitude:'',
}
const formData: Record<string, any> = reactive({ ...initialFormData })

13
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());
}

6
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();

11
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));
}
}

2
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);

53
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 "操作成功";
}
}

Loading…
Cancel
Save