xiongzhu 4 tahun lalu
induk
melakukan
1a50dfe6eb

+ 2 - 0
src/main/java/com/izouma/nineth/domain/Collection.java

@@ -125,4 +125,6 @@ public class Collection extends BaseEntity {
     private Long assetId;
 
     private BigDecimal originalPrice;
+
+    private Integer currentNumber;
 }

+ 8 - 2
src/main/java/com/izouma/nineth/service/CollectionService.java

@@ -265,7 +265,13 @@ public class CollectionService {
     }
 
     public synchronized Integer getNextNumber(Long collectionId) {
-        redisTemplate.opsForValue().increment("collectionNumber::" + collectionId);
-        return (Integer) redisTemplate.opsForValue().get("collectionNumber::" + collectionId);
+        Collection collection = collectionRepo.findById(collectionId).orElse(null);
+        if (collection == null) return 0;
+        if (collection.getCurrentNumber() == null) {
+            collection.setCurrentNumber(0);
+        }
+        collection.setCurrentNumber(collection.getCurrentNumber() + 1);
+        collectionRepo.save(collection);
+        return collection.getCurrentNumber();
     }
 }

+ 1 - 4
src/main/java/com/izouma/nineth/service/OrderService.java

@@ -358,11 +358,8 @@ public class OrderService {
     public void setNumber() {
         for (Collection collection : collectionRepo.findAll()) {
             if (collection.getSource() != CollectionSource.OFFICIAL) continue;
-            String key = "collectionNumber::" + collection.getId();
-            redisTemplate.opsForValue().set(key, 0);
             for (Asset asset : assetRepo.findByCollectionId(collection.getId())) {
-                redisTemplate.opsForValue().increment(key);
-                asset.setNumber((Integer) redisTemplate.opsForValue().get(key));
+                asset.setNumber(collectionService.getNextNumber(collection.getId()));
                 assetRepo.save(asset);
             }
         }