model = new Ledger(); } /** * 模板列表 */ public function index(Request $request): Response { if ($request->isAjax()) { $param = $request->get(); if ($param['subResource'] ?? false) { $keyword = trim($param['keyword'] ?? ''); $subResource = []; switch ($param['subResource']) { case 'export': $subResource = $this->getExport($param); break; default: return sparkSuccess(dataReturn(-1, '未知子资源')); } return sparkSuccess(dataReturn(0, '获取子资源成功', $subResource)); } $param['pagination'] ??= ['page' => 1, 'limit' => 10]; $query = $this->model::with([]); ($param['name'] ?? false) && $query->where('name', 'like', '%' . $param['name'] . '%'); return sparkSuccess(dataReturn(0, '获取成功', $query->paginate($param['pagination']['limit'], ['*'], 'page', $param['pagination']['page']))); } return view('responsibility/ledger/index'); } /** * 获取导出 */ private function getExport(array $param) { $tablePrefix = getenv('DB_PREFIX'); $tableName = str_replace($tablePrefix, '', $param['table_name']); $query = Db::table($tableName); if ($param['field_org'] ?? false) { $orgIds = getOrgSelfAndChildrenIdsById(); $query->whereIn($param['field_org'], $orgIds); } if ($param['field_time'] ?? false) { ($param['date'][0] ?? false) && $query->where($param['field_time'], '>=', $param['date'][0]); ($param['date'][1] ?? false) && $query->where($param['field_time'], '<=', $param['date'][1]); } return $query->get(['*']); } }