fix - 彻底优化日志

This commit is contained in:
2026-06-09 00:25:30 +08:00
parent f0131e3f24
commit e7d97b35b5
20 changed files with 458 additions and 449 deletions

View File

@@ -44,53 +44,61 @@ public class BarcodeTimeOrderTask {
@Scheduled(cron = "0 0/8 * * * ?")
public void execute(){
logger.error("执行BarcodeTimeOrderTask.execute");
Date date = new Date();
List<BarcodeOrderTime> barcodeOrderTimes = barcodeOrderTimeMapper.endOrderList(date);
logger.info("[定时任务][订单过期] 开始执行, 查询到{}个到期订单", barcodeOrderTimes != null ? barcodeOrderTimes.size() : 0);
if (barcodeOrderTimes != null && barcodeOrderTimes.size() > 0){
for (BarcodeOrderTime barcodeOrderTime : barcodeOrderTimes) {
logger.info("用户:" + barcodeOrderTime.getMemberId() + ",在场馆" + barcodeOrderTime.getVenueId() + "已到期");
logger.info("[定时任务][订单过期] memberId={}, venueId={}, orderSn={}, orderEnd={}, 已到期",
barcodeOrderTime.getMemberId(), barcodeOrderTime.getVenueId(),
barcodeOrderTime.getOrderSn(), barcodeOrderTime.getOrderEnd());
barcodeOrderTime.setStatus(BarCodeStatusEnum.USED.getValue());
barcodeOrderTime.setModifiedTime(date);
barcodeOrderTimeMapper.updateByPrimaryKey(barcodeOrderTime);
}
}
logger.info("[定时任务][订单过期] 执行完毕, 处理{}个订单", barcodeOrderTimes != null ? barcodeOrderTimes.size() : 0);
}
@Scheduled(cron = "0 0/5 * * * ?")
public void refundOrder(){
logger.error("执行BarcodeTimeOrderTask.refundOrder");
List<BarcodeOrderTime> barcodeOrderTimes = barcodeOrderTimeMapper.needPayOrderList();
logger.info("[定时任务][订单退款] 开始执行, 查询到{}个待退款订单", barcodeOrderTimes != null ? barcodeOrderTimes.size() : 0);
if (barcodeOrderTimes != null && barcodeOrderTimes.size() > 0){
Date date = new Date();
int refundCount = 0;
for (BarcodeOrderTime barcodeOrderTime : barcodeOrderTimes) {
boolean isHourlyRefund = barcodeOrderTime.getPayMoney() != null && barcodeOrderTime.getPayMoney().compareTo(BigDecimal.ZERO) > 0;
if (!isHourlyRefund) {
// 按次计费10分钟宽限期
int minutes = DateUtilCard.diffMinute(barcodeOrderTime.getModifiedTime(), date);
if (minutes < 10) {
logger.info("[定时任务][订单退款] 按次计费10分钟宽限期内跳过 memberId={}, orderSn={}, 已等待{}分钟",
barcodeOrderTime.getMemberId(), barcodeOrderTime.getOrderSn(), minutes);
continue;
}
}
// 关闭订单
logger.info("[定时任务][订单退款] 关闭订单 memberId={}, venueId={}, orderSn={}, isHourlyRefund={}, payMoney={}",
barcodeOrderTime.getMemberId(), barcodeOrderTime.getVenueId(),
barcodeOrderTime.getOrderSn(), isHourlyRefund, barcodeOrderTime.getPayMoney());
barcodeOrderTime.setPaying(0);
barcodeOrderTime.setModifiedTime(date);
barcodeOrderTime.setStatus(BarCodeStatusEnum.USED.getValue());
barcodeOrderTimeMapper.updateByPrimaryKey(barcodeOrderTime);
// 按时计费退款
if (isHourlyRefund) {
// 如果有补费订单号,跳过退款(与管理员退费逻辑一致)
if (!StringUtils.isEmpty(barcodeOrderTime.getOrderAddSn())) {
logger.info("用户" + barcodeOrderTime.getMemberId() + "的订单有补费记录,跳过退款");
logger.info("[定时任务][订单退款] 有补费记录,跳过退款 memberId={}, orderSn={}, orderAddSn={}",
barcodeOrderTime.getMemberId(), barcodeOrderTime.getOrderSn(), barcodeOrderTime.getOrderAddSn());
continue;
}
Order order = orderMapper.findOrderSn(barcodeOrderTime.getOrderSn(), barcodeOrderTime.getMemberId());
if (order != null) {
BigDecimal refundAmount = barcodeOrderTime.getPayMoney();
logger.info("用户" + barcodeOrderTime.getMemberId() + "的订单" + barcodeOrderTime.getOrderSn() + "需要退款" + refundAmount + "");
logger.info("[定时任务][订单退款] 发起微信退款 memberId={}, orderSn={}, refundAmount={}, orderPrice={}",
barcodeOrderTime.getMemberId(), barcodeOrderTime.getOrderSn(), refundAmount, order.getPrice());
MemberRefund memberRefund = new MemberRefund();
memberRefund.setMemberId(barcodeOrderTime.getMemberId());
memberRefund.setLessonId(barcodeOrderTime.getId());
@@ -102,17 +110,20 @@ public class BarcodeTimeOrderTask {
memberRefund.setPlatformId(1);
memberRefundMapper.insert(memberRefund);
wechatPayService.refundInputMoney(memberRefund, order.getPrice(), refundAmount);
refundCount++;
} else {
logger.warn("[定时任务][订单退款] 未找到原始订单 memberId={}, orderSn={}",
barcodeOrderTime.getMemberId(), barcodeOrderTime.getOrderSn());
}
}
}
logger.info("[定时任务][订单退款] 执行完毕, 处理{}个订单, 发起{}笔退款",
barcodeOrderTimes.size(), refundCount);
} else {
logger.info("[定时任务][订单退款] 无待退款订单");
}
}
/**
* 生成订单号
*
* @return
*/
private String createSn() {
return DateFormatUtils.format(new Date(), "yyMMddHHmmss") + RandomStringUtils.randomNumeric(6);
}

View File

@@ -92,4 +92,4 @@ logging:
level:
com:
sv:
mapper: DEBUG
mapper: WARN

View File

@@ -5,8 +5,7 @@
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} [%X{traceId:-no-trace}] - %msg%n</pattern>
</encoder>
</appender>
@@ -15,10 +14,10 @@
<file>${LOG_HOME}/common-default.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/common-default-%d{yyyy-MM-dd}.log</fileNamePattern>
<MaxHistory>30</MaxHistory>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} [%X{traceId:-no-trace}] - %msg%n</pattern>
</encoder>
</appender>
@@ -30,10 +29,10 @@
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/common-error-%d{yyyy-MM-dd}.log</fileNamePattern>
<MaxHistory>30</MaxHistory>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} [%X{traceId:-no-trace}] - %msg%n</pattern>
</encoder>
</appender>
@@ -42,10 +41,10 @@
<file>${LOG_HOME}/task/task.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/task/task-%d{yyyy-MM-dd}.log</fileNamePattern>
<MaxHistory>30</MaxHistory>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} [%X{traceId:-no-trace}] - %msg%n</pattern>
</encoder>
</appender>
@@ -53,7 +52,8 @@
<appender-ref ref="TASK-SERVICE" />
</logger>
<!-- root -->
<logger name="com.sv.mapper" level="WARN"/>
<root level="info">
<appender-ref ref="STDOUT" />
<appender-ref ref="COMMON-DEFAULT" />