This commit is contained in:
dute7liang
2024-01-27 17:09:35 +08:00
parent df689571a2
commit 63b2d1f238
5 changed files with 93 additions and 21 deletions

View File

@@ -6,7 +6,7 @@ import lombok.Data;
@Data
public class PayControllerDTO {
@Schema(description = "订单号")
private String tradeNo;
private String orderNo;
@Schema(description = "微信支付的时候需要传")
private String wxAppId;
}

View File

@@ -1,11 +1,16 @@
package com.ruoyi.cai.pay;
import com.ruoyi.cai.domain.RechargeOrder;
import com.ruoyi.cai.domain.VipOrder;
import com.ruoyi.cai.dto.ConsumeResp;
import com.ruoyi.cai.dto.commom.consumer.RechargeConsumerResp;
import com.ruoyi.cai.manager.AwardManager;
import com.ruoyi.cai.manager.ConsumerManager;
import com.ruoyi.cai.service.PayTotalService;
import com.ruoyi.cai.service.RechargeOrderService;
import com.ruoyi.cai.service.VipOrderService;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -21,10 +26,52 @@ public class PayManager {
@Autowired
private ConsumerManager consumerManager;
@Autowired
private RechargeOrderService rechargeOrderService;
@Autowired
private AwardManager awardManager;
@Autowired
private PayTotalService payTotalService;
public PayOrderInfoDTO getOrderInfo(String orderNo){
OrderTypeEnum orderTypeEnum = OrderNoUtil.getType(orderNo);
if(orderTypeEnum == null){
log.error("订单类型有误orderNo={}",orderNo);
throw new ServiceException("支付失败,请检查订单号");
}
PayOrderInfoDTO dto = null;
switch (orderTypeEnum) {
case VIP_ORDER_SUB:
VipOrder vipOrder = vipOrderService.getByOrderNo(orderNo);
if(vipOrder == null){
throw new ServiceException("订单不存在,请重新下单支付");
}
if(!PayStatusEnum.READY_PAY.getCode().equals(vipOrder.getPayStatus())){
throw new ServiceException("订单状态有误,请重新下单支付");
}
dto = new PayOrderInfoDTO();
dto.setBody(vipOrder.getVipName());
dto.setSubject(vipOrder.getVipName());
dto.setPrice(vipOrder.getPrice());
break;
case RECHARGE_ORDER_SUB:
RechargeOrder rechargeOrder = rechargeOrderService.getByOrderNo(orderNo);
if(rechargeOrder == null){
throw new ServiceException("订单不存在,请重新下单支付");
}
if(!PayStatusEnum.READY_PAY.getCode().equals(rechargeOrder.getPayStatus())){
throw new ServiceException("订单状态有误,请重新下单支付");
}
dto = new PayOrderInfoDTO();
dto.setBody(rechargeOrder.getRechargeName());
dto.setSubject(rechargeOrder.getRechargeName());
dto.setPrice(rechargeOrder.getPrice());
break;
default:
break;
}
return dto;
}
public void callBack(String orderNo){
callBack(orderNo,null,null,null,null);
}

View File

@@ -0,0 +1,17 @@
package com.ruoyi.cai.pay;
import cn.hutool.core.util.NumberUtil;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class PayOrderInfoDTO {
private String body;
private String subject;
private BigDecimal price;
public String getPriceFenStr(){
return NumberUtil.mul(price,100).longValue()+"";
}
}