/* * 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.enums.PayEntry; import com.yami.shop.bean.pay.PayInfoDto; import com.yami.shop.common.exception.YamiShopBindException; import com.yami.shop.common.response.ServerResponseEntity; import com.yami.shop.manager.impl.PayManager; import com.yami.shop.security.api.model.YamiUser; import com.yami.shop.security.api.util.SecurityUtils; import com.yami.shop.service.PayInfoService; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; import lombok.AllArgsConstructor; import lombok.SneakyThrows; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; /** * @author LGH */ @RestController @RequestMapping("/p/order") @Tag(name = "订单支付接口") @AllArgsConstructor public class PayController { private final PayInfoService payInfoService; private final PayManager payManager; @PostMapping("/pay") @Operation(summary = "根据订单号进行支付" , description = "根据订单号进行支付") @SneakyThrows public ServerResponseEntity pay(HttpServletResponse httpResponse, @Valid @RequestBody PayParam payParam) { YamiUser user = SecurityUtils.getUser(); String userId = user.getUserId(); if (!user.getEnabled()) { // 您已被禁用,不能购买,请联系平台客服 throw new YamiShopBindException("yami.order.pay.user.disable"); } PayInfoDto payInfo = payInfoService.pay(userId, payParam); payInfo.setBizUserId(user.getBizUserId()); payInfo.setPayType(payParam.getPayType()); payInfo.setApiNoticeUrl("/notice/pay/" + PayEntry.ORDER.value() + "/" + payParam.getPayType()); payInfo.setReturnUrl(payParam.getReturnUrl()); return payManager.doPay(httpResponse, payInfo); } @GetMapping("/isPay/{payEntry}/{orderNumbers}") @Operation(summary = "根据订单号查询该订单是否已经支付" , description = "根据订单号查询该订单是否已经支付") @Parameter(name = "orderNumbers", description = "多个订单号拼接" , required = true) public ServerResponseEntity isPay(@PathVariable Integer payEntry, @PathVariable String orderNumbers) { YamiUser user = SecurityUtils.getUser(); Integer count = payInfoService.queryPay(orderNumbers, user.getUserId(), payEntry); boolean res = count != null && count == 1; return ServerResponseEntity.success(res); } }