|
|
@@ -1,15 +1,19 @@
|
|
|
package com.izouma.nineth.repo;
|
|
|
|
|
|
+import com.alibaba.excel.EasyExcel;
|
|
|
import com.izouma.nineth.ApplicationTests;
|
|
|
import com.izouma.nineth.domain.Asset;
|
|
|
+import com.izouma.nineth.domain.User;
|
|
|
import com.izouma.nineth.domain.UserProperty;
|
|
|
+import com.izouma.nineth.dto.AirDropExcelDTO;
|
|
|
import com.izouma.nineth.enums.AssetStatus;
|
|
|
+import com.izouma.nineth.utils.excel.UploadDataListener;
|
|
|
import org.junit.Test;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.io.DataOutput;
|
|
|
+import java.io.File;
|
|
|
+import java.util.*;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -52,8 +56,8 @@ public class UserPropertyRepoTest extends ApplicationTests {
|
|
|
userIds.forEach(id -> {
|
|
|
UserProperty userProperty = userPropertyRepo.findById(id).orElse(new UserProperty(id, 0));
|
|
|
userProperty.setMaxCount(userProperty.getMaxCount() + 1);
|
|
|
- if (userProperty.getMaxCount() > 5) {
|
|
|
- userProperty.setMaxCount(5);
|
|
|
+ if (userProperty.getMaxCount() > 6) {
|
|
|
+ userProperty.setMaxCount(6);
|
|
|
}
|
|
|
userPropertyRepo.save(userProperty);
|
|
|
});
|
|
|
@@ -72,11 +76,164 @@ public class UserPropertyRepoTest extends ApplicationTests {
|
|
|
}
|
|
|
UserProperty userProperty = userPropertyRepo.findById(key).orElse(new UserProperty(key, 0));
|
|
|
userProperty.setMaxCount(userProperty.getMaxCount() + size);
|
|
|
- if (userProperty.getMaxCount() > 5) {
|
|
|
- userProperty.setMaxCount(5);
|
|
|
+ if (userProperty.getMaxCount() > 6) {
|
|
|
+ userProperty.setMaxCount(6);
|
|
|
}
|
|
|
userPropertyRepo.save(userProperty);
|
|
|
});
|
|
|
|
|
|
+ //凤鸣寺
|
|
|
+ File file = new File("/Users/qiufangchao/Desktop/mingdan.xlsx");
|
|
|
+ UploadDataListener<AirDropExcelDTO> listener = new UploadDataListener<>();
|
|
|
+ List<AirDropExcelDTO> dtos = EasyExcel.read(file, AirDropExcelDTO.class, listener)
|
|
|
+ .sheet()
|
|
|
+ .doReadSync();
|
|
|
+ List<Long> userIds2 = userRepo.findIdByPhones(dtos.stream()
|
|
|
+ .map(AirDropExcelDTO::getPhone)
|
|
|
+ .collect(Collectors.toSet()));
|
|
|
+ System.out.println(userIds2);
|
|
|
+ userIds2.forEach(id -> {
|
|
|
+ UserProperty userProperty = userPropertyRepo.findById(id).orElse(new UserProperty(id, 0));
|
|
|
+ userProperty.setMaxCount(userProperty.getMaxCount() + 1);
|
|
|
+ if (userProperty.getMaxCount() > 6) {
|
|
|
+ userProperty.setMaxCount(6);
|
|
|
+ }
|
|
|
+ userPropertyRepo.save(userProperty);
|
|
|
+ });
|
|
|
+
|
|
|
+ //vip
|
|
|
+ File file1 = new File("/Users/qiufangchao/Desktop/VIP.xlsx");
|
|
|
+ UploadDataListener<AirDropExcelDTO> listener1 = new UploadDataListener<>();
|
|
|
+ List<AirDropExcelDTO> dtos1 = EasyExcel.read(file1, AirDropExcelDTO.class, listener1)
|
|
|
+ .sheet()
|
|
|
+ .doReadSync();
|
|
|
+ Set<String> userIds3 = dtos1.stream()
|
|
|
+ .map(AirDropExcelDTO::getPhone)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ System.out.println(userIds3);
|
|
|
+ userIds3.forEach(id -> {
|
|
|
+ UserProperty userProperty = userPropertyRepo.findById(Long.parseLong(id))
|
|
|
+ .orElse(new UserProperty(Long.parseLong(id), 0));
|
|
|
+ userProperty.setMaxCount(userProperty.getMaxCount() + 1);
|
|
|
+ if (userProperty.getMaxCount() > 6) {
|
|
|
+ userProperty.setMaxCount(6);
|
|
|
+ }
|
|
|
+ userPropertyRepo.save(userProperty);
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ //-1
|
|
|
+ Iterable<UserProperty> all = userPropertyRepo.findAll();
|
|
|
+ all.forEach(p -> {
|
|
|
+ if (p.getMaxCount() > 1) {
|
|
|
+ p.setMaxCount(p.getMaxCount() - 1);
|
|
|
+ userPropertyRepo.save(p);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void setByphone() {
|
|
|
+ File file = new File("/Users/qiufangchao/Desktop/mingdan.xlsx");
|
|
|
+ UploadDataListener<AirDropExcelDTO> listener = new UploadDataListener<>();
|
|
|
+ List<AirDropExcelDTO> dtos = EasyExcel.read(file, AirDropExcelDTO.class, listener)
|
|
|
+ .sheet()
|
|
|
+ .doReadSync();
|
|
|
+// List<Long> userIds = userRepo.findIdByPhones(dtos.stream()
|
|
|
+// .map(AirDropExcelDTO::getPhone)
|
|
|
+// .collect(Collectors.toSet()));
|
|
|
+// System.out.println(userIds);
|
|
|
+
|
|
|
+ List<User> users = userRepo.findByPhoneInAndDelFalse(dtos.stream()
|
|
|
+ .map(AirDropExcelDTO::getPhone)
|
|
|
+ .collect(Collectors.toSet()));
|
|
|
+
|
|
|
+ Map<String, Long> userMap = users.stream().collect(Collectors.toMap(User::getPhone, User::getId));
|
|
|
+ dtos.forEach(dto -> {
|
|
|
+ Long aLong = userMap.get(dto.getPhone());
|
|
|
+ if (aLong == null) {
|
|
|
+ System.out.println(dto.getPhone());
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+// userIds.forEach(id -> {
|
|
|
+// UserProperty userProperty = userPropertyRepo.findById(id).orElse(new UserProperty(id, 0));
|
|
|
+// userProperty.setMaxCount(userProperty.getMaxCount() + 1);
|
|
|
+// if (userProperty.getMaxCount() > 6) {
|
|
|
+// userProperty.setMaxCount(6);
|
|
|
+// }
|
|
|
+// userPropertyRepo.save(userProperty);
|
|
|
+// });
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void setById() {
|
|
|
+ File file = new File("/Users/qiufangchao/Desktop/VIP.xlsx");
|
|
|
+ UploadDataListener<AirDropExcelDTO> listener = new UploadDataListener<>();
|
|
|
+ List<AirDropExcelDTO> dtos = EasyExcel.read(file, AirDropExcelDTO.class, listener)
|
|
|
+ .sheet()
|
|
|
+ .doReadSync();
|
|
|
+ Set<String> userIds = dtos.stream()
|
|
|
+ .map(AirDropExcelDTO::getPhone)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ System.out.println(userIds);
|
|
|
+ userIds.forEach(id -> {
|
|
|
+
|
|
|
+ UserProperty userProperty = userPropertyRepo.findById(Long.parseLong(id))
|
|
|
+ .orElse(new UserProperty(Long.parseLong(id), 0));
|
|
|
+ userProperty.setMaxCount(userProperty.getMaxCount() + 1);
|
|
|
+ if (userProperty.getMaxCount() > 6) {
|
|
|
+ userProperty.setMaxCount(6);
|
|
|
+ }
|
|
|
+ userPropertyRepo.save(userProperty);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void statistic() {
|
|
|
+ Map<Long, Integer> map = new HashMap<>();
|
|
|
+ //凤鸣寺
|
|
|
+ File file = new File("/Users/qiufangchao/Desktop/mingdan.xlsx");
|
|
|
+ UploadDataListener<AirDropExcelDTO> listener = new UploadDataListener<>();
|
|
|
+ List<AirDropExcelDTO> dtos = EasyExcel.read(file, AirDropExcelDTO.class, listener)
|
|
|
+ .sheet()
|
|
|
+ .doReadSync();
|
|
|
+ List<Long> userIds = userRepo.findIdByPhones(dtos.stream()
|
|
|
+ .map(AirDropExcelDTO::getPhone)
|
|
|
+ .collect(Collectors.toSet()));
|
|
|
+ userIds.forEach(id -> map.merge(id, 1, Integer::sum));
|
|
|
+ //封神星主
|
|
|
+ List<Long> userIds1 = userRepo.findIdByLevel();
|
|
|
+ userIds1.forEach(id -> map.merge(id, 1, Integer::sum));
|
|
|
+
|
|
|
+
|
|
|
+ //OASIS004:绿洲朋克战神3D持斧模型 2516069L 或 OASIS002: 绿洲朋克猴王3D旋转眺望模型 2514968L
|
|
|
+ //OASISPUNK007:OASISPUNK绿洲朋克族人共治会荣誉勋章 5050947L
|
|
|
+ //冠军赛 · 李小龙80周年纪念勋章 7275L
|
|
|
+ List<Asset> assets = assetRepo.findByCollectionIdInAndStatus(Arrays.asList(2516069L, 2514968L, 5050947L, 7275L), AssetStatus.NORMAL);
|
|
|
+ Map<Long, List<Asset>> collect = assets.stream().collect(Collectors.groupingBy(Asset::getOwnerId));
|
|
|
+ collect.forEach((key, value) -> {
|
|
|
+ List<Long> ids = value.stream().map(Asset::getCollectionId).distinct().collect(Collectors.toList());
|
|
|
+ int size = ids.size();
|
|
|
+ if (ids.contains(2516069L) && ids.contains(2514968L)) {
|
|
|
+ size -= 1;
|
|
|
+ }
|
|
|
+ map.merge(key, size, Integer::sum);
|
|
|
+ });
|
|
|
+ map.forEach((key, value) -> System.out.println(key + "," + value));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void test(){
|
|
|
+ Iterable<UserProperty> all = userPropertyRepo.findAll();
|
|
|
+ all.forEach(p -> {
|
|
|
+ if (p.getMaxCount() > 1) {
|
|
|
+ p.setMaxCount(p.getMaxCount() - 1);
|
|
|
+ userPropertyRepo.save(p);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
}
|