Commit 29aac451 authored by rlgy's avatar rlgy

提币审核修改

parent 42473888
...@@ -123,7 +123,6 @@ class CoinReleaseCheckController extends BaseController ...@@ -123,7 +123,6 @@ class CoinReleaseCheckController extends BaseController
public function actionCheck() public function actionCheck()
{ {
Yii::$app->response->format = 'json'; Yii::$app->response->format = 'json';
$id = Yii::$app->request->get('id', null); $id = Yii::$app->request->get('id', null);
$status = Yii::$app->request->get('status', null); $status = Yii::$app->request->get('status', null);
$step = Yii::$app->request->get('step', null); $step = Yii::$app->request->get('step', null);
...@@ -136,28 +135,28 @@ class CoinReleaseCheckController extends BaseController ...@@ -136,28 +135,28 @@ class CoinReleaseCheckController extends BaseController
return ['code' => -1, 'msg' => '不允许进行审核!']; return ['code' => -1, 'msg' => '不允许进行审核!'];
} }
if (self::STEP_CHECK_FIRST == $step) { if (self::STEP_CHECK_FIRST == $step) {
//初审
if ($model->check_second_status != CoinReleaseCheck::CHECK_SECOND_STATUS_NORMAL) { if ($model->check_second_status != CoinReleaseCheck::CHECK_SECOND_STATUS_NORMAL) {
return ['code' => -1, 'msg' => '已经复核的申请不允许初审!']; return ['code' => -1, 'msg' => '已经复核的申请不允许初审!'];
} }
$model->check_first_uid = Yii::$app->user->id; $model->check_first_uid = Yii::$app->user->id;
$model->check_first_status = $status; $model->check_first_status = $status;
if ($model->save()) {
return ['code' => 0, 'msg' => '初审通过!'];
}
return ['code' => -1, 'msg' => '初审不通过!'];
} elseif (self::STEP_CHECK_SECOND == $step) { } elseif (self::STEP_CHECK_SECOND == $step) {
//复审
if (CoinReleaseCheck::CHECK_FIRST_STATUS_SUCCEED == $model->check_first_status) { if (CoinReleaseCheck::CHECK_FIRST_STATUS_SUCCEED == $model->check_first_status) {
//开启事务
$trans = CoinReleaseMember::getDb()->beginTransaction();
$model->check_second_uid = Yii::$app->user->id; $model->check_second_uid = Yii::$app->user->id;
$model->check_second_status = $status; $model->check_second_status = $status;
//改变status //改变status
$model->status = CoinReleaseCheck::STATUS_PADDING; $model->status = CoinReleaseCheck::STATUS_PADDING;
} else { if ($model->save()) {
return ['code' => -1, 'msg' => '初审未通过']; // 提币 区块链转账接口
}
} elseif (self::STEP_CANCEL == $step) {
$model->check_first_uid = Yii::$app->user->id;
$model->check_second_uid = Yii::$app->user->id;
$model->status = CoinReleaseCheck::STATUS_CANCEL;
}
if ($model->save(false)) {
if ($step == self::STEP_CHECK_SECOND && CoinReleaseCheck::CHECK_SECOND_STATUS_SUCCEED == $model->check_second_status) {
//TODO 提币 区块链转账接口
$from = ''; $from = '';
$member = CoinReleaseMember::findOne($model->mid); $member = CoinReleaseMember::findOne($model->mid);
if ($member) { if ($member) {
...@@ -170,6 +169,7 @@ class CoinReleaseCheckController extends BaseController ...@@ -170,6 +169,7 @@ class CoinReleaseCheckController extends BaseController
} }
} }
if (empty($from)) { if (empty($from)) {
$trans->rollBack();
return ['code' => -1, 'msg' => '提币失败']; return ['code' => -1, 'msg' => '提币失败'];
} }
if (strtoupper($model->coin) == 'BTY') { if (strtoupper($model->coin) == 'BTY') {
...@@ -177,18 +177,10 @@ class CoinReleaseCheckController extends BaseController ...@@ -177,18 +177,10 @@ class CoinReleaseCheckController extends BaseController
} else { } else {
$isToken = true; $isToken = true;
} }
//开启事务
$trans = CoinReleaseMember::getDb()->beginTransaction();
//减少用户资产 //减少用户资产
$member->release -= $model->amount; $member->release -= $model->amount;
$member->output += $model->amount; $member->output += $model->amount;
if ($model->save()) { if ($member->save()) {
$result = Chain33Business::extractToken($from, $model->to_address, (int)$model->amount, "锁仓释放", $isToken, $model->coin);
if (is_array($result)) {
$trans->rollBack();
return $result;
}
$trans->commit();
//保存提币记录到数据库 //保存提币记录到数据库
$coin_release_list = new CoinReleaseList(); $coin_release_list = new CoinReleaseList();
$coin_release_list->mid = $member->id; $coin_release_list->mid = $member->id;
...@@ -198,26 +190,69 @@ class CoinReleaseCheckController extends BaseController ...@@ -198,26 +190,69 @@ class CoinReleaseCheckController extends BaseController
$coin_release_list->type = 1;//提币 $coin_release_list->type = 1;//提币
$coin_release_list->from = $from; $coin_release_list->from = $from;
$coin_release_list->to = $model->to_address; $coin_release_list->to = $model->to_address;
$coin_release_list->save(); if ($coin_release_list->save()) {
//使用任务根据txhash查询提币状态s //转账
$result = Chain33Business::transToken(
trim($from),
trim($model->to_address),
(int)$model->amount,
"锁仓释放",
$isToken,
$model->coin
);
if (is_array($result)) {
$trans->rollBack();
return $result;
}
Yii::$app->queue->delay(15)->push(new QueryTransJob([ Yii::$app->queue->delay(15)->push(new QueryTransJob([
'txhash' => $result, 'txhash' => $result,
'lid' => $coin_release_list->id, 'lid' => $coin_release_list->id,
'cid' => $model->id 'cid' => $model->id
])); ]));
$trans->commit();
return ['code' => 0, 'msg' => '审核通过'];
} else {
$trans->rollBack();
return ['code' => -1, 'msg' => '保存提币记录失败!'];
}
} else {
$trans->rollBack();
return ['code' => -1, 'msg' => '减少资产失败!'];
}
} else {
$trans->rollBack();
return ['code' => -1, 'msg' => '保存提币记录失败'];
}
} else {
return ['code' => -1, 'msg' => '初审未通过'];
} }
} elseif (self::STEP_CANCEL == $step) { } elseif (self::STEP_CANCEL == $step) {
$trans = CoinReleaseMember::getDb()->beginTransaction();
$model->check_first_uid = Yii::$app->user->id;
$model->check_second_uid = Yii::$app->user->id;
$model->status = CoinReleaseCheck::STATUS_CANCEL;
if ($model->save(false)) {
//返还币 //返还币
$assets = CoinReleaseMember::findOne($model->mid); $assets = CoinReleaseMember::findOne($model->mid);
if ($assets) { if ($assets) {
$assets->release += $model->amount; $assets->release += $model->amount;
$assets->output -= $model->amount; $assets->output -= $model->amount;
if (!$assets->save()) { if ($assets->save()) {
Yii::warning("撤提失败! [id]: {$assets->id}, [amount]: $model->amount", __CLASS__); $trans->commit();
return ['code' => 0, 'msg' => '操作成功'];
} else {
$trans->rollBack();
return ['code' => -1, 'msg' => '返还币种失败!'];
} }
} else {
$trans->rollBack();
return ['code' => -1, 'msg' => '获取返还币种失败'];
} }
} else {
$trans->rollBack();
return ['code' => -1, '操作失败'];
} }
return ['code' => 0, 'msg' => '操作成功'];
} }
} }
} }
......
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