From 614d2136783ee6deb66a260c4c790bbc547880c3 Mon Sep 17 00:00:00 2001 From: evoxwht <442384644@qq.com> Date: Wed, 6 Apr 2022 16:22:39 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E7=A8=8B=E5=BA=8F=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E3=80=91=E5=BE=AE=E4=BF=A1=E6=8F=90=E7=8E=B0=E5=88=B0=E9=9B=B6?= =?UTF-8?q?=E9=92=B1=E4=BC=98=E5=8C=96=EF=BC=8C=E9=9C=80=E8=A6=81=E5=90=8E?= =?UTF-8?q?=E5=8F=B0=E5=AE=A1=E6=A0=B8=E6=89=8D=E8=83=BD=E6=89=93=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/services/user/UserExtractServices.php | 48 +++++++++++++++---- 1 file changed, 38 insertions(+), 10 deletions(-) diff --git a/crmeb/app/services/user/UserExtractServices.php b/crmeb/app/services/user/UserExtractServices.php index 051dc13b9..812173582 100644 --- a/crmeb/app/services/user/UserExtractServices.php +++ b/crmeb/app/services/user/UserExtractServices.php @@ -179,15 +179,44 @@ class UserExtractServices extends BaseServices $order_id = ''; break; } + + $insertData = ['order_id' => $order_id, 'nickname' => $nickname, 'phone' => $phone]; + + $openid = $wechatServices->getWechatOpenid($userExtract['uid'], 'wechat'); + + //自动提现到零钱 + if ($userExtract['extract_type'] == 'weixin' && sys_config('brokerage_type', 0) && $openid) { + + /** @var StoreOrderCreateServices $services */ + $services = app()->make(StoreOrderCreateServices::class); + $insertData['order_id'] = $services->getNewOrderId(); + + // 微信提现 + $res = WechatService::merchantPay($openid, $insertData['order_id'], $userExtract['extract_price'], '提现佣金到零钱'); + if (!$res) { + throw new ValidateException('企业付款到零钱失败,请稍后再试'); + } + + // 更新 提现申请记录 wechat_order_id + $this->dao->update($id, ['wechat_order_id' => $insertData['order_id']]); + + /** @var UserServices $userService */ + $userService = app()->make(UserServices::class); + $user = $userService->getUserInfo($userExtract['uid']); + + $insertData['nickname'] = $user['nickname']; + $insertData['phone'] = $user['phone']; + } + /** @var CapitalFlowServices $capitalFlowServices */ $capitalFlowServices = app()->make(CapitalFlowServices::class); $capitalFlowServices->setFlow([ - 'order_id' => $order_id, + 'order_id' => $insertData['order_id'], 'uid' => $userExtract['uid'], 'price' => bcmul('-1', $extractNumber, 2), 'pay_type' => $userExtract['extract_type'], - 'nickname' => $nickname, - 'phone' => $phone + 'nickname' => $insertData['nickname'], + 'phone' => $insertData['phone'] ], 'extract'); return true; } @@ -336,6 +365,7 @@ class UserExtractServices extends BaseServices $extractBank = str_replace("\r\n", "\n", $extractBank);//防止不兼容 $data['extractBank'] = explode("\n", is_array($extractBank) ? ($extractBank[0] ?? $extractBank) : $extractBank); $data['minPrice'] = sys_config('user_extract_min_price');//提现最低金额 + $data['brokerageType'] = sys_config('brokerage_type', 0);//到账方式 return $data; } @@ -352,8 +382,10 @@ class UserExtractServices extends BaseServices if (!$user) { throw new ValidateException('数据不存在'); } - /** @var UserBillServices $userBill */ - $userBill = app()->make(UserBillServices::class); + + if ($data['extract_type'] == 'weixin' && !sys_config('brokerage_type', 0) && !$data['weixin']) { + throw new ValidateException('请输入微信账号'); + } /** @var UserBrokerageServices $services */ $services = app()->make(UserBrokerageServices::class); @@ -412,16 +444,12 @@ class UserExtractServices extends BaseServices $wechatServices = app()->make(WechatUserServices::class); $openid = $wechatServices->getWechatOpenid($uid, 'wechat'); if (sys_config('brokerage_type', 0) && $openid) { - $insertData['status'] = 1; - /** @var StoreOrderCreateServices $services */ - $services = app()->make(StoreOrderCreateServices::class); - $insertData['wechat_order_id'] = $services->getNewOrderId(); if ($data['money'] < 1) { throw new ValidateException('企业微信付款到零钱最低金额为1元'); } } } - $res1 = $this->transaction(function () use ($insertData, $data, $uid, $userService, $user, $mark, $openid) { + $res1 = $this->transaction(function () use ($insertData, $data, $uid, $userService, $user, $mark) { if (!$res1 = $this->dao->save($insertData)) { throw new ValidateException('提现失败'); }