Merge branch 'dev/dev_xp' into dev/3.1_release_merge
This commit is contained in:
@@ -205,7 +205,7 @@ public interface AccountService extends IService<Account> {
|
||||
|
||||
// Boolean deleteSubAccount(AddSubAccountDTO addSubAccountDTO);
|
||||
|
||||
void removeSubAccount(AddSubAccountDTO addSubAccountDTO);
|
||||
void removeSubAccount(AddSubAccountDTO addSubAccountDTO, Long adminAccId);
|
||||
|
||||
PageBaseResponse<Account> subAccountList(SubAccountPageDTO subAccountPageDTO);
|
||||
|
||||
@@ -240,4 +240,6 @@ public interface AccountService extends IService<Account> {
|
||||
Set<String> organizationNameSearch(String type, String name);
|
||||
|
||||
/*void send618PromotionEmailTemp();*/
|
||||
|
||||
void checkEduAdminExpireStatus();
|
||||
}
|
||||
|
||||
@@ -2605,7 +2605,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
|
||||
// BigDecimal creditsUsage = exAccountInfo.getCreditsUsage();
|
||||
addSubAccountDTO.setCreditsUsage(exAccountInfo.getCreditsUsage());
|
||||
// 这里移除原账号,但是积分不回流,机构分配的积分会由下一个账号继续持有(包括积分上限和已使用的积分都保持不变)
|
||||
removeSubAccount(new AddSubAccountDTO(Collections.singletonList(addSubAccountDTO.getId())));
|
||||
removeSubAccount(new AddSubAccountDTO(Collections.singletonList(addSubAccountDTO.getId())), adminAcc.getId());
|
||||
// 移入新子账号(可能是移入,也可能是新增)
|
||||
createSubAccount(addSubAccountDTO, adminAcc, subUserRole);
|
||||
} else {
|
||||
@@ -2691,8 +2691,8 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
|
||||
return Boolean.TRUE;
|
||||
}*/
|
||||
|
||||
public void removeSubAccount(AddSubAccountDTO addSubAccountDTO) {
|
||||
Long adminAccId = UserContext.getUserHolder().getId();
|
||||
public void removeSubAccount(AddSubAccountDTO addSubAccountDTO, Long adminAccId) {
|
||||
// Long adminAccId = UserContext.getUserHolder().getId();
|
||||
Account adminAcc = baseMapper.selectById(adminAccId);
|
||||
if (Objects.isNull(adminAcc) || (adminAcc.getSystemUser() != 5 && adminAcc.getSystemUser() != 7)) {
|
||||
throw new BusinessException("have.no.permission");
|
||||
@@ -3595,4 +3595,23 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
|
||||
}
|
||||
}*/
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void checkEduAdminExpireStatus(){
|
||||
// 1、检查所有管理员账号到期状态
|
||||
List<Account> expiredEduAdmin = getExpiredUserBySystemUser(7);
|
||||
// 2、若有过期教育管理员,则将该管理员下的所有子账号删除(降为游客或者恢复其原本身份与积分)
|
||||
if (!expiredEduAdmin.isEmpty()) {
|
||||
for (Account adminAccount : expiredEduAdmin){
|
||||
List<Account> subAccountsByAdmin = getSubAccountsByAdmin(adminAccount);
|
||||
if (!subAccountsByAdmin.isEmpty()){
|
||||
// 获取所有子账号的id,并删除
|
||||
List<Long> subAccIdList = subAccountsByAdmin.stream().map(Account::getId).collect(Collectors.toList());
|
||||
removeSubAccount(new AddSubAccountDTO(subAccIdList), adminAccount.getId());
|
||||
}
|
||||
// 将教育管理员置为游客
|
||||
toVisitor(adminAccount);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user