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<PageInfo<TDevice>> pageList(DevicePageList pageList) {
|
PageInfo<TDevice> 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<TDevice> 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<TDevice> 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("合作商不能为空");
|
}
|
if (deviceService.existsByDeviceSerial(device.getDeviceSerial(), excludeId)) {
|
return AjaxResult.error("设备序列号已存在");
|
}
|
return null;
|
}
|
}
|