InvoiceController.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace App\Http\Controllers\User;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\Order;
  5. use Illuminate\Http\JsonResponse;
  6. use Illuminate\Http\Request;
  7. use Response;
  8. class InvoiceController extends Controller
  9. {
  10. public function index(Request $request): \Illuminate\Http\Response
  11. { // 订单列表
  12. return Response::view('user.invoices', [
  13. 'orderList' => auth()->user()->orders()->with(['goods', 'payment'])->orderByDesc('id')->paginate(10)->appends($request->except('page')),
  14. 'prepaidPlan' => Order::userPrepay()->exists(),
  15. ]);
  16. }
  17. public function show(string $sn): \Illuminate\Http\Response
  18. { // 订单明细
  19. return Response::view('user.invoiceDetail', ['order' => Order::uid()->whereSn($sn)->with(['goods', 'coupon'])->firstOrFail()]);
  20. }
  21. public function activate(): JsonResponse
  22. { // 激活套餐
  23. $activePlan = Order::userActivePlan()->first();
  24. if ($activePlan) {
  25. if ($activePlan->expired()) { // 关闭先前套餐后,新套餐自动运行
  26. if (Order::userActivePlan()->exists()) {
  27. return Response::json(['status' => 'success', 'message' => trans('common.active_item', ['attribute' => trans('common.success')])]);
  28. }
  29. return Response::json(['status' => 'success', 'message' => trans('common.close')]);
  30. }
  31. } else {
  32. $prepaidPlan = Order::userPrepay()->first();
  33. if ($prepaidPlan) { // 关闭先前套餐后,新套餐自动运行
  34. if ($prepaidPlan->complete()) {
  35. return Response::json(['status' => 'success', 'message' => trans('common.active_item', ['attribute' => trans('common.success')])]);
  36. }
  37. return Response::json(['status' => 'success', 'message' => trans('common.close')]);
  38. }
  39. }
  40. return Response::json(['status' => 'fail', 'message' => trans('common.failed_item', ['attribute' => trans('common.close')])]);
  41. }
  42. }