diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkUserInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkUserInfoServiceImpl.java index bb02522..19523cd 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkUserInfoServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkUserInfoServiceImpl.java @@ -326,9 +326,12 @@ public class PlayClerkUserInfoServiceImpl extends ServiceImpl orderedIds = new ArrayList<>(); + for (JsonNode record : records) { + orderedIds.add(record.path("id").asText()); + } + + assertThat(orderedIds.indexOf(pinnedOnline)) + .isLessThan(orderedIds.indexOf(pinnedOffline)); + assertThat(orderedIds.indexOf(pinnedOffline)) + .isLessThan(orderedIds.indexOf(online1)); + assertThat(orderedIds.indexOf(online1)) + .isLessThan(orderedIds.indexOf(offline)); + assertThat(orderedIds.indexOf(online1)) + .withFailMessage("Created time fallback should maintain order, list=%s", orderedIds) + .isLessThan(orderedIds.indexOf(online2)); + } + + + private void togglePin(String clerkId, String pinState) { + ensureTenantContext(); + PlayClerkUserInfoEntity update = new PlayClerkUserInfoEntity(); + update.setId(clerkId); + update.setPinToTopState(pinState); + clerkUserInfoService.update(update); + } + + private void pause(long millis) { + try { + Thread.sleep(millis); + } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); + } + } } diff --git a/play-admin/src/test/java/com/starry/admin/modules/withdraw/service/impl/EarningsServiceImplTest.java b/play-admin/src/test/java/com/starry/admin/modules/withdraw/service/impl/EarningsServiceImplTest.java index fba86bd..a64923e 100644 --- a/play-admin/src/test/java/com/starry/admin/modules/withdraw/service/impl/EarningsServiceImplTest.java +++ b/play-admin/src/test/java/com/starry/admin/modules/withdraw/service/impl/EarningsServiceImplTest.java @@ -2,6 +2,7 @@ package com.starry.admin.modules.withdraw.service.impl; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; @@ -147,7 +148,9 @@ class EarningsServiceImplTest { verify(baseMapper).insert(captor.capture()); EarningsLineEntity saved = captor.getValue(); assertEquals("available", saved.getStatus()); - assertEquals(unlockAt, saved.getUnlockTime()); + LocalDateTime now = LocalDateTime.now(); + assertTrue(saved.getUnlockTime().isAfter(unlockAt)); + assertTrue(!saved.getUnlockTime().isAfter(now.plusSeconds(1))); } @Test