where([ 'is_delete' => 0, ]); if ($name) { $query->andWhere(['like', 'name', $name]); } if ($status > -1) { $query->andWhere(['is_enable' => (int)$status === 1 ? 1 : 0]); } $query->orderBy('id DESC'); if ($pagination) { $pagination = pagination_make($query); $list = $pagination['list']; } else { $list = $query->asArray()->all(); } foreach ($list as $key => $value) { if (empty($value['option'])) { $list[$key]['option'] = ''; } else { $list[$key]['option'] = json_decode($value['option']); } } if ($pagination) { return [ 'code' => 0, 'msg' => 'success', 'data' => [ 'data' => $list, 'pageNo' => $pagination['pageNo'], 'totalCount' => $pagination['totalCount'], ], ]; } return [ 'code' => 0, 'msg' => 'success', 'data' => $list, ]; } public function changeStatus($id) { try { $cat = SaasCategory::findOne($id); if (!$cat) { throw new Exception('类目未找到!'); } $cat->is_enable = $cat->is_enable == '1' ? 0 : 1; if ($cat->save()) { return [ 'code' => 0, 'msg' => '修改成功!', ]; } return [ 'code' => 1, 'msg' => '修改失败!', ]; } catch (Exception $e) { return [ 'code' => 1, 'msg' => $e->getMessage(), ]; } } public function delete($id) { try { $cat = SaasCategory::findOne($id); if (!$cat) { throw new Exception('分类未找到!'); } $cat->is_delete = 1; if ($cat->save()) { return [ 'code' => 0, 'msg' => '删除成功!', ]; } return [ 'code' => 1, 'msg' => '删除失败!', ]; } catch (Exception $e) { return [ 'code' => 1, 'msg' => $e->getMessage(), ]; } } public function edit($data) { try { if ($data['id'] > 0) { $item = SaasCategory::findOne($data['id']); if (!$item) { return [ 'code' => 1, 'msg' => '类目不存在', ]; } } else { $item = new SaasCategory(); } $item->name = $data['name']; $item->is_enable = (int)$data['is_enable']; $item->icon = isset($data['icon']) ? $data['icon'] : ''; $item->sort = $data['sort']; if (!empty($data['option'])) { $item->option = json_encode($data['option']); } else { $item->option = ''; } if ($item->save()) { return [ 'code' => 0, 'msg' => '保存成功', ]; } return [ 'code' => 1, 'msg' => '保存失败', ]; } catch (\Throwable $throwable) { return [ 'code' => 1, 'msg' => '保存失败', 'error' => $throwable->getMessage(), ]; } } }