package com.sandu.ximon.admin.controller;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.StrUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.github.pagehelper.PageHelper;
|
import com.sandu.common.domain.ResponseVO;
|
import com.sandu.common.object.BaseConditionVO;
|
import com.sandu.common.util.ResponseUtil;
|
import com.sandu.ximon.admin.dto.DeviceStatus;
|
import com.sandu.ximon.admin.param.PoleBindingParam;
|
import com.sandu.ximon.admin.param.PoleParam;
|
import com.sandu.ximon.admin.service.PoleService;
|
import com.sandu.ximon.dao.domain.Pole;
|
import lombok.AllArgsConstructor;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.Arrays;
|
import java.util.List;
|
|
/**
|
* 灯杆模块以及设置分组到对应灯杆
|
*
|
* @author chenjiantian
|
*/
|
@RestController
|
@AllArgsConstructor
|
@RequestMapping("/v1/pole")
|
public class PoleController {
|
|
private final PoleService poleService;
|
|
@PostMapping("/add")
|
public ResponseVO<Object> addPole(@RequestBody @Validated PoleParam param) {
|
return ResponseUtil.success(poleService.addPole(param));
|
}
|
|
@PostMapping("/update/{poleId}")
|
public ResponseVO<Object> updatePole(@PathVariable Long poleId, @RequestBody @Validated PoleParam param) {
|
return ResponseUtil.success(poleService.updatePole(poleId, param));
|
}
|
|
@PostMapping("/delete/{poleId}")
|
public ResponseVO<Object> deletePole(@PathVariable Long poleId) {
|
return ResponseUtil.success(poleService.deletePole(poleId));
|
}
|
|
@GetMapping("/list")
|
public ResponseVO<Object> listPole(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword) {
|
PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
|
LambdaQueryWrapper<Pole> wrapper = Wrappers.lambdaQuery(Pole.class).orderByDesc(Pole::getId);
|
if (StrUtil.isNotBlank(keyword)) {
|
wrapper.like(Pole::getPoleCode, keyword)
|
.or(lampPostLambdaQueryWrapper -> {
|
lampPostLambdaQueryWrapper.like(Pole::getPoleName, keyword);
|
});
|
}
|
List<Pole> list = poleService.list(wrapper);
|
return ResponseUtil.successPage(list);
|
}
|
|
@GetMapping("listPoleAndState")
|
public ResponseVO<Object> listPoleAndState(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword) {
|
PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
|
|
List<Pole> poles = poleService.queryStatesAndList(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
|
return ResponseUtil.successPage(poles);
|
}
|
|
|
/**
|
* 设置三元码
|
*/
|
@PostMapping("/setMac/{baseMac}")
|
public ResponseVO<Object> setMac(@PathVariable String baseMac) {
|
//public ResponseVO<Object> setMac() {
|
return ResponseUtil.success(poleService.setMac(baseMac));
|
// return ResponseUtil.success(poleService.setMac());
|
}
|
|
/**
|
* 恢复灯杆出厂设置
|
*/
|
@PostMapping("/poleReset/{poleId}")
|
public ResponseVO<Object> poleReset(@PathVariable Long poleId) {
|
return ResponseUtil.success(poleService.poleReset(poleId));
|
}
|
|
|
/**
|
* 灯杆绑定设备
|
*/
|
@PostMapping("/bind/{poleId}")
|
public ResponseVO<Object> bindPole(@PathVariable Long poleId, @RequestBody @Validated PoleBindingParam param) {
|
boolean result = poleService.bindPole(poleId, param);
|
if (result) {
|
return ResponseUtil.success("绑定成功");
|
} else {
|
return ResponseUtil.fail("绑定失败");
|
}
|
}
|
|
@PostMapping("/listStatusByDeviceCode")
|
public ResponseVO<Object> getStatusById(@RequestBody String[] deviceCodeList) {
|
for (String s : deviceCodeList) {
|
if (s == null) {
|
return ResponseUtil.fail("参数不能为空");
|
}
|
|
}
|
if (ArrayUtil.isEmpty(deviceCodeList)) {
|
return ResponseUtil.fail("参数不能为空");
|
}
|
List<DeviceStatus> statusList = poleService.listStatusByDeviceCode(CollectionUtil.toList(deviceCodeList));
|
return ResponseUtil.success(statusList);
|
}
|
|
@PostMapping("/ClientBindingPole")
|
public ResponseVO<Object> ClientBindingPole(@RequestBody long clientId, @RequestBody int[] poleIds) {
|
|
return ResponseUtil.success(poleService.ClientBindingPole(clientId, poleIds));//////////////
|
}
|
|
|
}
|