From 29a01d70b9744c213eaa128d48cbea81b064925f Mon Sep 17 00:00:00 2001 From: huangqizhen <15552608129@163.com> Date: Fri, 5 Dec 2025 13:42:12 +0800 Subject: [PATCH] =?UTF-8?q?12.5=20=E7=B4=AF=E8=AE=A1=E6=B6=88=E8=80=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/demo/domain/vo/coin/GoldUser.java | 2 ++ .../example/demo/service/Temporary/RedService.java | 2 ++ .../demo/serviceImpl/Temporary/RedServiceImpl.java | 39 ++++++++++++++++++++++ .../demo/serviceImpl/coin/UserServiceImpl.java | 8 +++++ src/main/resources/application-dev.yml | 2 +- 5 files changed, 52 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/example/demo/domain/vo/coin/GoldUser.java b/src/main/java/com/example/demo/domain/vo/coin/GoldUser.java index 515f82d..bb84ffc 100644 --- a/src/main/java/com/example/demo/domain/vo/coin/GoldUser.java +++ b/src/main/java/com/example/demo/domain/vo/coin/GoldUser.java @@ -59,4 +59,6 @@ public class GoldUser { private Date firstRecharge; // 首充日期 @ExcelIgnore private List markets; // 地区列表 + @ExcelIgnore + private BigDecimal red; } diff --git a/src/main/java/com/example/demo/service/Temporary/RedService.java b/src/main/java/com/example/demo/service/Temporary/RedService.java index da6a150..6055e94 100644 --- a/src/main/java/com/example/demo/service/Temporary/RedService.java +++ b/src/main/java/com/example/demo/service/Temporary/RedService.java @@ -18,4 +18,6 @@ public interface RedService { void addAmount(Integer jwcode,BigDecimal sum, Integer type); String sendJwcode(Integer jwcode); String sendConsumeJwcode(Integer jwcode, Integer price); + + BigDecimal selectRedSum(Integer jwcode); } 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 14c4bd7..e66a9a8 100644 --- a/src/main/java/com/example/demo/serviceImpl/Temporary/RedServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/Temporary/RedServiceImpl.java @@ -7,6 +7,8 @@ import com.example.demo.domain.vo.Red; import com.example.demo.exception.SystemException; import com.example.demo.mapper.Temporary.RedMapper; import com.example.demo.service.Temporary.RedService; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -39,6 +41,8 @@ public class RedServiceImpl implements RedService { private String BASE_URLProd ; private static final String BASE_URLDev = "http://gf977328.natappfree.cc"; private static final String PATH = "/api/coupon/IssueRechargeRedPacket"; + private static final String PATHRED = "/api/coupon/getTotalDiscount"; + private static final String CONSUME_PATH = "/api/coupon/updateCostRedPacket"; private static final HttpClient CLIENT = HttpClient.newHttpClient(); @@ -130,6 +134,41 @@ public class RedServiceImpl implements RedService { } } + @Override + public BigDecimal selectRedSum(Integer jwcode) { + try { + String body = JSON.toJSONString(java.util.Map.of("jwcode", jwcode)); + + HttpRequest request = HttpRequest.newBuilder() + .uri(URI.create("http://sb29dfa2.natappfree.cc" + PATHRED)) //URL记得换 + .header("Content-Type", "application/json") + .POST(HttpRequest.BodyPublishers.ofString(body)) + .build(); + + HttpResponse resp = CLIENT.send(request, HttpResponse.BodyHandlers.ofString()); + // 解析 JSON + ObjectMapper mapper = new ObjectMapper(); + JsonNode rootNode = mapper.readTree(resp.body()); + +// 提取 data 字段 + if (rootNode.has("data")) { + JsonNode dataNode = rootNode.get("data"); + System.out.println("Data: " + dataNode); + return dataNode.decimalValue(); + } + + + if (resp.statusCode() != 200) { + log.warn("网络异常", resp.statusCode(), resp.body()); + } + return BigDecimal.valueOf(0); + } catch (IOException | InterruptedException e) { + log.error("网络异常", jwcode, e); + return BigDecimal.valueOf(0); + } + } + + // --- 校验方法 --- private void validateParams(Integer jwcode, Integer type, BigDecimal delta) { if (jwcode == null || jwcode <= 0) { diff --git a/src/main/java/com/example/demo/serviceImpl/coin/UserServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/UserServiceImpl.java index 50fa851..cda2169 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/UserServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/UserServiceImpl.java @@ -8,6 +8,7 @@ import com.example.demo.domain.vo.coin.GoldUser; import com.example.demo.domain.vo.coin.Result; import com.example.demo.mapper.coin.MarketMapper; import com.example.demo.mapper.coin.UserMapper; +import com.example.demo.service.Temporary.RedService; import com.example.demo.service.coin.UserService; import jakarta.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; @@ -15,6 +16,7 @@ import org.springframework.stereotype.Service; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; +import java.math.BigDecimal; import java.util.Arrays; import java.util.Date; import java.util.List; @@ -37,6 +39,8 @@ public class UserServiceImpl implements UserService { @Autowired private MarketMapper marketMapper; + @Autowired + private RedService redService; //查找用户部分信息 @Override @@ -52,7 +56,11 @@ public class UserServiceImpl implements UserService { if (markets.contains("9") || markets.contains("9999")){ markets=null; } + BigDecimal redSum = redService.selectRedSum(Integer.parseInt(jwcode)); + GoldUser user = userMapper.selectUserCard(jwcode,markets); + user.setRed(redSum); + return Result.success(user); } else{ diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 8e10338..9e9dc79 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -101,6 +101,6 @@ bean: consume: url: http://39.101.133.168:8828/hljwgo/api/wallet/pay red: - url: http://39.101.133.168:8828/scmshttp://39.101.133.168:8828/scms + url: http://39.101.133.168:8828/scms server: port: 10704 \ No newline at end of file