Browse Source

完善市场经理提现流程

master
lanzu_qsy 6 years ago
parent
commit
48d8dd338a
  1. 74
      app/Admin/Controllers/LanzuMmWithdrawController.php
  2. 27
      app/Admin/Controllers/LanzuMpInfoController.php
  3. 15
      app/Models/ImsCjdcUser.php
  4. 25
      config/wechat.php

74
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;
}
}

27
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);
}
/**

15
app/Models/ImsCjdcUser.php

@ -0,0 +1,15 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class ImsCjdcUser extends Model
{
protected $table = 'ims_cjdc_user';
protected $dateFormat = 'U';
}

25
config/wechat.php

@ -104,18 +104,19 @@ return [
/*
* 微信支付
*/
// 'payment' => [
// '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' => '', // 默认支付结果通知地址
],
// ...
],
/*
* 企业微信

Loading…
Cancel
Save