From 728c7c9d02141e4348f60e4e14518038c16f59a2 Mon Sep 17 00:00:00 2001 From: lijianlin Date: Sat, 10 Jan 2026 09:47:39 +0800 Subject: [PATCH] =?UTF-8?q?01-10=20=E4=BF=AE=E6=94=B9link=E7=BA=A2?= =?UTF-8?q?=E5=8C=85=E6=8E=A5=E5=8F=A3=E4=B8=9A=E5=8A=A1=E5=88=A4=E6=96=AD?= =?UTF-8?q?=EF=BC=9B=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A6=E4=B8=BA=E8=80=81?= =?UTF-8?q?=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/serviceImpl/Temporary/RedServiceImpl.java | 34 ++++++++++++++-------- .../demo/serviceImpl/coin/AuditServiceImpl.java | 7 +++-- 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/example/demo/serviceImpl/Temporary/RedServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/Temporary/RedServiceImpl.java index 083afd6..4667b68 100644 --- a/src/main/java/com/example/demo/serviceImpl/Temporary/RedServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/Temporary/RedServiceImpl.java @@ -253,28 +253,38 @@ public class RedServiceImpl implements RedService { } // 解析返回 JSON JsonNode root = objectMapper.readTree(resp.body()); + JsonNode dataNode = root.get("data"); int code = root.path("code").asInt(); - if (code==0){ - //旧订单 - return "old"; - } + boolean flag = root.path("data").path("flag").asBoolean(); + int num = root.path("data").path("num").asInt(); // 获取 num if (code == 400) { + // 400 状态码表示参数错误 log.warn("该订单无法处理,status:{},body:{}", resp.statusCode(), resp.body()); - throw new RuntimeException("该订单无法自动处理,请联系工作人员"); + throw new RuntimeException("该订单无法自动处理,请联系管理员"); } - boolean flag = root.path("data").path("flag").asBoolean(); - int num = root.path("data").path("num").asInt(); // 获取 num + // 业务判断 - if (code == 200 && flag) { - return "success"; - } else { // flag 为 false - throw new RedCheckException( - "红包校验失败,orderId=" + linkId, num); + if (code == 200 ) { + if (dataNode.asInt() == 1) { + throw new RuntimeException("该订单不符合退款条件,请手动处理!"); + } + if (dataNode.asInt() == 0){ + return "old"; + } + if (flag) { + return "success"; + } else { + throw new RedCheckException( + "红包校验失败,orderId=" + linkId, num); + } + }else { + throw new RuntimeException("系统异常,请联系管理员"); } + } catch (IOException | InterruptedException e) { log.error("调用红包接口失败,orderId:{}", linkId, e); throw new RuntimeException("调用红包接口异常", e); diff --git a/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java index aea3187..9c0a7bd 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java @@ -159,7 +159,6 @@ public class AuditServiceImpl implements AuditService { "红包退票失败,orderId=%s,还需扣除金币数=%d", linkId, num ); - log.error(logMsg); updateOrder.setAuditStatus(4); updateOrder.setRedDiff(BigDecimal.valueOf(num* 100L)); @@ -258,11 +257,13 @@ public class AuditServiceImpl implements AuditService { consumeUser.setPrice(order.getPrice()); // 执行金币抵扣红包 redService.updateRed(consumeUser); - //link扣除已有红包 - redService.consumeRed(linkId); // 执行审核更新 redMapper.update(order.getJwcode(),type,order.getPrice()); } + + if (!redService.checkRed(price, linkId).equals("old")){ + //link扣除已有红包 + redService.consumeRed(linkId);} } }