From 4c616264c7be1637e7430847e0e9b0d428fd1b02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E5=AE=87=E5=A5=87?= Date: Mon, 7 Apr 2025 18:24:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E8=AE=A2=E5=8D=95=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E5=8F=91=E8=B5=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/xkt/StoreOrderController.java | 29 +++++++++++++------ .../xkt/vo/order/StoreOrderPayReqVO.java | 23 +++++++++++++++ ...ddRespVO.java => StoreOrderPayRespVO.java} | 5 +--- 3 files changed, 44 insertions(+), 13 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/order/StoreOrderPayReqVO.java rename ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/order/{StoreOrderAddRespVO.java => StoreOrderPayRespVO.java} (85%) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreOrderController.java index a4006d724..4a95e1fd5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreOrderController.java @@ -8,7 +8,8 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.web.controller.xkt.vo.order.StoreOrderAddReqVO; -import com.ruoyi.web.controller.xkt.vo.order.StoreOrderAddRespVO; +import com.ruoyi.web.controller.xkt.vo.order.StoreOrderPayReqVO; +import com.ruoyi.web.controller.xkt.vo.order.StoreOrderPayRespVO; import com.ruoyi.xkt.dto.order.StoreOrderAddDTO; import com.ruoyi.xkt.dto.order.StoreOrderInfo; import com.ruoyi.xkt.enums.EPayChannel; @@ -17,7 +18,9 @@ import com.ruoyi.xkt.manager.PaymentManager; import com.ruoyi.xkt.service.IStoreOrderService; import io.jsonwebtoken.lang.Assert; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -39,13 +42,11 @@ public class StoreOrderController extends XktBaseController { @Autowired private List paymentManagers; - /** - * 创建订单 - */ -// @PreAuthorize("@ss.hasPermi('system:order:add')") + @PreAuthorize("@ss.hasPermi('system:order:add')") @Log(title = "订单", businessType = BusinessType.INSERT) - @PostMapping - public R create(@RequestBody StoreOrderAddReqVO vo) { + @ApiOperation("创建订单并发起支付") + @PostMapping("create") + public R create(@RequestBody StoreOrderAddReqVO vo) { StoreOrderAddDTO dto = BeanUtil.toBean(vo, StoreOrderAddDTO.class); dto.setOrderUserId(SecurityUtils.getUserId()); //初始化订单 @@ -54,8 +55,18 @@ public class StoreOrderController extends XktBaseController { PaymentManager paymentManager = getPaymentManager(EPayChannel.of(vo.getPayChannel())); String rtnStr = paymentManager.payForOrder(orderInfo.getOrder().getId(), EPayFrom.of(vo.getPayFrom())); //返回信息 - StoreOrderAddRespVO respVO = new StoreOrderAddRespVO(orderInfo.getOrder().getId(), - orderInfo.getOrder().getOrderNo(), rtnStr); + StoreOrderPayRespVO respVO = new StoreOrderPayRespVO(orderInfo.getOrder().getId(), rtnStr); + return success(respVO); + } + + @PreAuthorize("@ss.hasPermi('system:order:add')") + @Log(title = "订单", businessType = BusinessType.OTHER) + @ApiOperation("重新发起订单支付") + @PostMapping("pay") + public R pay(@RequestBody StoreOrderPayReqVO vo) { + PaymentManager paymentManager = getPaymentManager(EPayChannel.of(vo.getPayChannel())); + String rtnStr = paymentManager.payForOrder(vo.getStoreOrderId(), EPayFrom.of(vo.getPayFrom())); + StoreOrderPayRespVO respVO = new StoreOrderPayRespVO(vo.getStoreOrderId(), rtnStr); return success(respVO); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/order/StoreOrderPayReqVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/order/StoreOrderPayReqVO.java new file mode 100644 index 000000000..ce54b1c32 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/order/StoreOrderPayReqVO.java @@ -0,0 +1,23 @@ +package com.ruoyi.web.controller.xkt.vo.order; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liangyq + * @date 2025-04-07 18:16 + */ +@ApiModel("订单支付入参") +@Data +public class StoreOrderPayReqVO { + + @ApiModelProperty(value = "订单ID") + private Long storeOrderId; + + @ApiModelProperty(value = "支付渠道[1:支付宝]") + private Integer payChannel; + + @ApiModelProperty(value = "支付来源[1:电脑网站 2:手机网站]") + private Integer payFrom; +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/order/StoreOrderAddRespVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/order/StoreOrderPayRespVO.java similarity index 85% rename from ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/order/StoreOrderAddRespVO.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/order/StoreOrderPayRespVO.java index 0bb3fe502..571fa2fc7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/order/StoreOrderAddRespVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/order/StoreOrderPayRespVO.java @@ -14,14 +14,11 @@ import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor -public class StoreOrderAddRespVO { +public class StoreOrderPayRespVO { @ApiModelProperty(value = "订单ID") private Long storeOrderId; - @ApiModelProperty(value = "订单号") - private String orderNo; - @ApiModelProperty(value = "支付渠道返回值: 跳转页面数据/签名字符串/支付跳转链接/预支付交易会话标识(根据选择的支付渠道和支付来源确定)") private String payRtnStr;