admin 结算修改2

This commit is contained in:
tianfeng 2025-12-15 19:47:03 +08:00
parent b85546df27
commit d0b5230812
5 changed files with 39 additions and 6 deletions

View File

@ -53,14 +53,13 @@ public class AdminSalarySettlementServiceImpl implements AdminSalarySettlementSe
private final BdTeamSummaryQryExe bdTeamSummaryQryExe;
private final RechargeUserService rechargeUserService;
private final UserSalaryAccountClient userSalaryAccountClient;
private final AdministratorDAO administratorDAO;
private final AdministratorService administratorService;
@Override
public void processAllAdminSettlement(Integer billBelong, String billTitle) {
log.warn("开始处理所有管理员工资结算,结算周期:{}", billBelong);
LambdaQueryWrapper<Administrator> eq = Wrappers.<Administrator>lambdaQuery().eq(Administrator::getStatus, Boolean.TRUE);
List<Administrator> administrators = administratorDAO.selectList(eq);
List<Administrator> administrators = administratorService.listAllAdmins();
List<Long> adminUserIds = administrators.stream().map(Administrator::getUserId).toList();
if (CollectionUtils.isEmpty(adminUserIds)) {

View File

@ -5,6 +5,8 @@ import com.red.circle.other.app.dto.clientobject.BdLeaderSalarySettlementCO;
import com.red.circle.other.domain.gateway.user.UserProfileGateway;
import com.red.circle.other.domain.model.user.UserProfile;
import com.red.circle.other.infra.database.mongo.entity.bd.detail.BdLeaderTeamMemberDetail;
import com.red.circle.other.infra.database.rds.entity.sys.Administrator;
import com.red.circle.other.infra.database.rds.service.sys.AdministratorService;
import com.red.circle.other.infra.enums.BdSettlementStatus;
import com.red.circle.other.infra.database.mongo.entity.bd.BdLeaderSalaryPolicy;
import com.red.circle.other.infra.database.mongo.entity.bd.BdLeaderSalarySettlementRecord;
@ -24,6 +26,7 @@ import com.red.circle.wallet.inner.model.enums.SalaryType;
import com.red.circle.wallet.inner.model.enums.SalaryEvent;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -44,11 +47,10 @@ import java.util.stream.Collectors;
public class BdLeaderSalarySettlementServiceImpl implements BdLeaderSalarySettlementService {
private final BusinessDevelopmentBaseInfoService businessDevelopmentBaseInfoService;
private final BusinessDevelopmentTeamService businessDevelopmentTeamService;
private final BdSalarySettlementRecordService bdSalarySettlementRecordService;
private final BdLeaderSalaryPolicyService bdLeaderSalaryPolicyService;
private final BdLeaderSalarySettlementRecordService bdLeaderSalarySettlementRecordService;
private final UserBankBalanceClient userBankBalanceClient;
private final AdministratorService administratorService;
private final UserSalaryAccountClient userSalaryAccountClient;
private final UserProfileGateway userProfileGateway;
@ -64,9 +66,12 @@ public class BdLeaderSalarySettlementServiceImpl implements BdLeaderSalarySettle
return;
}
// BD Leader 用户 ID 分组去重
Set<Long> adminUserIds = getAdminUserIds();
// BD Leader 用户 ID 分组去重并过滤掉管理员
Map<Long, List<BusinessDevelopmentBaseInfo>> bdLeaderGroupMap = allBdLeaders.stream()
.filter(info -> info.getBdLeadUserId() != null)
.filter(info -> !adminUserIds.contains(info.getBdLeadUserId()))
.collect(Collectors.groupingBy(BusinessDevelopmentBaseInfo::getBdLeadUserId));
log.warn("共找到 {} 个 BD Leader", bdLeaderGroupMap.size());
@ -88,6 +93,13 @@ public class BdLeaderSalarySettlementServiceImpl implements BdLeaderSalarySettle
log.warn("BD Leader 工资结算完成,成功:{},失败:{}", successCount, failCount);
}
private Set<Long> getAdminUserIds() {
List<Administrator> administrators = administratorService.listAllAdmins();
return administrators.stream()
.map(Administrator::getUserId)
.collect(Collectors.toSet());
}
@Override
@Transactional(rollbackFor = Exception.class)
public BdLeaderSalarySettlementCO processSingleBdLeaderSettlement(Long bdLeaderUserId, Integer billBelong, String billTitle) {

View File

@ -11,6 +11,8 @@ import com.red.circle.other.domain.model.user.UserProfile;
import com.red.circle.other.infra.database.mongo.entity.bd.detail.BdTeamMemberDetail;
import com.red.circle.other.infra.database.mongo.entity.team.team.TeamMemberTarget;
import com.red.circle.other.infra.database.mongo.service.team.TeamBillCycleUtils;
import com.red.circle.other.infra.database.rds.entity.sys.Administrator;
import com.red.circle.other.infra.database.rds.service.sys.AdministratorService;
import com.red.circle.other.infra.enums.BdPolicyType;
import com.red.circle.other.infra.enums.BdSettlementStatus;
import com.red.circle.other.infra.database.mongo.entity.bd.BdSalaryPolicy;
@ -64,6 +66,7 @@ public class BdSalarySettlementServiceImpl implements BdSalarySettlementService
private final InAppPurchaseDetailsClientApi inAppPurchaseDetailsClientApi;
private final UserProfileGateway userProfileGateway;
private final UserSalaryAccountClient userSalaryAccountClient;
private final AdministratorService administratorService;
@Override
@ -78,8 +81,10 @@ public class BdSalarySettlementServiceImpl implements BdSalarySettlementService
return;
}
Set<Long> adminUserIds = getAdminUserIds();
// BD 用户 ID 分组去重
Map<Long, List<BusinessDevelopmentTeam>> bdGroupMap = allBdTeams.stream()
.filter(info -> !adminUserIds.contains(info.getUserId()))
.collect(Collectors.groupingBy(BusinessDevelopmentTeam::getUserId));
log.warn("共找到 {} 个 BD", bdGroupMap.size());
@ -101,6 +106,13 @@ public class BdSalarySettlementServiceImpl implements BdSalarySettlementService
log.warn("BD 工资结算完成,成功:{},失败:{}", successCount, failCount);
}
private Set<Long> getAdminUserIds() {
List<Administrator> administrators = administratorService.listAllAdmins();
return administrators.stream()
.map(Administrator::getUserId)
.collect(Collectors.toSet());
}
@Override
@Transactional(rollbackFor = Exception.class)
public BdSalarySettlementCO processSingleBdSettlement(Long bdUserId, Integer billBelong, String billTitle) {

View File

@ -53,6 +53,11 @@ public interface AdministratorService extends BaseService<Administrator> {
*/
boolean existsManager(Long userId);
/**
* 所有正常状态的管理员
*/
List<Administrator> listAllAdmins();
/**
* 用户组是否存在可用管理员.
*

View File

@ -75,6 +75,11 @@ public class AdministratorServiceImpl extends
.last(PageConstant.LIMIT_ONE).getOne() != null;
}
@Override
public List<Administrator> listAllAdmins() {
return query().eq(Administrator::getStatus, Boolean.TRUE).list();
}
@Override
public boolean existsAvailable(Set<Long> userIds) {
return Optional.ofNullable(