xiongzhu 3 سال پیش
والد
کامیت
7650121f78

+ 6 - 0
src/main/java/com/izouma/nineth/domain/AirDrop.java

@@ -49,4 +49,10 @@ public class AirDrop extends BaseEntity {
 
     @Column(columnDefinition = "TEXT")
     private String result;
+
+    @ApiModelProperty("模拟订单")
+    private boolean simulateOrder = false;
+
+    @ApiModelProperty("忽略库存校验")
+    private boolean ignoreStockCheck = false;
 }

+ 15 - 4
src/main/java/com/izouma/nineth/service/AirDropService.java

@@ -49,7 +49,7 @@ public class AirDropService {
             if (collection.isSalable()) {
                 throw new BusinessException("请先设置藏品为不可购买");
             }
-            if (collection.getStock() < record.getUserIds().size()) {
+            if (!record.isIgnoreStockCheck() && collection.getStock() < record.getUserIds().size()) {
                 throw new BusinessException("藏品库存不足");
             }
             List<User> users = userRepo.findByIdInAndDelFalse(record.getUserIds());
@@ -57,10 +57,21 @@ public class AirDropService {
                 try {
                     if (collection.getType() == CollectionType.BLIND_BOX) {
                         BlindBoxItem winItem = collectionService.draw(collection.getId());
-                        assetService.createAsset(winItem, user, null, null, "空投",
-                                collectionService.getNextNumber(winItem.getCollectionId()), collection.getHoldDays());
+                        if (record.isSimulateOrder()) {
+                            assetService.createAsset(winItem, user, 0L, collection.getPrice(), "出售",
+                                    winItem.getTotal() > 1 ? collectionService.getNextNumber(winItem.getCollectionId()) : null,
+                                    collection.getHoldDays());
+                        } else {
+                            assetService.createAsset(winItem, user, null, null, "空投",
+                                    collectionService.getNextNumber(winItem.getCollectionId()), collection.getHoldDays());
+                        }
                     } else {
-                        assetService.createAsset(collection, user, null, null, "空投", collectionService.getNextNumber(collection.getId()));
+                        if (record.isSimulateOrder()) {
+                            assetService.createAsset(collection, user, 0L, collection.getPrice(), "出售",
+                                    collection.getTotal() > 1 ? collectionService.getNextNumber(collection.getId()) : null);
+                        } else {
+                            assetService.createAsset(collection, user, null, null, "空投", collectionService.getNextNumber(collection.getId()));
+                        }
                     }
                     collectionService.decreaseStock(collection.getId(), 1);
                     collectionService.increaseSale(collection.getId(), 1);

+ 21 - 2
src/main/vue/src/views/AirDropEdit.vue

@@ -56,6 +56,13 @@
                             </el-table-column>
                         </el-table>
                         <el-button @click="addUser" size="mini">添加</el-button>
+                        <div class="tip">一次最多空投300个</div>
+                    </el-form-item>
+                    <el-form-item prop="simulateOrder" label="模拟订单">
+                        <el-switch v-model="formData.simulateOrder"></el-switch>
+                    </el-form-item>
+                    <el-form-item prop="ignoreStockCheck" label="忽略库存校验">
+                        <el-switch v-model="formData.ignoreStockCheck"></el-switch>
                     </el-form-item>
                     <el-form-item class="form-submit">
                         <el-button @click="onSave" :loading="saving" type="primary"> 保存 </el-button>
@@ -117,7 +124,10 @@ export default {
         return {
             saving: false,
             formData: {
-                couponLimited: false
+                couponLimited: false,
+                simulateOrder: false,
+                ignoreStockCheck: false,
+                userIds: []
             },
             rules: {
                 name: [
@@ -184,6 +194,9 @@ export default {
             });
         },
         submit() {
+            if (this.formData.userIds.length > 300) {
+                this.$message.error('一次最多空投300个');
+            }
             let data = { ...this.formData };
 
             this.saving = true;
@@ -265,4 +278,10 @@ export default {
     }
 };
 </script>
-<style lang="less" scoped></style>
+<style lang="less" scoped>
+.tip {
+    font-size: 12px;
+    color: @text3;
+    margin-top: 5px;
+}
+</style>