ProductController.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Models\Product;
  4. use App\Http\Requests\ProductSaveRequest;
  5. use Illuminate\Http\Request;
  6. use App\Http\Controllers\Controller;
  7. /**
  8. * 引擎力产品
  9. * Class ProductController
  10. * @package App\Http\Controllers\Admin
  11. */
  12. class ProductController extends Controller
  13. {
  14. //产品列表
  15. public function index(Request $request)
  16. {
  17. if (!$request->ajax()) {
  18. return view('admin/product/index');
  19. }
  20. $records = Product::query()->orderByDesc('id')
  21. ->paginate($request->input('pageSize') ?? TABLE_PAGE_SIZE);
  22. $items = $records->items();
  23. $statusMap = Product::STATUS_MAP;
  24. array_walk($items, function ($item) use ($statusMap) {
  25. $item->status_title = $statusMap[$item->status] ?? '';
  26. });
  27. return response()->json([
  28. 'rows' => $items,
  29. 'total' => $records->total()
  30. ]);
  31. }
  32. //切换状态
  33. public function toggleStatus(Request $request)
  34. {
  35. $ids = $request->input('ids');
  36. $toggle = $request->input('toggle');
  37. Product::query()->whereIn('id', $ids)->update(['status' => $toggle]);
  38. return response()->json(['message' => '操作成功']);
  39. }
  40. public function save(ProductSaveRequest $request, $id)
  41. {
  42. if (!$request->ajax()) {
  43. if ($id > 0) {
  44. $record = Product::query()->find($id);
  45. }
  46. return view('admin/product/save', [
  47. 'data' => $record ?? null
  48. ]);
  49. }
  50. $validated = $request->validated();
  51. if ($id > 0) {
  52. $validated['status'] = 1;
  53. }
  54. Product::query()->updateOrCreate(['id' => $id], $validated);
  55. return response()->json(['message' => '操作成功']);
  56. }
  57. public function batchDelete(Request $request)
  58. {
  59. $ids = $request->input('ids');
  60. Product::query()->whereIn('id', $ids)->delete();
  61. return response()->json(['message' => '操作成功']);
  62. }
  63. }