wangqifan 3 роки тому
батько
коміт
e29e206c55

+ 3 - 1
src/main/java/com/izouma/nineth/domain/TradeAuction.java

@@ -34,11 +34,13 @@ public class TradeAuction extends BaseEntity {
     @ApiModelProperty("铸造者")
     private String minter;
 
+    private String minterAvatar;
+
     @ApiModelProperty("铸造者")
     private String minterId;
 
     @ApiModelProperty("藏品ID")
-    private Long assetId;
+    private Long collectionId;
 
     @ApiModelProperty("图片")
     @Column(columnDefinition = "TEXT")

+ 7 - 3
src/main/java/com/izouma/nineth/service/TradeAuctionService.java

@@ -52,19 +52,23 @@ public class TradeAuctionService {
             return tradeAuctionRepo.save(orig);
         }
         record.setCurrentEndTime(record.getStartTime().plusDays(1));
+        record.setIncreasePer(6);
+        record.setRoyalties(10);
         record.setCurrentStartTime(record.getStartTime());
         record.setCurrentPrice(record.getPrice());
         record.setStatus(TradeAuctionStatus.WAITING);
         BigDecimal result = record.getCurrentPrice().multiply(BigDecimal.valueOf(record.getIncreasePer()))
                 .divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
-        record.setNextPrice(result);
-        record.setEarning(result.subtract(record.getPrice()));
+        record.setNextPrice(result.add(record.getPrice()));
+        record.setEarning(BigDecimal.ZERO);
         record.setFixedPrice(record.getPrice().multiply(BigDecimal.valueOf(150))
                 .divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP));
         BigDecimal serviceCharge = (BigDecimal.valueOf(0.03).multiply(record.getCurrentPrice()))
                 .add(record.getCurrentPrice().subtract(record.getPrice()));
-        record.setEarning(result.subtract(record.getPrice()));
+//        record.setEarning(result.subtract(record.getPrice()));
         record.setCommission(serviceCharge);
+        record.setStock(1L);
+        record.setSale(0L);
         return tradeAuctionRepo.save(record);
     }
 

+ 143 - 113
src/main/vue/src/views/TradeAuctionEdit.vue

@@ -12,61 +12,76 @@
                 <el-form :model="formData" :rules="rules" ref="form" label-width="156px" label-position="right"
                          size="small"
                          style="max-width: 500px;">
-                        <el-form-item prop="name" label="拍卖名称">
-                                    <el-input v-model="formData.name"></el-input>
-                        </el-form-item>
-                        <el-form-item prop="auctionType" label="拍卖类型">
-                                    <el-input-number type="number" v-model="formData.auctionType"></el-input-number>
-                        </el-form-item>
-                        <el-form-item prop="minter" label="铸造者">
-                                    <el-input v-model="formData.minter"></el-input>
-                        </el-form-item>
+                    <el-form-item prop="name" label="名称">
+                        <el-input v-model="formData.name" style="width: 500px"></el-input>
+                    </el-form-item>
+                    <el-form-item prop="pic" label="图片">
+                        <object-upload
+                            v-model="formData.pic[0]"
+                            compress
+                            width="3000"
+                            height="3000"
+                        ></object-upload>
+                        <div class="tip">支持JPG、PNG、GIF、MP4,推荐长宽比1:1</div>
+                    </el-form-item>
+                    <el-form-item prop="model3d" label="3D模型">
+                        <model-upload
+                            :limit="1"
+                            v-model="formData.model3d"
+                            :customUrl="customUrl"
+                            accept="application/zip"
+                            format="json"
+                            single
+                        ></model-upload>
+                        <div class="tip">请将FBX文件与贴图打包成zip压缩包上传</div>
+                    </el-form-item>
+                    <!--                    <el-form-item label="相机距离" v-if="formData.model3d">-->
+                    <!--                        <el-input-number v-model="scale" :min="0.1" :step="0.1"></el-input-number>-->
+                    <!--                    </el-form-item>-->
+                    <!--                    <el-form-item label="Y轴偏移" v-if="formData.model3d">-->
+                    <!--                        <el-input-number v-model="yOffset"></el-input-number>-->
+                    <!--                    </el-form-item>-->
+                    <div class="inline-wrapper">
                         <el-form-item prop="minterId" label="铸造者">
