提交 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;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
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.ValidatorUtils;
import org.dromara.common.pay.service.IWxPayService;
......@@ -18,6 +17,7 @@ import org.dromara.order.api.RemoteOrderService;
import org.dromara.order.api.domain.RemoteOrder;
import org.dromara.order.api.domain.RemoteSaveOrder;
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.OrderFeeBo;
import org.dromara.order.domain.bo.OrderTradeBo;
......@@ -109,9 +109,15 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
assert feeList != null;
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);
orderTradeService.deleteWithValidByIds(tradeIds, false);
//关闭历史支付订单
List<OrderTradeVo> otList = orderTradeService.queryList(new OrderTradeBo().setOrderNo(order.getOrderNo()));
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);
//创建支付订单
......@@ -126,6 +132,7 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
.setDiscountAmount(BigDecimal.ZERO)
.setTradeType(remoteOrder.getTradeType().name())
.setExpireTime(expireTime)
.setTradeState(WechatTradeState.USERPAYING.getState())
.setPayOpenId(LoginHelper.getOpenId());
orderTradeService.insertByBo(ot);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论