diff --git a/src/main/java/com/example/demo/domain/vo/coin/RefundUser.java b/src/main/java/com/example/demo/domain/vo/coin/RefundUser.java index bcdeba4..ff2c65f 100644 --- a/src/main/java/com/example/demo/domain/vo/coin/RefundUser.java +++ b/src/main/java/com/example/demo/domain/vo/coin/RefundUser.java @@ -45,6 +45,7 @@ public class RefundUser implements Serializable { @ExcelIgnore private Integer adminId; //提交人Id private String adminName; //提交人姓名 + private BigDecimal price; //原价 @ExcelIgnore @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") 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 e5b484a..083afd6 100644 --- a/src/main/java/com/example/demo/serviceImpl/Temporary/RedServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/Temporary/RedServiceImpl.java @@ -235,22 +235,16 @@ public class RedServiceImpl implements RedService { @Override public String checkRed(BigDecimal price,String linkId)throws Exception { try { - // 构造 参数(order_id=L125) - + // 构造参数 String body = "{\"order_id\":\"" + linkId + "\",\"amount\":" + price.divideToIntegralValue(BigDecimal.valueOf(100)).intValue() + "}"; - // 构建 HttpRequest HttpRequest request = HttpRequest.newBuilder().uri(URI.create(BASE_URL_Margen+PATH_CHECK)) .header("Content-Type", "application/json") - // ⭐ 透传 token,避免 JWT 过期问题 - // .header("Authorization", authHeader) .POST(HttpRequest.BodyPublishers.ofString(body)) .build(); - // 发送请求 HttpResponse resp = CLIENT.send(request, HttpResponse.BodyHandlers.ofString()); - // HTTP 层校验 if (resp.statusCode() != 200 ) { log.warn("红包接口 HTTP 异常,status:{},body:{}", @@ -260,6 +254,10 @@ public class RedServiceImpl implements RedService { // 解析返回 JSON JsonNode root = objectMapper.readTree(resp.body()); int code = root.path("code").asInt(); + if (code==0){ + //旧订单 + return "old"; + } if (code == 400) { // 400 状态码表示参数错误 log.warn("该订单无法处理,status:{},body:{}", 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 deeeb0e..aea3187 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java @@ -149,16 +149,9 @@ public class AuditServiceImpl implements AuditService { }else if (order.getType()==2) { //退款 //对非强制退款订单进行退红包校验 - if (price== null||linkId== null) - { - String logMsg="旧版订单暂不支持退款,请联系工作人员进行操作"; - log.error(logMsg); - AuditContext.setFailMsg(logMsg); - return false; - } if (order.getAuditStatus()!=4){ try { - redService.checkRed(price, linkId); + String result = redService.checkRed(price, linkId); } catch (RedCheckException e) { // 业务失败(flag=false) int num = e.getNum(); @@ -216,9 +209,11 @@ public class AuditServiceImpl implements AuditService { GoldTistV2.addCoinNew(order.getJwcode().toString(), 59, //退款任务+永久金币-充值 (double) (order.getTaskGold()+order.getPermanentGold() ) /100,SimpleIdGenerator.generateId(), order.getRemark(),(double) order.getPermanentGold() / 100, auditName, "退款金币充值");} - + //金币退款的原价为充值的永久金币 + if (order.getRefundType().equals("金币退款")){ + price= BigDecimal.valueOf(order.getPermanentGold()); + } //额外扣金币抵扣红包 - if (order.getAuditStatus()==4&&price!= null&&linkId!= null){ int type = 1; //红包充值累计 GoldUser user = userMapper.selectUser(order.getJwcode().toString()); diff --git a/src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java index 0bfdc87..bd0b912 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java @@ -179,6 +179,7 @@ public class RefundServiceImpl implements RefundService { userGoldRecord.setPayPlatform("金币系统"); userGoldRecord.setRemark(refundUser.getRemark()); + userGoldRecord.setPrice(refundUser.getPrice()); userGoldRecord.setAdminId(refundUser.getAdminId()); userGoldRecord.setType((byte) 2); userGoldRecord.setAuditStatus(0); diff --git a/src/main/resources/mapper/RefundMapper.xml b/src/main/resources/mapper/RefundMapper.xml index b08ac35..40c799c 100644 --- a/src/main/resources/mapper/RefundMapper.xml +++ b/src/main/resources/mapper/RefundMapper.xml @@ -233,7 +233,8 @@ admin_id, audit_status, create_time, - update_time + update_time, + price VALUES @@ -253,7 +254,8 @@ #{adminId}, #{auditStatus}, #{createTime}, - #{updateTime} + #{updateTime}, + #{price}