| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- <?php
- namespace app\admin\controller\store;
- use app\admin\controller\AuthController;
- use think\Request;
- use think\facade\Route as Url;
- use app\admin\model\store\DeviceRepair as DeviceRepairModel; // 设备报修模型
- use crmeb\services\{JsonService as Json, UtilService as Util};
- /**
- * 设备报修管理控制器
- * Class DeviceRepair
- * @package app\admin\controller\repair
- */
- class DeviceRepair extends AuthController
- {
- /**
- * 显示报修列表页面
- * @return \think\Response
- */
- public function index()
- {
- // 页面仅展示列表,无搜索框
- return $this->fetch();
- }
- /**
- * 异步获取报修列表(用于表格渲染)
- * @return json
- */
- public function repair_list()
- {
- $where = Util::getMore([
- ['handle_status', ''], // 处理状态筛选(空=全部,0=未处理,1=已处理)
- ['page', 1],
- ['limit', 20],
- ['order', 'create_time DESC'] // 默认按提交时间倒序
- ]);
- // 调用模型获取列表(带分页)
- return Json::successlayui(DeviceRepairModel::getAdminRepairList($where));
- }
- /**
- * 核心处理功能:标记报修单为“已处理”/“未处理”
- * @param int $handle_status 处理状态(1=已处理,0=未处理)
- * @param int $id 报修单ID
- * @return json
- */
- public function set_handle($handle_status = '', $id = '')
- {
- // 参数验证
- if ($handle_status === '' || $id === '') {
- return Json::fail('缺少参数:状态或ID不能为空');
- }
- // 验证状态值合法性
- if (!in_array((int)$handle_status, [0, 1])) {
- return Json::fail('状态值错误:仅支持0(未处理)或1(已处理)');
- }
- // 调用模型处理状态更新(传入当前管理员ID)
- $adminId = $this->adminId; // 从AuthController继承的管理员ID
- $result = DeviceRepairModel::markStatus($id, (int)$handle_status, $adminId);
- if ($result) {
- return Json::successful($handle_status == 1 ? '标记为已处理成功' : '标记为未处理成功');
- } else {
- return Json::fail(DeviceRepairModel::getError() ?: ($handle_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() ?: '删除失败,请稍后重试');
- }
- }
- }
|