package com.sandu.ximon.admin.controller; import com.github.pagehelper.util.StringUtil; import com.sandu.common.domain.ResponseVO; import com.sandu.common.execption.BusinessException; import com.sandu.common.security.annotation.AnonymousAccess; 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.CommonRequest; 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.MQTTTestPrarm; 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.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.Map; /** * MQTT测试 * * @author ZZQ * @date 2022/10/19 15:49 */ @RestController @AllArgsConstructor @RequestMapping("/v1/admin/mqtt") public class MQTTTestController { private PermissionConfig permissionConfig; /** * 模糊查询 * * @return */ @AnonymousAccess @PostMapping("/sendRRPC") public ResponseVO sendRRPC(@RequestBody @Validated MQTTTestPrarm mqttTestPrarm) { /** * 测试数据 * poleMac:32313243305005ff3867ffff * frameStr:/qUBAAv+AQAD//8ARZcUd7bYwso= */ if (!permissionConfig.check(MenuEnum.MQTT_TEST.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } Pole pole = SpringContextHolder.getBean(PoleService.class).getById(mqttTestPrarm.getPoleId()); if (pole == null) { throw new BusinessException("灯杆不存在!"); } if (StringUtil.isEmpty(pole.getDeviceCode())) { throw new BusinessException("灯杆MAC不能为空!"); } InvokeParam param = new InvokeParam(); param.setOperate("1001"); param.setFrame(mqttTestPrarm.getFrameStr()); CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(pole.getDeviceCode(), param); if (commonFrame == null) { throw new BusinessException("请求失败,请重新请求"); } return ResponseUtil.success(commonFrame); } }