-                                    <el-input v-model="formData.minterId"></el-input>
-                        </el-form-item>
-                        <el-form-item prop="assetId" label="藏品ID">
-                                    <el-input-number type="number" v-model="formData.assetId"></el-input-number>
-                        </el-form-item>
-                        <el-form-item prop="pic" label="图片">
-                                    <el-input v-model="formData.pic"></el-input>
-                        </el-form-item>
-                        <el-form-item prop="model3d" label="model3d">
-                                    <el-input v-model="formData.model3d"></el-input>
-                        </el-form-item>
-                        <el-form-item prop="detail" label="详情">
-                                    <el-input v-model="formData.detail"></el-input>
+                            <minter-select
+                                v-model="formData.minterId"
+                                @detail="onMinterDetail"
+                            ></minter-select>
                         </el-form-item>
                         <el-form-item prop="category" label="分类">
-                                    <el-input v-model="formData.category"></el-input>
-                        </el-form-item>
-                        <el-form-item prop="fixedPrice" label="一口价">
-                                    <el-input-number type="number" v-model="formData.fixedPrice"></el-input-number>
-                        </el-form-item>
-                        <el-form-item prop="startTime" label="开始时间">
-                                    <el-date-picker
-                                            v-model="formData.startTime"
-                                            type="datetime"
-                                            value-format="yyyy-MM-dd HH:mm:ss"
-                                            placeholder="选择日期时间">
-                                    </el-date-picker>
-                        </el-form-item>
-                        <el-form-item prop="currentPrice" label="currentPrice">
-                        </el-form-item>
-                        <el-form-item prop="currentOwner" label="currentOwner">
-                        </el-form-item>
-                        <el-form-item prop="currentOwnerId" label="currentOwnerId">
-                        </el-form-item>
-                        <el-form-item prop="currentOwnerAvatar" label="currentOwnerAvatar">
-                        </el-form-item>
-                        <el-form-item prop="currentEndTime" label="currentEndTime">
-                        </el-form-item>
-                        <el-form-item prop="status" label="拍卖状态">
-                        </el-form-item>
-                        <el-form-item prop="stock" label="stock">
-                                    <el-input-number type="number" v-model="formData.stock"></el-input-number>
-                        </el-form-item>
-                        <el-form-item prop="sale" label="sale">
-                        </el-form-item>
+                            <el-select v-model="formData.category">
+                                <el-option
+                                    v-for="item in cateogories"
+                                    :label="item"
+                                    :value="item"
+                                    :key="item"
+                                ></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </div>
+                    <el-form-item prop="detail" label="详情" style="width: calc(100vw - 450px)">
+                        <rich-text v-model="formData.detail"></rich-text>
+                    </el-form-item>
+                    <el-form-item prop="category" label="分类">
+                        <el-input v-model="formData.category"></el-input>
+                    </el-form-item>
+                    <el-form-item prop="price" label="起拍价">
+                        <el-input-number type="number" v-model="formData.price"></el-input-number>
+                    </el-form-item>
+                    <el-form-item prop="startTime" label="开始时间">
+                        <el-date-picker
+                            v-model="formData.startTime"
+                            type="datetime"
+                            value-format="yyyy-MM-dd HH:mm:ss"
+                            placeholder="选择日期时间">
+                        </el-date-picker>
+                    </el-form-item>
+                    <el-form-item prop="minutes" label="间隔时间(分钟)">
+                        <el-input-number type="number" v-model="formData.minutes"></el-input-number>
+                    </el-form-item>
+                    <el-form-item prop="price" label="起拍价">
+                        <el-input-number type="number" v-model="formData.price"></el-input-number>
+                    </el-form-item>
                     <el-form-item class="form-submit">
                         <el-button @click="onSave" :loading="saving" type="primary">
                             保存
@@ -82,72 +97,87 @@
     </div>
 </template>
 <script>
