订单优化
This commit is contained in:
parent
a54b1b1d72
commit
87a47e0529
|
@ -149,4 +149,8 @@ public class TransactionBillQuery extends TransactionBill {
|
||||||
@ApiModelProperty("用户ID列表")
|
@ApiModelProperty("用户ID列表")
|
||||||
private List<Long> userIds;
|
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.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.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.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">
|
<if test="query.isNullSuitEndTime != null">
|
||||||
and stb.suit_end_time is
|
and stb.suit_end_time is
|
||||||
<if test="!query.isNullSuitEndTime">
|
<if test="!query.isNullSuitEndTime">
|
||||||
|
|
|
@ -109,6 +109,8 @@ public interface TransactionBillService {
|
||||||
*/
|
*/
|
||||||
int cancelRecharge(String billNo, TransactionBillStatus status);
|
int cancelRecharge(String billNo, TransactionBillStatus status);
|
||||||
|
|
||||||
|
int cancelRecharge(TransactionBillVO old, TransactionBillStatus status);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据订单编号查询数据
|
* 根据订单编号查询数据
|
||||||
*
|
*
|
||||||
|
|
|
@ -321,8 +321,6 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
|
||||||
return insert;
|
return insert;
|
||||||
});
|
});
|
||||||
|
|
||||||
// 加入延时队列,超时取消
|
|
||||||
billDelayedManager.add(order.getBillNo(), order.getExpireTime().getTime());
|
|
||||||
return order.getBillNo();
|
return order.getBillNo();
|
||||||
} finally {
|
} finally {
|
||||||
// 解锁
|
// 解锁
|
||||||
|
@ -1322,13 +1320,20 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int cancelRecharge(String billNo, TransactionBillStatus status) {
|
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()), "参数错误:状态并非取消状态");
|
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(bill == null || bill.getBillId() == null, "订单不存在");
|
||||||
ServiceUtil.assertion(!TransactionBillType.RECHARGE.getType().equals(bill.getType()), "非充值订单,不允许取消");
|
ServiceUtil.assertion(!TransactionBillType.RECHARGE.getType().equals(bill.getType()), "非充值订单,不允许取消");
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.ruoyi.task.bill;
|
package com.ruoyi.task.bill;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
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