where('name', 'like', '%' . $data['name'] . '%'); } if ($data['status'] >= 0) { $model = $model->where('status', '=', $data['status']); } $list = $model->with('plan_access') ->where(['is_delete'=>0]) ->order(['sort' => 'asc', 'create_time' => 'desc']) ->paginate($data); if (empty($list)) { $addDate=[ 'name' => '默认套餐', 'price' => 0, 'sort' => 0, 'status' => 1, 'is_default' => 1, 'app_id' => self::$app_id, ]; $this->save($addDate); $list = $model->with('plan_access') ->order(['sort' => 'asc', 'create_time' => 'desc']) ->paginate($data); } return $list; } /** * 新增记录 */ public function add($data) { $data['app_id'] = self::$app_id; $this->transaction(function () use ($data) { $this->save($data); $this->addPlanAccess($data['access_ids']); }); return $this; } /** * 编辑记录 */ public function edit($data) { $this->transaction(function () use ($data) { $this->save($data); $this->addPlanAccess($data['access_ids']); }); return $this; } private function addPlanAccess($list) { $this->planAccess()->where('plan_id', $this->plan_id)->delete(); $list = json_decode($list); $data=array_map(function($item){ return [ 'access_id' => $item, 'app_id' => self::$app_id, ]; },$list); return $this->planAccess()->saveAll($data); } /** * 软删除 */ public function setDelete() { return $this->save(['is_delete' => 1]); } }