model = new Venue(); } /** * 获取场地列表 * @param array $where * @return array */ public function getPage(array $where = []) { $field = 'id,campus_id,venue_name,capacity,availability_status,time_range_type,time_range_start,time_range_end,fixed_time_ranges,created_at,updated_at,deleted_at'; $order = 'updated_at desc'; $search_model = $this->model->withSearch(["campus_id", "venue_name", "capacity", "availability_status", "time_range_type", "created_at", "updated_at"], $where)->with(['campus'])->field($field)->order($order); $list = $this->pageQuery($search_model); return $list; } /** * 获取场地信息 * @param int $id * @return array */ public function getInfo(int $id) { $field = 'id,campus_id,venue_name,capacity,availability_status,time_range_type,time_range_start,time_range_end,fixed_time_ranges,created_at,updated_at,deleted_at'; $info = $this->model->field($field)->where([['id', "=", $id]])->with(['campus'])->findOrEmpty()->toArray(); $info['availability_status'] = strval($info['availability_status']); $info['time_range_type'] = strval($info['time_range_type']); $info['fixed_time_ranges'] = json_decode($info['fixed_time_ranges'], true); return $info; } /** * 添加场地 * @param array $data * @return mixed */ public function add(array $data) { if ($data['time_range_type'] === 'fixed') { $data['fixed_time_ranges'] = json_encode($data['fixed_time_ranges']); } $res = $this->model->create($data); return $res->id; } /** * 场地编辑 * @param int $id * @param array $data * @return bool */ public function edit(int $id, array $data) { if ($data['time_range_type'] === 'fixed') { $data['fixed_time_ranges'] = json_encode($data['fixed_time_ranges']); } $this->model->where([['id', '=', $id]])->update($data); return true; } /** * 删除场地 * @param int $id * @return bool */ public function del(int $id) { $model = $this->model->where([['id', '=', $id]])->find(); $res = $model->delete(); return $res; } public function getCampusAll() { $campusModel = new Campus(); return $campusModel->select()->toArray(); } }