diff --git a/springboot-backend/src/main/java/com/admin/common/dto/TunnelDto.java b/springboot-backend/src/main/java/com/admin/common/dto/TunnelDto.java index 8ba6ebb..69b52f6 100644 --- a/springboot-backend/src/main/java/com/admin/common/dto/TunnelDto.java +++ b/springboot-backend/src/main/java/com/admin/common/dto/TunnelDto.java @@ -28,9 +28,9 @@ public class TunnelDto { private Integer flow; // 流量倍率,默认为1.0 - @DecimalMin(value = "0.0", message = "流量倍率不能小于0.0") + @DecimalMin(value = "0.0", inclusive = false, message = "流量倍率必须大于0.0") @DecimalMax(value = "100.0", message = "流量倍率不能大于100.0") - private BigDecimal trafficRatio = new BigDecimal("1.0"); + private BigDecimal trafficRatio; private String interfaceName; diff --git a/springboot-backend/src/main/java/com/admin/common/dto/TunnelUpdateDto.java b/springboot-backend/src/main/java/com/admin/common/dto/TunnelUpdateDto.java index 10ca96f..9d746ba 100644 --- a/springboot-backend/src/main/java/com/admin/common/dto/TunnelUpdateDto.java +++ b/springboot-backend/src/main/java/com/admin/common/dto/TunnelUpdateDto.java @@ -24,7 +24,7 @@ public class TunnelUpdateDto { private Integer flow; // 流量倍率 - @DecimalMin(value = "0.0", message = "流量倍率不能小于0.0") + @DecimalMin(value = "0.0", inclusive = false, message = "流量倍率必须大于0.0") @DecimalMax(value = "100.0", message = "流量倍率不能大于100.0") private BigDecimal trafficRatio; diff --git a/springboot-backend/src/main/java/com/admin/controller/FlowController.java b/springboot-backend/src/main/java/com/admin/controller/FlowController.java index d4402b4..3e98024 100644 --- a/springboot-backend/src/main/java/com/admin/controller/FlowController.java +++ b/springboot-backend/src/main/java/com/admin/controller/FlowController.java @@ -140,7 +140,6 @@ public class FlowController extends BaseController { public String uploadFlowData(@RequestBody String rawData, String secret) { // 1. 验证节点权限 if (!isValidNode(secret)) { - log.info("节点密钥验证失败==>" + secret); return SUCCESS_RESPONSE; } @@ -150,7 +149,6 @@ public class FlowController extends BaseController { // 3. 解析为FlowDto列表 FlowDto flowDataList = JSONObject.parseObject(decryptedData, FlowDto.class); if (Objects.equals(flowDataList.getN(), "web_api")) { - System.out.println("不处理web_api==>" + flowDataList.getN()); return SUCCESS_RESPONSE; } @@ -180,17 +178,27 @@ public class FlowController extends BaseController { throw new IllegalArgumentException("数据不能为空"); } - EncryptedMessage encryptedMessage = JSON.parseObject(rawData, EncryptedMessage.class); - if (encryptedMessage.isEncrypted() && encryptedMessage.getData() != null) { - // 获取或创建加密器 - AESCrypto crypto = getOrCreateCrypto(secret); - if (crypto == null) { - log.info("⚠️ 收到加密消息但无法创建解密器,使用原始数据"); - return rawData; + try { + // 尝试解析为加密消息格式 + EncryptedMessage encryptedMessage = JSON.parseObject(rawData, EncryptedMessage.class); + + if (encryptedMessage.isEncrypted() && encryptedMessage.getData() != null) { + // 获取或创建加密器 + AESCrypto crypto = getOrCreateCrypto(secret); + if (crypto == null) { + log.info("⚠️ 收到加密消息但无法创建解密器,使用原始数据"); + return rawData; + } + + // 解密数据 + String decryptedData = crypto.decryptString(encryptedMessage.getData()); + return decryptedData; } - // 解密数据 - return crypto.decryptString(encryptedMessage.getData()); + } catch (Exception e) { + // 解析失败,可能是非加密格式,直接返回原始数据 + log.info("数据未加密或解密失败,使用原始数据: {}", e.getMessage()); } + return rawData; } @@ -229,7 +237,7 @@ public class FlowController extends BaseController { checkUserRelatedLimits(userId, name); checkUserTunnelRelatedLimits(userTunnelId, name, userId); } - log.info("流量处理完成"); + return SUCCESS_RESPONSE; } @@ -340,8 +348,7 @@ public class FlowController extends BaseController { updateWrapper.setSql("in_flow = in_flow + " + flowStats.getD()); updateWrapper.setSql("out_flow = out_flow + " + flowStats.getU()); - boolean update = forwardService.update(null, updateWrapper); - System.out.println(update); + forwardService.update(null, updateWrapper); } } @@ -354,8 +361,7 @@ public class FlowController extends BaseController { updateWrapper.setSql("in_flow = in_flow + " + flowStats.getD()); updateWrapper.setSql("out_flow = out_flow + " + flowStats.getU()); - boolean update = userService.update(null, updateWrapper); - System.out.println(update); + userService.update(null, updateWrapper); } } @@ -370,8 +376,7 @@ public class FlowController extends BaseController { updateWrapper.eq("id", userTunnelId); updateWrapper.setSql("in_flow = in_flow + " + flowStats.getD()); updateWrapper.setSql("out_flow = out_flow + " + flowStats.getU()); - boolean update = userTunnelService.update(null, updateWrapper); - System.out.println(update); + userTunnelService.update(null, updateWrapper); } } diff --git a/springboot-backend/src/main/resources/application.yml b/springboot-backend/src/main/resources/application.yml index 82edc1d..477f180 100644 --- a/springboot-backend/src/main/resources/application.yml +++ b/springboot-backend/src/main/resources/application.yml @@ -35,8 +35,8 @@ server: mybatis-plus: mapper-locations: classpath*:/mapper/**Mapper.xml - configuration: - log-impl: org.apache.ibatis.logging.stdout.StdOutImpl +# configuration: +# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl jwt-secret: ${JWT_SECRET} log-dir: ${LOG_DIR}