licailing 3 лет назад
Родитель
Сommit
461c2bc916

+ 13 - 0
src/main/java/com/izouma/nineth/repo/UserRepo.java

@@ -13,6 +13,7 @@ import org.springframework.lang.NonNull;
 
 import javax.transaction.Transactional;
 import java.time.LocalDateTime;
+import java.util.Collection;
 import java.util.List;
 import java.util.Optional;
 
@@ -195,4 +196,16 @@ public interface UserRepo extends JpaRepository<User, Long>, JpaSpecificationExe
     @Transactional
     @Modifying
     void setAuthStatus(Long id, AuthStatus status, Long authId);
+
+    @Query(nativeQuery = true, value = "select collection_invitor" +
+            " from user" +
+            " where collection_id = ?1" +
+            " group by collection_invitor" +
+            " having count(id) >= ?2")
+    List<Long> findAllByCollectionId(Long collectionId, int size);
+
+    @Transactional
+    @Modifying
+    @Query("update User set vipPoint = 1 where vipPoint = 0 and id in ?1")
+    void updateAllByInvitor(Collection<Long> ids);
 }

+ 8 - 4
src/test/java/com/izouma/nineth/repo/UserRepoTest.java

@@ -13,10 +13,7 @@ import org.springframework.test.context.junit4.SpringRunner;
 
 import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
+import java.util.*;
 
 @RunWith(SpringRunner.class)
 @SpringBootTest
@@ -67,4 +64,11 @@ public class UserRepoTest {
         LocalDate start = end.minusDays(6);
         System.out.println(start);
     }
+
+    @Test
+    public void test1() {
+        List<Long> userIds = userRepo.findAllByCollectionId(3460186L, 2);
+        System.out.println(userIds.size());
+        userRepo.updateAllByInvitor(userIds);
+    }
 }