CategoryService.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. /**
  3. * @Name
  4. * @Description
  5. * @Author 刘学玺
  6. * @Date 2024/8/27 10:52
  7. */
  8. namespace App\Http\Services\Backend\Server\Service;
  9. use App\Enums\Common\Status;
  10. use App\Http\Services\Service;
  11. use App\Models\Service\Category;
  12. use App\Models\System\Dept;
  13. use App\Models\System\DictData;
  14. use App\Models\System\DictType;
  15. use Symfony\Component\HttpFoundation\Response;
  16. class CategoryService extends Service
  17. {
  18. protected array $simpleColumn = ['id', 'title', 'cover'];
  19. protected array $selectColumn = ['sort', 'status'];
  20. protected array $appendColumn = ['created_at as createTime'];
  21. public function getCategoryList($params)
  22. {
  23. $category = Category::query();
  24. isset($params['title']) && filled($params['title']) && $category->where('title', "%{$params['title']}%");
  25. isset($params['status']) && filled($params['status']) && $category->where('status', $params['status']);
  26. $categoryPage = $category->paginate($params['pageSize'], [...$this->simpleColumn, ...$this->selectColumn, ...$this->appendColumn], 'page', $params['pageNo']);
  27. return ['list' => $categoryPage->items(), 'total' => $categoryPage->total()];
  28. }
  29. public function createCategory(array $data)
  30. {
  31. $category = self::toModel($data, Category::class);
  32. return $category->create($category->getAttributes())->id;
  33. }
  34. public function getCategory(int $id)
  35. {
  36. return Category::query()->select([...$this->simpleColumn, ...$this->selectColumn])->find($id);
  37. }
  38. public function updateCategory(array $data, int $id): void
  39. {
  40. $category = self::toModel($data, Category::class);
  41. $category->where('id', $id)->update($category->getAttributes());
  42. }
  43. public function deleteCategory(int $id)
  44. {
  45. $category = self::toModel(['id' => $id], Category::class);
  46. return $category->delete();
  47. }
  48. public function getCategorySimpleList()
  49. {
  50. return Category::query()->where('status', Status::ENABLE)->select($this->simpleColumn)->get();
  51. }
  52. }