-    export default {
-        name: 'TradeAuctionEdit',
-        created() {
-            if (this.$route.query.id) {
-                this.$http
-                    .get('tradeAuction/get/' + this.$route.query.id)
-                    .then(res => {
-                        this.formData = res;
-                    })
-                    .catch(e => {
-                        console.log(e);
-                        this.$message.error(e.error);
-                    });
-            }
-        },
-        data() {
-            return {
-                saving: false,
-                formData: {
-                },
-                rules: {
-                },
-                statusOptions: [{"label":"未开始","value":"NOTSTARTED"},{"label":"进行中","value":"ONGOING"},{"label":"成熟","value":"PURCHASED"},{"label":"一口价成交","value":"FIXED_PRICE_PURCHASED"},{"label":"流拍","value":"PASS"},{"label":"完成","value":"FINISH"}],
-            }
-        },
-        methods: {
-            onSave() {
-                this.$refs.form.validate((valid) => {
-                    if (valid) {
-                        this.submit();
-                    } else {
-                        return false;
-                    }
+import resolveUrl from "resolve-url";
+
+export default {
+    name: 'TradeAuctionEdit',
+    created() {
+        if (this.$route.query.id) {
+            this.$http
+                .get('tradeAuction/get/' + this.$route.query.id)
+                .then(res => {
+                    this.formData = res;
+                })
+                .catch(e => {
+                    console.log(e);
+                    this.$message.error(e.error);
                 });
+        }
+    },
+    data() {
+        return {
+            saving: false,
+            customUrl: resolveUrl(this.$baseUrl, 'upload/3dModel'),
+            formData: {
+                pic: [],
             },
-            submit() {
-                let data = {...this.formData};
+            rules: {},
+            cateogories: ['勋章', '收藏品', '数字艺术', '门票', '游戏', '音乐', '使用', '其他'],
+            statusOptions: [{"label": "未开始", "value": "NOTSTARTED"}, {
+                "label": "进行中",
+                "value": "ONGOING"
+            }, {"label": "成熟", "value": "PURCHASED"}, {
+                "label": "一口价成交",
+                "value": "FIXED_PRICE_PURCHASED"
+            }, {"label": "流拍", "value": "PASS"}, {"label": "完成", "value": "FINISH"}],
+        }
+    },
+    methods: {
+        onMinterDetail(e) {
+            console.log(e);
+            this.$set(this.formData, 'minter', e.nickname);
+            this.$set(this.formData, 'minterAvatar', e.avatar);
+        },
+        onSave() {
+            this.$refs.form.validate((valid) => {
+                if (valid) {
+                    this.submit();
+                } else {
+                    return false;
+                }
+            });
+        },
+        submit() {
+            let data = {...this.formData};
 
-                this.saving = true;
-                this.$http
-                    .post('/tradeAuction/save', data, {body: 'json'})
-                    .then(res => {
-                        this.saving = false;
-                        this.$message.success('成功');
-                        this.$router.go(-1);
-                    })
-                    .catch(e => {
-                        console.log(e);
-                        this.saving = false;
-                        this.$message.error(e.error);
-                    });
-            },
-            onDelete() {
-                this.$confirm('删除将无法恢复,确认要删除么?', '警告', {type: 'error'}).then(() => {
-                    return this.$http.post(`/tradeAuction/del/${this.formData.id}`)
-                }).then(() => {
-                    this.$message.success('删除成功');
+            this.saving = true;
+            this.$http
+                .post('/tradeAuction/save', data, {body: 'json'})
+                .then(res => {
+                    this.saving = false;
+                    this.$message.success('成功');
                     this.$router.go(-1);
-                }).catch(e => {
-                    if (e !== 'cancel') {
-                        console.log(e);
-                        this.$message.error((e || {}).error || '删除失败');
-                    }
                 })
-            },
-        }
+                .catch(e => {
+                    console.log(e);
+                    this.saving = false;
+                    this.$message.error(e.error);
+                });
+        },
+        onDelete() {
+            this.$confirm('删除将无法恢复,确认要删除么?', '警告', {type: 'error'}).then(() => {
+                return this.$http.post(`/tradeAuction/del/${this.formData.id}`)
+            }).then(() => {
+                this.$message.success('删除成功');
+                this.$router.go(-1);
+            }).catch(e => {
+                if (e !== 'cancel') {
+                    console.log(e);
+                    this.$message.error((e || {}).error || '删除失败');
+                }
+            })
+        },
     }
+}
 </script>
 <style lang="less" scoped></style>