提交 6ec665c1 authored 作者: hzh's avatar hzh

功能优化

上级 37aa1225
package org.dromara.order.constant;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 微信支付状态枚举类
* @author wenhe
*/
@Getter
@AllArgsConstructor
public enum WechatTradeState {
SUCCESS("SUCCESS","支付成功"),
REFUND("REFUND","转入退款"),
NOTPAY("NOTPAY","未支付"),
CLOSED("CLOSED","已关闭"),
REVOKED("REVOKED","已撤销"),
USERPAYING("USERPAYING","用户支付中"),
PAYERROR("PAYERROR","支付失败");
private final String state;
private final String desc;
}
...@@ -9,7 +9,6 @@ import io.seata.spring.annotation.GlobalTransactional; ...@@ -9,7 +9,6 @@ import io.seata.spring.annotation.GlobalTransactional;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService; import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.core.utils.ValidatorUtils; import org.dromara.common.core.utils.ValidatorUtils;
import org.dromara.common.pay.service.IWxPayService; import org.dromara.common.pay.service.IWxPayService;
...@@ -18,6 +17,7 @@ import org.dromara.order.api.RemoteOrderService; ...@@ -18,6 +17,7 @@ import org.dromara.order.api.RemoteOrderService;
import org.dromara.order.api.domain.RemoteOrder; import org.dromara.order.api.domain.RemoteOrder;
import org.dromara.order.api.domain.RemoteSaveOrder; import org.dromara.order.api.domain.RemoteSaveOrder;
import org.dromara.order.api.enums.OrderStatus; import org.dromara.order.api.enums.OrderStatus;
import org.dromara.order.constant.WechatTradeState;
import org.dromara.order.domain.bo.OrderBo; import org.dromara.order.domain.bo.OrderBo;
import org.dromara.order.domain.bo.OrderFeeBo; import org.dromara.order.domain.bo.OrderFeeBo;
import org.dromara.order.domain.bo.OrderTradeBo; import org.dromara.order.domain.bo.OrderTradeBo;
...@@ -109,9 +109,15 @@ public class RemoteOrderServiceImpl implements RemoteOrderService { ...@@ -109,9 +109,15 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
assert feeList != null; assert feeList != null;
BigDecimal amount = feeList.stream().map(OrderFeeVo::getFeeAmount).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal amount = feeList.stream().map(OrderFeeVo::getFeeAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
//删除历史支付订单 //关闭历史支付订单
List<Long> tradeIds = StreamUtils.toList(orderTradeService.queryList(new OrderTradeBo().setOrderNo(order.getOrderNo())), OrderTradeVo::getId); List<OrderTradeVo> otList = orderTradeService.queryList(new OrderTradeBo().setOrderNo(order.getOrderNo()));
orderTradeService.deleteWithValidByIds(tradeIds, false); if (!CollectionUtils.isEmpty(otList)) {
for (OrderTradeVo ot : otList) {
if (StringUtils.equals(ot.getTradeState(), WechatTradeState.USERPAYING.getState())) {
wxPayService.close(ot.getOrderPayNo());
}
}
}
Date expireTime = DateUtil.offsetMinute(new Date(), expireMinute); Date expireTime = DateUtil.offsetMinute(new Date(), expireMinute);
//创建支付订单 //创建支付订单
...@@ -126,6 +132,7 @@ public class RemoteOrderServiceImpl implements RemoteOrderService { ...@@ -126,6 +132,7 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
.setDiscountAmount(BigDecimal.ZERO) .setDiscountAmount(BigDecimal.ZERO)
.setTradeType(remoteOrder.getTradeType().name()) .setTradeType(remoteOrder.getTradeType().name())
.setExpireTime(expireTime) .setExpireTime(expireTime)
.setTradeState(WechatTradeState.USERPAYING.getState())
.setPayOpenId(LoginHelper.getOpenId()); .setPayOpenId(LoginHelper.getOpenId());
orderTradeService.insertByBo(ot); orderTradeService.insertByBo(ot);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论