|
|
|
@ -0,0 +1,69 @@
|
|
|
|
|
/*
|
|
|
|
|
* Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
|
|
|
|
|
*
|
|
|
|
|
* https://www.mall4j.com/
|
|
|
|
|
*
|
|
|
|
|
* 未经允许,不可做商业用途!
|
|
|
|
|
*
|
|
|
|
|
* 版权所有,侵权必究!
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
package com.yami.shop.api.controller; // 定义类所在的包
|
|
|
|
|
|
|
|
|
|
import com.yami.shop.bean.app.param.PayParam; // 引入支付参数类
|
|
|
|
|
import com.yami.shop.bean.pay.PayInfoDto; // 引入支付信息DTO类
|
|
|
|
|
import com.yami.shop.security.api.model.YamiUser; // 引入用户模型类
|
|
|
|
|
import com.yami.shop.security.api.util.SecurityUtils; // 引入安全工具类
|
|
|
|
|
import com.yami.shop.service.PayService; // 引入支付服务类
|
|
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag; // 引入Swagger的Tag注解
|
|
|
|
|
import io.swagger.v3.oas.annotations.Operation; // 引入Swagger的Operation注解
|
|
|
|
|
import lombok.AllArgsConstructor; // 引入Lombok的@AllArgsConstructor注解
|
|
|
|
|
import com.yami.shop.common.response.ServerResponseEntity; // 引入服务器响应实体类
|
|
|
|
|
import org.springframework.web.bind.annotation.*; // 引入Spring Web的注解
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* PayController类,用于处理支付相关的操作。
|
|
|
|
|
* @作者 lanhai
|
|
|
|
|
*/
|
|
|
|
|
@RestController // 标注这是一个控制器类,并且其返回结果直接写入HTTP响应体中,而不是视图名称
|
|
|
|
|
@RequestMapping("/p/order") // 定义请求路径的根地址为/p/order
|
|
|
|
|
@Tag(name = "订单接口") // 给API文档添加标签,描述这个控制器的功能
|
|
|
|
|
@AllArgsConstructor // 使用Lombok注解生成全参构造函数
|
|
|
|
|
public class PayController {
|
|
|
|
|
|
|
|
|
|
private final PayService payService; // 自动注入支付服务类
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 支付接口
|
|
|
|
|
* @param payParam 支付参数
|
|
|
|
|
* @return 服务器响应实体
|
|
|
|
|
*/
|
|
|
|
|
@PostMapping("/pay")
|
|
|
|
|
@Operation(summary = "根据订单号进行支付", description = "根据订单号进行支付")
|
|
|
|
|
public ServerResponseEntity<Void> pay(@RequestBody PayParam payParam) {
|
|
|
|
|
YamiUser user = SecurityUtils.getUser();
|
|
|
|
|
String userId = user.getUserId();
|
|
|
|
|
|
|
|
|
|
PayInfoDto payInfo = payService.pay(userId, payParam); // 调用支付服务进行支付
|
|
|
|
|
payService.paySuccess(payInfo.getPayNo(), ""); // 调用支付成功处理
|
|
|
|
|
return ServerResponseEntity.success(); // 返回成功响应
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 普通支付接口
|
|
|
|
|
* @param payParam 支付参数
|
|
|
|
|
* @return 服务器响应实体
|
|
|
|
|
*/
|
|
|
|
|
@PostMapping("/normalPay")
|
|
|
|
|
@Operation(summary = "根据订单号进行支付", description = "根据订单号进行支付")
|
|
|
|
|
public ServerResponseEntity<Boolean> normalPay(@RequestBody PayParam payParam) {
|
|
|
|
|
YamiUser user = SecurityUtils.getUser();
|
|
|
|
|
String userId = user.getUserId();
|
|
|
|
|
PayInfoDto pay = payService.pay(userId, payParam); // 调用支付服务进行支付
|
|
|
|
|
|
|
|
|
|
// 根据内部订单号更新订单结算信息
|
|
|
|
|
payService.paySuccess(pay.getPayNo(), "");
|
|
|
|
|
|
|
|
|
|
return ServerResponseEntity.success(true); // 返回成功响应
|
|
|
|
|
}
|
|
|
|
|
}
|