Procházet zdrojové kódy

Merge remote-tracking branch 'origin/master'

lijilei před 3 roky
rodič
revize
5570a04764

+ 2 - 0
book-server/src/main/java/com/book/server/common/entity/ResultCode.java

@@ -7,6 +7,8 @@ public enum ResultCode {
     UNKNOWN(-2, "unknown"),
 
     NOMONEY(10000, "金币不足"),
+    IDEXIST(10001, "书籍 ID 已存在"),
+    PARAMERROR(10002, "参数错误"),
     ;
 
     private Integer code;

+ 12 - 2
book-server/src/main/java/com/book/server/controller/BookController.java

@@ -1,13 +1,16 @@
 package com.book.server.controller;
 
+import com.book.dao.cps.pojo.Book;
 import com.book.dao.cps.pojo.SearchKeyword;
 import com.book.dao.cpsshard.entity.UserRecentlyRead;
 import com.book.server.common.entity.Result;
 import com.book.server.common.entity.ResultCode;
 import com.book.dao.VO.*;
 import com.book.server.service.BookService;
+import com.book.server.service.CacheService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.AutoConfigureOrder;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
@@ -187,6 +190,8 @@ public class BookController extends BaseController {
         return Result.byObject(bookService.getUserConsumerChapter(bookContentVO));
     }
 
+    @Autowired
+    private CacheService cacheService;
     /**
      * 自定义书籍上传
      *
@@ -197,8 +202,13 @@ public class BookController extends BaseController {
      */
     @PostMapping("/upload")
     public Result uploadFile(@RequestParam("file") MultipartFile file, Long bookId) throws IOException {
-        if (file.isEmpty()) {
-            return Result.failure();
+        if (file.isEmpty() || bookId == null || bookId < 100_0000) {
+            return Result.failure(ResultCode.PARAMERROR);
+        }
+        //判断 ID 是否存在
+        Book bookById = cacheService.getBookById(bookId);
+        if (bookById != null) {
+            return Result.failure(ResultCode.IDEXIST);
         }
         bookService.addFile(file, bookId);
         return Result.success("添加成功");

+ 11 - 5
book-server/src/main/java/com/book/server/service/impl/BookServiceImpl.java

@@ -520,6 +520,7 @@ public class BookServiceImpl implements BookService {
     @Transactional
     @Override
     public void addFile(MultipartFile file, Long bookId) throws IOException {
+
         // 测试先清理数据
         uploadBookMapper.deleteByExample(UploadBookExample.newAndCreateCriteria().andBookIdEqualTo(bookId).example());
         // 读取所有行
@@ -532,12 +533,14 @@ public class BookServiceImpl implements BookService {
             }
         }
         StringBuilder content = new StringBuilder();
+        int chapterNum = 0;
         // 获取内容简介,并保存到数据库
         if (!list.isEmpty() && list.pop().startsWith("内容简介")) {
             while (!list.isEmpty()) {
-                String pop = list.pop();
+                String pop = list.peek();
                 if (pop != null && pop.startsWith(" ")) {
                     content.append(pop.trim()).append("\r\n");
+                    list.pop();
                 } else {
                     break;
                 }
@@ -559,8 +562,9 @@ public class BookServiceImpl implements BookService {
             String contentName = list.pop();
             StringBuilder sb = new StringBuilder();
             String tmp;
-            while (!list.isEmpty() && (tmp = list.pop()).startsWith(" ")) {
+            while (!list.isEmpty() && (tmp = list.peek()).startsWith(" ")) {
                 sb.append(tmp.trim()).append("\r\n");
+                list.pop();
             }
             // 放入数据库
             UploadBook uploadBook = new UploadBook();
@@ -569,7 +573,7 @@ public class BookServiceImpl implements BookService {
             uploadBook.setChapterName(contentName);
             uploadBook.setContent(sb.toString());
             uploadBook.setCreateTime(DateUtils.getNow());
-            uploadBook.setCreateTime(DateUtils.getNow());
+            uploadBook.setUpdateTime(DateUtils.getNow());
             uploadBook.setWords(uploadBook.getContent().length());
             if (i <= defaultFreeChapterNum) {
                 uploadBook.setReadAble(0);
@@ -577,6 +581,7 @@ public class BookServiceImpl implements BookService {
                 uploadBook.setReadAble(1);
             }
             i++;
+            chapterNum++;
             books.add(uploadBook);
             // 附加属性
             wordCount += uploadBook.getContent().length();
@@ -601,13 +606,14 @@ public class BookServiceImpl implements BookService {
                 Book.builder()
                         .id(bookId)
                         .bookCategoryId(1)
-                        .name(file.getName())
-                        .realname(file.getName())
+                        .name(file.getOriginalFilename())
+                        .realname(file.getOriginalFilename())
                         .author("作者")
                         .image("封面")
                         .description(content.toString())
                         .referralNum((byte) 5)
                         .appPrice(100)
+                        .chapterNum(chapterNum)
                         .wordCount(wordCount + "")
                         .firstChapterId(firstChapterId)
                         .firstChapterName(firstChapterName)