查询订单支付状态

This commit is contained in:
GYJ
2024-12-12 09:52:51 +08:00
parent a810db24fe
commit af6efd83be

View File

@@ -113,6 +113,36 @@ public class WuyouController {
return Result.success().put("data", baseResp.getData());
}
@ApiOperation("查询订单支付结果")
@GetMapping("/queryOrder/{orderId}")
public Result queryOrder(HttpServletRequest request, @PathVariable("orderId") Long orderId) {
Orders order = ordersService.getById(orderId);
if (order == null) {
return Result.error("订单不存在");
}
PayDetails payDetails = payDetailsDao.selectByOrderId(order.getOrdersNo());
if (payDetails == null) {
return Result.error("订单支付信息不存在");
}
if (payDetails.getState() == 1) {
return Result.success().put("data", 1);
}
BaseResp baseResp = WuyouPay.queryOrder(payDetails.getTradeNo(), order.getPayMoney().toString(), request.getHeader("User-Agent"));
if (baseResp.getCode() == null || baseResp.getData() == null) {
return Result.success().put("data", 0);
}
if ("SUCCESS".equals(baseResp.getPayStatus())) {
updateOrderStatus(payDetails, order);
return Result.success().put("data", 1);
}
return Result.success().put("data", 0);
}
@PostMapping("/extractNotify")
public String extractNotify(HttpServletRequest request, NotifyDto notifyDto) {
log.info("无忧支付提现回调, {}", notifyDto);
@@ -166,12 +196,18 @@ public class WuyouController {
// return "签名错误";
}
if (!"CODE_SUCCESS".equals(notifyDto.getStatus())) {
log.error("无忧支付回调 未支付成功, 参数: {}", JSONObject.toJSONString(notifyDto));
return "success";
}
log.info("无忧支付回调成功, 参数: {}", JSONObject.toJSONString(notifyDto));
PayDetails payDetails = payDetailsDao.selectByTradeNo(notifyDto.getOut_trade_no());
if (payDetails.getState() != 0) {
if (payDetails.getState() == 1) {
log.info("订单表信息丢失!");
return "success";
}
Orders order = ordersService.selectOrderByOrdersNo(payDetails.getOrderId());
@@ -185,36 +221,8 @@ public class WuyouController {
return "订单已支付";
}
String format = sdf.format(new Date());
payDetailsDao.updateState(payDetails.getId(), 1, format, notifyDto.getOut_trade_no());
updateOrderStatus(payDetails, order);
order.setPayWay(9);
order.setStatus(1);
order.setPayTime(DateUtils.format(new Date()));
UserEntity user = userService.selectUserById(order.getUserId());
UserEntity byUser = userService.queryByInvitationCode(user.getInviterCode());
Map<String, Object> map = inviteService.updateInvite(byUser, format, user.getUserId(), order.getPayMoney());
Object oneUserId = map.get("oneUserId");
if (oneUserId != null) {
order.setOneUserId(Long.parseLong(String.valueOf(oneUserId)));
order.setOneMoney(new BigDecimal(String.valueOf(map.get("oneMoney"))));
}
Object twoUserId = map.get("twoUserId");
if (twoUserId != null) {
order.setTwoUserId(Long.parseLong(String.valueOf(twoUserId)));
order.setTwoMoney(new BigDecimal(String.valueOf(map.get("twoMoney"))));
}
Object sysUserId = map.get("sysUserId");
if (sysUserId != null) {
order.setSysUserId(Long.parseLong(String.valueOf(sysUserId)));
order.setQdMoney(new BigDecimal(String.valueOf(map.get("qdMoney"))));
}
ordersService.updateById(order);
ordersService.insertOrders(order);
CompletableFuture.runAsync(() -> {
activities(user, byUser);
});
return "success";
}
@@ -256,4 +264,41 @@ public class WuyouController {
}
}
}
private void updateOrderStatus(PayDetails payDetails, Orders order) {
if (payDetails.getState() == 1) {
return;
}
String format = sdf.format(new Date());
payDetailsDao.updateState(payDetails.getId(), 1, format, payDetails.getTradeNo());
order.setPayWay(9);
order.setStatus(1);
order.setPayTime(DateUtils.format(new Date()));
UserEntity user = userService.selectUserById(order.getUserId());
UserEntity byUser = userService.queryByInvitationCode(user.getInviterCode());
Map<String, Object> map = inviteService.updateInvite(byUser, format, user.getUserId(), order.getPayMoney());
Object oneUserId = map.get("oneUserId");
if (oneUserId != null) {
order.setOneUserId(Long.parseLong(String.valueOf(oneUserId)));
order.setOneMoney(new BigDecimal(String.valueOf(map.get("oneMoney"))));
}
Object twoUserId = map.get("twoUserId");
if (twoUserId != null) {
order.setTwoUserId(Long.parseLong(String.valueOf(twoUserId)));
order.setTwoMoney(new BigDecimal(String.valueOf(map.get("twoMoney"))));
}
Object sysUserId = map.get("sysUserId");
if (sysUserId != null) {
order.setSysUserId(Long.parseLong(String.valueOf(sysUserId)));
order.setQdMoney(new BigDecimal(String.valueOf(map.get("qdMoney"))));
}
ordersService.updateById(order);
ordersService.insertOrders(order);
CompletableFuture.runAsync(() -> {
activities(user, byUser);
});
}
}