package com.ruoyi.other.controller; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.security.annotation.Logical; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.other.api.domain.TDevice; import com.ruoyi.other.query.DevicePageList; import com.ruoyi.other.service.TDeviceService; import io.swagger.annotations.ApiOperation; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.Arrays; /** * 设备管理前端控制器 * * @author ruoyi */ @RestController @RequestMapping("/t-device") public class TDeviceController { @Resource private TDeviceService deviceService; @RequiresPermissions(value = {"/deviceManagement/list"}, logical = Logical.OR) @ResponseBody @GetMapping("/pageList") @ApiOperation(value = "获取设备列表", tags = {"管理后台-设备管理"}) public AjaxResult> pageList(DevicePageList pageList) { PageInfo pageInfo = deviceService.pageList(pageList); return AjaxResult.success(pageInfo); } @RequiresPermissions(value = {"/deviceManagement/add"}, logical = Logical.OR) @ResponseBody @PostMapping("/addDevice") @ApiOperation(value = "添加设备", tags = {"管理后台-设备管理"}) @Log(title = "【设备管理】添加设备", businessType = BusinessType.INSERT) public AjaxResult addDevice(@RequestBody TDevice device) { AjaxResult validateResult = validateDevice(device, null); if (validateResult != null) { return validateResult; } if (device.getOnlineStatus() == null) { device.setOnlineStatus(1); } deviceService.save(device); return AjaxResult.success(); } @RequiresPermissions(value = {"/deviceManagement/select", "/deviceManagement/update"}, logical = Logical.OR) @ResponseBody @GetMapping("/getDeviceInfo/{id}") @ApiOperation(value = "获取设备详情", tags = {"管理后台-设备管理"}) public AjaxResult getDeviceInfo(@PathVariable Integer id) { return AjaxResult.success(deviceService.getById(id)); } @RequiresPermissions(value = {"/deviceManagement/update"}, logical = Logical.OR) @ResponseBody @PostMapping("/editDevice") @ApiOperation(value = "编辑设备", tags = {"管理后台-设备管理"}) @Log(title = "【设备管理】编辑设备", businessType = BusinessType.UPDATE) public AjaxResult editDevice(@RequestBody TDevice device) { if (device.getId() == null) { return AjaxResult.error("设备ID不能为空"); } AjaxResult validateResult = validateDevice(device, device.getId()); if (validateResult != null) { return validateResult; } deviceService.updateById(device); return AjaxResult.success(); } @RequiresPermissions(value = {"/deviceManagement/del"}, logical = Logical.OR) @ResponseBody @DeleteMapping("/delDevice") @ApiOperation(value = "删除设备", tags = {"管理后台-设备管理"}) @Log(title = "【设备管理】删除设备", businessType = BusinessType.DELETE) public AjaxResult delDevice(Integer[] id) { if (id == null || id.length == 0) { return AjaxResult.error("请选择要删除的设备"); } deviceService.removeByIds(Arrays.asList(id)); return AjaxResult.success(); } private AjaxResult validateDevice(TDevice device, Integer excludeId) { if (device == null) { return AjaxResult.error("设备信息不能为空"); } if (!StringUtils.hasText(device.getDeviceName())) { return AjaxResult.error("设备名称不能为空"); } if (!StringUtils.hasText(device.getDeviceSerial())) { return AjaxResult.error("设备序列号不能为空"); } if (device.getDeviceBrand() == null) { return AjaxResult.error("设备品牌不能为空"); } if (!StringUtils.hasText(device.getValidateCode())) { return AjaxResult.error("设备验证码不能为空"); } if (device.getChannelNo() == null || device.getChannelNo() < 1) { return AjaxResult.error("通道号不能为空"); } if (device.getPartnerId() == null) { return AjaxResult.error("合作商不能为空"); } return null; } }