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.PoleBindParam; 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; import java.util.Map; /** * 灯杆模块以及设置分组到对应灯杆 * * @author chenjiantian */ @RestController @AllArgsConstructor @RequestMapping("/v1/pole") public class PoleController { private final PoleService poleService; @PostMapping("/add") public ResponseVO addPole(@RequestBody @Validated PoleParam param) { return ResponseUtil.success(poleService.addPole(param)); } @PostMapping("/update/{poleId}") public ResponseVO updatePole(@PathVariable Long poleId, @RequestBody @Validated PoleParam param) { return ResponseUtil.success(poleService.updatePole(poleId, param)); } @PostMapping("/delete/{poleId}") public ResponseVO deletePole(@PathVariable Long poleId) { return ResponseUtil.success(poleService.deletePole(poleId)); } @GetMapping("/list") public ResponseVO listPole(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword) { PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); LambdaQueryWrapper 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 list = poleService.list(wrapper); return ResponseUtil.successPage(list); } @GetMapping("/listPoleAndState") public ResponseVO listPoleAndState(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword) { PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); List poles = poleService.queryStatesAndList(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); return ResponseUtil.successPage(poles); } /** * 设置三元码 */ @PostMapping("/setMac/{baseMac}") public ResponseVO setMac(@PathVariable String baseMac) { //public ResponseVO setMac() { return ResponseUtil.success(poleService.setMac(baseMac)); // return ResponseUtil.success(poleService.setMac()); } /** * 恢复灯杆出厂设置 */ @PostMapping("/poleReset/{poleId}") public ResponseVO poleReset(@PathVariable Long poleId) { return ResponseUtil.success(poleService.poleReset(poleId)); } /** * 灯杆绑定设备 */ @PostMapping("/bind/{poleId}") public ResponseVO 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 getStatusById(@RequestBody String[] deviceCodeList) { for (String s : deviceCodeList) { if (s == null) { return ResponseUtil.fail("参数不能为空"); } } if (ArrayUtil.isEmpty(deviceCodeList)) { return ResponseUtil.fail("参数不能为空"); } List statusList = poleService.listStatusByDeviceCode(CollectionUtil.toList(deviceCodeList)); return ResponseUtil.success(statusList); } @PostMapping("/ClientBindingPole") public ResponseVO ClientBindingPole(@RequestBody PoleBindParam param) { return ResponseUtil.success(poleService.ClientBindingPole(param.getClientId(), param.getPoleIds()));////////////// } }