ard-admin/src/main/java/com/ard/web/controller/route/ArdRouteMissionController.java
@@ -120,10 +120,9 @@ * 校验航线任务是否可以创建航线 */ @ApiOperation("校验航线任务是否可以创建航线") //@PreAuthorize("@ss.hasPermi('route:mission:query')") @GetMapping(value = "/{missionId}") public Boolean routeMissionNot(@PathVariable("missionId") String missionId) { return ardRouteMissionService.selectRouteMissionNot(missionId); @GetMapping("routeMissionNot/{id}") public AjaxResult routeMissionNot(@PathVariable("id") String id) { return success(ardRouteMissionService.selectRouteMissionNot(id)); } } ard-route/src/main/java/com/ard/route/domain/route/MissionNot.java
New file @@ -0,0 +1,18 @@ package com.ard.route.domain.route; import lombok.Data; @Data public class MissionNot { /** * 是否类型 */ private Boolean isNot; /** * 消息 */ private String information; } ard-route/src/main/java/com/ard/route/service/IArdRouteMissionService.java
@@ -1,6 +1,7 @@ package com.ard.route.service; import com.ard.route.domain.route.ArdRouteMission; import com.ard.route.domain.route.MissionNot; import com.ard.route.domain.route.UpdateMission; import java.util.List; @@ -81,9 +82,9 @@ /** * 校验航线任务是否可以创建航线 * * @param missionId 航线任务ID * @param id ID * @return 结果 */ public Boolean selectRouteMissionNot(String missionId); public MissionNot selectRouteMissionNot(String id); } ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java
@@ -140,7 +140,6 @@ */ @Override public String insertArdRouteInfo(ArdRouteInfo ardRouteInfo) { validateForCreate(ardRouteInfo); checkRouteMissionStatus(ardRouteInfo,"1"); checkRouteMissionStatus(ardRouteInfo,"2"); ardRouteInfo.setId(IdUtils.simpleUUID()); @@ -179,17 +178,6 @@ break; default: throw new RuntimeException("不支持的操作类型!!!"); } } } // 验证,只有当前用户是下发人才能创建航线 private void validateForCreate(ArdRouteInfo ardRouteInfo) { ArdRouteMission mission = ardRouteMissionMapper.selectArdRouteMissionById(ardRouteInfo.getMissionId()); if (mission != null){ if (!mission.getIssuerId().equals(getUserId())){ throw new RuntimeException("创建航线,只能创建下发自己的航线任务信息【" + mission.getMissionName() + "】,无法执行操作!"); //return "创建航线,只能创建下发自己的航线任务信息【" + mission.getMissionName() + "】,无法执行操作!"; } } } ard-route/src/main/java/com/ard/route/service/impl/ArdRouteMissionServiceImpl.java
@@ -9,6 +9,7 @@ import com.ard.common.utils.uuid.IdUtils; import com.ard.route.domain.route.ArdRouteMission; import com.ard.route.domain.route.ArdRoutePoint; import com.ard.route.domain.route.MissionNot; import com.ard.route.domain.route.UpdateMission; import com.ard.route.mapper.ArdRoutePointMapper; import com.ard.route.websocket.utils.MiWebSocketUtils; @@ -213,16 +214,34 @@ /** * 校验航线任务是否可以创建航线 * * @param missionId 航线任务ID * @param id ID * @return 结果 */ @Override public Boolean selectRouteMissionNot(String missionId) { ArdRouteMission mission = ardRouteMissionMapper.selectArdRouteMissionById(missionId); if (mission != null){ throw new RuntimeException("创建航线,只能创建下发自己的航线任务信息【" + mission.getMissionName() + "】,无法执行操作!"); public MissionNot selectRouteMissionNot(String id) { // 1. 初始化返回对象,默认允许操作 MissionNot missionNot = new MissionNot(); missionNot.setIsNot(true); // 2. 根据ID查询航线任务 ArdRouteMission mission = ardRouteMissionMapper.selectArdRouteMissionById(id); // 3. 空值快速返回(任务不存在则无需校验,直接允许操作) if (mission == null) { return missionNot; } return true; // 4. 校验任务创建者是否为当前用户 // 增加空指针防护:避免issuerId为null导致空指针异常 if (mission.getIssuerId() == null || !mission.getIssuerId().equals(getUserId())) { String errorMsg = String.format("创建航线,只能创建下发自己的航线任务信息【%s】,无法执行操作!", mission.getMissionName()); missionNot.setInformation(errorMsg); missionNot.setIsNot(false); } // 5. 统一返回结果 return missionNot; } }