支付提供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;
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;
}
}

View File

@ -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<SysScaleOrderVo> 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<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));
}
@ -69,7 +72,9 @@ public class WxOrderController extends BaseController {
@Log(title = "预约订单", businessType = BusinessType.INSERT)
@RepeatSubmit()
@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));
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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);
}