|
@@ -10,7 +10,10 @@
|
|
|
// +----------------------------------------------------------------------
|
|
// +----------------------------------------------------------------------
|
|
|
namespace app\controller\api\v1;
|
|
namespace app\controller\api\v1;
|
|
|
|
|
|
|
|
|
|
+use app\jobs\system\CapitalFlowJob;
|
|
|
use app\Request;
|
|
use app\Request;
|
|
|
|
|
+use app\services\user\UserExtractServices;
|
|
|
|
|
+use app\services\user\UserServices;
|
|
|
use crmeb\basic\BaseController;
|
|
use crmeb\basic\BaseController;
|
|
|
use crmeb\services\WithdrawService;
|
|
use crmeb\services\WithdrawService;
|
|
|
|
|
|
|
@@ -31,12 +34,78 @@ class WithdrawController extends BaseController
|
|
|
}
|
|
}
|
|
|
$sign = $data['sign'];
|
|
$sign = $data['sign'];
|
|
|
unset($data['sign']);
|
|
unset($data['sign']);
|
|
|
|
|
+ /** @var UserExtractServices $extract_service */
|
|
|
|
|
+ $extract_service = app()->make(UserExtractServices::class);
|
|
|
if (WithdrawService::init()::checkSign($data, $sign)) {
|
|
if (WithdrawService::init()::checkSign($data, $sign)) {
|
|
|
switch ($data['type']) {
|
|
switch ($data['type']) {
|
|
|
case 'create_batch_order':
|
|
case 'create_batch_order':
|
|
|
if ($data['return_code'] == 'SUCCESS') {
|
|
if ($data['return_code'] == 'SUCCESS') {
|
|
|
$info = WithdrawService::init()::decode($data['resoult']);
|
|
$info = WithdrawService::init()::decode($data['resoult']);
|
|
|
- @file_put_contents('notify.txt', json_encode($info) . PHP_EOL, FILE_APPEND);
|
|
|
|
|
|
|
+ @file_put_contents('notify.txt', $data['type'] . json_encode($info) . PHP_EOL, FILE_APPEND);
|
|
|
|
|
+ $list = $extract_service->getList(['trade_number' => $info['trade_number'], 'status' => 2]);
|
|
|
|
|
+ if ($info['data']['result_code'] != 'SUCCESS') {
|
|
|
|
|
+ foreach ($list as $v) {
|
|
|
|
|
+ $extract_service->update($v['id'], ['status' => 0, 'mark' => '业务处理失败']);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ foreach ($list as $v) {
|
|
|
|
|
+ $extract_service->update($v['id'], ['enterprise_order_id' => $info['data']['enterprise_order_id']]);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'refuse_order':
|
|
|
|
|
+ if ($data['return_code'] == 'SUCCESS') {
|
|
|
|
|
+ $info = WithdrawService::init()::decode($data['resoult']);
|
|
|
|
|
+ @file_put_contents('notify.txt', $data['type'] . json_encode($info) . PHP_EOL, FILE_APPEND);
|
|
|
|
|
+ $list = $extract_service->getList(['enterprise_order_id' => $info['enterprise_order_id'], 'status' => 2]);
|
|
|
|
|
+ foreach ($list as $v) {
|
|
|
|
|
+ $extract_service->refuse($v['id'], $info['remarks']);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'payment_resout':
|
|
|
|
|
+ if ($data['return_code'] == 'SUCCESS') {
|
|
|
|
|
+ $info = WithdrawService::init()::decode($data['resoult']);
|
|
|
|
|
+ @file_put_contents('notify.txt', $data['type'] . json_encode($info) . PHP_EOL, FILE_APPEND);
|
|
|
|
|
+ $id = explode('_', $info['request_no'])[1] ?? 0;
|
|
|
|
|
+ if ($id) {
|
|
|
|
|
+ $list = $extract_service->getList(['id' => $id, 'status' => 2]);
|
|
|
|
|
+ foreach ($list as $v) {
|
|
|
|
|
+ if ($info['payment_status'] == 2) {
|
|
|
|
|
+ $extract_service->update($v['id'], ['status' => 0, 'mark' => '失败']);
|
|
|
|
|
+ }
|
|
|
|
|
+ if ($info['payment_status'] == 4) {
|
|
|
|
|
+ $extract_service->update($v['id'], ['status' => 1, 'mark' => '成功']);
|
|
|
|
|
+
|
|
|
|
|
+ /** @var UserServices $userServices */
|
|
|
|
|
+ $userServices = app()->make(UserServices::class);
|
|
|
|
|
+ $userType = $userServices->value(['uid' => $v['uid']], 'user_type');
|
|
|
|
|
+ $nickname = $userServices->value(['uid' => $v['uid']], 'nickname');
|
|
|
|
|
+ $phone = $userServices->value(['uid' => $v['uid']], 'phone');
|
|
|
|
|
+
|
|
|
|
|
+ switch ($v['extract_type']) {
|
|
|
|
|
+ case 'bank':
|
|
|
|
|
+ $order_id = $v['bank_code'];
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'weixin':
|
|
|
|
|
+ $order_id = $v['wechat'];
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'alipay':
|
|
|
|
|
+ $order_id = $v['alipay_code'];
|
|
|
|
|
+ break;
|
|
|
|
|
+ default:
|
|
|
|
|
+ $order_id = '';
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ //记录资金流水队列
|
|
|
|
|
+ CapitalFlowJob::dispatch([['order_id' => $order_id, 'store_id' => 0, 'uid' => $v['uid'], 'nickname' => $nickname, 'phone' => $phone, 'price' => $v['extract_price'], 'pay_type' => $v['extract_type']], 'extract']);
|
|
|
|
|
+
|
|
|
|
|
+ //消息推送
|
|
|
|
|
+ event('notice.notice', [['uid' => $v['uid'], 'userType' => strtolower($userType), 'extractNumber' => $v['extract_price'], 'nickname' => $nickname], 'user_extract']);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
default:
|
|
default:
|