model = new JobsCategoryModel(); } public static function make() { if (!self::$instance) { self::$instance = (new static()); } return self::$instance; } /** * 获取数据列表 */ public function getDataList($params, $pageSize = 15) { $query = $this->model->where('mark', 1); // 状态筛选 if (isset($params['status']) && $params['status'] > 0) { $query->where('status', $params['status']); } // 关键词搜索 if (isset($params['keyword']) && $params['keyword']) { $query->where('name', 'like', '%' . $params['keyword'] . '%'); } // 上级分类筛选 if (isset($params['pid'])) { $query->where('pid', $params['pid']); } $list = $query->orderBy('sort', 'desc') ->orderBy('id', 'desc') ->paginate($pageSize); $list = $list ? $list->toArray() : []; if ($list && isset($list['data'])) { foreach ($list['data'] as &$item) { $item['create_time'] = $item['create_time'] ? date('Y-m-d H:i:s', strtotime($item['create_time'])) : ''; $item['update_time'] = $item['update_time'] ? date('Y-m-d H:i:s', strtotime($item['update_time'])) : ''; } } return [ 'msg' => '操作成功', 'code' => 0, 'data' => $list['data'] ?? [], 'count' => $list['total'] ?? 0, ]; } /** * 添加或编辑 */ public function edit($data = []) { if (empty($data)) { $data = request()->all(); } $data['update_time'] = time(); if (empty($data['id'])) { $data['create_time'] = time(); } ActionLogModel::setTitle("编辑招聘分类"); ActionLogModel::record(); return parent::edit($data); } /** * 删除 */ public function delete() { $id = request()->post('id'); if (!$id) { return ['code' => 1, 'msg' => '参数错误']; } // 支持批量删除 if (is_array($id)) { $result = $this->model->whereIn('id', $id)->update(['mark' => 0]); } else { $result = $this->model->where('id', $id)->update(['mark' => 0]); } if ($result) { ActionLogModel::setTitle("删除招聘分类"); ActionLogModel::record(); return ['code' => 0, 'msg' => '删除成功']; } return ['code' => 1, 'msg' => '删除失败']; } /** * 获取分类选项 */ public function options() { $list = $this->model->where('mark', 1) ->where('status', 1) ->orderBy('sort', 'desc') ->orderBy('id', 'asc') ->select(['id', 'name', 'pid']) ->get() ->toArray(); return $list; } }