package com.estate.expert.admin.component; import com.estate.expert.admin.service.CheckTaskService; import com.estate.expert.admin.service.eval.EvalFuzzyService; import com.estate.expert.admin.service.eval.EvalScoreService; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Aspect; import org.springframework.stereotype.Component; import org.springframework.transaction.support.TransactionTemplate; import javax.annotation.Resource; /** * 检查任务服务切面 * *

该切面用于在检查任务关闭时执行评估操作,包括模糊评估和评分计算。 * 主要用于确保任务关闭后相关评估能够自动执行。

*/ @Aspect @Component @Slf4j public class CheckTaskServiceAspect { @Resource private EvalFuzzyService evalFuzzyService; @Resource private EvalScoreService evalScoreService; @Resource private CheckTaskService checkTaskService; @Resource private TransactionTemplate transactionTemplate; @AfterReturning("execution(* com.estate.expert.admin.service.CheckTaskService.close(..))") public void afterClose(JoinPoint joinPoint) { // 获取方法参数 Integer taskId = (Integer) joinPoint.getArgs()[0]; var checkTask = checkTaskService.get(taskId); // if(checkTask == null || checkTask.getId() > 10) if(checkTask == null) return; // 在这里调用evalService来计算任务的评分 transactionTemplate.execute(status -> { log.info("Evaluate : {}", checkTask.getId()); // 模糊评估 evalFuzzyService.evalOnce(checkTask); // 评分计算 evalScoreService.evalOnce(checkTask); return null; }); } }