package com.huimv.env.admin.controller;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.huimv.env.admin.common.utils.Result;
import com.huimv.env.admin.common.utils.ResultCode;
import com.huimv.env.admin.entity.Gateway;
import com.huimv.env.admin.entity.Terminal;
import com.huimv.env.admin.entity.vo.*;
import com.huimv.env.admin.service.ITerminalService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
*
* 监测终端 前端控制器
*
*
* @author newspaper
* @since 2024-05-07
*/
@RestController
@CrossOrigin
@RequestMapping("/terminal")
public class TerminalController {
@Autowired
private ITerminalService terminalService;
@PostMapping("/add")
public Result add(@RequestBody TerminalAddParam terminalAddParam){
List terminalList = terminalService.list(new QueryWrapper().lambda()
.eq(Terminal::getDeviceCode, terminalAddParam.getDeviceCode()));
if (ObjectUtil.isEmpty(terminalList)){
return new Result(10001,"终端编号已存在",false);
}
Terminal terminal = new Terminal();
terminal.setDeviceCode(terminalAddParam.getDeviceCode());
terminal.setGatewayId(terminalAddParam.getGatewayId());
terminal.setType(terminalAddParam.getType());
terminal.setFarmId(terminalAddParam.getFarmId());
terminalService.save(terminal);
return Result.SUCCESS();
}
@PostMapping("/list")
public Result list(@RequestBody TerminalListParam terminalListParam){
List terminalList = terminalService.list(new QueryWrapper().lambda()
.eq(ObjectUtil.isNotEmpty(terminalListParam.getGatewayId()), Terminal::getGatewayId, terminalListParam.getGatewayId()));
return new Result(ResultCode.SUCCESS,terminalList);
}
@PostMapping("/page")
public Result page(@RequestBody TerminalPageParam terminalPageParam){
Page page = new Page<>(terminalPageParam.getPageNum(),terminalPageParam.getPageSize());
Page terminalPage = terminalService.page(page);
return new Result(ResultCode.SUCCESS,terminalPage);
}
@PostMapping("/update")
public Result update(@RequestBody TerminalUpdateParam terminalUpdateParam){
List terminalList = terminalService.list(new QueryWrapper().lambda()
.eq(Terminal::getDeviceCode, terminalUpdateParam.getDeviceCode())
.ne(Terminal::getId,terminalUpdateParam.getId()));
if (ObjectUtil.isEmpty(terminalList)){
return new Result(10001,"终端编号已存在",false);
}
Terminal terminal = terminalService.getById(terminalUpdateParam.getId());
terminal.setDeviceCode(terminalUpdateParam.getDeviceCode());
terminal.setGatewayId(terminalUpdateParam.getGatewayId());
terminal.setType(terminalUpdateParam.getType());
terminal.setFarmId(terminalUpdateParam.getFarmId());
terminalService.updateById(terminal);
return Result.SUCCESS();
}
@PostMapping("/delete")
public Result delete(@RequestBody TerminalDeleteParam terminalDeleteParam){
//TODO 终端删除前判断端口是否存在
// List terminalList = terminalService.list(new QueryWrapper().lambda().eq(Terminal::getGatewayId, gateWayDeleteParam.getId()));
// if (ObjectUtil.isEmpty(terminalList)){
// return new Result(10001,"终端存在下属端口",false);
// }
terminalService.removeById(terminalDeleteParam.getId());
return Result.SUCCESS();
}
}