licailing пре 4 година
родитељ
комит
e2ebbfb096

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

@@ -27,6 +27,10 @@ public class GiftOrder extends BaseEntity {
 
     private Long assetId;
 
+    private Long collectionId;
+
+    private String name;
+
     private Long toUserId;
 
     @Enumerated(EnumType.STRING)
@@ -54,4 +58,6 @@ public class GiftOrder extends BaseEntity {
 
     @ApiModelProperty("区块高度")
     private BigInteger blockNumber;
+
+    private int projectId;
 }

+ 8 - 0
src/main/java/com/izouma/nineth/dto/GiftOrderDTO.java

@@ -2,7 +2,9 @@ package com.izouma.nineth.dto;
 
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.izouma.nineth.annotations.Searchable;
+import com.izouma.nineth.domain.GiftOrder;
 import lombok.Data;
+import org.springframework.beans.BeanUtils;
 
 import javax.persistence.Column;
 import javax.persistence.EnumType;
@@ -13,6 +15,9 @@ import java.time.LocalDateTime;
 
 @Data
 public class GiftOrderDTO {
+    @ExcelProperty("ID")
+    private Long id;
+
     @ExcelProperty("赠送用户ID")
     private Long userId;
 
@@ -57,4 +62,7 @@ public class GiftOrderDTO {
     @ExcelProperty("区块高度")
     private BigInteger blockNumber;
 
+    public GiftOrderDTO(GiftOrder go) {
+        BeanUtils.copyProperties(go, this);
+    }
 }

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

@@ -92,9 +92,12 @@ public class GiftOrderService {
         GiftOrder giftOrder = GiftOrder.builder()
                 .userId(userId)
                 .assetId(assetId)
+                .collectionId(asset.getCollectionId())
+                .name(asset.getName())
                 .toUserId(toUserId)
                 .gasPrice(sysConfigService.getBigDecimal("gas_fee"))
                 .status(OrderStatus.NOT_PAID)
+                .projectId(asset.getProjectId())
                 .build();
         return giftOrderRepo.save(giftOrder);
     }

+ 27 - 3
src/main/java/com/izouma/nineth/web/GiftOrderController.java

@@ -1,9 +1,12 @@
 package com.izouma.nineth.web;
 
 import com.izouma.nineth.domain.GiftOrder;
+import com.izouma.nineth.domain.User;
+import com.izouma.nineth.dto.GiftOrderDTO;
 import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.GiftOrderRepo;
+import com.izouma.nineth.repo.UserRepo;
 import com.izouma.nineth.service.GiftOrderService;
 import com.izouma.nineth.utils.excel.ExcelUtils;
 import lombok.AllArgsConstructor;
@@ -12,7 +15,11 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("/giftOrder")
@@ -20,12 +27,29 @@ import java.util.List;
 public class GiftOrderController extends BaseController {
     private GiftOrderService giftOrderService;
     private GiftOrderRepo    giftOrderRepo;
+    private UserRepo         userRepo;
 
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/all")
-    public Page<GiftOrder> all(@RequestBody PageQuery pageQuery) {
-        return giftOrderService.all(pageQuery);
+    public Page<GiftOrderDTO> all(@RequestBody PageQuery pageQuery) {
+        Page<GiftOrder> all = giftOrderService.all(pageQuery);
+        Set<Long> userIds = new HashSet<>();
+        all.getContent().forEach(go -> {
+            userIds.add(go.getUserId());
+            userIds.add(go.getToUserId());
+        });
+        Map<Long, String> userMap = userRepo.findByIdInAndDelFalse(userIds)
+                .stream()
+                .collect(Collectors.toMap(User::getId, User::getNickname));
+        return all.map(go -> {
+            GiftOrderDTO dto = new GiftOrderDTO(go);
+            dto.setNickname(userMap.get(go.getUserId()));
+            dto.setToNickname(userMap.get(go.getToUserId()));
+            dto.setStatus(go.getStatus() == null ? "" :go.getStatus().getDescription());
+            dto.setPayMethod(go.getPayMethod() == null ? "" : go.getPayMethod().getDescription());
+            return dto;
+        });
     }
 
     @GetMapping("/get/{id}")
@@ -41,7 +65,7 @@ public class GiftOrderController extends BaseController {
     @PostMapping("/excel")
     @ResponseBody
     public void excel(HttpServletResponse response, @RequestBody PageQuery pageQuery) throws IOException {
-        List<GiftOrder> data = all(pageQuery).getContent();
+        List<GiftOrderDTO> data = all(pageQuery).getContent();
         ExcelUtils.export(response, data);
     }
 

+ 22 - 17
src/main/vue/src/views/GiftOrderEdit.vue

@@ -2,8 +2,8 @@
     <div class="edit-view">
         <page-title>
             <el-button @click="$router.go(-1)" :disabled="saving">取消</el-button>
-            <el-button @click="onDelete" :disabled="saving" type="danger" v-if="formData.id"> 删除 </el-button>
-            <el-button @click="onSave" :loading="saving" type="primary">保存</el-button>
+            <!-- <el-button @click="onDelete" :disabled="saving" type="danger" v-if="formData.id"> 删除 </el-button>
+            <el-button @click="onSave" :loading="saving" type="primary">保存</el-button> -->
         </page-title>
         <div class="edit-view__content-wrapper">
             <div class="edit-view__content-section">
@@ -16,17 +16,20 @@
                     size="small"
                     style="max-width: 500px"
                 >
-                    <el-form-item prop="userId" label="用户id">
-                        <el-input-number type="number" v-model="formData.userId"></el-input-number>
+                    <el-form-item prop="userId" label="赠送用户ID">
+                        <el-input-number type="number" v-model="formData.userId" disabled></el-input-number>
                     </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 prop="collectionId" label="藏品ID">
+                        <el-input-number type="number" v-model="formData.collectionId" disabled></el-input-number>
                     </el-form-item>
-                    <el-form-item prop="toUserId" label="赠送用户">
-                        <el-input-number type="number" v-model="formData.toUserId"></el-input-number>
+                    <el-form-item prop="name" label="名称">
+                        <el-input v-model="formData.name" disabled></el-input>
+                    </el-form-item>
+                    <el-form-item prop="toUserId" label="收到用户ID">
+                        <el-input-number type="number" v-model="formData.toUserId" disabled></el-input-number>
                     </el-form-item>
                     <el-form-item prop="payMethod" label="支付方式">
-                        <el-select v-model="formData.payMethod" clearable filterable placeholder="请选择">
+                        <el-select v-model="formData.payMethod" clearable filterable placeholder="请选择" disabled>
                             <el-option
                                 v-for="item in payMethodOptions"
                                 :key="item.value"
@@ -37,7 +40,7 @@
                         </el-select>
                     </el-form-item>
                     <el-form-item prop="status" label="状态">
-                        <el-select v-model="formData.status" clearable filterable placeholder="请选择">
+                        <el-select v-model="formData.status" clearable filterable placeholder="请选择" disabled>
                             <el-option
                                 v-for="item in statusOptions"
                                 :key="item.value"
@@ -48,10 +51,10 @@
                         </el-select>
                     </el-form-item>
                     <el-form-item prop="gasPrice" label="gas费">
-                        <el-input-number type="number" v-model="formData.gasPrice"></el-input-number>
+                        <el-input-number type="number" v-model="formData.gasPrice" disabled></el-input-number>
                     </el-form-item>
                     <el-form-item prop="transactionId" label="交易ID">
-                        <el-input v-model="formData.transactionId"></el-input>
+                        <el-input v-model="formData.transactionId" disabled></el-input>
                     </el-form-item>
                     <el-form-item prop="payTime" label="支付时间">
                         <el-date-picker
@@ -59,6 +62,7 @@
                             type="datetime"
                             value-format="yyyy-MM-dd HH:mm:ss"
                             placeholder="选择日期时间"
+                            disabled
                         >
                         </el-date-picker>
                     </el-form-item>
@@ -68,23 +72,24 @@
                             type="datetime"
                             value-format="yyyy-MM-dd HH:mm:ss"
                             placeholder="选择日期时间"
+                            disabled
                         >
                         </el-date-picker>
                     </el-form-item>
                     <el-form-item prop="txHash" label="交易hash">
-                        <el-input v-model="formData.txHash"></el-input>
+                        <el-input v-model="formData.txHash" disabled></el-input>
                     </el-form-item>
                     <el-form-item prop="gasUsed" label="消耗gas">
-                        <el-input v-model="formData.gasUsed"></el-input>
+                        <el-input v-model="formData.gasUsed" disabled></el-input>
                     </el-form-item>
                     <el-form-item prop="blockNumber" label="区块高度">
-                        <el-input v-model="formData.blockNumber"></el-input>
+                        <el-input v-model="formData.blockNumber" disabled></el-input>
                     </el-form-item>
                     <el-form-item class="form-submit">
-                        <el-button @click="onSave" :loading="saving" type="primary"> 保存 </el-button>
+                        <!-- <el-button @click="onSave" :loading="saving" type="primary"> 保存 </el-button>
                         <el-button @click="onDelete" :disabled="saving" type="danger" v-if="formData.id">
                             删除
-                        </el-button>
+                        </el-button> -->
                         <el-button @click="$router.go(-1)" :disabled="saving">取消</el-button>
                     </el-form-item>
                 </el-form>

+ 13 - 10
src/main/vue/src/views/GiftOrderList.vue

@@ -1,7 +1,7 @@
 <template>
     <div class="list-view">
         <page-title>
-            <el-button
+            <!-- <el-button
                 @click="addRow"
                 type="primary"
                 icon="el-icon-plus"
@@ -9,7 +9,7 @@
                 class="filter-item"
             >
                 新增
-            </el-button>
+            </el-button> -->
             <el-button
                 @click="download"
                 icon="el-icon-upload2"
@@ -53,12 +53,14 @@
         >
             <el-table-column v-if="multipleMode" align="center" type="selection" width="50"> </el-table-column>
             <el-table-column prop="id" label="ID" width="100"> </el-table-column>
-            <el-table-column prop="userId" label="赠送用户"> </el-table-column>
+            <el-table-column prop="userId" label="赠送用户ID" width="100px"> </el-table-column>
+            <el-table-column prop="nickname" label="赠送用户"> </el-table-column>
             <el-table-column prop="assetId" label="藏品ID"> </el-table-column>
             <el-table-column prop="assetId" label="名称"> </el-table-column>
-            <el-table-column prop="toUserId" label="收到用户"> </el-table-column>
-            <el-table-column prop="payMethod" label="支付方式" :formatter="payMethodFormatter"> </el-table-column>
-            <el-table-column prop="status" label="状态" :formatter="statusFormatter"> </el-table-column>
+            <el-table-column prop="toUserId" label="收到用户ID" width="100px"> </el-table-column>
+            <el-table-column prop="toNickname" label="收到用户"> </el-table-column>
+            <el-table-column prop="payMethod" label="支付方式"> </el-table-column>
+            <el-table-column prop="status" label="状态"> </el-table-column>
             <el-table-column prop="gasPrice" label="gas费"> </el-table-column>
             <el-table-column prop="transactionId" label="交易ID" show-overflow-tooltip> </el-table-column>
             <el-table-column prop="payTime" label="支付时间" width="140"> </el-table-column>
@@ -169,10 +171,11 @@ export default {
         },
         download() {
             this.downloading = true;
+            let params = this.beforeGetData();
+            params.size = 10000;
             this.$axios
-                .get('/giftOrder/excel', {
-                    responseType: 'blob',
-                    params: { size: 10000 }
+                .post('/giftOrder/excel', params, {
+                    responseType: 'blob'
                 })
                 .then(res => {
                     console.log(res);
@@ -180,7 +183,7 @@ export default {
                     const downloadUrl = window.URL.createObjectURL(new Blob([res.data]));
                     const link = document.createElement('a');
                     link.href = downloadUrl;
-                    link.setAttribute('download', res.headers['content-disposition'].split('filename=')[1]);
+                    link.setAttribute('download', '转赠订单.xlsx');
                     document.body.appendChild(link);
                     link.click();
                     link.remove();