package com.sandu.ximon.admin.controller; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.pagehelper.util.StringUtil; import com.sandu.common.domain.CommonPage; import com.sandu.common.domain.ResponseVO; import com.sandu.common.execption.BusinessException; import com.sandu.common.object.BaseConditionVO; import com.sandu.common.util.ResponseUtil; import com.sandu.common.util.SpringContextHolder; import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame; import com.sandu.ximon.admin.manager.iot.rrpc.dto.InvokeParam; import com.sandu.ximon.admin.manager.iot.rrpc.mainboard.MainBoardInvokeSyncService; import com.sandu.ximon.admin.param.MonitorParam; import com.sandu.ximon.admin.security.PermissionConfig; import com.sandu.ximon.admin.service.PoleService; import com.sandu.ximon.dao.domain.Pole; import com.sandu.ximon.dao.enums.MenuEnum; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; /** * MQTT测试 * * @author ZZQ * @date 2022/10/19 15:49 */ @RestController @AllArgsConstructor @RequestMapping("/v1/admin/mqtt") public class MQTTTestController { private PermissionConfig permissionConfig; /** * 模糊查询 * * @return */ @GetMapping("/sendRRPC") public ResponseVO listMonitorByKeyword(@RequestParam(value = "poleId", required = false) Long poleId, @RequestParam(value = "frameStr", required = false) String frameStr) { if (poleId == null) { throw new BusinessException("灯杆ID不能为空!"); } if (StringUtil.isEmpty(frameStr)) { throw new BusinessException("请求帧数据不能为空!"); } if (!permissionConfig.check(MenuEnum.MQTT_TEST.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } Pole pole = SpringContextHolder.getBean(PoleService.class).getById(poleId); if (pole == null) { throw new BusinessException("灯杆不存在!"); } if (StringUtil.isEmpty(pole.getDeviceCode())) { throw new BusinessException("灯杆MAC不能为空!"); } InvokeParam param = new InvokeParam(); param.setOperate("1001"); param.setFrame(frameStr); CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(pole.getDeviceCode(), param); if (commonFrame == null) { throw new BusinessException("请求失败,请重新请求"); } return ResponseUtil.success(commonFrame); } }