From 6773e0c38f4630f22bad6b68f82484cffbb36343 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Mon, 14 Jul 2025 13:47:48 +0800 Subject: [PATCH] =?UTF-8?q?##=20Opt=20-=20=E5=A2=9E=E5=8A=A0=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E4=B8=AD=E6=94=AF=E4=BB=98=E9=80=9A=E9=81=93=E6=B5=81?= =?UTF-8?q?=E6=B0=B4=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/ApiMemberStructureController.java | 22 +++++++++++++++++++ .../notify/JdPayNotifyController.java | 3 ++- .../jdpay/dto/JdPayTradeSuccessNotify.java | 1 + .../hzs/third/pay/service/IPayService.java | 4 ++-- .../pay/service/impl/PayServiceImpl.java | 5 ++++- 5 files changed, 31 insertions(+), 4 deletions(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java index 547ddb65..04b36b01 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java @@ -52,6 +52,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; @@ -671,6 +672,8 @@ public class ApiMemberStructureController extends BaseController { BigDecimal rightFirstSurplus = new BigDecimal(rightFirstSurplusStr.replaceAll(",", "")); result.get(0).putExtra("leftFirstSurplus", leftFirstSurplus.toString()); result.get(0).putExtra("rightFirstSurplus", rightFirstSurplus.toString()); + result.get(0).putExtra("leftFirstSurplusAll", formatBigDecimal(leftFirstSurplus)); + result.get(0).putExtra("rightFirstSurplusAll", formatBigDecimal(rightFirstSurplus)); log.info("result : {}", JSONUtil.toJsonStr(result)); if(leftFirstSurplus.compareTo(rightFirstSurplus) >= 0){ // 左大右小 @@ -695,4 +698,23 @@ public class ApiMemberStructureController extends BaseController { return AjaxResult.success(data); } + + private static final BigDecimal FIVE_MILLION = BigDecimal.valueOf(5_000_000); // 500万的固定值 + /** + * 格式化BigDecimal数值为指定规则的字符串 + * @param input 输入的BigDecimal数值(需非null) + * @return 格式化后的字符串(小于500万返回四舍五入两位小数,否则返回"500万+") + */ + public static String formatBigDecimal(BigDecimal input) { + if (input == null) { + throw new IllegalArgumentException("输入数值不能为null"); + } + int compareResult = input.compareTo(FIVE_MILLION); + if (compareResult < 0) { + BigDecimal rounded = input.setScale(2, RoundingMode.HALF_UP); + return rounded.toString(); + } else { + return "500万+"; + } + } } diff --git a/bd-third/src/main/java/com/hzs/third/pay/controller/notify/JdPayNotifyController.java b/bd-third/src/main/java/com/hzs/third/pay/controller/notify/JdPayNotifyController.java index 400cbbed..3489878b 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/controller/notify/JdPayNotifyController.java +++ b/bd-third/src/main/java/com/hzs/third/pay/controller/notify/JdPayNotifyController.java @@ -131,13 +131,14 @@ public class JdPayNotifyController extends JdBaseController { String thirdOrderCode = successNotify.getOutTradeNo(); // 订单编号 String orderCode = thirdOrderCode; + String acqOrderId = successNotify.getAcqOrderId(); // 订单金额 int tradeAmount = Integer.parseInt(successNotify.getTradeAmount()); BigDecimal payMoney = new BigDecimal(tradeAmount).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP); Integer payType = convertPayType(successNotify.getPayTool()); // 支付后续业务处理 - if (iPayService.notifyHandle(type, orderCode, thirdOrderCode, payNumber, payTime, payMoney, EPayChannel.JD, channelNumber, payType)) { + if (iPayService.notifyHandle(type, orderCode, thirdOrderCode, payNumber, payTime, payMoney, EPayChannel.JD, channelNumber, payType, acqOrderId)) { return SUCCESS; } } else { diff --git a/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayTradeSuccessNotify.java b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayTradeSuccessNotify.java index a42ba4fb..c22e3ee2 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayTradeSuccessNotify.java +++ b/bd-third/src/main/java/com/hzs/third/pay/jdpay/dto/JdPayTradeSuccessNotify.java @@ -95,4 +95,5 @@ public class JdPayTradeSuccessNotify implements Serializable { */ private String installmentNum; + private String acqOrderId; } diff --git a/bd-third/src/main/java/com/hzs/third/pay/service/IPayService.java b/bd-third/src/main/java/com/hzs/third/pay/service/IPayService.java index a266d944..e9f9f1b7 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/service/IPayService.java +++ b/bd-third/src/main/java/com/hzs/third/pay/service/IPayService.java @@ -27,10 +27,10 @@ public interface IPayService { boolean notifyHandle(String businessType, String businessCode, String originalOrder, String payNumber, Date payTime, BigDecimal payMoney, EPayChannel ePayChannel, String channelNumber); - + boolean notifyHandle(String businessType, String businessCode, String originalOrder, String payNumber, Date payTime, BigDecimal payMoney, - EPayChannel ePayChannel, String channelNumber, Integer payType); + EPayChannel ePayChannel, String channelNumber, Integer payType, String acqOrderId); /** * 业务处理重试 diff --git a/bd-third/src/main/java/com/hzs/third/pay/service/impl/PayServiceImpl.java b/bd-third/src/main/java/com/hzs/third/pay/service/impl/PayServiceImpl.java index 0837aac7..f7bec7cf 100644 --- a/bd-third/src/main/java/com/hzs/third/pay/service/impl/PayServiceImpl.java +++ b/bd-third/src/main/java/com/hzs/third/pay/service/impl/PayServiceImpl.java @@ -119,7 +119,9 @@ public class PayServiceImpl implements IPayService { } @Override - public boolean notifyHandle(String businessType, String businessCode, String originalOrder, String payNumber, Date payTime, BigDecimal payMoney, EPayChannel ePayChannel, String channelNumber, Integer payType) { + public boolean notifyHandle(String businessType, String businessCode, String originalOrder, String payNumber, + Date payTime, BigDecimal payMoney, EPayChannel ePayChannel, String channelNumber, + Integer payType, String acqOrderId) { Long pkId = null; String redisKey = CacheConstants.ONLINE_PAY_KEY + businessCode; @@ -148,6 +150,7 @@ public class PayServiceImpl implements IPayService { onlinePayment.setPkModified(MagicNumberConstants.PK_ADMIN); onlinePayment.setModifiedTime(new Date()); onlinePayment.setPayType(payType); + onlinePayment.setChannelNumber(acqOrderId); if (null != ePayChannel) { onlinePayment.setPayChannel(ePayChannel.getValue()); }