getParams(); $params['deleted'] = $params['deleted'] ?? 0; $sort = $pagerQuery->getSort(); $page = $pagerQuery->getPage(); $limit = $pagerQuery->getLimit(); $vipRepo = new VipRepo(); return $vipRepo->paginate($params, $sort, $page, $limit); } public function getVip($id) { return $this->findOrFail($id); } public function createVip() { $post = $this->request->getPost(); $validator = new VipValidator(); $data = []; $data['expiry'] = $validator->checkExpiry($post['expiry']); $data['price'] = $validator->checkPrice($post['price']); $data['title'] = sprintf('%s个月', $data['expiry']); $vip = new VipModel(); $vip->create($data); return $vip; } public function updateVip($id) { $vip = $this->findOrFail($id); $post = $this->request->getPost(); $validator = new VipValidator(); $data = []; if (isset($post['cover'])) { $data['cover'] = $validator->checkCover($post['cover']); } if (isset($post['expiry'])) { $data['expiry'] = $validator->checkExpiry($post['expiry']); $data['title'] = sprintf('%s个月', $data['expiry']); } if (isset($post['price'])) { $data['price'] = $validator->checkPrice($post['price']); } if (isset($post['published'])) { $data['published'] = $validator->checkPublishStatus($post['published']); } $vip->update($data); return $vip; } public function deleteVip($id) { $vip = $this->findOrFail($id); $vip->deleted = 1; $vip->update(); return $vip; } public function restoreVip($id) { $vip = $this->findOrFail($id); $vip->deleted = 0; $vip->update(); return $vip; } protected function findOrFail($id) { $validator = new VipValidator(); return $validator->checkVip($id); } }