licailing vor 4 Jahren
Ursprung
Commit
fc59621d85

+ 3 - 3
src/main/java/com/izouma/jiashanxia/domain/OrderInfo.java

@@ -60,8 +60,8 @@ public class OrderInfo extends BaseEntity {
     @ApiModelProperty(value = "价钱")
     private BigDecimal price;
 
-//    @ApiModelProperty(value = "用户端是否显示")
-//    private Boolean isShow;
+    @ApiModelProperty(value = "用户端是否显示")
+    private boolean userDel;
 
     @ManyToOne(fetch = FetchType.LAZY)
     @JoinColumn(name = "userId", insertable = false, updatable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
@@ -80,7 +80,7 @@ public class OrderInfo extends BaseEntity {
     private Long stockId;
 
     @ApiModelProperty(value = "规格")
-    private String    specification;
+    private String specification;
 
     @ApiModelProperty(value = "日期")
     private LocalDate day;

+ 5 - 0
src/main/java/com/izouma/jiashanxia/repo/OrderInfoRepo.java

@@ -17,6 +17,11 @@ public interface OrderInfoRepo extends JpaRepository<OrderInfo, Long>, JpaSpecif
     @Transactional
     void softDelete(Long id);
 
+    @Query("update OrderInfo t set t.userDel = true where t.id = ?1")
+    @Modifying
+    @Transactional
+    void userDelete(Long id);
+
     @Query(nativeQuery = true, value = "SELECT count(1) FROM order_info")
     int orderNum();
 

+ 6 - 0
src/main/java/com/izouma/jiashanxia/web/OrderInfoController.java

@@ -107,5 +107,11 @@ public class OrderInfoController extends BaseController {
         List<Long> shoppingCart = converter.convertToEntityAttribute(cartIds);
         orderInfoService.batchByCart(shoppingCart);
     }
+
+    @ApiOperation("用户端删除订单")
+    @PostMapping("/userDel/{id}")
+    public void userDel(@PathVariable Long id) {
+        orderInfoRepo.userDelete(id);
+    }
 }
 

+ 21 - 1
src/main/java/com/izouma/jiashanxia/web/OrderRefundController.java

@@ -1,4 +1,5 @@
 package com.izouma.jiashanxia.web;
+
 import com.izouma.jiashanxia.domain.OrderRefund;
 import com.izouma.jiashanxia.service.OrderRefundService;
 import com.izouma.jiashanxia.dto.PageQuery;
@@ -6,6 +7,7 @@ import com.izouma.jiashanxia.exception.BusinessException;
 import com.izouma.jiashanxia.repo.OrderRefundRepo;
 import com.izouma.jiashanxia.utils.ObjUtils;
 import com.izouma.jiashanxia.utils.excel.ExcelUtils;
+import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -20,7 +22,7 @@ import java.util.List;
 @AllArgsConstructor
 public class OrderRefundController extends BaseController {
     private OrderRefundService orderRefundService;
-    private OrderRefundRepo orderRefundRepo;
+    private OrderRefundRepo    orderRefundRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
@@ -56,5 +58,23 @@ public class OrderRefundController extends BaseController {
         List<OrderRefund> data = all(pageQuery).getContent();
         ExcelUtils.export(response, data);
     }
+
+    @PostMapping("/apply")
+    @ApiOperation("申请退款")
+    public OrderRefund apply(@RequestParam Long orderId) {
+        return orderRefundService.apply(orderId);
+    }
+
+    @PostMapping("/audit")
+    @ApiOperation("审核退款")
+    public void audit(@RequestParam Long id, @RequestParam Boolean pass) {
+        orderRefundService.audit(id, pass);
+    }
+
+    @PostMapping("/cancel")
+    @ApiOperation("取消退款")
+    public void cancel(@RequestParam Long orderId) {
+        orderRefundService.cancel(orderId);
+    }
 }
 

+ 7 - 0
src/main/java/com/izouma/jiashanxia/web/PackageController.java

@@ -4,6 +4,7 @@ import com.izouma.jiashanxia.domain.Attractions;
 import com.izouma.jiashanxia.domain.Category;
 import com.izouma.jiashanxia.domain.Package;
 import com.izouma.jiashanxia.dto.PackageDTO;
+import com.izouma.jiashanxia.dto.PackageVO;
 import com.izouma.jiashanxia.enums.PackageType;
 import com.izouma.jiashanxia.repo.AttractionsRepo;
 import com.izouma.jiashanxia.repo.CategoryRepo;
@@ -69,6 +70,12 @@ public class PackageController extends BaseController {
 //        return packageRepo.findInformationById(id);
     }
 
+    @GetMapping("/getVO/{id}")
+    public PackageVO getVO(@PathVariable Long id) {
+        return packageService.toVO(packageRepo.findById(id).orElseThrow(new BusinessException("无记录")));
+//        return packageRepo.findInformationById(id);
+    }
+
     @GetMapping("/getDTO/{id}")
     public PackageDTO getDTO(@PathVariable Long id) {
         return packageRepo.findInformationById(id);

+ 3 - 3
src/main/vue/src/components/PackageEdit.vue

@@ -4,7 +4,7 @@
             :model="formData"
             :rules="rules"
             ref="form"
-            label-width="120px"
+            label-width="110px"
             label-position="right"
             size="small"
             style="max-width: 800px;"
@@ -293,12 +293,12 @@
                     <el-button @click="list.push({ name: '', desc: '', img: [] })">添加</el-button>
                 </div>
             </el-form-item> -->
-            <el-form-item>
+            <!-- <el-form-item>
                 <el-button @click="onSave" :loading="saving" type="primary" v-if="$route.query.id">保存</el-button>
                 <el-button @click="onSave" :loading="saving" type="primary" v-else>下一步</el-button>
                 <el-button @click="onDelete" :loading="saving" type="danger" v-if="formData.id">删除 </el-button>
                 <el-button @click="$router.go(-1)">取消</el-button>
-            </el-form-item>
+            </el-form-item> -->
         </el-form>
     </div>
 </template>

+ 4 - 4
src/main/vue/src/components/PackageEdit2.vue

@@ -4,7 +4,7 @@
             :model="formData"
             :rules="rules"
             ref="form"
-            label-width="90px"
+            label-width="110px"
             label-position="right"
             size="small"
             style="max-width: 800px;"
@@ -12,7 +12,7 @@
             <el-form-item prop="detail" label="详情">
                 <rich-text v-model="formData.detail"></rich-text>
             </el-form-item>
-            <el-form-item prop="content" label="流程" style="width:800px">
+            <el-form-item prop="workflow" label="流程" style="width:800px">
                 <div>
                     <el-form
                         v-for="(item, i) in list"
@@ -40,12 +40,12 @@
                     <el-button @click="list.push({ name: '', desc: '', img: [] })">添加</el-button>
                 </div>
             </el-form-item>
-            <el-form-item>
+            <!-- <el-form-item>
                 <el-button @click="onSave" :loading="saving" type="primary" v-if="$route.query.id">保存</el-button>
                 <el-button @click="onSave" :loading="saving" type="primary" v-else>下一步</el-button>
                 <el-button @click="onDelete" :loading="saving" type="danger" v-if="formData.id">删除 </el-button>
                 <el-button @click="$router.go(-1)">取消</el-button>
-            </el-form-item>
+            </el-form-item> -->
         </el-form>
     </div>
 </template>

+ 3 - 3
src/main/vue/src/components/PackageEdit3.vue

@@ -4,7 +4,7 @@
             :model="formData"
             :rules="rules"
             ref="form"
-            label-width="90px"
+            label-width="110px"
             label-position="right"
             size="small"
             style="max-width: 800px;"
@@ -29,11 +29,11 @@
             <el-form-item prop="share" label="文案" style="width: 600px;">
                 <simple-rich-text v-model="formData.share" class="select-width"></simple-rich-text>
             </el-form-item>
-            <el-form-item>
+            <!-- <el-form-item>
                 <el-button @click="onSave" :loading="saving" type="primary" v-if="$route.query.id">保存</el-button>
                 <el-button @click="onDelete" :loading="saving" type="danger" v-if="formData.id">删除 </el-button>
                 <el-button @click="$router.go(-1)">取消</el-button>
-            </el-form-item>
+            </el-form-item> -->
         </el-form>
     </div>
 </template>

+ 5 - 1
src/main/vue/src/views/OrderInfoList.vue

@@ -59,6 +59,9 @@
                     <el-tag type="warning" v-if="row.status == 'UNPAID'">未支付</el-tag>
                     <el-tag type="success" v-else-if="row.status == 'PAID'">已支付</el-tag>
                     <el-tag type="info" v-else-if="row.status == 'CANCELLED'">已取消</el-tag>
+                    <el-tag type="info" v-else-if="row.status == 'REFUNDED'">已退款</el-tag>
+                    <el-tag type="danger" v-else-if="row.status == 'REQUEST_REFUND'">申请退款</el-tag>
+                    <el-tag v-else-if="row.status == 'USED'">已使用</el-tag>
                     <el-tag v-else>线下支付</el-tag>
                 </template>
             </el-table-column>
@@ -120,7 +123,8 @@ export default {
                 { label: '已取消', value: 'CANCELLED' },
                 { label: '线下支付', value: 'OFFLINE_PAID' },
                 { label: '已退款', value: 'REFUNDED' },
-                { label: '申请退款中', value: 'REQUEST_REFUND' }
+                { label: '申请退款中', value: 'REQUEST_REFUND' },
+                { label: '已使用', value: 'USED' }
             ],
             status: [],
             packageId: '',

+ 117 - 2
src/main/vue/src/views/PackageEdit.vue

@@ -1,6 +1,6 @@
 <template>
     <div class="edit-view">
-        <el-tabs type="border-card" class="my-tabs" v-model="active">
+        <el-tabs class="my-tabs" v-model="active">
             <el-tab-pane label="基本信息" name="first">
                 <PackageEdit @next="goNext" />
             </el-tab-pane>
@@ -14,6 +14,20 @@
                 <PackageGoodsTable ref="setGoodsList" />
             </el-tab-pane> -->
         </el-tabs>
+        <el-form
+            :model="formData"
+            ref="form"
+            label-width="120px"
+            label-position="right"
+            size="small"
+            style="max-width: 800px;"
+        >
+            <el-form-item>
+                <el-button @click="onSave" :loading="saving" type="primary" v-if="$route.query.id">保存</el-button>
+                <el-button @click="onDelete" :loading="saving" type="danger" v-if="formData.id">删除 </el-button>
+                <el-button @click="$router.go(-1)">取消</el-button>
+            </el-form-item>
+        </el-form>
     </div>
 </template>
 <script>
@@ -27,13 +41,27 @@ export default {
     created() {
         if (this.$route.query.id) {
             this.id = this.$route.query.id;
+            this.$http
+                .get('package/get/' + this.$route.query.id)
+                .then(res => {
+                    this.formData = res;
+                })
+                .catch(e => {
+                    console.log(e);
+                    this.$message.error(e.error);
+                });
+            this.$http.get('/stock/byPackageId', { packageId: this.$route.query.id }).then(res => {
+                this.stockList = res;
+            });
         }
     },
     data() {
         return {
             active: 'first',
             id: 0,
-            formData: {}
+            formData: {},
+            stockList: [],
+            saving: false
         };
     },
     // mounted() {
@@ -68,6 +96,93 @@ export default {
                     type: queryType || 1
                 }
             });
+        },
+        onSave() {
+            // this.$refs.form.validate(valid => {
+            //     if (valid) {
+            //         this.submit();
+            //     } else {
+            //         return false;
+            //     }
+            // });
+            Promise.all(this.$refs.subform.map(i => i.validate())).then(() => {
+                this.$refs.form.validate(valid => {
+                    if (valid) {
+                        this.submit();
+                    } else {
+                        return false;
+                    }
+                });
+            });
+        },
+        submit() {
+            let data = { ...this.formData };
+            this.saving = true;
+            if (!this.formData.detail && !this.formData.workflow) {
+                this.$alert('详细信息未填,确认保存吗?', '提示', {
+                    confirmButtonText: '确定',
+                    callback: action => {
+                        this.$message({
+                            type: 'info',
+                            message: `action: ${action}`
+                        });
+                    }
+                });
+            }
+            if (!this.formData.poster && !this.formData.smallPoster && !this.formData.share) {
+                this.$alert('分享内容未填,确认保存吗?', '提示', {
+                    confirmButtonText: '确定',
+                    callback: action => {
+                        this.$message({
+                            type: 'info',
+                            message: `action: ${action}`
+                        });
+                    }
+                });
+            }
+            this.$http
+                .post('/package/save', data, { body: 'json' })
+                .then(res => {
+                    this.saving = false;
+                    // this.$message.success('成功');
+                    this.packageId = res.id;
+                    this.$nextTick(() => {
+                        this.$http.post('/stock/batchSave', {
+                            stocks: this.saveOtherJson
+                        });
+                        this.$message.success('成功');
+                        this.$router.go(-1);
+                    });
+                    this.$emit('next', 'second');
+                    this.$router.replace({
+                        name: 'PackageEdit',
+                        query: {
+                            id: res.id,
+                            attractionsId: res.attractionsId
+                        }
+                    });
+                })
+                .catch(e => {
+                    console.log(e);
+                    this.saving = false;
+                    this.$message.error(e.error);
+                });
+        },
+        onDelete() {
+            this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'error' })
+                .then(() => {
+                    return this.$http.post(`/package/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);
+                    }
+                });
         }
     },
     components: {