From 48d8dd338a3394a760be8ca9eca0efc07e111085 Mon Sep 17 00:00:00 2001 From: lanzu_qsy <334039090@qq.com> Date: Tue, 11 Aug 2020 15:50:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=B8=82=E5=9C=BA=E7=BB=8F?= =?UTF-8?q?=E7=90=86=E6=8F=90=E7=8E=B0=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/LanzuMmWithdrawController.php | 74 ++++++++++++++----- .../Controllers/LanzuMpInfoController.php | 27 +------ app/Models/ImsCjdcUser.php | 15 ++++ config/wechat.php | 25 ++++--- 4 files changed, 85 insertions(+), 56 deletions(-) create mode 100644 app/Models/ImsCjdcUser.php diff --git a/app/Admin/Controllers/LanzuMmWithdrawController.php b/app/Admin/Controllers/LanzuMmWithdrawController.php index 36accda..90c9628 100644 --- a/app/Admin/Controllers/LanzuMmWithdrawController.php +++ b/app/Admin/Controllers/LanzuMmWithdrawController.php @@ -3,6 +3,7 @@ namespace App\Admin\Controllers; use App\Admin\Repositories\LanzuMmWithdraw; +use App\Models\ImsCjdcUser; use App\Models\LanzuMmWithdraw as MmWithdraw; use App\Models\LanzuMmInfo; @@ -14,6 +15,7 @@ use Dcat\Admin\Grid; use Dcat\Admin\Show; use Dcat\Admin\Controllers\AdminController; use Dcat\Admin\Admin; +use EasyWeChat\Factory; class LanzuMmWithdrawController extends AdminController { @@ -23,8 +25,8 @@ class LanzuMmWithdrawController extends AdminController */ protected function grid() { - $user = Admin::user(); - $buider = new LanzuMmWithdraw(); + $user = Admin::user(); + $buider = new LanzuMmWithdraw(); //服务商只能看到自己的市场经理提现 $mp_info = mpInfo::where('admin_user_id', $user->id)->first(); if ($mp_info) { @@ -39,12 +41,12 @@ class LanzuMmWithdrawController extends AdminController //市场经理只能看到自己的提现 $mm_id = LanzuMmInfo::where('admin_user_id', $user->id)->pluck('id')->first(); - if ($mm_id){ - $buider = MmWithdraw::where('mm_id',$mm_id); + if ($mm_id) { + $buider = MmWithdraw::where('mm_id', $mm_id); } - return Grid::make($buider, function (Grid $grid) use ($mp_info,$mm_id) { + return Grid::make($buider, function (Grid $grid) use ($mp_info, $mm_id) { $grid->actions(function (Grid\Displayers\Actions $actions) use ($grid) { if ($actions->row->status != 0) { @@ -72,7 +74,7 @@ class LanzuMmWithdrawController extends AdminController $filter->equal('id'); }); - if ($mm_id){ + if ($mm_id) { //如果是市场经理登陆,禁用编辑操作 $grid->disableEditButton(); $grid->disableDeleteButton(); @@ -106,15 +108,20 @@ class LanzuMmWithdrawController extends AdminController */ protected function form() { - - $current_user = Admin::user(); - $mmId = $this->getMmId(Admin::user()->id); - return Form::make(new LanzuMmWithdraw(), function (Form $form) use ($mmId,$current_user) { + $current_user = Admin::user(); + $mmId = $this->getMmId(Admin::user()->id); + return Form::make(new LanzuMmWithdraw(), function (Form $form) use ($mmId, $current_user) { $form->display('id'); - $form->hidden('mm_id')->value($mmId); - $form->display('可提现金额')->value($this->getBalance(Admin::user()->id)); - $form->display('提现人')->value(Admin::user()->name); + if ($mmId){//市场经理登陆时 + $form->hidden('mm_id')->value($mmId); + $form->display('可提现金额')->value($this->getBalance($current_user->id)); + $form->display('提现人')->value(LanzuMmInfo::find($mmId)->name); + }else{//非市场经理登陆时 + $form->display('提现人')->value(LanzuMmInfo::find($form->model()->mm_id)->name); + } + if ($form->isEditing()) {//判断是否是编辑请求,如果是编辑请求,判断状态是否被编辑过. + $mmId = $form->model()->mm_id; $form->display('money'); if ($form->model()->status != 0) {//如果提现状态已变更过,则不允许再编辑状态 $form->radio('status', '状态') @@ -126,12 +133,21 @@ class LanzuMmWithdrawController extends AdminController } $form->saved(function (Form $form) use ($mmId) { + $mm = LanzuMmInfo::find($mmId); if ($form->status == -1) { //如果提现申请被拒绝,返回提现金额 - $mm = LanzuMmInfo::find($mmId); MpBalance::returnBalance($mm->user_id, 0, $form->model()->money); } elseif ($form->status == 1) { //调用微信企业付 + $data = []; + $user = ImsCjdcUser::find($mm->user_id); + $data['openid'] = $user->openid; + $data['amount'] = $form->model()->money*100; + $data['partner_trade_no'] = $form->model()->id; + $data['re_user_name'] = $mm->name; + $data['desc'] = $mm->name; + $res = $this->transfers($data); + dd($res); } }); } else { @@ -144,9 +160,9 @@ class LanzuMmWithdrawController extends AdminController } } }); - if ($current_user->isRole('lanzu_mm')){ - $form->text('money')->required(); - }else{ + if ($current_user->isRole('lanzu_mm')) { + $form->number('money')->required()->min(env('MIN_MONEY'))->max(env('MAX_MONEY')); + } else { $form->text('money')->required()->disable(); } @@ -197,9 +213,31 @@ class LanzuMmWithdrawController extends AdminController } } + + /** + * 市场经理提现 + * @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException + * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException + * @throws \GuzzleHttp\Exception\GuzzleException + */ + public function transfers($data = []) + { + $app = Factory::payment(config('wechat.payment.default')); + $res = $app->transfer->toBalance([ + 'partner_trade_no' => $data['partner_trade_no'], // 商户订单号,需保持唯一性(只能是字母或者数字,不能包含有符号) + 'openid' => $data['openid'], + 'check_name' => 'NO_CHECK', // NO_CHECK:不校验真实姓名, FORCE_CHECK:强校验真实姓名 + 're_user_name' => $data['re_user_name'], // 如果 check_name 设置为FORCE_CHECK,则必填用户真实姓名 + 'amount' => $data['amount'], // 企业付款金额,单位为分 + 'desc' => $data['desc'], // 企业付款操作说明信息。必填 + ]); + return $res; + } + + public function mmInfoList() { - echo 11; + echo 11; } } diff --git a/app/Admin/Controllers/LanzuMpInfoController.php b/app/Admin/Controllers/LanzuMpInfoController.php index 522b8c0..f46d5da 100644 --- a/app/Admin/Controllers/LanzuMpInfoController.php +++ b/app/Admin/Controllers/LanzuMpInfoController.php @@ -67,32 +67,7 @@ class LanzuMpInfoController extends AdminController }); } - public function test() - { - $config = [ - // 必要配置 - 'app_id' => 'wxf66ed55b54d7f942', - 'mch_id' => '1536995001', - 'key' => 'lazywisdom8888888888888888888888', // API 密钥 - - // 如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书) - 'cert_path' => './certs/apiclient_cert.pem', // XXX: 绝对路径!!!! - 'key_path' => './certs/apiclient_key.pem', // XXX: 绝对路径!!!! - - 'notify_url' => '默认的订单回调地址', // 你也可以在下单时单独设置来想覆盖它 - ]; - - $app = Factory::payment($config); - $res = $app->transfer->toBalance([ - 'partner_trade_no' => '1233455', // 商户订单号,需保持唯一性(只能是字母或者数字,不能包含有符号) - 'openid' => 'ojbLs4otqY74RjlVHLlywoaLS5t8', - 'check_name' => 'NO_CHECK', // NO_CHECK:不校验真实姓名, FORCE_CHECK:强校验真实姓名 - 're_user_name' => '王小帅', // 如果 check_name 设置为FORCE_CHECK,则必填用户真实姓名 - 'amount' => 30, // 企业付款金额,单位为分 - 'desc' => '测试', // 企业付款操作说明信息。必填 - ]); - dd($res); - } + /** diff --git a/app/Models/ImsCjdcUser.php b/app/Models/ImsCjdcUser.php new file mode 100644 index 0000000..8ff16f8 --- /dev/null +++ b/app/Models/ImsCjdcUser.php @@ -0,0 +1,15 @@ + [ - // 'default' => [ - // 'sandbox' => env('WECHAT_PAYMENT_SANDBOX', false), - // 'app_id' => env('WECHAT_PAYMENT_APPID', ''), - // 'mch_id' => env('WECHAT_PAYMENT_MCH_ID', 'your-mch-id'), - // 'key' => env('WECHAT_PAYMENT_KEY', 'key-for-signature'), - // 'cert_path' => env('WECHAT_PAYMENT_CERT_PATH', 'path/to/cert/apiclient_cert.pem'), // XXX: 绝对路径!!!! - // 'key_path' => env('WECHAT_PAYMENT_KEY_PATH', 'path/to/cert/apiclient_key.pem'), // XXX: 绝对路径!!!! - // 'notify_url' => 'http://example.com/payments/wechat-notify', // 默认支付结果通知地址 - // ], - // // ... - // ], + 'payment' => [ + 'default' => [ + 'sandbox' => env('WECHAT_PAYMENT_SANDBOX', false), + 'app_id' => env('WECHAT_PAYMENT_APPID', ''), + 'mch_id' => env('WECHAT_PAYMENT_MCH_ID', ''), + 'key' => env('WECHAT_PAYMENT_KEY', ''), + 'cert_path' => env('WECHAT_PAYMENT_CERT_PATH', ''), // XXX: 绝对路径!!!! + 'key_path' => env('WECHAT_PAYMENT_KEY_PATH', ''), // XXX: 绝对路径!!!! + 'notify_url' => '', // 默认支付结果通知地址 + ], + + // ... + ], /* * 企业微信