ArtStyleController.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <?php
  2. namespace App\Http\Controllers\Manage;
  3. use App\Libs\ApiResponse;
  4. use App\Libs\Utils;
  5. use App\Services\Manage\ArtStyleService;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Routing\Controller as BaseController;
  8. use Illuminate\Support\Facades\Validator;
  9. class ArtStyleController extends BaseController
  10. {
  11. use ApiResponse;
  12. protected $artStyleService;
  13. public function __construct(ArtStyleService $artStyleService)
  14. {
  15. $this->artStyleService = $artStyleService;
  16. }
  17. /**
  18. * 画风管理列表(分页)
  19. *
  20. * @param Request $request
  21. * @return mixed
  22. */
  23. public function adminList(Request $request)
  24. {
  25. $data = $request->all();
  26. $validator = Validator::make($data, [
  27. 'page' => 'nullable|integer|min:1',
  28. 'per_page' => 'nullable|integer|min:1|max:100',
  29. 'is_enabled' => 'nullable|integer|in:0,1',
  30. 'keyword' => 'nullable|string|max:100',
  31. ], [
  32. 'page.integer' => 'page必须为整数',
  33. 'page.min' => 'page不能小于1',
  34. 'per_page.integer' => 'per_page必须为整数',
  35. 'per_page.min' => 'per_page不能小于1',
  36. 'per_page.max' => 'per_page不能超过100',
  37. 'is_enabled.in' => 'is_enabled仅支持0或1',
  38. 'keyword.max' => 'keyword不能超过100个字符',
  39. ]);
  40. if ($validator->fails()) {
  41. Utils::throwError('1002:' . $validator->errors()->first());
  42. }
  43. $result = $this->artStyleService->getList($data);
  44. $list = collect($result->items())->map(function ($item) {
  45. // $item->aliases = is_string($item->aliases) ? json_decode($item->aliases, true) : [];
  46. return $item;
  47. });
  48. return $this->success([
  49. 'meta' => getMeta($result),
  50. 'list' => $list,
  51. ]);
  52. }
  53. /**
  54. * 新增画风
  55. *
  56. * @param Request $request
  57. * @return mixed
  58. */
  59. public function add(Request $request)
  60. {
  61. $data = $request->all();
  62. $validator = Validator::make($data, [
  63. 'art_style' => 'required|string|max:100',
  64. 'pic_url' => 'required|string|max:500',
  65. 'aliases' => 'nullable',
  66. 'prompt' => 'required|string',
  67. 'character_prefix' => 'nullable|string',
  68. 'scene_prefix' => 'nullable|string',
  69. 'is_enabled' => 'nullable|integer|in:0,1',
  70. ], [
  71. 'art_style.required' => '请传入画风名称',
  72. 'art_style.max' => '画风名称不能超过100个字符',
  73. 'pic_url.required' => '请传入画风图片URL',
  74. 'pic_url.max' => '画风图片URL不能超过500个字符',
  75. 'prompt.required' => '请传入画风提示词prompt',
  76. 'is_enabled.in' => 'is_enabled仅支持0或1',
  77. ]);
  78. if ($validator->fails()) {
  79. Utils::throwError('1002:' . $validator->errors()->first());
  80. }
  81. $result = $this->artStyleService->addArtStyle($data);
  82. return $this->success($result);
  83. }
  84. /**
  85. * 修改画风
  86. *
  87. * @param Request $request
  88. * @return mixed
  89. */
  90. public function edit(Request $request)
  91. {
  92. $data = $request->all();
  93. $validator = Validator::make($data, [
  94. 'id' => 'required|integer|min:1',
  95. 'pic_url' => 'required|string|max:500',
  96. 'art_style' => 'nullable|string|max:100',
  97. 'aliases' => 'nullable',
  98. 'prompt' => 'required|string',
  99. 'character_prefix' => 'nullable|string',
  100. 'scene_prefix' => 'nullable|string',
  101. 'is_enabled' => 'nullable|integer|in:0,1',
  102. ], [
  103. 'id.required' => '请传入画风ID',
  104. 'id.integer' => '画风ID必须为整数',
  105. 'id.min' => '画风ID不能小于1',
  106. 'pic_url.required' => '请传入画风图片URL',
  107. 'pic_url.max' => '画风图片URL不能超过500个字符',
  108. 'art_style.max' => '画风名称不能超过100个字符',
  109. 'prompt.required' => '请传入画风提示词prompt',
  110. 'is_enabled.in' => 'is_enabled仅支持0或1',
  111. ]);
  112. if ($validator->fails()) {
  113. Utils::throwError('1002:' . $validator->errors()->first());
  114. }
  115. $result = $this->artStyleService->editArtStyle($data);
  116. return $this->success($result);
  117. }
  118. /**
  119. * 删除画风(软删除)
  120. *
  121. * @param Request $request
  122. * @return mixed
  123. */
  124. public function delete(Request $request)
  125. {
  126. $data = $request->all();
  127. $validator = Validator::make($data, [
  128. 'id' => 'required|integer|min:1',
  129. ], [
  130. 'id.required' => '请传入画风ID',
  131. 'id.integer' => '画风ID必须为整数',
  132. 'id.min' => '画风ID不能小于1',
  133. ]);
  134. if ($validator->fails()) {
  135. Utils::throwError('1002:' . $validator->errors()->first());
  136. }
  137. $result = $this->artStyleService->deleteArtStyle($data);
  138. return $this->success(['success' => $result ? 1 : 0]);
  139. }
  140. }