OrderController.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Requests\Admin\OrderUpdate;
  4. use App\Services\OrderService;
  5. use Illuminate\Http\Request;
  6. use App\Http\Controllers\Controller;
  7. use App\Models\Order;
  8. use App\Models\User;
  9. use App\Models\Plan;
  10. class OrderController extends Controller
  11. {
  12. public function fetch(Request $request)
  13. {
  14. $current = $request->input('current') ? $request->input('current') : 1;
  15. $pageSize = $request->input('pageSize') >= 10 ? $request->input('pageSize') : 10;
  16. $orderModel = Order::orderBy('created_at', 'DESC');
  17. if ($request->input('trade_no')) {
  18. $orderModel->where('trade_no', $request->input('trade_no'));
  19. }
  20. if ($request->input('is_commission')) {
  21. $orderModel->where('invite_user_id', '!=', NULL);
  22. $orderModel->where('status', 3);
  23. }
  24. if ($request->input('id')) {
  25. $orderModel->where('id', $request->input('id'));
  26. }
  27. if ($request->input('user_id')) {
  28. $orderModel->where('user_id', $request->input('user_id'));
  29. }
  30. $total = $orderModel->count();
  31. $res = $orderModel->forPage($current, $pageSize)
  32. ->get();
  33. $plan = Plan::get();
  34. for ($i = 0; $i < count($res); $i++) {
  35. for ($k = 0; $k < count($plan); $k++) {
  36. if ($plan[$k]['id'] == $res[$i]['plan_id']) {
  37. $res[$i]['plan_name'] = $plan[$k]['name'];
  38. }
  39. }
  40. }
  41. return response([
  42. 'data' => $res,
  43. 'total' => $total
  44. ]);
  45. }
  46. public function update(OrderUpdate $request)
  47. {
  48. $params = $request->only([
  49. 'status',
  50. 'commission_status'
  51. ]);
  52. $order = Order::where('trade_no', $request->input('trade_no'))
  53. ->first();
  54. if (!$order) {
  55. abort(500, '订单不存在');
  56. }
  57. if (isset($params['status']) && (int)$params['status'] === 2) {
  58. $orderService = new OrderService($order);
  59. if (!$orderService->cancel()) {
  60. abort(500, '更新失败');
  61. }
  62. return response([
  63. 'data' => true
  64. ]);
  65. }
  66. try {
  67. $order->update($params);
  68. } catch (\Exception $e) {
  69. abort(500, '更新失败');
  70. }
  71. return response([
  72. 'data' => true
  73. ]);
  74. }
  75. public function repair(Request $request)
  76. {
  77. if (empty($request->input('trade_no'))) {
  78. abort(500, '参数错误');
  79. }
  80. $order = Order::where('trade_no', $request->input('trade_no'))
  81. ->where('status', 0)
  82. ->first();
  83. if (!$order) {
  84. abort(500, '订单不存在或订单已支付');
  85. }
  86. $order->status = 1;
  87. if (!$order->save()) {
  88. abort(500, '保存失败');
  89. }
  90. return response([
  91. 'data' => true
  92. ]);
  93. }
  94. }