diff --git a/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta b/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta index 72f9ca3..ae268ec 100644 Binary files a/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta and b/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/.usage-cache.bin.bkp/xl.meta b/minio_data/.minio.sys/buckets/.usage-cache.bin.bkp/xl.meta index 58608ed..b822880 100644 Binary files a/minio_data/.minio.sys/buckets/.usage-cache.bin.bkp/xl.meta and b/minio_data/.minio.sys/buckets/.usage-cache.bin.bkp/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/.usage-cache.bin/xl.meta b/minio_data/.minio.sys/buckets/.usage-cache.bin/xl.meta index 34a4875..1abbdf6 100644 Binary files a/minio_data/.minio.sys/buckets/.usage-cache.bin/xl.meta and b/minio_data/.minio.sys/buckets/.usage-cache.bin/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/.usage.json/xl.meta b/minio_data/.minio.sys/buckets/.usage.json/xl.meta index a479c26..294bd46 100644 Binary files a/minio_data/.minio.sys/buckets/.usage.json/xl.meta and b/minio_data/.minio.sys/buckets/.usage.json/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin.bkp/xl.meta b/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin.bkp/xl.meta index 418b72a..3fa87fe 100644 Binary files a/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin.bkp/xl.meta and b/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin.bkp/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin/xl.meta b/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin/xl.meta index da5d3e9..676b953 100644 Binary files a/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin/xl.meta and b/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/assets/.usage-cache.bin.bkp/xl.meta b/minio_data/.minio.sys/buckets/assets/.usage-cache.bin.bkp/xl.meta index 754d213..95b9ab4 100644 Binary files a/minio_data/.minio.sys/buckets/assets/.usage-cache.bin.bkp/xl.meta and b/minio_data/.minio.sys/buckets/assets/.usage-cache.bin.bkp/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/assets/.usage-cache.bin/xl.meta b/minio_data/.minio.sys/buckets/assets/.usage-cache.bin/xl.meta index 30ae789..ab01d55 100644 Binary files a/minio_data/.minio.sys/buckets/assets/.usage-cache.bin/xl.meta and b/minio_data/.minio.sys/buckets/assets/.usage-cache.bin/xl.meta differ diff --git a/src/main/java/org/springblade/modules/martial/aspect/PerformanceMonitorAspect.java b/src/main/java/org/springblade/modules/martial/aspect/PerformanceMonitorAspect.java new file mode 100644 index 0000000..00465fa --- /dev/null +++ b/src/main/java/org/springblade/modules/martial/aspect/PerformanceMonitorAspect.java @@ -0,0 +1,36 @@ +package org.springblade.modules.martial.aspect; + +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.springframework.stereotype.Component; + +@Slf4j +@Aspect +@Component +public class PerformanceMonitorAspect { + + @Around("execution(* org.springblade.modules.martial.service.impl.Schedule*ServiceImpl.*(..))") + public Object monitorPerformance(ProceedingJoinPoint joinPoint) throws Throwable { + String methodName = joinPoint.getSignature().toShortString(); + long startTime = System.currentTimeMillis(); + + try { + Object result = joinPoint.proceed(); + long executionTime = System.currentTimeMillis() - startTime; + + if (executionTime > 1000) { + log.warn("Slow method execution: {} took {}ms", methodName, executionTime); + } else { + log.debug("Method execution: {} took {}ms", methodName, executionTime); + } + + return result; + } catch (Throwable e) { + long executionTime = System.currentTimeMillis() - startTime; + log.error("Method execution failed: {} after {}ms", methodName, executionTime, e); + throw e; + } + } +} diff --git a/src/main/java/org/springblade/modules/martial/service/impl/ScheduleArrangeServiceImpl.java b/src/main/java/org/springblade/modules/martial/service/impl/ScheduleArrangeServiceImpl.java index 56d1e3d..96925a1 100644 --- a/src/main/java/org/springblade/modules/martial/service/impl/ScheduleArrangeServiceImpl.java +++ b/src/main/java/org/springblade/modules/martial/service/impl/ScheduleArrangeServiceImpl.java @@ -8,6 +8,7 @@ import org.springblade.modules.martial.pojo.dto.*; import org.springblade.modules.martial.pojo.entity.*; import org.springblade.modules.martial.service.*; import org.springframework.stereotype.Service; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; diff --git a/src/main/java/org/springblade/modules/martial/service/impl/ScheduleQueryServiceImpl.java b/src/main/java/org/springblade/modules/martial/service/impl/ScheduleQueryServiceImpl.java index bf8b1fe..290a922 100644 --- a/src/main/java/org/springblade/modules/martial/service/impl/ScheduleQueryServiceImpl.java +++ b/src/main/java/org/springblade/modules/martial/service/impl/ScheduleQueryServiceImpl.java @@ -9,6 +9,8 @@ import org.springblade.modules.martial.pojo.entity.*; import org.springblade.modules.martial.pojo.vo.ScheduleGroupDetailVO; import org.springblade.modules.martial.service.*; import org.springframework.stereotype.Service; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.cache.annotation.CacheEvict; import java.util.*; import java.util.stream.Collectors; @@ -26,8 +28,10 @@ public class ScheduleQueryServiceImpl implements IScheduleQueryService { private final IMartialAthleteService athleteService; private final IMartialVenueService venueService; + @Cacheable(value = "scheduleResult", key = "#competitionId", unless = "#result == null") @Override public ScheduleResultDTO getScheduleResult(Long competitionId) { + log.info("Querying schedule result for competition: {}", competitionId); ScheduleResultDTO result = new ScheduleResultDTO(); // 使用优化的一次性JOIN查询获取所有数据 diff --git a/src/main/java/org/springblade/modules/martial/service/impl/ScheduleStatusServiceImpl.java b/src/main/java/org/springblade/modules/martial/service/impl/ScheduleStatusServiceImpl.java index 19758d5..4b921ad 100644 --- a/src/main/java/org/springblade/modules/martial/service/impl/ScheduleStatusServiceImpl.java +++ b/src/main/java/org/springblade/modules/martial/service/impl/ScheduleStatusServiceImpl.java @@ -6,6 +6,7 @@ import org.springblade.modules.martial.mapper.MartialScheduleParticipantMapper; import org.springblade.modules.martial.pojo.entity.MartialScheduleParticipant; import org.springblade.modules.martial.service.IScheduleStatusService; import org.springframework.stereotype.Service; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.transaction.annotation.Transactional; @Slf4j