Commit c9c5d4b5 authored by pengfei's avatar pengfei

update 团长分销-奖励结算脚本

parent 286f1274
......@@ -83,6 +83,7 @@ class ColonelorderController extends Job
if (!ColonelDistributorPayInfo::commit()) {
throw new Exception(sprintf("事务提交失败 %s", json_encode($data)));
}
$this->loggerError('success');
} catch (Exception $e) {
ColonelDistributorPayInfo::rollback();
$this->loggerError('error='.$e->getMessage());
......
......@@ -32,7 +32,9 @@ class ColonelwalletController extends Job
if (!empty($payInfoList)) {
if ($this->deductingInventory($payInfoList)) {
if ($this->toWallet($payInfoList)) {
$this->handlePayInfoStatus(array_column($payInfoList, 'pay_info_id'));
if ($this->handlePayInfoStatus(array_column($payInfoList, 'pay_info_id'))) {
$this->loggerInfo('success');
}
}
}
}
......@@ -52,7 +54,7 @@ class ColonelwalletController extends Job
if (!$url = config('interface', 'wallet.account.transfer')) {
throw new InterfaceException(['cus' => 0]);
}
$data = [];
$list = [];
foreach ($payInfoList as $payInfo) {
$tmp = [];
$tmp['user_id'] = $payInfo['colonel_user_id'];
......@@ -63,15 +65,17 @@ class ColonelwalletController extends Job
$tmp['third_order_desc'] = self::getThirdOrderDesc($payInfo);
$tmp['amount'] = $payInfo['reward'];
$tmp['extra'] = $payInfo;
$data[] = $tmp;
$list[] = $tmp;
}
$res = HttpUtil::post($url, ['list' => $data]);
if (!empty($res['response']['result']) && $res['code'] == 0) {
$this->loggerInfo('写入钱包成功');
$httpParams = self::getWalletHttpParams();
$httpParams['list'] = $list;
$response = HttpUtil::post($url, $httpParams,100000, 3);
$this->loggerInfo("url=$url,response:".json_encode($response));
if (!empty($response['response']['result']) && $response['code'] == 0) {
$this->loggerInfo('调用钱包服务成功,count='.count($payInfoList));
return true;
} else {
$msg = json_encode(['list' => $data]);
$this->loggerError($msg);
$this->loggerError('调用钱包服务失败,httpParams=' . json_encode($httpParams));
return false;
}
}
......@@ -90,7 +94,9 @@ class ColonelwalletController extends Job
if (!$url = config('interface', 'coupon.capitalpool.grant_user_amount')) {
throw new InterfaceException(['cus' => 0]);
}
$data['capital_pool_id'] = self::CAPITAL_POOL_ID;
$httpParams = [
'capital_pool_id' => self::CAPITAL_POOL_ID
];
foreach ($payInfoList as $payInfo) {
$tmp = [];
$tmp['op'] = self::CAPITAL_POOL_OP;
......@@ -99,19 +105,55 @@ class ColonelwalletController extends Job
$tmp['third_order_id'] = $payInfo['colonel_distributor_pay_info_id'];
$tmp['third_order_id_type'] = $payInfo['type'];
$tmp['third_order_desc'] = self::getThirdOrderDesc($payInfo);
$data['body'][] = $tmp;
$httpParams['body'][] = $tmp;
}
$res = HttpUtil::post($url, $data, 100000, 3);
$res = HttpUtil::post($url, $httpParams, 100000, 3);
$this->loggerInfo("url=$url,response:".json_encode($res));
if ($res['code'] == 0 && isset($res['response']['result'])) {
$this->loggerInfo('资金池授予用户奖励成功,count='.count($payInfoList));
$this->loggerInfo('调用资金池服务成功,count='.count($payInfoList));
return true;
} else {
$msg = json_encode(['list' => $data]);
$this->loggerError("资金池授予用户奖励成功,$msg");
$this->loggerError('调用资金池服务失败,httpParams=' . json_encode($httpParams));
return false;
}
}
/**
* Notes: 获取钱包服务请求参数
* User: pengfei@yidian-inc.com
* Date: 2021/9/3 7:34 下午
* @return array
*/
private function getWalletHttpParams()
{
// TODO 此处看后期业务发展 看是否需要封装WalletSdk
$date = date('Y-m-d H:i:s');
return [
'transfer_service_id' => '', //TODO
'sign' => self::getWalletHttpSign($date),
'time' => $date
];
}
/**
* Notes: 获取钱包签名
* User: pengfei@yidian-inc.com
* Date: 2021/9/3 7:34 下午
* @param $date
* @return string
*/
private function getWalletHttpSign($date)
{
$transfer_service_secret = ''; //TODO
return md5($date . $transfer_service_secret);
}
/**
* Notes: 获取待结算数据
* User: pengfei@yidian-inc.com
* Date: 2021/9/3 7:23 下午
* @return array
*/
private function getPayInfoList(): array
{
return ColonelDistributorPayInfo::getRecords(['status' => ColonelDistributorPayInfo::STATUS_NOT_USE]);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment