BookController.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <?php
  2. namespace App\Http\Controllers\Book;
  3. use App\Facade\Site;
  4. use App\Consts\ErrorConst;
  5. use App\Exceptions\ApiException;
  6. use App\Libs\ApiResponse;
  7. use App\Libs\Utils;
  8. use App\Services\Book\BookService;
  9. use App\Transformer\Book\BookTransformer;
  10. use Illuminate\Http\Request;
  11. use Illuminate\Routing\Controller as BaseController;
  12. use Illuminate\Support\Facades\Redis;
  13. use Illuminate\Support\Facades\Validator;
  14. class BookController extends BaseController
  15. {
  16. use ApiResponse;
  17. protected $bookService;
  18. public function __construct(
  19. BookService $bookService
  20. ) {
  21. $this->bookService = $bookService;
  22. }
  23. /**
  24. * 书籍列表
  25. *
  26. * @param Request $request
  27. * @return mixed
  28. */
  29. public function bookList(Request $request) {
  30. $data = $request->all();
  31. $result = $this->bookService->getBookList($data);
  32. return $this->success($result, [new BookTransformer(), 'newBuildBookList']);
  33. }
  34. /**
  35. * 可选书籍
  36. *
  37. * @param Request $request
  38. * @return mixed
  39. */
  40. public function allBooks(Request $request) {
  41. $data = $request->all();
  42. $result = $this->bookService->getAllBooks($data);
  43. return $this->success($result);
  44. }
  45. /**
  46. * 可选版本
  47. *
  48. * @param Request $request
  49. * @return mixed
  50. */
  51. public function bookVersion(Request $request) {
  52. $data = $request->all();
  53. $result = $this->bookService->getBookVersion($data);
  54. return $this->success($result);
  55. }
  56. /**
  57. * 海外书籍列表
  58. *
  59. * @param Request $request
  60. * @return mixed
  61. */
  62. public function overseasBookList(Request $request) {
  63. $data = $request->all();
  64. $result = $this->bookService->overseasBookList($data);
  65. return $this->success($result, [new BookTransformer(), 'newBuildBookList']);
  66. }
  67. // 可选海外书籍
  68. public function overseasBooks(Request $request) {
  69. $data = $request->all();
  70. $result = $this->bookService->overseasBooks($data);
  71. return $this->success($result);
  72. }
  73. /**
  74. * 新增书籍版本
  75. *
  76. * @param Request $request
  77. * @return mixed
  78. */
  79. public function addBookVersion(Request $request) {
  80. $data = $request->all();
  81. $result = $this->bookService->addBookVersion($data);
  82. return $this->success($result);
  83. }
  84. /**
  85. * 修改版本名称
  86. *
  87. * @param Request $request
  88. * @return mixed
  89. */
  90. public function editBookVersion(Request $request) {
  91. $data = $request->all();
  92. $result = $this->bookService->editBookVersion($data);
  93. return $this->success($result);
  94. }
  95. /**
  96. * 章节列表
  97. *
  98. * @param Request $request
  99. * @return mixed
  100. */
  101. public function chapterList(Request $request) {
  102. $data = $request->all();
  103. $result = $this->bookService->getChapterList($data);
  104. return $this->success($result, [new BookTransformer(), 'newBuildChapterList']);
  105. }
  106. /**
  107. * 章节内容
  108. *
  109. * @param Request $request
  110. * @return mixed
  111. */
  112. public function chapterContent(Request $request) {
  113. $data = $request->all();
  114. $result = $this->bookService->getChapterContent($data);
  115. return $this->success($result);
  116. }
  117. /**
  118. * 版本列表
  119. *
  120. * @param Request $request
  121. * @return mixed
  122. */
  123. public function versionList(Request $request) {
  124. $data = $request->all();
  125. $result = $this->bookService->getVersionList($data);
  126. return $this->success($result, [new BookTransformer(), 'newBuildVersionList']);
  127. }
  128. /**
  129. * 合成任务列表
  130. *
  131. * @param Request $request
  132. * @return mixed
  133. */
  134. public function taskList(Request $request) {
  135. $data = $request->all();
  136. $result = $this->bookService->getTaskList($data);
  137. return $this->success($result, [new BookTransformer(), 'newBuildTaskList']);
  138. }
  139. /**
  140. * 合成任务详情
  141. *
  142. * @param Request $request
  143. * @return mixed
  144. */
  145. public function taskDetail(Request $request) {
  146. $data = $request->all();
  147. $result = $this->bookService->getTaskDetail($data);
  148. return $this->success($result);
  149. }
  150. // 音效管理
  151. public function audioEffectList(Request $request) {
  152. $data = $request->all();
  153. $result = $this->bookService->audioEffectList($data);
  154. return $this->success($result, [new BookTransformer(), 'newBuildAudioEffectList']);
  155. }
  156. // 可选音效
  157. public function audioEffects(Request $request) {
  158. $data = $request->all();
  159. $result = $this->bookService->audioEffects($data);
  160. return $this->success($result);
  161. }
  162. // 上传音效
  163. public function uploadAudioEffect(Request $request) {
  164. $data = $request->all();
  165. $file = $request->file('file');
  166. $result = $this->bookService->uploadAudioEffect($data, $file);
  167. return $this->success($result);
  168. }
  169. // 编辑音效
  170. public function editAudioEffect(Request $request) {
  171. $data = $request->all();
  172. $file = $request->file('file');
  173. $result = $this->bookService->editAudioEffect($data, $file);
  174. return $this->success(['success' => $result ? 1 : 0]);
  175. }
  176. // bgm管理
  177. public function bgmList(Request $request) {
  178. $data = $request->all();
  179. $result = $this->bookService->bgmList($data);
  180. return $this->success($result, [new BookTransformer(), 'newBuildBgmList']);
  181. }
  182. // 可选bgm
  183. public function bgms(Request $request) {
  184. $data = $request->all();
  185. $result = $this->bookService->bgms($data);
  186. return $this->success($result);
  187. }
  188. // 上传bgm
  189. public function uploadBgm(Request $request) {
  190. $data = $request->all();
  191. $file = $request->file('file');
  192. $result = $this->bookService->uploadBgm($data, $file);
  193. return $this->success($result);
  194. }
  195. // 上传bgm
  196. public function editBgm(Request $request) {
  197. $data = $request->all();
  198. $file = $request->file('file');
  199. $result = $this->bookService->editBgm($data, $file);
  200. return $this->success(['success' => $result ? 1 : 0]);
  201. }
  202. }