ebike-plus/ebike-payment/src/main/java/com/cdzy/payment/controller/EbikeWxPaymentController.java

221 lines
7.2 KiB
Java
Raw Normal View History

2025-10-22 10:13:57 +08:00
package com.cdzy.payment.controller;
import cn.dev33.satoken.stp.StpUtil;
import com.alibaba.fastjson2.JSONObject;
import com.cdzy.common.model.response.JsonResult;
import com.cdzy.payment.model.dto.*;
import com.cdzy.payment.model.vo.*;
import com.cdzy.payment.service.EbikeRefundService;
2025-10-24 10:09:53 +08:00
import com.cdzy.payment.service.EbikeWxPayService;
2025-10-22 10:13:57 +08:00
import com.mybatisflex.core.paginate.Page;
import com.wechat.pay.java.service.payments.model.Transaction;
import com.wechat.pay.java.service.refund.model.Refund;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
/**
* 用户订单微信支付 控制层
*
* @author: yanglei
* @since: 2025-10-21 14:42
*/
@Slf4j
@RestController
@RequestMapping("/wxPayment")
public class EbikeWxPaymentController {
@Resource
2025-10-24 10:09:53 +08:00
private EbikeWxPayService wxPayService;
2025-10-22 10:13:57 +08:00
@Resource
private EbikeRefundService ebikeRefundService;
/**
* 微信支付下单
*
* @param orderId 骑行订单id
* @return 下单成功返回true否则返回false
*/
@GetMapping("/prepay")
public JsonResult<?> prepay(@RequestParam(name = "orderId") String orderId) {
JSONObject r = wxPayService.prepay(orderId);
2025-10-29 14:06:51 +08:00
return JsonResult.success(r);
2025-10-22 10:13:57 +08:00
}
/**
* 通过商户(骑行)订单号查询支付订单
*
* @param orderId 商户(骑行)订单号
* @return 支付订单信息
*/
@GetMapping("/queryOrder/{orderId}")
public JsonResult<?> queryOrderByOrderId(@PathVariable(name = "orderId") String orderId) {
2025-10-29 14:06:51 +08:00
Transaction transaction = wxPayService.queryOrderByOrderId(orderId);
return JsonResult.success(transaction);
2025-10-22 10:13:57 +08:00
}
/**
* 通过商户(骑行)订单订单号查询支付订单状态
*
* @param orderId 微信支付订单号
* @return 订单信息支付状态
*/
@GetMapping("/queryOrderStatus/{orderId}")
public JsonResult<?> queryOrderStatusById(@PathVariable(name = "orderId") String orderId) {
2025-10-24 10:09:53 +08:00
EbikeWxHandleNotifyVo r = wxPayService.queryOrderStatusByOrderId(orderId);
2025-10-22 10:13:57 +08:00
return JsonResult.success(r);
}
// 拆分为两个接口,一个是退款申请(生成退款记录),一个是提交退款(调用微信退款接口)
/**
* 退款申请
*
* @param ebikeRefundDto 退款信息
* @return 退款成功返回主键id否则返回失败
*/
@PostMapping("/refundApply")
2025-10-24 10:09:53 +08:00
public JsonResult<?> refundApply(@RequestBody EbikeOrderRefundDto ebikeRefundDto) {
2025-10-22 10:13:57 +08:00
Long r = wxPayService.refundApply(ebikeRefundDto.getOrderId(), ebikeRefundDto.getReason());
2025-10-29 14:06:51 +08:00
return JsonResult.success(r);
2025-10-22 10:13:57 +08:00
}
/**
* 调用退款接口
*
* @param refundDto 退款请求参数
* @return 退款成功返回true否则返回false
*/
@PostMapping("/refund")
2025-10-24 10:09:53 +08:00
public JsonResult<?> refund(@RequestBody EbikeRefundDto refundDto) {
2025-10-22 10:13:57 +08:00
// 获取审核人信息
String loginId = (String) StpUtil.getLoginId();
2025-10-24 10:09:53 +08:00
EbikeWxHandleNotifyVo r = wxPayService.refund(refundDto, loginId);
2025-10-22 10:13:57 +08:00
return r.isSuccess() ? JsonResult.success(true) : JsonResult.failed(r.getMessage());
}
/**
* 通过退款记录主键id查询退款信息
*
* @param refundId 退款主键id
* @return 退款状态信息
*/
@GetMapping("/queryRefundStatus/{refundId}")
public JsonResult<?> queryRefundStatus(@PathVariable(name = "refundId") Long refundId) {
2025-10-29 14:06:51 +08:00
EbikeWxHandleNotifyVo notifyVo = wxPayService.queryRefundStatusById(refundId);
return JsonResult.success(notifyVo);
2025-10-22 10:13:57 +08:00
}
/**
* 审核退款申请
*
* @param processDto 退款处理信息
* @return 审核成功返回true否则返回false
*/
@PostMapping("/reviewRefund")
2025-10-24 10:09:53 +08:00
public JsonResult<?> reviewRefund(@RequestBody EbikeRefundProcessDto processDto) {
2025-10-22 10:13:57 +08:00
// 获取审核人信息id
String loginId = (String) StpUtil.getLoginId();
2025-10-29 14:06:51 +08:00
boolean result = wxPayService.refundReview(processDto, loginId);
return JsonResult.success(result);
2025-10-22 10:13:57 +08:00
}
/**
* 通过退款单号查询退款信息
*
* @param refundId 商户(骑行)退款id
* @return 退款信息
*/
@GetMapping("/queryRefund/{refundId}")
public JsonResult<?> refundQuery(@PathVariable(name = "refundId") Long refundId) {
2025-10-29 14:06:51 +08:00
Refund refund = wxPayService.queryRefundById(refundId);
return JsonResult.success(refund);
2025-10-22 10:13:57 +08:00
}
/**
* 获取退款列表
*
* @param refundDto 查询条件
* @return 退款列表
*/
@PostMapping("/queryRefundList")
2025-10-24 10:09:53 +08:00
public JsonResult<?> queryRefundList(@RequestBody EbikeRefundQueryDto refundDto) {
2025-10-22 10:13:57 +08:00
Page<?> list = wxPayService.queryRefundList(refundDto);
return JsonResult.success(list);
}
/**
* 退款订单详情
*
* @param refundId 退款id
* @return 退款详情
*/
@GetMapping("/refundOrderDetail/{refundId}")
public JsonResult<?> refundOrderDetail(@PathVariable(name = "refundId") Long refundId) {
2025-10-29 14:06:51 +08:00
EbikeRefundOrderDetailVo refundOrderDetailVo = wxPayService.queryRefundOrderById(refundId);
return JsonResult.success(refundOrderDetailVo);
2025-10-22 10:13:57 +08:00
}
/**
* 退款申请订单详情
*
* @param orderId 订单id
* @return 订单详情
*/
@GetMapping("/refundApplyOrderDetail/{orderId}")
public JsonResult<?> refundApplyOrderDetail(@PathVariable(name = "orderId") String orderId) {
2025-10-29 14:06:51 +08:00
EbikeRefundApplyOrderInfoVo refundApplyOrderInfoVo = wxPayService.queryRefundApplyOrderById(orderId);
return JsonResult.success(refundApplyOrderInfoVo);
2025-10-22 10:13:57 +08:00
}
/**
* 退款申请用户详情
*
* @param refundId 退款id
* @return 退款申请用户详情
*/
@GetMapping("/refundApplyUserDetail/{refundId}")
public JsonResult<?> refundApplyUserDetail(@PathVariable(name = "refundId") Long refundId) {
2025-10-29 14:06:51 +08:00
EbikeRefundUserDetailInfoVo refundUserDetailInfoVo = wxPayService.queryRefundUserInfoById(refundId);
return JsonResult.success(refundUserDetailInfoVo);
2025-10-22 10:13:57 +08:00
}
/**
* 退款申请用户交易记录
*
* @param userQueryDto 查询条件
*/
@PostMapping("/refundApplyTradeRecord")
2025-10-24 10:09:53 +08:00
public JsonResult<?> refundApplyTradeRecord(@RequestBody EbikeTreadRecordDto userQueryDto) {
Page<EbikeTransactionRecordVo> list = ebikeRefundService.queryRefundTradeRecordById(userQueryDto);
2025-10-22 10:13:57 +08:00
return JsonResult.success(list);
}
/**
* 退款申请用户退款记录
*
* @param userQueryDto 查询条件
*/
@PostMapping("/refundApplyRefundRecord")
2025-10-24 10:09:53 +08:00
public JsonResult<?> refundApplyRefundRecord(@RequestBody EbikeTreadRecordDto userQueryDto) {
Page<EbikeRefundApplyRefundRecordVo> list = ebikeRefundService.queryRefundRefundRecordById(userQueryDto);
2025-10-22 10:13:57 +08:00
return JsonResult.success(list);
}
/**
* 退款用户订单记录
*
* @param userQueryDto 查询条件
* @return 退款记录列表 List<OrderRecord>
*/
@PostMapping("/refundOrderRecords")
2025-10-24 10:09:53 +08:00
public JsonResult<?> refundOrderRecords(@RequestBody EbikeTreadRecordDto userQueryDto) {
Page<EbikeOrderRecordVo> list = ebikeRefundService.getRefundOrderRecords(userQueryDto);
2025-10-22 10:13:57 +08:00
return JsonResult.success(list);
}
}