longz
2026-07-28 cd4e26608b01cbc376760d96e2eab5d0a796f0b0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
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", "/faultInformationList"}, 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("合作商不能为空");
        }
        return null;
    }
}