input('cate', '');//获取订单类别 $user = $request->user(); switch ($cate) { case 'pending':// $query = $user->dealerEarnings()->onlyPending()->whereNotNull('settle_at'); break; case 'paid': $query = $user->dealerPayEarnings()->onlyPaid()->whereNotNull('settle_at'); break; default://全部 $query = DealerEarning::where(function ($q) use ($user) { return $q->where('user_id', $user->id)->orWhere('payer_id', $user->id); }); break; } $earnings = $query->latest('id')->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50)); return DealerEarningSimpleResource::collection($earnings); } /** * 详情 * * @param [type] $id * @param Request $request * @return void */ public function show($id, Request $request) { $earning = $request->user()->dealerEarnings()->findOrFail($id); return DealerEarningResource::make($earning); } /** * 确认打款 * * @param [type] $id * @param Request $request * @return void */ public function payEarning($id, Request $request) { $earning = DealerEarning::findOrFail($id); if (!$earning->isPayer($request->user()->id)) { throw new BizException('无法操作该订单'); } $input = $request->validate([ 'pay_image' => ['bail', 'required', 'string'], ]); if ($earning->isPending()) { $earning->update([ 'status' => DealerEarningStatus::Paid, 'pay_info' => $earning->getPayInfo(), 'pay_image'=> $input['pay_image'], 'pay_at' => now(), ]); } return response()->noContent(); } /** * 确认收款 * * @param [type] $id * @param Request $request */ public function confirmEarning($id, Request $request) { $earning = DealerEarning::findOrFail($id); if (!$earning->isUser($request->user()->id)) { throw new BizException('无法操作该订单'); } if ($earning->isPaid()) { $earning->update([ 'status' => DealerEarningStatus::Completed, ]); } return response()->noContent(); } }