request->get('status', -1, 'intval'); // 传递给视图 $this->assign('status', $status); return $this->fetch(); } /** * 异步获取报修列表(用于表格渲染) * @return json */ public function repair_list() { $where = Util::getMore([ ['status', ''], // 处理状态筛选(空=全部,0=未处理,1=已处理) ['page', 1], ['limit', 20], ['order', 'create_time DESC'] // 默认按提交时间倒序 ]); // 调用模型获取列表(带分页) return Json::successlayui(DeviceRepairModel::getAdminRepairList($where)); } /** * 核心处理功能:标记报修单为“已处理”/“未处理” * @param int $status 处理状态(1=已处理,0=未处理) * @param int $id 报修单ID * @return json */ public function set_handle($status = '', $id = '') { // 参数验证 if ($status === '' || $id === '') { return Json::fail('缺少参数:状态或ID不能为空'); } // 验证状态值合法性 if (!in_array((int)$status, [0, 1])) { return Json::fail('状态值错误:仅支持0(未处理)或1(已处理)'); } // 调用模型处理状态更新(传入当前管理员ID) $adminId = $this->adminId; // 从AuthController继承的管理员ID $result = DeviceRepairModel::markStatus($id, (int)$status, $adminId); if ($result) { return Json::successful($status == 1 ? '标记为已处理成功' : '标记为未处理成功'); } else { return Json::fail(DeviceRepairModel::getError() ?: ($status == 1 ? '标记已处理失败' : '标记未处理失败')); } } /** * 下载报修表单(CSV格式) * @param int $id 报修单ID * @return \think\response\Stream|\think\response\Redirect */ public function download($id) { if (!$id) { $this->error('请选择要下载的报修单'); } // 调用模型生成下载文件流 $stream = DeviceRepairModel::createDownloadStream($id); if (!$stream) { $this->error(DeviceRepairModel::getError() ?: '报修单不存在或已删除'); } return $stream; } /** * 删除报修单 * @param int $id 报修单ID * @return json */ public function delete($id) { if (!$id) { return Json::fail('请选择要删除的报修单'); } // 调用模型删除 if (DeviceRepairModel::delRepair($id)) { return Json::successful('删除成功'); } else { return Json::fail(DeviceRepair::getError() ?: '删除失败,请稍后重试'); } } }