From 16998cf8262def573a88c12e046cddfdff8fb3ea Mon Sep 17 00:00:00 2001 From: cjw Date: Sat, 24 Aug 2024 14:46:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E4=BB=98=E6=8F=90=E4=BE=9Bip=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/common/web/core/BaseController.java | 15 +++++++++++++++ .../scale/controller/wx/WxOrderController.java | 11 ++++++++--- .../scale/domain/bo/ReservationOrderBo.java | 10 ++++++---- .../dromara/scale/domain/bo/SysScaleOrderBo.java | 2 ++ .../service/impl/ReservationOrderServiceImpl.java | 1 + .../service/impl/SysScaleOrderServiceImpl.java | 1 + 6 files changed, 33 insertions(+), 7 deletions(-) diff --git a/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/core/BaseController.java b/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/core/BaseController.java index fd01dda..51298b5 100644 --- a/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/core/BaseController.java +++ b/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/core/BaseController.java @@ -1,5 +1,6 @@ package org.dromara.common.web.core; +import jakarta.servlet.http.HttpServletRequest; import org.dromara.common.core.domain.R; import org.dromara.common.core.utils.StringUtils; @@ -37,4 +38,18 @@ public class BaseController { return StringUtils.format("redirect:{}", url); } + protected String getClientIpAddress(HttpServletRequest request) { + String ipAddress = request.getHeader("X-Forwarded-For"); + if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) { + ipAddress = request.getHeader("Proxy-Client-IP"); + } + if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) { + ipAddress = request.getHeader("WL-Proxy-Client-IP"); + } + if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) { + ipAddress = request.getRemoteAddr(); + } + return ipAddress; + } + } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxOrderController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxOrderController.java index a4be9ce..0351e97 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxOrderController.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxOrderController.java @@ -1,5 +1,6 @@ package org.dromara.scale.controller.wx; +import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import org.apache.poi.ss.formula.functions.T; @@ -49,7 +50,7 @@ public class WxOrderController extends BaseController { */ @GetMapping("/scale/{id}") public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { + @PathVariable Long id) { return R.ok(scaleOrderService.queryById(id)); } @@ -59,7 +60,9 @@ public class WxOrderController extends BaseController { @Log(title = "量表订单", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping("/scale") - public R addScale(@Validated(AddGroup.class) @RequestBody SysScaleOrderBo bo) throws Exception { + public R addScale(@Validated(AddGroup.class) @RequestBody SysScaleOrderBo bo, HttpServletRequest request) throws Exception { + String clientIpAddress = getClientIpAddress(request); + bo.setSpbillCreateIp(clientIpAddress); return R.ok(scaleOrderService.insertByBo(bo)); } @@ -69,7 +72,9 @@ public class WxOrderController extends BaseController { @Log(title = "预约订单", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping("/reservation") - public R addReservation(@Validated(AddGroup.class) @RequestBody ReservationOrderBo bo) throws Exception { + public R addReservation(@Validated(AddGroup.class) @RequestBody ReservationOrderBo bo, HttpServletRequest request) throws Exception { + String clientIpAddress = getClientIpAddress(request); + bo.setSpbillCreateIp(clientIpAddress); return R.ok(reservationOrderService.insertByBo(bo)); } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/ReservationOrderBo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/ReservationOrderBo.java index 7caa777..b831360 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/ReservationOrderBo.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/ReservationOrderBo.java @@ -22,7 +22,7 @@ import java.math.BigDecimal; public class ReservationOrderBo extends BaseEntity { /** - * + * */ @NotNull(message = "不能为空", groups = { EditGroup.class }) private Long id; @@ -60,20 +60,22 @@ public class ReservationOrderBo extends BaseEntity { /** * 0:未支付,1:支付完成,2:待评分,3:已评分,99:已退款 */ - @NotNull(message = "0:未支付,1:支付完成,2:待评分,3:已评分,99:已退款不能为空", groups = { AddGroup.class, EditGroup.class }) + //@NotNull(message = "0:未支付,1:支付完成,2:待评分,3:已评分,99:已退款不能为空", groups = { AddGroup.class, EditGroup.class }) private Integer orderStatus; /** * 诊断 */ - @NotBlank(message = "诊断不能为空", groups = { AddGroup.class, EditGroup.class }) + //@NotBlank(message = "诊断不能为空", groups = { AddGroup.class, EditGroup.class }) private String diagnose; /** * 附件 */ - @NotNull(message = "附件不能为空", groups = { AddGroup.class, EditGroup.class }) + //@NotNull(message = "附件不能为空", groups = { AddGroup.class, EditGroup.class }) private Long annex; + private String spbillCreateIp; + } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysScaleOrderBo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysScaleOrderBo.java index dc74c7b..53374cb 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysScaleOrderBo.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysScaleOrderBo.java @@ -64,5 +64,7 @@ public class SysScaleOrderBo extends TenantEntity { //@NotNull(message = "0:未支付,1:支付完成,2:待评分,3:已评分,99:已退款不能为空", groups = { AddGroup.class, EditGroup.class }) private Integer orderStatus; + private String spbillCreateIp; + } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ReservationOrderServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ReservationOrderServiceImpl.java index d48f1b6..04774cd 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ReservationOrderServiceImpl.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ReservationOrderServiceImpl.java @@ -120,6 +120,7 @@ public class ReservationOrderServiceImpl implements IReservationOrderService { orderRequest.setTotalFee(totalFee); orderRequest.setNotifyUrl("https://api.ysmental.com/xxx/wx/pay/notify/order/reservation"); orderRequest.setTradeType("JSAPI"); + orderRequest.setSpbillCreateIp(bo.getSpbillCreateIp()); return payService.createOrder(orderRequest); } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleOrderServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleOrderServiceImpl.java index 2539d16..dfdd696 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleOrderServiceImpl.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleOrderServiceImpl.java @@ -120,6 +120,7 @@ public class SysScaleOrderServiceImpl implements ISysScaleOrderService { orderRequest.setTotalFee(totalFee); orderRequest.setNotifyUrl("https://api.ysmental.com/xxx/wx/pay/notify/order/scale"); orderRequest.setTradeType("JSAPI"); + orderRequest.setSpbillCreateIp(bo.getSpbillCreateIp()); return payService.createOrder(orderRequest); }