支付提供ip参数

This commit is contained in:
cjw 2024-08-24 14:46:14 +08:00
parent a8ce0925a0
commit 16998cf826
6 changed files with 33 additions and 7 deletions

View File

@ -1,5 +1,6 @@
package org.dromara.common.web.core; package org.dromara.common.web.core;
import jakarta.servlet.http.HttpServletRequest;
import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.R;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
@ -37,4 +38,18 @@ public class BaseController {
return StringUtils.format("redirect:{}", url); 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;
}
} }

View File

@ -1,5 +1,6 @@
package org.dromara.scale.controller.wx; package org.dromara.scale.controller.wx;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.poi.ss.formula.functions.T; import org.apache.poi.ss.formula.functions.T;
@ -59,7 +60,9 @@ public class WxOrderController extends BaseController {
@Log(title = "量表订单", businessType = BusinessType.INSERT) @Log(title = "量表订单", businessType = BusinessType.INSERT)
@RepeatSubmit() @RepeatSubmit()
@PostMapping("/scale") @PostMapping("/scale")
public R<T> addScale(@Validated(AddGroup.class) @RequestBody SysScaleOrderBo bo) throws Exception { public R<T> addScale(@Validated(AddGroup.class) @RequestBody SysScaleOrderBo bo, HttpServletRequest request) throws Exception {
String clientIpAddress = getClientIpAddress(request);
bo.setSpbillCreateIp(clientIpAddress);
return R.ok(scaleOrderService.insertByBo(bo)); return R.ok(scaleOrderService.insertByBo(bo));
} }
@ -69,7 +72,9 @@ public class WxOrderController extends BaseController {
@Log(title = "预约订单", businessType = BusinessType.INSERT) @Log(title = "预约订单", businessType = BusinessType.INSERT)
@RepeatSubmit() @RepeatSubmit()
@PostMapping("/reservation") @PostMapping("/reservation")
public R<T> addReservation(@Validated(AddGroup.class) @RequestBody ReservationOrderBo bo) throws Exception { public R<T> addReservation(@Validated(AddGroup.class) @RequestBody ReservationOrderBo bo, HttpServletRequest request) throws Exception {
String clientIpAddress = getClientIpAddress(request);
bo.setSpbillCreateIp(clientIpAddress);
return R.ok(reservationOrderService.insertByBo(bo)); return R.ok(reservationOrderService.insertByBo(bo));
} }

View File

@ -60,20 +60,22 @@ public class ReservationOrderBo extends BaseEntity {
/** /**
* 0未支付1:支付完成2:待评分3:已评分99已退款 * 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; private Integer orderStatus;
/** /**
* 诊断 * 诊断
*/ */
@NotBlank(message = "诊断不能为空", groups = { AddGroup.class, EditGroup.class }) //@NotBlank(message = "诊断不能为空", groups = { AddGroup.class, EditGroup.class })
private String diagnose; private String diagnose;
/** /**
* 附件 * 附件
*/ */
@NotNull(message = "附件不能为空", groups = { AddGroup.class, EditGroup.class }) //@NotNull(message = "附件不能为空", groups = { AddGroup.class, EditGroup.class })
private Long annex; private Long annex;
private String spbillCreateIp;
} }

View File

@ -64,5 +64,7 @@ public class SysScaleOrderBo extends TenantEntity {
//@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; private Integer orderStatus;
private String spbillCreateIp;
} }

View File

@ -120,6 +120,7 @@ public class ReservationOrderServiceImpl implements IReservationOrderService {
orderRequest.setTotalFee(totalFee); orderRequest.setTotalFee(totalFee);
orderRequest.setNotifyUrl("https://api.ysmental.com/xxx/wx/pay/notify/order/reservation"); orderRequest.setNotifyUrl("https://api.ysmental.com/xxx/wx/pay/notify/order/reservation");
orderRequest.setTradeType("JSAPI"); orderRequest.setTradeType("JSAPI");
orderRequest.setSpbillCreateIp(bo.getSpbillCreateIp());
return payService.createOrder(orderRequest); return payService.createOrder(orderRequest);
} }

View File

@ -120,6 +120,7 @@ public class SysScaleOrderServiceImpl implements ISysScaleOrderService {
orderRequest.setTotalFee(totalFee); orderRequest.setTotalFee(totalFee);
orderRequest.setNotifyUrl("https://api.ysmental.com/xxx/wx/pay/notify/order/scale"); orderRequest.setNotifyUrl("https://api.ysmental.com/xxx/wx/pay/notify/order/scale");
orderRequest.setTradeType("JSAPI"); orderRequest.setTradeType("JSAPI");
orderRequest.setSpbillCreateIp(bo.getSpbillCreateIp());
return payService.createOrder(orderRequest); return payService.createOrder(orderRequest);
} }