Commit 6c10a2c1 authored by shajiaiming's avatar shajiaiming

fix

parent e60d2a74
...@@ -10,6 +10,10 @@ class CoinIssueCoin extends CommonActiveRecord ...@@ -10,6 +10,10 @@ class CoinIssueCoin extends CommonActiveRecord
const STATUS_SUCCESS = 1; //发行成功 const STATUS_SUCCESS = 1; //发行成功
const STATUS_FAIL = 0; //发行失败 const STATUS_FAIL = 0; //发行失败
const UN_PAY = 0;
const ALLOW_PAY = 1;
const SUCCESS_PAY =2;
const UN_AUDIT = 0; const UN_AUDIT = 0;
const ALLOW_ISSUE = 1; const ALLOW_ISSUE = 1;
const REFUSE_ISSUE = 2; const REFUSE_ISSUE = 2;
......
...@@ -9,6 +9,7 @@ use common\models\psources\CoinIssueTransfer; ...@@ -9,6 +9,7 @@ use common\models\psources\CoinIssueTransfer;
use common\service\chain33\Chain33Service; use common\service\chain33\Chain33Service;
use Yii; use Yii;
use yii\console\Controller; use yii\console\Controller;
use yii\helpers\ArrayHelper;
class IssueCoinController extends Controller class IssueCoinController extends Controller
{ {
...@@ -18,11 +19,23 @@ class IssueCoinController extends Controller ...@@ -18,11 +19,23 @@ class IssueCoinController extends Controller
*/ */
public function actionPayCharge() public function actionPayCharge()
{ {
$issue_transfer = CoinIssueTransfer::find()->where(['send_result' => '0', 'msg' => '0'])->asArray()->all(); $issue_coin_model = CoinIssueCoin::find()
->select('id')->where(['charge_pay' => CoinIssueCoin::ALLOW_PAY])->asArray()->all();
if (false == $issue_coin_model) {
echo date('Y-m-d H:i:s') . '暂无手续费划转任务' . PHP_EOL;
return 0;
}
$issue_transfer = CoinIssueTransfer::find()
->where(['unissue' => 1])
->andWhere(['in', 'issue_coin_id', ArrayHelper::getColumn($issue_coin_model, 'id')])
->asArray()
->all();
if (false == $issue_transfer) { if (false == $issue_transfer) {
echo date('Y-m-d H:i:s') . '暂无手续费划转任务' . PHP_EOL; echo date('Y-m-d H:i:s') . '暂无手续费划转任务' . PHP_EOL;
return 0; return 0;
} }
$node = Yii::$app->params['chain_nodes']['STO']; $node = Yii::$app->params['chain_nodes']['STO'];
$service = new Chain33Service($node); $service = new Chain33Service($node);
foreach ($issue_transfer as $val) { foreach ($issue_transfer as $val) {
...@@ -49,6 +62,7 @@ class IssueCoinController extends Controller ...@@ -49,6 +62,7 @@ class IssueCoinController extends Controller
*/ */
public function actionPayChargeStatus() public function actionPayChargeStatus()
{ {
$unissue = -1;
$model = CoinIssueTransfer::find()->where(['<>', 'send_result', '0'])->andWhere(['msg' => '0'])->asArray()->all(); $model = CoinIssueTransfer::find()->where(['<>', 'send_result', '0'])->andWhere(['msg' => '0'])->asArray()->all();
if (empty($model)) { if (empty($model)) {
echo date('Y-m-d H:i:s') . '暂无需要确认的手续费划转状态' . PHP_EOL; echo date('Y-m-d H:i:s') . '暂无需要确认的手续费划转状态' . PHP_EOL;
...@@ -69,14 +83,33 @@ class IssueCoinController extends Controller ...@@ -69,14 +83,33 @@ class IssueCoinController extends Controller
$msg = 'success'; $msg = 'success';
goto doEnd; goto doEnd;
} else { } else {
$msg = $result['msg']; if (isset($result['result']['receipt']['logs'])) {
foreach ($result['result']['receipt']['logs'] as $log) {
if (isset($log['tyName']) && 'LogErr' == $log['tyName']) {
$msg = $log['tyName'];
break;
}
}
} else {
$msg = $result['msg'];
}
$query_result = $result['code']; $query_result = $result['code'];
goto doEnd; goto doEnd;
} }
doEnd : doEnd :
if ('success' == $msg) {
$unissue = 0;
$coin_issue_coin = CoinIssueCoin::find()->where(['id' => $val['issue_coin_id']])->one();
$coin_issue_coin->charge_pay = CoinIssueCoin::SUCCESS_PAY;
$coin_issue_coin->save();
}
$currentModel = CoinIssueTransfer::findOne($val['id']); $currentModel = CoinIssueTransfer::findOne($val['id']);
$currentModel->query_result = $query_result; $currentModel->query_result = $query_result;
if ($unissue > -1){
$currentModel->unissue = $unissue;
}
$currentModel->msg = $msg; $currentModel->msg = $msg;
$currentModel->save(); $currentModel->save();
} }
...@@ -102,58 +135,105 @@ class IssueCoinController extends Controller ...@@ -102,58 +135,105 @@ class IssueCoinController extends Controller
$status = CoinIssueCoin::ALLOW_ISSUE; $status = CoinIssueCoin::ALLOW_ISSUE;
} }
$issue_transfers = CoinIssueTransfer::find() $issue_coin_model = CoinIssueCoin::find()
->where(['<>', 'send_result', '0']) ->select('id, name, platform_id, chain_id, symbol, introduction, total, category, owner')
->andWhere(['msg' => 'success']) ->where(['status' => $status])
->andWhere(['unissue' => 1])
->asArray()
->all(); ->all();
if (false == $issue_transfers) { if (false == $issue_coin_model) {
echo date('Y-m-d H:i:s') . '暂无发行任务' . PHP_EOL; echo date('Y-m-d H:i:s') . '暂无发行任务' . PHP_EOL;
return 0; return 0;
} }
$node = Yii::$app->params['chain_nodes']['STO']; $node = Yii::$app->params['chain_nodes']['STO'];
$chain_service = new Chain33Service($node); $chain_service = new Chain33Service($node);
foreach ($issue_transfers as $issue_transfer) { foreach ($issue_coin_model as $issue_coin) {
$issue_coin_model = CoinIssueCoin::find()
->select('id, name, platform_id, chain_id, symbol, introduction, total, category, owner')
->where(['id' => $issue_transfer['issue_coin_id'], 'status' => $status])
->one();
if (false == $issue_coin_model) continue;
$params = [ $params = [
'name' => $issue_coin_model->name, 'name' => $issue_coin->name,
'symbol' => $issue_coin_model->symbol, 'symbol' => $issue_coin->symbol,
'introduction' => $issue_coin_model->introduction, 'introduction' => $issue_coin->introduction,
'total' => (int)$issue_coin_model->total, 'total' => (int)$issue_coin->total,
'price' => isset($issue_coin_model->platform->issue_charge) ? (int)$issue_coin_model->platform->issue_charge : 0, 'price' => isset($issue_coin->platform->issue_charge) ? (int)$issue_coin->platform->issue_charge : 0,
'category' => (int)$issue_coin_model->category, 'category' => (int)$issue_coin->category,
'owner' => $issue_coin_model->owner 'owner' => $issue_coin->owner
]; ];
$result = $chain_service->createRawTokenPreCreateTx($params); $result = $chain_service->createRawTokenPreCreateTx($params);
if (null == $result['error'] && false == $result['code']) { if (null == $result['error'] && false == $result['code']) {
$status = CoinIssueCoin::SUCCESS_ISSUE; $data = [
$params['platform_id'] = $issue_coin_model->platform_id; 'msg' => $result['result'],
$params['platform'] = $issue_coin_model->chain->platform; 'status' => CoinIssueCoin::SUCCESS_ISSUE,
$this->syncTransfer($issue_transfer['id']); 'charge_pay' => CoinIssueCoin::ALLOW_PAY
];
$params['platform_id'] = $issue_coin->platform_id;
$params['platform'] = $issue_coin->chain->platform;
#$this->syncTransfer($issue_transfer['id']);
$this->syncRecord($params); $this->syncRecord($params);
$this->syncCoin($params); $this->syncCoin($params);
} else { } else {
$status = CoinIssueCoin::FAIL_ISSUE; $data = [
'status' => CoinIssueCoin::FAIL_ISSUE,
];
} }
if ($status > CoinIssueCoin::REFUSE_ISSUE) { if ($data['status'] > CoinIssueCoin::REFUSE_ISSUE) {
CoinIssueCoin::updateAll([ CoinIssueCoin::updateAll($data, [
'msg' => $result['result'], 'id' => $issue_coin->id,
'status' => $status
], [
'id' => $issue_coin_model->id,
]); ]);
} }
} }
echo date('Y-m-d H:i:s') . '发行成功' . PHP_EOL; echo date('Y-m-d H:i:s') . '发行成功' . PHP_EOL;
return 0; return 0;
// $issue_transfers = CoinIssueTransfer::find()
// ->where(['<>', 'send_result', '0'])
// ->andWhere(['msg' => 'success'])
// ->andWhere(['unissue' => 1])
// ->asArray()
// ->all();
// if (false == $issue_transfers) {
// echo date('Y-m-d H:i:s') . '暂无发行任务' . PHP_EOL;
// return 0;
// }
//
// $node = Yii::$app->params['chain_nodes']['STO'];
// $chain_service = new Chain33Service($node);
// foreach ($issue_transfers as $issue_transfer) {
// $issue_coin_model = CoinIssueCoin::find()
// ->select('id, name, platform_id, chain_id, symbol, introduction, total, category, owner')
// ->where(['id' => $issue_transfer['issue_coin_id'], 'status' => $status])
// ->one();
//
// if (false == $issue_coin_model) continue;
// $params = [
// 'name' => $issue_coin_model->name,
// 'symbol' => $issue_coin_model->symbol,
// 'introduction' => $issue_coin_model->introduction,
// 'total' => (int)$issue_coin_model->total,
// 'price' => isset($issue_coin_model->platform->issue_charge) ? (int)$issue_coin_model->platform->issue_charge : 0,
// 'category' => (int)$issue_coin_model->category,
// 'owner' => $issue_coin_model->owner
// ];
//
// $result = $chain_service->createRawTokenPreCreateTx($params);
// if (null == $result['error'] && false == $result['code']) {
// $status = CoinIssueCoin::SUCCESS_ISSUE;
// $params['platform_id'] = $issue_coin_model->platform_id;
// $params['platform'] = $issue_coin_model->chain->platform;
// $this->syncTransfer($issue_transfer['id']);
// $this->syncRecord($params);
// $this->syncCoin($params);
// } else {
// $status = CoinIssueCoin::FAIL_ISSUE;
// }
// if ($status > CoinIssueCoin::REFUSE_ISSUE) {
// CoinIssueCoin::updateAll([
// 'msg' => $result['result'],
// 'status' => $status
// ], [
// 'id' => $issue_coin_model->id,
// ]);
// }
// }
// echo date('Y-m-d H:i:s') . '发行成功' . PHP_EOL;
// return 0;
} }
public function syncCoin($params = []) public function syncCoin($params = [])
...@@ -161,8 +241,8 @@ class IssueCoinController extends Controller ...@@ -161,8 +241,8 @@ class IssueCoinController extends Controller
$model_coin = Coin::find()->where(['name' => $params['name'], 'platform' => $params['platform']])->one(); $model_coin = Coin::find()->where(['name' => $params['name'], 'platform' => $params['platform']])->one();
if (false == $model_coin) { if (false == $model_coin) {
$model = new Coin(); $model = new Coin();
$model->name = $params['name']; $model->name = $params['symbol'];
$model->sid = $params['symbol']; $model->sid = $params['name'];
$model->platform = $params['platform']; $model->platform = $params['platform'];
$model->chain = 'BTY'; $model->chain = 'BTY';
$model->treaty = 1; $model->treaty = 1;
......
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