model = new ArticleCateModel(); } 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']) && $params['pid']>0) { $query->where('pid', $params['pid']); } if (isset($params['type']) && $params['type']>0) { $query->where('type', $params['type']); } $list = $query->orderBy('sort', 'desc') ->orderBy('id', 'desc') ->paginate($pageSize); $list = $list ? $list->toArray() : []; if ($list && isset($list['data'])) { $typrArr = [ 1=>'行业资讯中心', 2=>'行业政策专栏', 3=>'用户注册协议', 4=>'提现协议', 5=>'隐私协议', 9=>'关于我们' ]; 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'])) : ''; $item['type_name'] = isset($typrArr[$item['type']]) ? $typrArr[$item['type']] : '其他'; } } 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() { $type = request()->post('type',1); $list = $this->model->where(['type'=>$type,'status'=>1,'mark'=>1]) ->orderBy('sort', 'desc') ->orderBy('id', 'asc') ->select(['id', 'name', 'pid']) ->get() ->toArray(); return $list; } }