package com.dji.sample.control.controller; import com.dji.sample.common.model.CustomClaim; import com.dji.sample.common.model.ResponseResult; import com.dji.sample.control.model.dto.JwtAclDTO; import com.dji.sample.control.model.dto.MqttBrokerDTO; import com.dji.sample.control.model.param.DrcConnectParam; import com.dji.sample.control.model.param.DrcModeParam; import com.dji.sample.control.service.IDrcService; import com.dji.sample.log.aspect.SysLogAnnotation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM; /** * @author sean * @version 1.3 * @date 2023/1/11 */ @RestController @Slf4j @RequestMapping("${url.control.prefix}${url.control.version}") public class DrcController { @Autowired private IDrcService drcService; @PostMapping("/workspaces/{workspace_id}/drc/connect") @SysLogAnnotation(operModul = "drc控制", operType = "控制指令", operDesc = "控制指令") public ResponseResult drcConnect(@PathVariable("workspace_id") String workspaceId, HttpServletRequest request, @Valid @RequestBody DrcConnectParam param) { CustomClaim claims = (CustomClaim) request.getAttribute(TOKEN_CLAIM); MqttBrokerDTO brokerDTO = drcService.userDrcAuth(workspaceId, claims.getId(), claims.getUsername(), param); return ResponseResult.success(brokerDTO); } @PostMapping("/workspaces/{workspace_id}/drc/enter") @SysLogAnnotation(operModul = "drc控制", operType = "控制指令", operDesc = "进入控制") public ResponseResult drcEnter(@PathVariable("workspace_id") String workspaceId, @Valid @RequestBody DrcModeParam param) { JwtAclDTO acl = drcService.deviceDrcEnter(workspaceId, param); return ResponseResult.success(acl); } @PostMapping("/workspaces/{workspace_id}/drc/exit") @SysLogAnnotation(operModul = "drc控制", operType = "控制指令", operDesc = "退出控制") public ResponseResult drcExit(@PathVariable("workspace_id") String workspaceId, @Valid @RequestBody DrcModeParam param) { drcService.deviceDrcExit(workspaceId, param); return ResponseResult.success(); } }