package com.ard.web.controller.device; import com.ard.common.annotation.Log; import com.ard.common.constant.CameraConstants; import com.ard.common.constant.DeviceConstants; import com.ard.common.core.controller.BaseController; import com.ard.common.core.domain.AjaxResult; import com.ard.common.core.page.TableDataInfo; import com.ard.common.enums.BusinessType; import com.ard.common.utils.poi.ExcelUtil; import com.ard.device.camera.domain.ArdCamera; import com.ard.device.camera.service.IArdCameraService; import com.ard.vtdu.util.ArdTool; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.*; /** * 相机设备Controller * * @author ruoyi * @date 2023-01-31 */ @Slf4j @RestController @RequestMapping("/device/camera") @Api(tags = "相机管理接口") public class ArdCameraController extends BaseController { @Resource private IArdCameraService ardCameraService; /** * 查询相机设备列表 */ @PreAuthorize("@ss.hasPermi('device:camera:list')") @GetMapping("/list") @ApiOperation("查询相机设备列表") public TableDataInfo list(ArdCamera ardCamera) { startPage(); List list = ardCameraService.selectArdCameraList(ardCamera); return getDataTable(list); } /** * 导出相机设备列表 */ @ApiOperation("导出相机设备列表") @PreAuthorize("@ss.hasPermi('device:camera:export')") @Log(title = "相机设备", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, ArdCamera ardCamera) { List list = ardCameraService.selectArdCameraList(ardCamera); ExcelUtil util = new ExcelUtil<>(ArdCamera.class); util.exportExcel(response, list, "相机设备数据"); } /** * 获取相机设备详细信息 */ @ApiOperation("获取相机设备详细信息") @PreAuthorize("@ss.hasPermi('device:camera:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") String id) { return success(ardCameraService.selectArdCameraById(id)); } /** * 新增相机设备 */ @ApiOperation("新增相机设备") @PreAuthorize("@ss.hasPermi('device:camera:add')") @Log(title = "相机设备", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ArdCamera camera) { if (DeviceConstants.NOT_UNIQUE.equals(ardCameraService.checkCameraIpAndPortUnique(camera))) { return error("新增相机'" + camera.getIp() + ":" + camera.getPort() + "'失败,相机已存在"); } return success(ardCameraService.insertArdCamera(camera)); } /** * 修改相机设备 */ @ApiOperation("修改相机设备") @PreAuthorize("@ss.hasPermi('device:camera:edit')") @Log(title = "相机设备", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ArdCamera camera) { if (DeviceConstants.NOT_UNIQUE.equals(ardCameraService.checkCameraIpAndPortUnique(camera))) { return error("修改相机'" + camera.getIp() + ":" + camera.getPort() + "'失败,相机已存在"); } return success(ardCameraService.updateArdCamera(camera)); } /** * 删除相机设备 */ @ApiOperation("删除相机设备") @PreAuthorize("@ss.hasPermi('device:camera:remove')") @Log(title = "相机设备", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids) { return toAjax(ardCameraService.deleteArdCameraByIds(ids)); } @Log(title = "导入相机设备", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('device:camera:import')") @PostMapping("/importData") @ApiOperation("导入相机设备") public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { ExcelUtil util = new ExcelUtil(ArdCamera.class); List camerasList = util.importExcel(file.getInputStream()); String operName = getUsername(); String message = ardCameraService.importCamera(camerasList, updateSupport, operName); return success(message); } @PostMapping("/importTemplate") @ApiOperation("相机设备导入模板") public void importTemplate(HttpServletResponse response) { ExcelUtil util = new ExcelUtil(ArdCamera.class); util.importTemplateExcel(response, "相机设备数据"); } }