fix - 简单修改篮球入场订单逻辑

This commit is contained in:
2026-03-29 10:19:12 +08:00
parent 9f3a1c02c3
commit 14a9944c72
10 changed files with 198 additions and 166 deletions

View File

@@ -44,10 +44,9 @@ public class BarcodeTimeOrderTask {
@Scheduled(cron = "0 0/5 * * * ?")
public void execute(){
logger.error("执行BarcodeTimeOrderTask.execute");
// 查询用户已经过期的按次入场订单
List<BarcodeOrderTime> barcodeOrderTimes = barcodeOrderTimeMapper.endOrderList(new Date());
Date date = new Date();
List<BarcodeOrderTime> barcodeOrderTimes = barcodeOrderTimeMapper.endOrderList(date);
if (barcodeOrderTimes != null && barcodeOrderTimes.size() > 0){
Date date = new Date();
for (BarcodeOrderTime barcodeOrderTime : barcodeOrderTimes) {
logger.info("用户:" + barcodeOrderTime.getMemberId() + ",在场馆" + barcodeOrderTime.getVenueId() + "已到期");
barcodeOrderTime.setStatus(BarCodeStatusEnum.USED.getValue());
@@ -60,37 +59,43 @@ public class BarcodeTimeOrderTask {
@Scheduled(cron = "0 0/2 * * * ?")
public void refundOrder(){
logger.error("执行BarcodeTimeOrderTask.refundOrder");
// 需要支付的订单
List<BarcodeOrderTime> barcodeOrderTimes = barcodeOrderTimeMapper.needPayOrderList();
if (barcodeOrderTimes != null && barcodeOrderTimes.size() > 0){
Date date = new Date();
for (BarcodeOrderTime barcodeOrderTime : barcodeOrderTimes) {
int minutes = DateUtilCard.diffMinute(barcodeOrderTime.getModifiedTime(), date);
if (minutes < 10) {
continue;
boolean isHourlyRefund = barcodeOrderTime.getPayMoney() != null && barcodeOrderTime.getPayMoney() > 0;
if (!isHourlyRefund) {
// 按次计费10分钟宽限期
int minutes = DateUtilCard.diffMinute(barcodeOrderTime.getModifiedTime(), date);
if (minutes < 10) {
continue;
}
}
// 关闭订单
barcodeOrderTime.setPaying(0);
barcodeOrderTime.setModifiedTime(date);
barcodeOrderTime.setStatus(BarCodeStatusEnum.USED.getValue());
barcodeOrderTimeMapper.updateByPrimaryKey(barcodeOrderTime);
if (barcodeOrderTime.getPayMoney() <= 0) {
continue;
}
Order order = orderMapper.findOrderSn(barcodeOrderTime.getOrderSn(), barcodeOrderTime.getMemberId());
if (order != null) {
// 找到订单
logger.info("用户" + barcodeOrderTime.getMemberId() + "的订单" + barcodeOrderTime.getOrderSn() + "需要退款" + barcodeOrderTime.getPayMoney());
MemberRefund memberRefund = new MemberRefund();
memberRefund.setMemberId(barcodeOrderTime.getMemberId());
memberRefund.setLessonId(barcodeOrderTime.getId());
memberRefund.setMoney(order.getPrice());
memberRefund.setOrderSn(barcodeOrderTime.getOrderSn());
memberRefund.setTransactionId(order.getTradeSn());
memberRefund.setOrderId(order.getId());
memberRefund.setOutRefundNo(createSn());//商户退款单号
memberRefund.setPlatformId(1);
memberRefundMapper.insert(memberRefund);
wechatPayService.refundInputMoney(memberRefund,new BigDecimal(barcodeOrderTime.getPayMoney()));
// 按时计费退款
if (isHourlyRefund) {
Order order = orderMapper.findOrderSn(barcodeOrderTime.getOrderSn(), barcodeOrderTime.getMemberId());
if (order != null) {
logger.info("用户" + barcodeOrderTime.getMemberId() + "的订单" + barcodeOrderTime.getOrderSn() + "需要退款" + barcodeOrderTime.getPayMoney());
MemberRefund memberRefund = new MemberRefund();
memberRefund.setMemberId(barcodeOrderTime.getMemberId());
memberRefund.setLessonId(barcodeOrderTime.getId());
memberRefund.setMoney(order.getPrice());
memberRefund.setOrderSn(barcodeOrderTime.getOrderSn());
memberRefund.setTransactionId(order.getTradeSn());
memberRefund.setOrderId(order.getId());
memberRefund.setOutRefundNo(createSn());
memberRefund.setPlatformId(1);
memberRefundMapper.insert(memberRefund);
wechatPayService.refundInputMoney(memberRefund,new BigDecimal(barcodeOrderTime.getPayMoney()));
}
}
}
}