diff --git a/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/device/controller/UavController.java b/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/device/controller/UavController.java index e0da0f5..149e01c 100644 --- a/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/device/controller/UavController.java +++ b/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/device/controller/UavController.java @@ -1,5 +1,6 @@ package com.zhangy.skyeye.device.controller; +import com.zhangy.skyeye.common.extend.util.MessageUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -77,6 +78,6 @@ public class UavController { @PostMapping("/remove") public Object delete(@RequestBody Long... id) { uavService.delete(id); - return "操作成功"; + return MessageUtils.message("device.uav.remove.success"); } } \ No newline at end of file diff --git a/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/jm/controller/JmImageController.java b/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/jm/controller/JmImageController.java index 66d8183..ef3cfdb 100644 --- a/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/jm/controller/JmImageController.java +++ b/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/jm/controller/JmImageController.java @@ -3,6 +3,7 @@ package com.zhangy.skyeye.jm.controller; import cn.hutool.core.bean.BeanUtil; import com.zhangy.skyeye.common.extend.anno.IgnoreAuth; import com.zhangy.skyeye.common.extend.exception.ServiceException; +import com.zhangy.skyeye.common.extend.util.MessageUtils; import com.zhangy.skyeye.jm.dto.JmImageKtyDTO; import com.zhangy.skyeye.jm.dto.JmImagePageDTO; import com.zhangy.skyeye.jm.dto.JmImageUpdDTO; @@ -70,7 +71,7 @@ public class JmImageController { public Object selectList(@Valid @RequestBody JmImageUpdDTO param) { JmImage e = BeanUtil.copyProperties(param, JmImage.class); sarImageService.updateNotNull(e); - return "操作成功"; + return MessageUtils.message("sar.image.update.success"); } /** @@ -89,7 +90,7 @@ public class JmImageController { TimeUnit.MINUTES ); if (Boolean.FALSE.equals(locked)) { - throw ServiceException.noLog("正在上传其它图像,请稍后重试!"); + throw ServiceException.noLog(MessageUtils.message("sar.image.add_highres.eagain")); } sarImageService.addHighImage(dto); } finally { @@ -103,7 +104,7 @@ public class JmImageController { requestId ); } - return "操作完成"; + return MessageUtils.message("sar.image.add_highres.success"); } /** @@ -120,7 +121,7 @@ public class JmImageController { @PostMapping("/remove") public Object delete(@RequestBody Long... id) { sarImageService.delete(id); - return "操作完成"; + return MessageUtils.message("sar.image.remove.success"); } // 空天院只查询sar低精度图 diff --git a/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/jm/controller/JmJobController.java b/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/jm/controller/JmJobController.java index 56e04b9..6546796 100644 --- a/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/jm/controller/JmJobController.java +++ b/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/jm/controller/JmJobController.java @@ -5,6 +5,7 @@ import com.zhangy.skyeye.common.extend.anno.IgnoreAuth; import com.zhangy.skyeye.common.extend.enums.EnumUtil; import com.zhangy.skyeye.common.extend.exception.ServiceException; import com.zhangy.skyeye.common.extend.util.DateUtil; +import com.zhangy.skyeye.common.extend.util.MessageUtils; import com.zhangy.skyeye.common.pojo.result.Result; import com.zhangy.skyeye.jm.consts.JmJobModeEnum; import com.zhangy.skyeye.jm.dto.JmJobDTO; @@ -23,6 +24,7 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import javax.validation.constraints.NotNull; import java.util.Collections; +import java.util.Objects; @Validated @RestController @@ -114,7 +116,10 @@ public class JmJobController { * 重飞 */ @GetMapping("/retry") - public Object retry(@NotNull(message = "任务ID不能为空") Long id) { + public Object retry(Long id) { + if(Objects.isNull(id)) { + return MessageUtils.message("sar.job.retry.enullid"); + } JmJobDTO e = jobService.selectDetail(id); clearId(e); e.setName(DateUtil.getTimeStr(DateUtil.DF_2)); @@ -135,12 +140,12 @@ public class JmJobController { // 查询执行任务的无人机 JmJobDTO job = jobService.selectDetail(id); if (job == null) { - throw ServiceException.noLog("找不到任务,id=" + id); + throw ServiceException.noLog(MessageUtils.message("sar.job.start.enosuchjob", id)); } else if (EnumUtil.parseEx(ExecStatusEnum.class, job.getStatus()) == ExecStatusEnum.PROCESSING) { - throw ServiceException.noLog("任务状态为执行中,无法起飞"); + throw ServiceException.noLog(MessageUtils.message("sar.job.start.einexecuting")); } jobService.start(job); - return "开始执行"; + return MessageUtils.message("sar.job.start.success"); } /** @@ -177,7 +182,7 @@ public class JmJobController { @GetMapping("/exit") public Object exit(@RequestParam Long id) { jobService.exit(id); - return "操作成功"; + return MessageUtils.message("sar.job.exit.success"); } /** diff --git a/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/jm/controller/JmJobExecController.java b/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/jm/controller/JmJobExecController.java index 175fedc..c44b43a 100644 --- a/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/jm/controller/JmJobExecController.java +++ b/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/jm/controller/JmJobExecController.java @@ -1,6 +1,7 @@ package com.zhangy.skyeye.jm.controller; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.zhangy.skyeye.common.extend.util.MessageUtils; import com.zhangy.skyeye.jm.dto.JmJobDTO; import com.zhangy.skyeye.jm.dto.JmJobPageDTO; import com.zhangy.skyeye.jm.entity.JmImage; @@ -60,6 +61,6 @@ public class JmJobExecController { @RequestMapping("/brightness") public Object adjustBrightness(@Valid @RequestBody JmImage param) { jobExecService.adjustBrightness(param); - return "成功调整亮度"; + return MessageUtils.message("sar.job_exec.brightness.success"); } } \ No newline at end of file diff --git a/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/jm/service/impl/JmJobStatusServiceImpl.java b/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/jm/service/impl/JmJobStatusServiceImpl.java index 21e0233..f66326b 100644 --- a/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/jm/service/impl/JmJobStatusServiceImpl.java +++ b/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/jm/service/impl/JmJobStatusServiceImpl.java @@ -1,6 +1,7 @@ package com.zhangy.skyeye.jm.service.impl; import com.zhangy.skyeye.common.extend.exception.ServiceException; +import com.zhangy.skyeye.common.extend.util.MessageUtils; import com.zhangy.skyeye.jm.dto.*; import com.zhangy.skyeye.jm.entity.JmJobPayload; import com.zhangy.skyeye.jm.entity.JmJobUav; @@ -9,9 +10,11 @@ import com.zhangy.skyeye.jm.event.JmJobStatusEvent; import com.zhangy.skyeye.jm.event.JmPayloadStatusEvent; import com.zhangy.skyeye.jm.service.JmJobStatusService; import com.zhangy.skyeye.jm.service.JmStatusLogService; +import com.zhangy.skyeye.publics.consts.CacheKey; import com.zhangy.skyeye.publics.consts.ExecStatusEnum; import com.zhangy.skyeye.publics.consts.WebSocketKey; import com.zhangy.skyeye.publics.utils.CoordUtil; +import com.zhangy.skyeye.redis.utils.RedisUtil; import com.zhangy.skyeye.sar.listen.SarImageUdpProcessor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -42,6 +45,9 @@ public class JmJobStatusServiceImpl implements JmJobStatusService { @Autowired private SarImageUdpProcessor imageProcessService; + @Autowired + private RedisUtil redisUtil; + // @Autowired // private ISmpSubscriptService subscriptService; @@ -173,11 +179,16 @@ public class JmJobStatusServiceImpl implements JmJobStatusService { // 校验新任务中的无人机和载荷是否冲突 for (JmJobUav newUav : newJobUavs) { if (runningUavIds.contains(newUav.getUavId())) { - throw ServiceException.warnLog("无人机正在任务中,无法执行新任务"); + throw ServiceException.warnLog(MessageUtils.message("sar.control.turnon.euavinexec")); } for (JmJobPayload payload : newUav.getPayloadList()) { + // 校验雷达连接状态 + if (!redisUtil.hasKey(CacheKey.getSarConnect(payload.getIp()))) { + throw ServiceException.warnLog(MessageUtils.message("device.sar.offline", payload.getPayloadName())); + } + if (runningPayloadIds.contains(payload.getPayloadId())) { - throw ServiceException.warnLog("载荷正在任务中,无法执行新任务"); + throw ServiceException.warnLog(MessageUtils.message("sar.control.turnon.esarinexec")); } } } diff --git a/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/publics/controller/SysUserController.java b/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/publics/controller/SysUserController.java index 43f6ba7..5d673c8 100644 --- a/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/publics/controller/SysUserController.java +++ b/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/publics/controller/SysUserController.java @@ -6,6 +6,7 @@ import com.zhangy.skyeye.common.extend.anno.IgnoreAuth; import com.zhangy.skyeye.common.extend.anno.OperationLog; import com.zhangy.skyeye.common.extend.dto.PageDTO; import com.zhangy.skyeye.common.extend.exception.ServiceException; +import com.zhangy.skyeye.common.extend.util.MessageUtils; import com.zhangy.skyeye.common.extend.util.ObjectUtil; import com.zhangy.skyeye.common.pojo.result.Result; import com.zhangy.skyeye.common.utils.JwtUtil; @@ -53,14 +54,14 @@ public class SysUserController { public Result login(@RequestBody RegisterDTO registerDTO) { SysUser user = sysUserService.selectByAccount(registerDTO.getUsername(), registerDTO.getPassword().toLowerCase()); if (user == null) { - throw ServiceException.noLog("用户名或密码错误!"); + throw ServiceException.noLog(MessageUtils.message("user.login.error")); } UserDTO userDTO = BeanUtil.copyProperties(user, UserDTO.class); String key = JSONUtil.toJsonStr(userDTO); String accessToken = JwtUtil.sign(key, user.getPassword()); redisUtil.set(userDTO.getTokenKey(), accessToken, TOKEN_EXPIRE); userDTO.setToken(accessToken); - return Result.successData("登录成功", userDTO); + return Result.successData(MessageUtils.message("user.login.success"), userDTO); } /** @@ -72,15 +73,15 @@ public class SysUserController { public Object updatePwd(@Valid SysUserPwdDTO dto) { List list = sysUserService.selectById(dto.getUserId()); if (ObjectUtil.isEmpty(list)) { - throw ServiceException.noLog("用户名或密码错误!"); + throw ServiceException.noLog(MessageUtils.message("user.updpwd.error")); } SysUser user = list.get(0); if (user.getPassword().equals(dto.getOldPwd())) { - throw ServiceException.noLog("旧密码错误!"); + throw ServiceException.noLog(MessageUtils.message("user.updpwd.nochg")); } user.setPassword(dto.getNewPwd()); sysUserService.update(user); - return "修改成功"; + return MessageUtils.message("user.updpwd.success"); } /** diff --git a/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/sar/controller/SarControlController.java b/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/sar/controller/SarControlController.java index ea3ece4..ca5f723 100644 --- a/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/sar/controller/SarControlController.java +++ b/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/java/com/zhangy/skyeye/sar/controller/SarControlController.java @@ -1,5 +1,6 @@ package com.zhangy.skyeye.sar.controller; +import com.zhangy.skyeye.common.extend.util.MessageUtils; import com.zhangy.skyeye.common.pojo.result.Result; import com.zhangy.skyeye.sar.service.ISarControlService; import com.zhangy.skyeye.sar.dto.SarControlParamDTO; @@ -31,7 +32,7 @@ public class SarControlController { public Result send(@RequestBody SarControlParamDTO param) { param.checkOrSetData(); controlInfoService.sendUdp(param); - return Result.successData("发送成功"); + return Result.successData(MessageUtils.message("sar.control.send.success")); } /** @@ -52,16 +53,16 @@ public class SarControlController { // 检查是否成功获取 if (ipVal == null || ipVal.isEmpty()) { // 根据你的业务逻辑返回错误,例如 - return Result.error("请求体中缺少 'payloadId' 或其值为空"); + return Result.error(MessageUtils.message("sar.control.turnon.enoip")); } } catch (Exception e) { // 处理JSON解析异常 // 记录日志 e.g., log.error("Failed to parse turnOn payload", e); - return Result.error("请求体JSON格式错误"); + return Result.error(MessageUtils.message("sar.control.turnon.eexcept")); } // 3. 调用服务层 controlInfoService.turnOn(ipVal); - return Result.successData("发送成功"); + return Result.successData(MessageUtils.message("sar.control.turnon.success")); } /** @@ -82,16 +83,16 @@ public class SarControlController { // 检查是否成功获取 if (ipVal == null || ipVal.isEmpty()) { // 根据你的业务逻辑返回错误,例如 - return Result.error("请求体中缺少 'payloadId' 或其值为空"); + return Result.error(MessageUtils.message("sar.control.endall.enoip")); } } catch (Exception e) { // 处理JSON解析异常 // 记录日志 e.g., log.error("Failed to parse turnOn payload", e); - return Result.error("请求体JSON格式错误"); + return Result.error(MessageUtils.message("sar.control.endall.eexcept")); } // 3. 调用服务层 controlInfoService.endAll(ipVal); - return Result.successData("发送成功"); + return Result.successData(MessageUtils.message("sar.control.endall.success")); } } diff --git a/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/resources/i18n/messages.properties b/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/resources/i18n/messages.properties index 90c7ca7..023b16f 100644 --- a/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/resources/i18n/messages.properties +++ b/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/resources/i18n/messages.properties @@ -1,3 +1,47 @@ # Default messages +# device management +device.uav.remove.success=Remove success +device.uav.remove.fail=Remove failed +device.uav.offline=UAV [{0}] disconnected +device.sar.offline=SAR [{0}] disconnected + +# SAR图片管理 +sar.image.remove.success=Remove success +sar.image.remove.fail=Remove failed +sar.image.add_highres.success=Operation success +sar.image.add_highres.eagain=Other uploading in progress, try later! +sar.image.add_highres.fail=Operation failed +sar.image.update.success=Update success +sar.image.update.fail=Update failed + +# SAR Job管理 +sar.job.update.success=Operation success +sar.job.update.failed=Operation failed +sar.job.retry.enullid=Job ID can't be blank +sar.job.start.success=Start executing +sar.job.start.enosuchjob=Find no job, id={0} +sar.job.start.einexecuting=Job in executing, operation failed +sar.job.exit.success=Operation success +sar.job.exit.failed=Operation failed +sar.job_exec.brightness.success=Operation success +sar.job_exec.brightness.failed=Operation failed + +# SAR控制 +sar.control.send.success=Send success +sar.control.send.failed=Send failed +sar.control.turnon.success=Send success +sar.control.turnon.enoip=Failed to extract payload IP address +sar.control.turnon.eexcept=Failed to parse request body +sar.control.turnon.euavinexec=Configured UAV in middle of executing +sar.control.turnon.esarinexec=Configured SAR in middle of executing +sar.control.endall.success=Send success +sar.control.endall.enoip=Failed to extract payload IP address +sar.control.endall.eexcept=Failed to parse request body + +# 用户管理 user.login.success=Login success user.login.error=Login error +user.updpwd.success=Change password success +user.updpwd.error=User name or password error! +user.updpwd.nochg=Old password error! + diff --git a/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/resources/i18n/messages_zh_CN.properties b/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/resources/i18n/messages_zh_CN.properties index 2feaff4..ab2b5a1 100644 --- a/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/resources/i18n/messages_zh_CN.properties +++ b/backend/Skyeye-sys-dev/skyeye-service-manager/src/main/resources/i18n/messages_zh_CN.properties @@ -1,3 +1,45 @@ # 中文消息 +# 设备管理 +device.uav.remove.success=操作成功 +device.uav.remove.fail=操作失败 +device.uav.offline=无人机[{0}]未连接 +device.sar.offline=雷达[{0}]未连接 + +# SAR图片管理 +sar.image.remove.success=操作完成 +sar.image.remove.fail=操作失败 +sar.image.add_highres.success=操作完成 +sar.image.add_highres.eagain=正在上传其它图像,请稍后重试! +sar.image.add_highres.fail=操作失败 +sar.image.update.success=操作成功 +sar.image.update.fail=操作失败 + +# SAR Job管理 +sar.job.update.success=操作成功 +sar.job.update.failed=操作失败 +sar.job.retry.enullid=任务ID不能为空 +sar.job.start.success=开始执行 +sar.job.start.enosuchjob=找不到任务,id={0} +sar.job.start.einexecuting=任务状态为执行中,无法起飞 +sar.job.exit.success=操作成功 +sar.job.exit.failed=操作失败 + +# SAR控制 +sar.control.send.success=发送成功 +sar.control.send.failed=发送失败 +sar.control.turnon.success=发送成功 +sar.control.turnon.enoip=请求体中缺少 'payloadId' 或其值为空 +sar.control.turnon.eexcept=请求体JSON格式错误 +sar.control.turnon.euavinexec=无人机正在任务中,无法执行新任务 +sar.control.turnon.esarinexec=载荷正在任务中,无法执行新任务 +sar.control.endall.success=发送成功 +sar.control.endall.enoip=请求体中缺少 'payloadId' 或其值为空 +sar.control.endall.eexcept=请求体JSON格式错误 + + +# 用户管理 user.login.success=登录成功 -user.login.error=登录失败 +user.login.error=用户名或密码错误! +user.updpwd.success=修改成功 +user.updpwd.error=用户名或密码错误! +user.updpwd.nochg=旧密码错误!