post('page', 1); // 默认第一页 $size = $request->post('size', 15); // 默认每页15条 $status = $request->post('status', 0); // 默认状态为0(全部) $time = $request->post('time', null); // 默认时间不做过滤 $userId = $request->data['id']; // 初始化查询构建器 $query = Withdraw::query(); // 根据状态过滤 if ($status != 0) { $query->where('status', $status); } // 根据时间过滤 if (!is_null($time)) { $todayStart = Carbon::now()->startOfDay(); // 今天的开始时间 (00:00:00) $todayEnd = Carbon::now()->endOfDay(); // 今天的结束时间 (23:59:59) $yesterdayStart = Carbon::now()->subDay()->startOfDay(); // 昨天的开始时间 $sevenDaysAgoStart = Carbon::now()->subDays(7)->startOfDay(); // 七天前的开始时间 switch ($time) { case 1: $query->whereBetween('createtime2', [$todayStart, $todayEnd]); break; case 2: $query->whereBetween('createtime2', [$yesterdayStart, $todayEnd]); break; case 3: $query->whereBetween('createtime2', [$sevenDaysAgoStart, $todayEnd]); break; } } // 添加用户ID过滤条件 $query->where('user_id', $userId); // 查询结果 $withdrawOrders = $query->orderBy('createtime2', 'desc') ->skip(($page - 1) * $size) ->take($size) ->get(); // 手动映射字段 $withdrawOrders = $withdrawOrders->map(function ($item) { // 将 money 字段映射为 amount $item->amount = $item->money; unset($item->money); // 删除原始的 money 字段 return $item; }); // 返回成功响应 return ApiResponseApp::success($withdrawOrders); } /** * @Apidoc\Title("小于1000直接转账,大于1000生成审批") * @Apidoc\Url("api/withdraw/submit") * @Apidoc\Method("POST") */ public function submit(Request $request) { $money_no = $request->post('money'); //用户存了一个 转账信息 这里是用户转账信息的id $bank_id = $request->post('bank_id'); $user_id = $request->data['id']; $user = User::find($user_id); //提现金额 $rate = ExchangeRate::where('type', 'BDT')->get(); $money = $money_no / 100 * $rate[0]['points']; var_dump($money); //大于1000等待管理员审核 if ($money >= 1000) { Withdraw::create([ 'user_id' => $user_id, 'amount' => $money, 'status' => 1, 'createtime2' => date('Y-m-d H:i:s'), 'username' => $user->username, 'status_text' => '申请中', ]); return ApiResponseApp::success(null, '等待管理员审核'); } //用户积分减少$money // UserRewardDao::base($user_id, 1, - ($money_no + 300), '提现'); $userbank = Userbank::where('id', $bank_id)->first(); var_dump($money); var_dump($userbank->bank_username); var_dump($userbank->account); var_dump($userbank->bank_name); $res = PaymentNew::pushMoney($money, $userbank->bank_username, $userbank->account, $userbank->bank_name); // var_dump($res); // //逻辑错误需要修改 // if ($res['Success'] == 200) { // Withdraw::create([ // 'user_id' => $user_id, // 'amount' => $money, // 'status' => 2, // 'createtime2' => date('Y-m-d H:i:s'), // 'username' => $user->username, // 'status_text' => '已到账', // ]); // return ApiResponseApp::success(null, '转账成功'); // } else { // return ApiResponseApp::error(null, '转账失败'); // } // return ApiResponseApp::success(null, '转账成功'); } /** * @Apidoc\Title("管理员同意转账") * @Apidoc\Url("api/withdraw/pushMoney") * @Apidoc\Method("POST") */ public function pushMoney(Request $request) { //金额 $amount = $request->post('amount'); //收款户名 $bank_username = $request->post('bank_username'); //收款帐号 $account = $request->post('account'); //收款银行名称 $bank_name = $request->post('bank_name'); //转账订单id $id = $request->post('id'); //管理员审批结果 $type = $request->post('type'); if ($type == 1) { $res = PaymentNew::pushMoney($amount, $bank_username, $account, $bank_name); var_dump($res); if ($res['Success'] == 200) { $Withdraw = Withdraw::where('id', $id)->first(); $Withdraw->status = 2; $Withdraw->status_text = '已到账'; $Withdraw->save(); return ApiResponseApp::success(null, '转账成功'); } else { return ApiResponseApp::error(null, '转账失败'); } } else { $Withdraw = Withdraw::where('id', $id)->first(); $Withdraw->status = 3; $Withdraw->status_text = '已驳回'; $Withdraw->save(); $rate = ExchangeRate::where('type', 'BDT')->get(); //计算积分 $money = $amount * 100 / $rate[0]['points'] + 300; //用户id $user_id = $request->data['id']; //用户积分增加$money UserRewardDao::base($user_id, 1, $money, '提现失败返还'); return ApiResponseApp::error(null, '操作成功'); } } /** * @Apidoc\Title("请求回调") * @Apidoc\Url("api/withdraw/callback") * @Apidoc\Method("GET") */ public function callback(Request $request) { var_dump(22222222222222222222); var_dump($request->all()); // Log::info('Withdraw callback received:', $request->all()); } }