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;
|
|
/**
|
* 检查任务服务切面
|
*
|
* <p>该切面用于在检查任务关闭时执行评估操作,包括模糊评估和评分计算。
|
* 主要用于确保任务关闭后相关评估能够自动执行。</p>
|
*/
|
@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;
|
});
|
}
|
|
}
|