xiongzhu преди 4 години
родител
ревизия
838d5810a2

+ 2 - 0
src/main/java/com/izouma/nineth/domain/Recommend.java

@@ -26,4 +26,6 @@ public class Recommend extends BaseEntity {
 
     @ApiModelProperty("类型")
     private String type;
+
+    private String pic;
 }

+ 15 - 0
src/main/java/com/izouma/nineth/dto/RecommendCollection.java

@@ -0,0 +1,15 @@
+package com.izouma.nineth.dto;
+
+import com.izouma.nineth.domain.Collection;
+import com.izouma.nineth.domain.Recommend;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class RecommendCollection {
+    private Collection collection;
+    private Recommend  recommend;
+}

+ 3 - 2
src/main/java/com/izouma/nineth/repo/CollectionRepo.java

@@ -1,6 +1,7 @@
 package com.izouma.nineth.repo;
 
 import com.izouma.nineth.domain.Collection;
+import com.izouma.nineth.dto.RecommendCollection;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.CachePut;
 import org.springframework.cache.annotation.Cacheable;
@@ -42,7 +43,7 @@ public interface CollectionRepo extends JpaRepository<Collection, Long>, JpaSpec
     @CachePut(value = "collection", key = "#collection.id")
     Collection save(@Nonnull Collection collection);
 
-    @Query("select c from Collection c join Recommend r on c.id = r.collectionId " +
+    @Query("select new com.izouma.nineth.dto.RecommendCollection(c,r) from Collection c join Recommend r on c.id = r.collectionId " +
             "where c.del = false and c.onShelf = true and r.type = ?1 order by r.sort desc")
-    List<Collection> recommend(String type);
+    List<RecommendCollection> recommend(String type);
 }

+ 11 - 1
src/main/java/com/izouma/nineth/web/CollectionController.java

@@ -1,6 +1,7 @@
 package com.izouma.nineth.web;
 
 import com.izouma.nineth.domain.Collection;
+import com.izouma.nineth.domain.FileObject;
 import com.izouma.nineth.dto.CollectionDTO;
 import com.izouma.nineth.dto.CreateBlindBox;
 import com.izouma.nineth.dto.PageQuery;
@@ -13,13 +14,16 @@ import com.izouma.nineth.utils.SecurityUtils;
 import com.izouma.nineth.utils.excel.ExcelUtils;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.data.domain.Page;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.util.Collections;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("/collection")
@@ -97,7 +101,13 @@ public class CollectionController extends BaseController {
 
     @GetMapping("/recommend")
     public List<CollectionDTO> recommend(@RequestParam String type) {
-        return collectionService.toDTO(collectionRepo.recommend(type));
+        return collectionService.toDTO(collectionRepo.recommend(type).stream().map(rc -> {
+            if (StringUtils.isNotBlank(rc.getRecommend().getPic())) {
+                rc.getCollection().setPic(Collections.singletonList(new FileObject(null, rc.getRecommend()
+                        .getPic(), null, null)));
+            }
+            return rc.getCollection();
+        }).collect(Collectors.toList()));
     }
 }
 

+ 11 - 2
src/main/vue/src/views/RecommendEdit.vue

@@ -33,6 +33,10 @@
                             </el-option>
                         </el-select>
                     </el-form-item>
+                    <el-form-item label="图片" prop="pic">
+                        <single-upload v-model="formData.pic"></single-upload>
+                        <div class="tip">推荐分辨率765x420</div>
+                    </el-form-item>
                     <el-form-item class="form-submit">
                         <el-button @click="onSave" :loading="saving" type="primary"> 保存 </el-button>
                         <el-button @click="onDelete" :disabled="saving" type="danger" v-if="formData.id">
@@ -93,7 +97,8 @@ export default {
                         message: '请输入类型',
                         trigger: 'blur'
                     }
-                ]
+                ],
+                pic: [{ required: true, message: '请上传图片' }]
             },
             typeOptions: [
                 { label: '列表', value: 'LIST' },
@@ -145,7 +150,11 @@ export default {
                 });
         },
         onSelect(e) {
-            this.$set(this.formData, 'name', e.name);
+            console.log(e);
+            if (e) {
+                this.$set(this.formData, 'name', e.name);
+                this.$set(this.formData, 'pic', ((e.pic || []).find(i => !/\.mp4$/.test(i.url)) || {}).url);
+            }
         }
     }
 };

+ 1 - 0
src/main/vue/src/views/RecommendList.vue

@@ -44,6 +44,7 @@
             <el-table-column prop="type" label="类型" :formatter="typeFormatter"> </el-table-column>
             <el-table-column label="操作" align="center" fixed="right" width="150">
                 <template slot-scope="{ row }">
+                    <el-button @click="editRow(row)" type="primary" size="mini" plain>编辑</el-button>
                     <el-button @click="deleteRow(row)" type="danger" size="mini" plain>删除</el-button>
                 </template>
             </el-table-column>