getParams(); $sort = $pagerQuery->getSort(); $page = $pagerQuery->getPage(); $limit = $pagerQuery->getLimit(); $redeemRepo = new PointRedeemRepo(); return $redeemRepo->paginate($params, $sort, $page, $limit); } public function getRedeem($id) { return $this->findOrFail($id); } public function deliver($id) { $redeem = $this->findOrFail($id); if ($redeem->gift_type != PointGiftModel::TYPE_GOODS) { return $redeem; } $redeem->status = PointRedeemModel::STATUS_FINISHED; $redeem->update(); $this->handleGoodsDeliverNotice($redeem); return $redeem; } protected function handleGoodsDeliverNotice(PointRedeemModel $redeem) { $notice = new PointGoodsDeliverNotice(); $notice->createTask($redeem); } protected function findOrFail($id) { $validator = new PointRedeemValidator(); return $validator->checkRedeem($id); } }