Pārlūkot izejas kodu

Merge branch 'master' of http://git.izouma.com/xiongzhu/9th

xuqiang 4 gadi atpakaļ
vecāks
revīzija
da84194af7

+ 4 - 0
src/main/java/com/izouma/nineth/TokenHistory.java

@@ -28,7 +28,11 @@ public class TokenHistory extends BaseEntity {
 
 
     private Long   fromUserId;
     private Long   fromUserId;
 
 
+    private String fromAvatar;
+
     private String toUser;
     private String toUser;
 
 
     private Long   toUserId;
     private Long   toUserId;
+
+    private String toAvatar;
 }
 }

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

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

+ 2 - 0
src/main/java/com/izouma/nineth/repo/AssetRepo.java

@@ -19,4 +19,6 @@ public interface AssetRepo extends JpaRepository<Asset, Long>, JpaSpecificationE
     long countByIpfsUrlAndStatusNot(String ipfsUrl, AssetStatus status);
     long countByIpfsUrlAndStatusNot(String ipfsUrl, AssetStatus status);
 
 
     List<Asset> findByCollectionId(Long collectionId);
     List<Asset> findByCollectionId(Long collectionId);
+
+    List<Asset> findByCollectionIdAndStatusIn(Long collectionId, Iterable<AssetStatus> statuses);
 }
 }

+ 6 - 0
src/main/java/com/izouma/nineth/service/AssetService.java

@@ -58,8 +58,10 @@ public class AssetService {
                 .tokenId(asset.getTokenId())
                 .tokenId(asset.getTokenId())
                 .fromUser(collection.getMinter())
                 .fromUser(collection.getMinter())
                 .fromUserId(collection.getMinterId())
                 .fromUserId(collection.getMinterId())
+                .fromAvatar(collection.getMinterAvatar())
                 .toUser(user.getNickname())
                 .toUser(user.getNickname())
                 .toUserId(user.getId())
                 .toUserId(user.getId())
+                .toAvatar(user.getAvatar())
                 .operation(type)
                 .operation(type)
                 .price(price)
                 .price(price)
                 .build());
                 .build());
@@ -79,8 +81,10 @@ public class AssetService {
                 .tokenId(asset.getTokenId())
                 .tokenId(asset.getTokenId())
                 .fromUser(winItem.getMinter())
                 .fromUser(winItem.getMinter())
                 .fromUserId(winItem.getMinterId())
                 .fromUserId(winItem.getMinterId())
+                .fromAvatar(winItem.getMinterAvatar())
                 .toUser(user.getNickname())
                 .toUser(user.getNickname())
                 .toUserId(user.getId())
                 .toUserId(user.getId())
+                .toAvatar(user.getAvatar())
                 .operation(type)
                 .operation(type)
                 .price(price)
                 .price(price)
                 .build());
                 .build());
@@ -257,8 +261,10 @@ public class AssetService {
                 .tokenId(asset.getTokenId())
                 .tokenId(asset.getTokenId())
                 .fromUser(asset.getOwner())
                 .fromUser(asset.getOwner())
                 .fromUserId(asset.getOwnerId())
                 .fromUserId(asset.getOwnerId())
+                .fromAvatar(asset.getOwnerAvatar())
                 .toUser(toUser.getNickname())
                 .toUser(toUser.getNickname())
                 .toUserId(toUser.getId())
                 .toUserId(toUser.getId())
+                .toAvatar(toUser.getAvatar())
                 .operation(reason)
                 .operation(reason)
                 .build());
                 .build());
 
 

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

@@ -265,7 +265,13 @@ public class CollectionService {
     }
     }
 
 
     public synchronized Integer getNextNumber(Long collectionId) {
     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();
     }
     }
 }
 }

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

@@ -358,11 +358,11 @@ public class OrderService {
     public void setNumber() {
     public void setNumber() {
         for (Collection collection : collectionRepo.findAll()) {
         for (Collection collection : collectionRepo.findAll()) {
             if (collection.getSource() != CollectionSource.OFFICIAL) continue;
             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));
+            collection.setCurrentNumber(0);
+            collectionRepo.save(collection);
+            for (Asset asset : assetRepo.findByCollectionIdAndStatusIn(collection.getId(),
+                    Arrays.asList(AssetStatus.NORMAL, AssetStatus.GIFTING, AssetStatus.TRADING))) {
+                asset.setNumber(collectionService.getNextNumber(collection.getId()));
                 assetRepo.save(asset);
                 assetRepo.save(asset);
             }
             }
         }
         }

+ 6 - 3
src/main/vue/src/views/BannerEdit.vue

@@ -42,12 +42,13 @@
                     <el-form-item prop="link" label="跳转">
                     <el-form-item prop="link" label="跳转">
                         <el-switch v-model="formData.link"></el-switch>
                         <el-switch v-model="formData.link"></el-switch>
                     </el-form-item>
                     </el-form-item>
