筛选
This commit is contained in:
parent
97738f5b5e
commit
c73d224e19
@ -225,6 +225,8 @@ public class TeamManualSalaryPaymentClientServiceImpl implements
|
|||||||
targets = targets.stream()
|
targets = targets.stream()
|
||||||
.filter(target -> CollectionUtils.isNotEmpty(target.getDailyTargets()))
|
.filter(target -> CollectionUtils.isNotEmpty(target.getDailyTargets()))
|
||||||
.filter(target -> target.sumAcceptGiftValue() > 0)
|
.filter(target -> target.sumAcceptGiftValue() > 0)
|
||||||
|
// 手动工资只按当前有效目标结算;旧账期查询会带出历史目标,而计算工具会在历史目标上返回空结果。
|
||||||
|
.filter(target -> !Boolean.TRUE.equals(target.getHistory()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
if (CollectionUtils.isEmpty(targets)) {
|
if (CollectionUtils.isEmpty(targets)) {
|
||||||
return List.of();
|
return List.of();
|
||||||
|
|||||||
@ -41,6 +41,7 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.Set;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.mockito.ArgumentCaptor;
|
import org.mockito.ArgumentCaptor;
|
||||||
import org.springframework.test.util.ReflectionTestUtils;
|
import org.springframework.test.util.ReflectionTestUtils;
|
||||||
@ -124,6 +125,88 @@ class TeamManualSalaryPaymentClientServiceImplTest {
|
|||||||
() -> ReflectionTestUtils.invokeMethod(service, "resolveBillBelong", 202613));
|
() -> 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
|
@Test
|
||||||
void payShouldReturnTopUpDetailsWhenCurrentLevelRecordExistsButSalaryIsInsufficient() {
|
void payShouldReturnTopUpDetailsWhenCurrentLevelRecordExistsButSalaryIsInsufficient() {
|
||||||
RedisService redisService = mock(RedisService.class);
|
RedisService redisService = mock(RedisService.class);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user