Update PayController.java

cyj
pbvfus8to 8 months ago
parent 5638c04655
commit adf1f7a27e

@ -26,43 +26,67 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
*
* PayService
*
* @author lanhai
*/
@RestController
// 设置该控制器类对应的请求映射路径,后续类中的接口方法路径会基于此进行拼接,这里表明是与订单支付相关的接口所在的基础路径。
@RequestMapping("/p/order")
// 使用 @Tag 注解为该控制器类添加标签说明,用于在 API 文档(如 Swagger 生成的文档)中对该类下的接口进行分类展示,这里表明是“订单接口”相关的一组接口。
@Tag(name = "订单接口")
// 通过Lombok的 @AllArgsConstructor 注解生成包含所有参数的构造函数用于依赖注入PayService实例方便后续调用支付相关的业务方法。
@AllArgsConstructor
public class PayController {
// 注入PayService用于处理与支付相关的核心业务逻辑例如发起支付、处理支付成功后的业务逻辑等操作。
private final PayService payService;
/**
*
* PayParam
* @PostMapping HTTP POST /payPOST
* @Operation API summarydescription便使
*
* @param payParam PayParam
* @return ServerResponseEntityVoid
*/
@PostMapping("/pay")
@Operation(summary = "根据订单号进行支付" , description = "根据订单号进行支付")
@Operation(summary = "根据订单号进行支付", description = "根据订单号进行支付")
public ServerResponseEntity<Void> pay(@RequestBody PayParam payParam) {
// 通过SecurityUtils工具类获取当前登录用户信息封装在YamiUser对象中后续可能用于验证用户身份、关联支付记录与用户等操作。
YamiUser user = SecurityUtils.getUser();
// 从获取到的用户对象中提取用户ID作为支付操作中关联用户的关键标识传递给后续的支付业务逻辑处理方法。
String userId = user.getUserId();
// 调用PayService的pay方法传入用户ID和支付参数发起支付操作该方法会根据传入的参数进行具体的支付流程处理
// 例如与支付平台交互、生成支付订单等并返回包含支付相关信息的PayInfoDto对象如支付单号等信息。
PayInfoDto payInfo = payService.pay(userId, payParam);
// 调用PayService的paySuccess方法传入支付单号等信息用于处理支付成功后的相关业务逻辑比如更新订单状态、记录支付记录等操作
// 第二个参数为空字符串可能表示一些额外的备注信息等具体含义取决于paySuccess方法的实现逻辑。
payService.paySuccess(payInfo.getPayNo(), "");
return ServerResponseEntity.success();
}
/**
*
* PayParam
* ServerResponseEntitytrue
* @PostMapping HTTP POST /normalPayPOST
* @Operation API
*
* @param payParam PayParam
* @return ServerResponseEntitytrue
*/
@PostMapping("/normalPay")
@Operation(summary = "根据订单号进行支付" , description = "根据订单号进行支付")
@Operation(summary = "根据订单号进行支付", description = "根据订单号进行支付")
public ServerResponseEntity<Boolean> normalPay(@RequestBody PayParam payParam) {
YamiUser user = SecurityUtils.getUser();
String userId = user.getUserId();
PayInfoDto pay = payService.pay(userId, payParam);
// 根据内部订单号更新order settlement
// 根据内部订单号更新order settlement调用PayService的paySuccess方法处理支付成功后的业务逻辑传入支付单号等信息
// 这里的操作与上面的支付接口中的paySuccess调用类似都是为了保证支付成功后相关业务数据的更新和一致性。
payService.paySuccess(pay.getPayNo(), "");
return ServerResponseEntity.success(true);

Loading…
Cancel
Save