package com.sandu.ximon.admin.controller; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ArrayUtil; import com.github.pagehelper.PageHelper; import com.sandu.common.domain.CommonPage; 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.param.PoleStatesParam; import com.sandu.ximon.admin.service.AirEquipmentService; import com.sandu.ximon.admin.service.IpVolumeService; import com.sandu.ximon.admin.service.MonitorService; 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.List; /** * 灯杆模块以及设置分组到对应灯杆 * * @author chenjiantian */ @RestController @AllArgsConstructor @RequestMapping("/v1/pole") public class PoleController { private final PoleService poleService; private MonitorService monitorService; private IpVolumeService broadcastTerminalV2Service; private AirEquipmentService airEquipmentService; @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)); } @PostMapping("/list") public ResponseVO listPole(BaseConditionVO baseConditionVO, @RequestBody PoleStatesParam param) { PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); List results = poleService.queryAllStatesAndList(baseConditionVO.getPageNo(), baseConditionVO.getPageSize(),param); CommonPage commonPage = CommonPage.restPage(results); int size = results.size(); commonPage.setTotal((long) size); commonPage.setTotalPage(size / baseConditionVO.getPageSize() + 1); if (size % baseConditionVO.getPageSize() == 0) { commonPage.setTotalPage(size / baseConditionVO.getPageSize()); } return ResponseUtil.success(commonPage); // return ResponseUtil.success(poles); } @GetMapping("/listPoleAndState") public ResponseVO listPoleAndState(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword, @RequestParam(value = "groupid", required = false) Long groupid) { PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); List poles = poleService.queryStatesAndList(baseConditionVO.getPageNo(), baseConditionVO.getPageSize(),keyword,groupid); 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)); } //TODO 设备的绑定解绑都要单独重新处理 /** * 灯杆绑定设备 */ @PostMapping("/bind/{poleId}") public ResponseVO bindPole(@PathVariable Long poleId, @RequestBody @Validated PoleBindingParam param) { boolean result = poleService.bindPole(poleId, param); if (result) { //设备类型,0路灯,1led屏幕,2充电桩,3大气监测,4水质监测,5ip音柱,6lcd广告机,7摄像头,8杆体倾测,9一键救助 switch (param.getDeviceType()) { case 0: break; case 1: break; case 2: break; case 3: break; case 4: break; case 5: broadcastTerminalV2Service.updateBingdingState(true, Integer.valueOf(param.getDeviceCode()).intValue()); break; case 6: break; case 7: monitorService.updateBingdingState(true, param.getDeviceCode()); break; case 8: break; case 9: break; default: break; } return ResponseUtil.success("绑定成功"); } else { return ResponseUtil.fail("绑定失败"); } } /** * 灯杆绑定设备 */ @PostMapping("/unBind/{poleId}") public ResponseVO unBindPole(@PathVariable Long poleId, @RequestBody @Validated PoleBindingParam param) { boolean result = poleService.unBindPole(poleId, param.getDeviceCode()); if (result) { //设备类型,0路灯,1led屏幕,2充电桩,3大气监测,4水质监测,5ip音柱,6lcd广告机,7摄像头,8杆体倾测,9一键救助 switch (param.getDeviceType()) { case 0: break; case 1: break; case 2: break; case 3: break; case 4: break; case 5: broadcastTerminalV2Service.updateBingdingState(false, Integer.valueOf(param.getDeviceCode()).intValue()); break; case 6: break; case 7: monitorService.updateBingdingState(false, param.getDeviceCode()); break; case 8: break; case 9: break; default: break; } 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()));////////////// } }