筛选
This commit is contained in:
parent
97738f5b5e
commit
c73d224e19
@ -225,6 +225,8 @@ public class TeamManualSalaryPaymentClientServiceImpl implements
|
||||
targets = targets.stream()
|
||||
.filter(target -> CollectionUtils.isNotEmpty(target.getDailyTargets()))
|
||||
.filter(target -> target.sumAcceptGiftValue() > 0)
|
||||
// 手动工资只按当前有效目标结算;旧账期查询会带出历史目标,而计算工具会在历史目标上返回空结果。
|
||||
.filter(target -> !Boolean.TRUE.equals(target.getHistory()))
|
||||
.collect(Collectors.toList());
|
||||
if (CollectionUtils.isEmpty(targets)) {
|
||||
return List.of();
|
||||
|
||||
@ -41,6 +41,7 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
@ -124,6 +125,88 @@ class TeamManualSalaryPaymentClientServiceImplTest {
|
||||
() -> ReflectionTestUtils.invokeMethod(service, "resolveBillBelong", 202613));
|
||||
}
|
||||
|
||||
@Test
|
||||
void buildRowsShouldIgnoreHistoryTargetsBeforePolicyCalculation() {
|
||||
RedisService redisService = mock(RedisService.class);
|
||||
TeamMemberService teamMemberService = mock(TeamMemberService.class);
|
||||
TeamProfileService teamProfileService = mock(TeamProfileService.class);
|
||||
UserBankBalanceClient userBankBalanceClient = mock(UserBankBalanceClient.class);
|
||||
TeamMemberTargetService teamMemberTargetService = mock(TeamMemberTargetService.class);
|
||||
TeamSalaryPaymentService teamSalaryPaymentService = mock(TeamSalaryPaymentService.class);
|
||||
TeamPolicyManagerService teamPolicyManagerService = mock(TeamPolicyManagerService.class);
|
||||
UserBankRunningWaterClient userBankRunningWaterClient = mock(UserBankRunningWaterClient.class);
|
||||
TeamManualSalaryPaymentClientServiceImpl service = new TeamManualSalaryPaymentClientServiceImpl(
|
||||
redisService, teamMemberService, teamProfileService, userBankBalanceClient,
|
||||
teamMemberTargetService, teamSalaryPaymentService, teamPolicyManagerService,
|
||||
userBankRunningWaterClient);
|
||||
|
||||
String sysOrigin = "LIKEI";
|
||||
String countryCode = "BD";
|
||||
String region = "2045389832842178561";
|
||||
Long userId = 2050266954857508866L;
|
||||
Long teamId = 2046582184822763522L;
|
||||
Integer billBelong = 202606;
|
||||
TeamMemberTarget historyTarget = new TeamMemberTarget()
|
||||
.setId("history-target")
|
||||
.setTimeId(2061195378987954177L)
|
||||
.setSysOrigin(sysOrigin)
|
||||
.setRegion(region)
|
||||
.setCountryCode(countryCode)
|
||||
.setTeamId(teamId)
|
||||
.setUserId(userId)
|
||||
.setBillBelong(billBelong)
|
||||
.setHistory(Boolean.TRUE)
|
||||
.setDailyTargets(List.of(new TeamMemberTargetIndex()
|
||||
.setOwnOnlineTime(21L)
|
||||
.setAcceptGiftValue(662505L)));
|
||||
TeamMemberTarget activeTarget = new TeamMemberTarget()
|
||||
.setId("active-target")
|
||||
.setTimeId(2062879908861898754L)
|
||||
.setSysOrigin(sysOrigin)
|
||||
.setRegion(region)
|
||||
.setCountryCode(countryCode)
|
||||
.setTeamId(teamId)
|
||||
.setUserId(userId)
|
||||
.setBillBelong(billBelong)
|
||||
.setHistory(Boolean.FALSE)
|
||||
.setDailyTargets(List.of(new TeamMemberTargetIndex()
|
||||
.setOwnOnlineTime(38L)
|
||||
.setAcceptGiftValue(411854L)));
|
||||
TeamPolicyManager policyManager = new TeamPolicyManager()
|
||||
.setSysOrigin(sysOrigin)
|
||||
.setRegion(region)
|
||||
.setCountryCode(countryCode)
|
||||
.setPolicy(List.of(new TeamPolicy()
|
||||
.setLevel(1)
|
||||
.setTarget(400000L)
|
||||
.setOnlineTime(0L)
|
||||
.setEffectiveDay(0)
|
||||
.setMemberSalary(new BigDecimal("1.00"))
|
||||
.setOwnSalary(new BigDecimal("0.25"))
|
||||
.setTotalSalary(new BigDecimal("1.25"))));
|
||||
|
||||
when(teamMemberTargetService.listManualSalaryTargets(eq(sysOrigin), eq(countryCode), anySet(),
|
||||
eq(billBelong))).thenReturn(List.of(historyTarget, activeTarget));
|
||||
when(teamMemberService.mapByMemberIds(anySet())).thenReturn(Map.of(userId,
|
||||
new TeamMember().setMemberId(userId).setTeamId(teamId)));
|
||||
when(teamProfileService.mapProfileByIds(anySet())).thenReturn(Map.of(teamId,
|
||||
new TeamProfile().setId(teamId).setOwnUserId(userId).setRegion(region)));
|
||||
when(teamSalaryPaymentService.listByPaymentOrRecipientUserIdsAndDateNumbers(eq(sysOrigin),
|
||||
anySet(), anySet())).thenReturn(List.of());
|
||||
when(teamPolicyManagerService.getReleaseByRegionAndType(sysOrigin, region, null, countryCode))
|
||||
.thenReturn(policyManager);
|
||||
when(userBankBalanceClient.getBalance(userId))
|
||||
.thenReturn(ResultResponse.success(BankBalanceDTO.of(0L)));
|
||||
|
||||
List<?> rows = ReflectionTestUtils.invokeMethod(service, "buildRows", sysOrigin, countryCode,
|
||||
Set.of(userId), billBelong);
|
||||
Object dto = ReflectionTestUtils.invokeMethod(rows.get(0), "getDto");
|
||||
|
||||
assertEquals(1, rows.size());
|
||||
assertEquals("active-target", ReflectionTestUtils.getField(dto, "id"));
|
||||
assertEquals(new BigDecimal("1.25"), ReflectionTestUtils.getField(dto, "payableSalary"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void payShouldReturnTopUpDetailsWhenCurrentLevelRecordExistsButSalaryIsInsufficient() {
|
||||
RedisService redisService = mock(RedisService.class);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user