xiongzhu 4 سال پیش
والد
کامیت
3eba2e5b8a

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

@@ -279,7 +279,7 @@ public class AssetService {
             if (orders.stream().anyMatch(o -> o.getStatus() != OrderStatus.CANCELLED)) {
                 throw new BusinessException("已有订单不可取消");
             }
-            collectionRepo.findById(asset.getCollectionId())
+            collectionRepo.findById(asset.getPublicCollectionId())
                     .ifPresent(collection -> {
                         collection.setSalable(false);
                         collectionRepo.save(collection);

+ 0 - 1
src/main/java/com/izouma/nineth/web/OrderController.java

@@ -84,7 +84,6 @@ public class OrderController extends BaseController {
         } else {
             orderService.createAsset(orderId, itemId);
         }
-
     }
 
     @PostMapping("/hide")

+ 9 - 3
src/main/vue/src/views/BlindBoxEdit.vue

@@ -209,9 +209,15 @@ export default {
                     this.blindBoxItems = res.content;
                 });
         }
-        this.$http.post('/collection/all', { query: { del: false }, size: 10000 }, { body: 'json' }).then(res => {
-            this.collections = res.content;
-        });
+        this.$http
+            .post(
+                '/collection/all',
+                { query: { del: false, source: 'OFFICIAL' }, size: 10000, sort: 'sort,desc;createdAt,desc' },
+                { body: 'json' }
+            )
+            .then(res => {
+                this.collections = res.content;
+            });
 
         // this.formData = {
         //     name: 'OASISPUNK绿洲朋克',

+ 80 - 2
src/main/vue/src/views/CouponEdit.vue

@@ -29,7 +29,19 @@
                         <el-switch v-model="formData.limited"></el-switch>
                     </el-form-item>
                     <el-form-item prop="collectionIds" label="藏品" v-if="formData.limited">
-                        <el-input v-model="formData.collectionIds"></el-input>
+                        <el-table :data="collections">
+                            <el-table-column type="index" label="#"></el-table-column>
+                            <el-table-column prop="id" label="ID"></el-table-column>
+                            <el-table-column prop="name" label="名称"></el-table-column>
+                            <el-table-column width="80" align="center">
+                                <template v-slot="{ row, $index }">
+                                    <el-button type="danger" plain @click="delCollection($index)" size="mini"
+                                        >删除</el-button
+                                    >
+                                </template>
+                            </el-table-column>
+                        </el-table>
+                        <el-button @click="addCollection" size="mini">添加</el-button>
                     </el-form-item>
                     <el-form-item prop="expiration" label="到期时间">
                         <el-date-picker
@@ -49,6 +61,27 @@
                     </el-form-item>
                 </el-form>
             </div>
+            <el-dialog title="添加藏品" :visible.sync="showCollectionDialog" width="500px">
+                <el-form :model="{ collectionId }" ref="collectionForm" inline>
+                    <el-form-item prop="collectionId" :rules="{ required: true, message: '请选择藏品' }">
+                        <el-select v-model="collectionId" filterable :filter-method="filterCollection">
+                            <el-option
+                                v-for="item in collectionOptions"
+                                :label="item.name"
+                                :value="item.id"
+                                :key="item.id"
+                            >
+                                <span style="float: left">{{ item.name }}</span>
+                                <span style="float: right; color: #8492a6; font-size: 13px">#{{ item.id }}</span>
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                </el-form>
+                <div slot="footer">
+                    <el-button @click="showCollectionDialog = false">取消</el-button>
+                    <el-button type="primary" size="mini" @click="saveCollection">确定</el-button>
+                </div>
+            </el-dialog>
         </div>
     </div>
 </template>
@@ -67,6 +100,19 @@ export default {
                     this.$message.error(e.error);
                 });
         }
+        this.$http
+            .post(
+                '/collection/all',
+                {
+                    size: 10000,
+                    sort: 'sort,desc;createdAt,desc',
+                    query: { del: false, source: 'OFFICIAL' }
+                },
+                { body: 'json' }
+            )
+            .then(res => {
+                this.collectionOptions = res.content;
+            });
     },
     data() {
         return {
@@ -117,7 +163,10 @@ export default {
                     }
                 ]
             },
-            collections: []
+            collectionOptions: [],
+            collections: [],
+            showCollectionDialog: false,
+            collectionId: null
         };
     },
     methods: {
@@ -162,6 +211,35 @@ export default {
                         this.$message.error((e || {}).error || '删除失败');
                     }
                 });
+        },
+        addCollection() {
+            this.collectionId = null;
+            this.showCollectionDialog = true;
+            if (this.$refs.collectionForm) {
+                this.$nextTick(() => {
+                    this.$refs.collectionForm.clearValidate();
+                });
+            }
+        },
+        delCollection(index) {
+            this.collections.splice(index, 1);
+        },
+        saveCollection() {
+            this.$refs.collectionForm
+                .validate()
+                .then(() => {
+                    if (!this.collections.find(i => i.id === this.collectionId)) {
+                        this.collections.push(this.collectionOptions.find(i => i.id === this.collectionId));
+                        this.showCollectionDialog = false;
+                    } else {
+                        this.$message.error('请勿重复添加');
+                    }
+                })
+                .catch(() => {});
+        },
+        filterCollection(val) {
+            console.log(val);
+            return this.collectionOptions.filter(i => i.name.includes(val) || i.id == val);
         }
     }
 };

+ 9 - 0
src/test/java/com/izouma/nineth/service/AssetServiceTest.java

@@ -24,4 +24,13 @@ class AssetServiceTest extends ApplicationTests {
         Order order = orderRepo.findById(1922L).get();
         assetService.createAsset(order, item);
     }
+
+    @Test
+    void cancelConsignment() {
+        assetService.cancelConsignment(1209L);
+    }
+
+    @Test
+    void testCancelConsignment() {
+    }
 }