diff --git a/app/Utils/API/Payment.php b/app/Utils/API/Payment.php new file mode 100644 index 0000000..aa2c264 --- /dev/null +++ b/app/Utils/API/Payment.php @@ -0,0 +1,45 @@ + $money, + "CurrencyId" => 11, + "IsTest" => false, + "PayeeAccountName" => $payeeAccountName, + "PayeeAccountNumber" => $payeeAccountNumber, + "PayeeBankName" => $payeeBankName, + "PayeeIFSCCode" => "abc123", + "PaymentChannelId" => 34, + "ShopInformUrl" => "https://www.google.com", + "ShopOrderId" => "10", + "ShopRemark" => "", // 留空时可不给此参数 + "ShopUserLongId" => "776ae472-d4fc-435c-9639-be5763138d95" + ]; + + // 发送 POST 请求 + $response = $client->post('https://example.com/api/createPaymentOrder', [ + 'json' => $data, // 以 JSON 格式发送数据 + ]); + + // 获取响应体内容 + $body = $response->getBody(); + $responseData = json_decode($body, true); // 如果返回的是 JSON 格式,解析它 + return $responseData; + } +} diff --git a/app/controller/api/PayController.php b/app/controller/api/PayController.php new file mode 100644 index 0000000..59e17ab --- /dev/null +++ b/app/controller/api/PayController.php @@ -0,0 +1,31 @@ +data['id']; + $db = Userbank::where('user_id',$user_id); + $db = $db->get(); + return ApiResponseApp::success($db); + } + + /** + * @Apidoc\Title("添加账户信息") + * @Apidoc\Url("api/userbank/add") + * @Apidoc\Method("POST") + */ + public function add(Request $request) + { + $type = $request->post('type'); + $account = $request->post('account'); + $bank_name = $request->post('bank_name'); + $bank_username = $request->post('bank_username'); + $remark = $request->post('remark'); + $password = $request->post('password'); + $user_id=$request->data['id']; + $user=User::find($user_id); + if (!password_verify($password, $user->password)) { + return ApiResponseApp::error('登录密码错误'); + } + $userbank = Userbank::where('user_id',$user_id)->first(); + if ($userbank) { + $userbank->update([ + 'account' => $account, + 'type' => $type, + 'bank_name' => $bank_name, + 'bank_username' => $bank_username, + 'remark' => $remark, + ]); + }else{ + var_dump(22); + + Userbank::create([ + 'user_id' => $user_id, + 'account' => $account, + 'type' => $type, + 'bank_name' => $bank_name, + 'bank_username' => $bank_username, + 'remark' => $remark, + ]); + } + return ApiResponseApp::success('操作成功'); + } + +} diff --git a/app/controller/api/WithdrawController.php b/app/controller/api/WithdrawController.php new file mode 100644 index 0000000..26f30ae --- /dev/null +++ b/app/controller/api/WithdrawController.php @@ -0,0 +1,170 @@ +post('page'); + $size = $request->post('size'); + $status = $request->post('status'); + $time = $request->post('time'); + + $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, $todayStart]); + break; + case 3: + $query->whereBetween('createtime2', [$sevenDaysAgoStart, $todayEnd]); + break; + } + } + + // 添加用户ID过滤条件 + $query->where('user_id', $userId); + $withdrawOrders = $query->orderBy('createtime2', 'desc')->get(); + 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'); + //不知道啥用 + $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']; + //用户积分减少$money + UserRewardDao::base($user_id, 1, -$money_no, '提现'); + //大于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,'等待管理员审核'); + } + $userbank = Userbank::where('user_id',$user_id)->first(); + $res = Payment::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 = Payment::pushMoney($amount,$bank_username,$account,$bank_name); + var_dump($res); + if ($res['Success'] == 200) { + $userbank = Userbank::where('id',$id)->first(); + $userbank->status = 2; + $userbank->status_text = '已到账'; + $userbank->save(); + return ApiResponseApp::success(null,'转账成功'); + }else{ + return ApiResponseApp::error(null,'转账失败'); + } + }else{ + $userbank = Userbank::where('id',$id)->first(); + $userbank->status = 3; + $userbank->status_text = '已驳回'; + $userbank->save(); + $rate = ExchangeRate::where('type','BDT')->get(); + //计算积分 + $money = $amount*100/$rate[0]['points']; + //用户id + $user_id=$request->data['id']; + //用户积分增加$money + UserRewardDao::base($user_id, 1, $money, '提现失败返还'); + return ApiResponseApp::error(null,'操作成功'); + } + + } +} diff --git a/app/controller/api/v1/WithdrawController.php b/app/controller/api/v1/WithdrawController.php index 57738fa..9440f01 100644 --- a/app/controller/api/v1/WithdrawController.php +++ b/app/controller/api/v1/WithdrawController.php @@ -32,24 +32,4 @@ class WithdrawController } return ApiResponse::success (200, $db ); } - - // /** - // * @Apidoc\Title("根据username找子级") - // * @Apidoc\Url("/api/v1/Invite/getSonId") - // * @Apidoc\Method("POST") - // * @Apidoc\Query("id", type="string",require=true, desc="账户id",default="1") - // */ - // public function getSonId(Request $request) - // { - // $data = $request->post(); - // $db = Invite::where('username', $data['id'])->get(); - - // // 如果查询结果为空,返回错误信息 - // if ($db->isEmpty()) { - // return ApiResponse::error(402, '操作失败'); - // } - - // // 成功时返回查询结果 - // return ApiResponse::success(200, $db); - // } } diff --git a/app/model/Pay.php b/app/model/Pay.php new file mode 100644 index 0000000..c9c0d98 --- /dev/null +++ b/app/model/Pay.php @@ -0,0 +1,25 @@ +=7.2" }, - "platform-dev": [], + "platform-dev": {}, "plugin-api-version": "2.6.0" }