-                    <el-form-item prop="linkType" label="跳转类型">
+                    <el-form-item prop="linkType" label="跳转类型" v-if="formData.link">
                         <el-select v-model="formData.linkType">
                         <el-select v-model="formData.linkType">
                             <el-option label="藏品/盲盒" value="collection"></el-option>
                             <el-option label="藏品/盲盒" value="collection"></el-option>
+                            <el-option label="铸造者" value="user"></el-option>
                         </el-select>
                         </el-select>
                     </el-form-item>
                     </el-form-item>
-                    <el-form-item prop="linkContent" label="跳转内容">
+                    <el-form-item prop="linkContent" label="跳转内容" v-if="formData.link">
                         <el-input v-model="formData.linkContent" placeholder="输入ID"></el-input>
                         <el-input v-model="formData.linkContent" placeholder="输入ID"></el-input>
                     </el-form-item>
                     </el-form-item>
                     <el-form-item class="form-submit">
                     <el-form-item class="form-submit">
@@ -119,7 +120,9 @@ export default {
                         message: '请输入跳转',
                         message: '请输入跳转',
                         trigger: 'blur'
                         trigger: 'blur'
                     }
                     }
-                ]
+                ],
+                linkType: [{ required: true, message: '请选择跳转类型' }],
+                linkContent: [{ required: true, message: '请输入跳转内容' }]
             },
             },
             typeOptions: [
             typeOptions: [
                 { label: '首页', value: 'HOME' },
                 { label: '首页', value: 'HOME' },

+ 12 - 6
src/main/vue/src/views/IdentityAuthList.vue

@@ -9,7 +9,11 @@
             </el-button> -->
             </el-button> -->
         </page-title>
         </page-title>
         <div class="filters-container">
         <div class="filters-container">
-            <el-select v-model="status" clearable placeholder="状态" @change="getData">
+            <el-select v-model="org" @change="getData" class="filter-item">
+                <el-option label="个人" :value="false"></el-option>
+                <el-option label="企业" :value="true"></el-option>
+            </el-select>
+            <el-select v-model="status" clearable placeholder="状态" @change="getData" class="filter-item">
                 <el-option
                 <el-option
                     v-for="item in statusOptions.slice(1, 4)"
                     v-for="item in statusOptions.slice(1, 4)"
                     :key="item.value"
                     :key="item.value"
@@ -41,10 +45,11 @@
             <el-table-column v-if="multipleMode" align="center" type="selection" width="50"> </el-table-column>
             <el-table-column v-if="multipleMode" align="center" type="selection" width="50"> </el-table-column>
             <el-table-column prop="id" label="ID" width="100"> </el-table-column>
             <el-table-column prop="id" label="ID" width="100"> </el-table-column>
             <el-table-column prop="userId" label="用户ID" width="100"> </el-table-column>
             <el-table-column prop="userId" label="用户ID" width="100"> </el-table-column>
-            <el-table-column prop="realName" label="姓名" min-width="100" show-overflow-tooltip> </el-table-column>
-            <el-table-column prop="phone" label="手机"  min-width="150" show-overflow-tooltip> </el-table-column>
+            <el-table-column prop="realName" :label="org ? '法人' : '姓名'" min-width="100" show-overflow-tooltip>
+            </el-table-column>
+            <el-table-column prop="phone" label="手机" min-width="150" show-overflow-tooltip> </el-table-column>
             <el-table-column prop="email" label="邮箱" min-width="200" show-overflow-tooltip> </el-table-column>
             <el-table-column prop="email" label="邮箱" min-width="200" show-overflow-tooltip> </el-table-column>
-            <el-table-column prop="idNo" label="身份证"  min-width="200" show-overflow-tooltip> </el-table-column>
+            <el-table-column prop="idNo" label="身份证" min-width="200" show-overflow-tooltip> </el-table-column>
             <el-table-column prop="idFront" label="身份正面照" width="120" align="center">
             <el-table-column prop="idFront" label="身份正面照" width="120" align="center">
                 <template v-slot="{ row }">
                 <template v-slot="{ row }">
                     <el-image
                     <el-image
@@ -120,7 +125,8 @@ export default {
                 { label: '已认证', value: 'SUCCESS' },
                 { label: '已认证', value: 'SUCCESS' },
                 { label: '失败', value: 'FAIL' }
                 { label: '失败', value: 'FAIL' }
             ],
             ],
-            status: 'PENDING'
+            status: 'PENDING',
+            org: false
         };
         };
     },
     },
     computed: {
     computed: {
@@ -137,7 +143,7 @@ export default {
             return '';
             return '';
         },
         },
         beforeGetData() {
         beforeGetData() {
-            return { search: this.search, query: { del: false, status: this.status } };
+            return { search: this.search, query: { del: false, status: this.status, org: this.org } };
         },
         },
         toggleMultipleMode(multipleMode) {
         toggleMultipleMode(multipleMode) {
             this.multipleMode = multipleMode;
             this.multipleMode = multipleMode;