diff --git a/app/Admin/Common/Auth.php b/app/Admin/Common/Auth.php index a88fad7..2d8e97d 100644 --- a/app/Admin/Common/Auth.php +++ b/app/Admin/Common/Auth.php @@ -1,4 +1,5 @@ save(); //>>4.添加到admin roles中 - $lanzu_role = AdminRoles::where('slug', $roles)->first(); + $lanzu_role = AdminRoles::where('slug', $roles)->first(); $aru = new AdminRoleUsers(); $aru->role_id = $lanzu_role->id; $aru->user_id = $adu->id; $aru->save(); //>>5.生成可提现金额信息 - LanzuUserBalance::create($cid,3); + LanzuUserBalance::create($cid, 3); } } diff --git a/app/Admin/Common/WxPay.php b/app/Admin/Common/WxPay.php new file mode 100644 index 0000000..ae1a395 --- /dev/null +++ b/app/Admin/Common/WxPay.php @@ -0,0 +1,45 @@ +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 static function pay($model,$form) + { + $data = []; + $user = ImsCjdcUser::find($model->user_id); + $data['openid'] = $user->openid; + $data['amount'] = $form->model()->money * 100; + $data['partner_trade_no'] = $form->model()->id; + $data['re_user_name'] = $model->name; + $data['desc'] = $model->name; + return self::transfers($data); + } +} diff --git a/app/Admin/Controllers/LanzuCsInfoController.php b/app/Admin/Controllers/LanzuCsInfoController.php index 65aedd5..3de27c7 100644 --- a/app/Admin/Controllers/LanzuCsInfoController.php +++ b/app/Admin/Controllers/LanzuCsInfoController.php @@ -15,6 +15,7 @@ use Dcat\Admin\Grid; use Dcat\Admin\Show; use Dcat\Admin\Controllers\AdminController; use \App\Models\LanzuCsInfo as modelCsInfo; + class LanzuCsInfoController extends AdminController { /** @@ -26,7 +27,7 @@ class LanzuCsInfoController extends AdminController { return Grid::make(new LanzuCsInfo('userBalance'), function (Grid $grid) { $user = Admin::user(); - if ($user->isRole('lanzu_cs')){//如何是社区站点角色登陆,则只能看到自己的信息 + if ($user->isRole('lanzu_cs')) {//如何是社区站点角色登陆,则只能看到自己的信息 $grid->model()->where('admin_user_id', $user->id); $grid->disableDeleteButton(); $grid->disableEditButton(); @@ -34,15 +35,15 @@ class LanzuCsInfoController extends AdminController $grid->id->sortable(); $grid->name; $grid->phone; - $grid->column('userBalance.balance','可提现金额'); - $grid->column('qrcode_path','二维码')->image('',50,50); - $grid->column('market_id','所属市场')->display(function (){ + $grid->column('userBalance.balance', '可提现金额'); + $grid->column('qrcode_path', '二维码')->image('', 50, 50); + $grid->column('market_id', '所属市场')->display(function () { return ImsCjdcMarket::find($this->market_id)->name; }); $grid->status('状态')->using(['禁用', '启用']); $grid->address; - $grid->created_at->display(function ($time){ - return date('Y-m-d H:i',$time); + $grid->created_at->display(function ($time) { + return date('Y-m-d H:i', $time); }); $grid->disableViewButton(); $grid->filter(function (Grid\Filter $filter) { @@ -81,42 +82,42 @@ class LanzuCsInfoController extends AdminController { return Form::make(new LanzuCsInfo(), function (Form $form) { $form->display('id'); - $form->text('name','名称')->required(); - $form->text('user_id','用户ID')->required(); + $form->text('name', '名称')->required(); + $form->text('user_id', '用户ID')->required(); $form->mobile('phone')->required(); - $form->select('market_id','所属市场')->options(ImsCjdcMarket::getMarket())->required(); - $form->text('address','社区地址')->required(); + $form->select('market_id', '所属市场')->options(ImsCjdcMarket::getMarket())->required(); + $form->text('address', '社区地址')->required(); $form->radio('status', '状态')->options(['禁用', '启用'])->default(1); - $form->saved(function (Form $form,$cid){ + $form->saved(function (Form $form, $cid) { $model = new modelCsInfo(); if ($form->isCreating()) { //>>1.添加登录帐号 - $res = Auth::addAdminUser($form,$model,$cid,'lanzu_cs'); - if ($res==-1){ + $res = Auth::addAdminUser($form, $model, $cid, 'lanzu_cs'); + if ($res == -1) { return $form->error('该手机号作为登陆帐号已存在!'); - }elseif ($res==-2){ + } elseif ($res == -2) { return $form->error('添加失败!'); } //>>2.生成小程序二维码 - $cs = $model->find($cid); - $aid = $cs->admin_user_id; - $images = new Images(); - $param= "p=index&sid={$aid}"; - $path= 'zh_cjdianc/pages/Liar/loginindex'; - $qrcode = $images->createQrCode($param,$path); - $fileName = 'public/upload/' .'qrcode'.'/'. date('Y') . '/' . date('m-d') . '/' . rand(100000000000000,999999999999999).'.png'; - $result = $images->uploadOss($qrcode,$fileName); - if ($result==true){ + $cs = $model->find($cid); + $aid = $cs->admin_user_id; + $images = new Images(); + $param = "p=index&sid={$aid}"; + $path = 'zh_cjdianc/pages/Liar/loginindex'; + $qrcode = $images->createQrCode($param, $path); + $fileName = 'public/upload/' . 'qrcode' . '/' . date('Y') . '/' . date('m-d') . '/' . rand(100000000000000, 999999999999999) . '.png'; + $result = $images->uploadOss($qrcode, $fileName); + if ($result == true) { //>>3.保存二维码路径 $cs->qrcode_path = $fileName; $cs->save(); } } else { //>>4.编辑时同步登陆帐号状态 - $adu = new AdminUsers(); + $adu = new AdminUsers(); $id = $form->getKey(); - $row = $model::find($id); + $row = $model::find($id); $ad = $adu->find($row->admin_user_id); $ad->status = $form->status; $ad->save(); diff --git a/app/Admin/Controllers/LanzuCsWithdrawController.php b/app/Admin/Controllers/LanzuCsWithdrawController.php index 8470f68..c83b890 100644 --- a/app/Admin/Controllers/LanzuCsWithdrawController.php +++ b/app/Admin/Controllers/LanzuCsWithdrawController.php @@ -2,6 +2,7 @@ namespace App\Admin\Controllers; +use App\Admin\Common\WxPay; use App\Admin\Repositories\LanzuCsWithdraw; use App\Models\LanzuCsInfo; use App\Models\LanzuUserBalance; @@ -10,7 +11,8 @@ use Dcat\Admin\Form; use Dcat\Admin\Grid; use Dcat\Admin\Show; use Dcat\Admin\Controllers\AdminController; - +use Illuminate\Support\Facades\Log; +use App\Models\LanzuCsWithdraw as modelCsWithdraw; class LanzuCsWithdrawController extends AdminController { /** @@ -22,20 +24,25 @@ class LanzuCsWithdrawController extends AdminController { return Grid::make(new LanzuCsWithdraw(), function (Grid $grid) { $user = Admin::user(); - if (!$user->isRole('lanzu_cs')){//如果不是社区站点的角色登陆,则隐藏提现入口 + if (!$user->isRole('lanzu_cs')) {//如果不是社区站点的角色登陆,则隐藏提现入口 $grid->disableCreateButton(); - }else{ + $grid->actions(function (Grid\Displayers\Actions $actions) use ($grid){ + if ($actions->row->status!=0){//状态一但改变,就不能编辑 + $actions->disableEdit(); + } + }); + } else { $grid->disableEditButton(); } $grid->disableViewButton(); $grid->disableDeleteButton(); $grid->id->sortable(); - $grid->cs_id('提现用户')->display(function (){ - return LanzuCsInfo::where('id',$this->cs_id)->first()->name; + $grid->cs_id('提现用户')->display(function () { + return LanzuCsInfo::where('id', $this->cs_id)->first()->name; }); $grid->money; - $grid->status('状态')->using([1=>'已同意',-1=>'已拒绝',0=>'待审核'])->label([1=>'success',-1=>'danger',0=>'default']); - $grid->is_pay('是否到账')->using(['否','是']); + $grid->status('状态')->using([1 => '已同意', -1 => '已拒绝', 0 => '待审核'])->label([1 => 'success', -1 => 'danger', 0 => 'default']); + $grid->is_pay('是否到账')->using(['否', '是']); $grid->created_at; $grid->filter(function (Grid\Filter $filter) { $filter->equal('id'); @@ -75,41 +82,57 @@ class LanzuCsWithdrawController extends AdminController $form->display('id'); $user = Admin::user(); - if ($form->isCreating()){//如果是添加操作 - if ($user->isRole('lanzu_cs')){//如果是社区站点角色 - $cs = LanzuCsInfo::where('admin_user_id',$user->id)->first(); - if ($cs){ - $form->text('amount', '可提现金额')->value(LanzuUserBalance::getBalance($cs->id,3))->disable(); + if ($form->isCreating()) {//如果是添加操作 + if ($user->isRole('lanzu_cs')) {//如果是社区站点角色 + $cs = LanzuCsInfo::where('admin_user_id', $user->id)->first(); + if ($cs) { + $form->text('amount', '可提现金额')->value(LanzuUserBalance::getBalance($cs->id, 3))->disable(); $form->hidden('cs_id', '提现用户id')->value($cs->id); $form->text('csInfo.name', '提现用户')->value($cs->name)->disable(); $form->text('money'); } } - }else{//编辑操作 - $form->display('amount', '可提现金额')->value(LanzuUserBalance::getBalance($form->model()->cs_id,3)); + + $form->saved(function ()use ($cs,$form){//扣减提现金额 + LanzuUserBalance::reduceBalance($cs->id,3,$form->money); + }); + + + } else {//编辑操作 + $form->display('amount', '可提现金额')->value(LanzuUserBalance::getBalance($form->model()->cs_id, 3)); $form->display('cs_id', '提现用户')->value($form->model()->name); $form->display('money'); - $form->radio('status','状态')->options([1=>'同意',-1=>'拒绝'])->default(-1); - } + if ($form->model()->status!=0){//提现审核后 就能再编辑 + $form->radio('status', '状态')->options([1 => '同意', -1 => '拒绝'])->disable(); + }else{ + $form->radio('status', '状态')->options([1 => '同意', -1 => '拒绝'])->default(-1); + } - }); - } + $form->saved(function ()use ($form){ + if ($form->status==-1){//如何审核被拒绝,退回提现金额 + LanzuUserBalance::returnBalance($form->model()->cs_id,3,$form->model()->money); + }elseif ($form->status==1){//调用微信企业付 + //获取站点信息 + $csInfo = LanzuCsInfo::find($form->model()->cs_id); + $res = WxPay::pay($csInfo,$form); + if ($res['result_code'] == "SUCCESS") {//更新到账状态 + $csw = modelCsWithdraw::find($form->model()->id); + $csw->is_pay = 1; + $csw->save(); + } else { + //记录失败日志 + Log::error('提现失败.', $res); + } + + + dd($res); + } + + }); - /** - * 获取可提现金额 - * @param $aduId - * @return float - */ - protected function getBalance($aduId) - { - $row = $this->getMmInfoByAduId($aduId); - if ($row) { - $res = MpBalance::where(['user_id' => $row->user_id])->first(); - if ($res) { - return $res->balance; } - } - return '0.00'; + }); } + } diff --git a/app/Admin/Controllers/LanzuMpWithdrawController.php b/app/Admin/Controllers/LanzuMpWithdrawController.php index 4eaf9c9..d912933 100755 --- a/app/Admin/Controllers/LanzuMpWithdrawController.php +++ b/app/Admin/Controllers/LanzuMpWithdrawController.php @@ -99,7 +99,6 @@ class LanzuMpWithdrawController extends AdminController protected function lanzu_bis_form(){ //管理员或者lanzu_bis操作 return Form::make(new LanzuMpWithdraw(['mpInfo']), function (Form $form) { - $form->footer(function ($footer) { // 去掉`查看`checkbox $footer->disableViewCheck(); diff --git a/app/Models/LanzuCsWithdraw.php b/app/Models/LanzuCsWithdraw.php index 3fd6c6a..086eb9b 100644 --- a/app/Models/LanzuCsWithdraw.php +++ b/app/Models/LanzuCsWithdraw.php @@ -15,7 +15,7 @@ class LanzuCsWithdraw extends Model protected $dateFormat = 'U'; public function csInfo() { - return $this->belongsTo("\App\Models\LanzuCsInfo",'cs_id','id'); + return $this->hasOne("\App\Models\LanzuCsInfo",'id','cs_id'); } diff --git a/app/Models/LanzuUserBalance.php b/app/Models/LanzuUserBalance.php index b0ba5cc..b28151a 100644 --- a/app/Models/LanzuUserBalance.php +++ b/app/Models/LanzuUserBalance.php @@ -4,8 +4,6 @@ namespace App\Models; - - use Illuminate\Database\Eloquent\Model; class LanzuUserBalance extends Model @@ -31,9 +29,9 @@ class LanzuUserBalance extends Model /** * 扣减可提现金额 */ - public static function reduceBalance($uid, $uType, $reduceMoney) + public static function reduceBalance($sid, $type, $reduceMoney) { - $row = self::where(['source_id' => $uid, 'user_type' => $uType])->first(); + $row = self::where(['source_id' => $sid, 'user_type' => $type])->first(); if ($row) { $row->balance = $row->balance - $reduceMoney; return $row->save(); @@ -45,9 +43,9 @@ class LanzuUserBalance extends Model /** * 回退审核未通过时的提现金额 */ - public static function returnBalance($uid, $uType, $returnMoney) + public static function returnBalance($sid, $uType, $returnMoney) { - $row = self::where(['source_id' => $uid, 'user_type' => $uType])->first(); + $row = self::where(['source_id' => $sid, 'user_type' => $uType])->first(); if ($row) { $row->balance = $row->balance + $returnMoney; return $row->save(); @@ -59,35 +57,14 @@ class LanzuUserBalance extends Model /** * 生成一条数据 */ - public static function create($sid,$type) + public static function create($sid, $type) { - $self = new self(); + $self = new self(); $self->source_id = $sid; $self->user_type = $type; - $self->balance = 0; + $self->balance = 0; $self->save(); } - - - - - - - - - - - - - - - - - - - - - }