select($this->simpleColumn)->get()->all(); } public function getDeptList($params) { $dept = Dept::query(); isset($params['name']) && filled($params['name']) && $dept->whereLike('name', "%{$params['name']}%"); isset($params['status']) && filled($params['status']) && $dept->where('status', $params['status']); $deptPage = $dept->paginate($params['pageSize'], [...$this->selectColumn, ...$this->selectAppendColumn], 'page', $params['pageNo']); return ['list' => $deptPage->items(), 'total' => $deptPage->total()]; } public function createDictData($data) { // 校验字典类型有效 // $this->validateDictTypeExists($data['dictType']); // // 校验字典数据的值的唯一性 // $this->validateDictDataValueUnique($data['dictType'], $data['value']); // // // 插入字典类型 // $dictData = self::toModel($data, DictData::class); // return $dictData->create($dictData->getAttributes())->id; } public function getDictData(int $id) { // return DictData::query()->select($this->selectColumn)->find($id); } public function updateDictData(array $data, int $id) { // 校验字典类型有效 // $this->validateDictTypeExists($data['dictType']); // // // 校验字典数据的值的唯一性 // $this->validateDictDataValueUnique($data['dictType'], $data['value'], $id); // // 修改字典数据 // $dictData = self::toModel([...$data, 'id' => $id], DictData::class); // $dictData->update($dictData->getAttributes()); } public function deleteDictData(int $id) { // $dictData = DictData::query()->find($id); // is_null($dictData) && self::error('DICT_DATA_NOT_EXISTS', Response::HTTP_UNPROCESSABLE_ENTITY); // return $dictData->delete(); } protected function validateDictTypeExists($dictType) { $isExists = DictType::query()->where('type', $dictType)->exists(); !$isExists && self::error('DICT_TYPE_NOT_EXISTS', Response::HTTP_UNPROCESSABLE_ENTITY); } protected function validateDictDataValueUnique(string $type, string $value, int $id = null) { $dictDataId = DictData::query()->where(['dict_type' => $type, 'value' => $value])->value('id'); !empty($dictDataId) && $dictDataId !== $id && self::error('DICT_DATA_DUPLICATE', Response::HTTP_UNPROCESSABLE_ENTITY); } }