diff --git a/src/main/java/com/ai/da/service/AccountService.java b/src/main/java/com/ai/da/service/AccountService.java index c3c4d24c..f1654e69 100644 --- a/src/main/java/com/ai/da/service/AccountService.java +++ b/src/main/java/com/ai/da/service/AccountService.java @@ -246,4 +246,6 @@ public interface AccountService extends IService { void setEduAdminToExpire(Account adminAccount); String getOrganizationTypeByRole(Integer roleNum); + + void validateUserValidaExpire(Account account); } diff --git a/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java b/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java index f8766168..c7543b1c 100644 --- a/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java @@ -39,9 +39,10 @@ import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Lazy; +import org.springframework.context.ApplicationContext; import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; @@ -83,6 +84,9 @@ import java.util.stream.Collectors; @Slf4j @Service public class AccountServiceImpl extends ServiceImpl implements AccountService { + @Resource + private ApplicationContext applicationContext; + @Resource private AccountMapper accountMapper; @@ -279,7 +283,7 @@ public class AccountServiceImpl extends ServiceImpl impl // 定义常量(临时) private static final Integer SYSTEM_USER_TYPE_EDU_ADMIN = 7; - private void validateUserValidaExpire(Account account) { + public void validateUserValidaExpire(Account account) { Long currentTime = new Date().getTime(); if (account.getSystemUser().equals(0)) { return; @@ -297,7 +301,9 @@ public class AccountServiceImpl extends ServiceImpl impl if (isEduAdmin) { setEduAdminToExpire(account); } else { - toVisitor(account); + // 这里调用代理的 toVisitor 方法 + AccountService proxy = applicationContext.getBean(AccountService.class); + proxy.toVisitor(account); // return; throw new BusinessException("account.expired", ResultEnum.PROMPT.getCode()); } @@ -1949,6 +1955,7 @@ public class AccountServiceImpl extends ServiceImpl impl return baseMapper.selectList(queryWrapper); } + @Transactional(propagation = Propagation.REQUIRES_NEW) public void toVisitor(Account account) { accountMapper.toVisitor(account.getId()); } diff --git a/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java b/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java index da91be51..c1ddd30d 100644 --- a/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java @@ -440,6 +440,8 @@ public class DesignItemServiceImpl extends ServiceImpl