xiongzhu 4 vuotta sitten
vanhempi
commit
d6b6c9d7a5

+ 3 - 0
src/main/java/com/izouma/nineth/domain/Asset.java

@@ -52,6 +52,9 @@ public class Asset extends BaseEntity {
     @ApiModelProperty("特性")
     private List<Collection.CollectionProperty> properties;
 
+    @ApiModelProperty("分类")
+    private String category;
+
     @ApiModelProperty("是否可转售")
     private boolean canResale;
 

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

@@ -96,6 +96,9 @@ public class Collection extends BaseEntity {
     @ApiModelProperty("特性")
     private List<CollectionProperty> properties;
 
+    @ApiModelProperty("分类")
+    private String category;
+
     @ApiModelProperty("是否可转售")
     private boolean canResale;
 

+ 3 - 0
src/main/java/com/izouma/nineth/domain/Order.java

@@ -56,6 +56,9 @@ public class Order extends BaseEntity {
     @ApiModelProperty("特性")
     private List<Collection.CollectionProperty> properties;
 
+    @ApiModelProperty("分类")
+    private String category;
+
     @ApiModelProperty("是否可转售")
     private boolean canResale;
 

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

@@ -1,6 +1,7 @@
 package com.izouma.nineth.repo;
 
 import com.izouma.nineth.domain.Asset;
+import com.izouma.nineth.enums.AssetStatus;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Modifying;
@@ -13,4 +14,6 @@ public interface AssetRepo extends JpaRepository<Asset, Long>, JpaSpecificationE
     @Modifying
     @Transactional
     void softDelete(Long id);
+
+    long countByIpfsUrlAndStatusNot(String ipfsUrl, AssetStatus status);
 }

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

@@ -60,6 +60,7 @@ public class AssetService {
                 Asset asset = Asset.builder()
                         .userId(user.getId())
                         .orderId(order.getId())
+                        .collectionId(order.getCollectionId())
                         .minter(order.getMinter())
                         .minterId(order.getMinterId())
                         .minterAvatar(order.getMinterAvatar())
@@ -67,6 +68,7 @@ public class AssetService {
                         .detail(order.getDetail())
                         .pic(order.getPic())
                         .properties(order.getProperties())
+                        .category(order.getCategory())
                         .canResale(order.isCanResale())
                         .royalties(order.getRoyalties())
                         .serviceCharge(order.getServiceCharge())
@@ -104,6 +106,7 @@ public class AssetService {
                 Asset asset = Asset.builder()
                         .userId(user.getId())
                         .orderId(order.getId())
+                        .collectionId(order.getCollectionId())
                         .minter(winItem.getMinter())
                         .minterId(winItem.getMinterId())
                         .minterAvatar(winItem.getMinterAvatar())

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

@@ -101,6 +101,7 @@ public class OrderService {
                 .pic(collection.getPics())
                 .detail(collection.getDetail())
                 .properties(collection.getProperties())
+                .category(collection.getCategory())
                 .canResale(collection.isCanResale())
                 .royalties(collection.getRoyalties())
                 .serviceCharge(collection.getServiceCharge())

+ 19 - 2
src/main/vue/src/views/BlindBoxEdit.vue

@@ -80,7 +80,7 @@
                     <el-form-item prop="total" label="发行数量">
                         <el-input-number v-model="formData.total" disabled></el-input-number>
                     </el-form-item>
-                    <el-form-item prop="collectionIds" label="包含作品" style="width: calc(100vw - 450px)">
+                    <el-form-item prop="items" label="包含作品" style="width: calc(100vw - 450px)">
                         <el-table :data="blindBoxItems">
                             <el-table-column
                                 prop="collectionId"
@@ -114,8 +114,13 @@
                     <el-form-item prop="salable" label="可售">
                         <el-switch v-model="formData.salable" active-text="可销售" inactive-text="仅展示"></el-switch>
                     </el-form-item>
+                    <el-form-item prop="startTime" label="开售时间">
+                        <el-date-picker type="datetime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
+                    </el-form-item>
                     <el-form-item class="form-submit">
-                        <el-button @click="onSave" :loading="saving" type="primary" v-if="!formData.id"> 保存 </el-button>
+                        <el-button @click="onSave" :loading="saving" type="primary" v-if="!formData.id">
+                            保存
+                        </el-button>
                         <!-- <el-button @click="onDelete" :disabled="saving" type="danger" v-if="formData.id">
                             删除
                         </el-button> -->
@@ -329,6 +334,18 @@ export default {
                         },
                         trigger: 'blur'
                     }
+                ],
+                startTime: [{ required: true, message: '请填写开售时间' }],
+                items: [
+                    {
+                        validator: (rule, value, callback) => {
+                            if (this.blindBoxItems.length === 0) {
+                                callback(new Error('请添加盲盒内容'));
+                                return;
+                            }
+                            callback();
+                        }
+                    }
                 ]
             },
             typeOptions: [