订单优化
This commit is contained in:
parent
a54b1b1d72
commit
87a47e0529
|
@ -149,4 +149,8 @@ public class TransactionBillQuery extends TransactionBill {
|
|||
@ApiModelProperty("用户ID列表")
|
||||
private List<Long> userIds;
|
||||
|
||||
@ApiModelProperty("支付过期时间(结束)")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime expireTimeEnd;
|
||||
|
||||
}
|
||||
|
|
|
@ -231,6 +231,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="query.vipId != null "> and stb.vip_id = #{query.vipId}</if>
|
||||
<if test="query.vipName != null and query.vipName != ''"> and vip_name like concat('%', #{query.vipName}, '%')</if>
|
||||
<if test="query.finished != null"> and stb.finished = #{query.finished}</if>
|
||||
<if test="query.expireTimeEnd != null"> and date(stb.expire_time) <= #{query.expireTimeEnd}</if>
|
||||
<if test="query.isNullSuitEndTime != null">
|
||||
and stb.suit_end_time is
|
||||
<if test="!query.isNullSuitEndTime">
|
||||
|
|
|
@ -109,6 +109,8 @@ public interface TransactionBillService {
|
|||
*/
|
||||
int cancelRecharge(String billNo, TransactionBillStatus status);
|
||||
|
||||
int cancelRecharge(TransactionBillVO old, TransactionBillStatus status);
|
||||
|
||||
/**
|
||||
* 根据订单编号查询数据
|
||||
*
|
||||
|
|
|
@ -321,8 +321,6 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
|
|||
return insert;
|
||||
});
|
||||
|
||||
// 加入延时队列,超时取消
|
||||
billDelayedManager.add(order.getBillNo(), order.getExpireTime().getTime());
|
||||
return order.getBillNo();
|
||||
} finally {
|
||||
// 解锁
|
||||
|
@ -1322,13 +1320,20 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
|
|||
*/
|
||||
@Override
|
||||
public int cancelRecharge(String billNo, TransactionBillStatus status) {
|
||||
TransactionBillVO bill = this.selectSmTransactionBillByBillNo(billNo);
|
||||
return this.cancelRecharge(bill, status);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int cancelRecharge(TransactionBillVO old, TransactionBillStatus status) {
|
||||
|
||||
ServiceUtil.assertion(!TransactionBillStatus.isCancel(status.getStatus()), "参数错误:状态并非取消状态");
|
||||
|
||||
// 刷新支付结果
|
||||
this.refreshPayResult(billNo);
|
||||
this.refreshPayResult(old);
|
||||
|
||||
// 查询数据
|
||||
TransactionBill bill = transactionBillMapper.selectSmTransactionBillByBillNo(billNo);
|
||||
TransactionBill bill = transactionBillMapper.selectSmTransactionBillByBillId(old.getBillId());
|
||||
ServiceUtil.assertion(bill == null || bill.getBillId() == null, "订单不存在");
|
||||
ServiceUtil.assertion(!TransactionBillType.RECHARGE.getType().equals(bill.getType()), "非充值订单,不允许取消");
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.ruoyi.task.bill;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
|
||||
|
@ -162,4 +163,27 @@ public class BillMonitorTask {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* 关闭未支付且过期的订单
|
||||
*/
|
||||
public void closeExpireOrder() {
|
||||
TransactionBillQuery query = new TransactionBillQuery();
|
||||
query.setStatusList(Arrays.asList(TransactionBillStatus.UNPAID.getStatus(),
|
||||
TransactionBillStatus.PAYING.getStatus(), TransactionBillStatus.UNPAID_DEPOSIT.getStatus()));
|
||||
query.setType(TransactionBillType.RECHARGE.getType());
|
||||
query.setExpireTimeEnd(LocalDateTime.now());
|
||||
List<TransactionBillVO> billList = transactionBillService.selectSmTransactionBillList(query);
|
||||
if (billList == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (TransactionBillVO bill : billList) {
|
||||
try {
|
||||
transactionBillService.cancelRecharge(bill, TransactionBillStatus.SYS_CANCELED);
|
||||
} catch (Exception e) {
|
||||
log.error("取消未支付的订单{}失败, {}", bill.getBillNo(), e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user