Commit 29aac451 authored by rlgy's avatar rlgy

提币审核修改

parent 42473888
......@@ -123,10 +123,9 @@ class CoinReleaseCheckController extends BaseController
public function actionCheck()
{
Yii::$app->response->format = 'json';
$id = Yii::$app->request->get('id', null);
$status = Yii::$app->request->get('status', null);
$step = Yii::$app->request->get('step', null);
$id = Yii::$app->request->get('id', null);
$status = Yii::$app->request->get('status', null);
$step = Yii::$app->request->get('step', null);
if (!empty($id) && !empty($status) && !empty($step)) {
if (ctype_digit($id) && ctype_digit($status) && ctype_digit($step)) {
if (($status == 2 || $status == 3) && ($step >= 1 || $step <= 3)) {
......@@ -136,88 +135,124 @@ class CoinReleaseCheckController extends BaseController
return ['code' => -1, 'msg' => '不允许进行审核!'];
}
if (self::STEP_CHECK_FIRST == $step) {
//初审
if ($model->check_second_status != CoinReleaseCheck::CHECK_SECOND_STATUS_NORMAL) {
return ['code' => -1, 'msg' => '已经复核的申请不允许初审!'];
}
$model->check_first_uid = Yii::$app->user->id;
$model->check_first_status = $status;
if ($model->save()) {
return ['code' => 0, 'msg' => '初审通过!'];
}
return ['code' => -1, 'msg' => '初审不通过!'];
} elseif (self::STEP_CHECK_SECOND == $step) {
//复审
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_status = $status;
//改变status
$model->status = CoinReleaseCheck::STATUS_PADDING;
if ($model->save()) {
// 提币 区块链转账接口
$from = '';
$member = CoinReleaseMember::findOne($model->mid);
if ($member) {
$coin_publish_rule = CoinPublishRule::findOne($member->rule_id);
if ($coin_publish_rule) {
$coin_publish = CoinPublish::findOne($coin_publish_rule->pid);
if ($coin_publish) {
$from = $coin_publish->address;
}
}
}
if (empty($from)) {
$trans->rollBack();
return ['code' => -1, 'msg' => '提币失败'];
}
if (strtoupper($model->coin) == 'BTY') {
$isToken = false;
} else {
$isToken = true;
}
//减少用户资产
$member->release -= $model->amount;
$member->output += $model->amount;
if ($member->save()) {
//保存提币记录到数据库
$coin_release_list = new CoinReleaseList();
$coin_release_list->mid = $member->id;
$coin_release_list->mobile = $member->mobile;
$coin_release_list->amount = $model->amount;
$coin_release_list->coin = $model->coin;
$coin_release_list->type = 1;//提币
$coin_release_list->from = $from;
$coin_release_list->to = $model->to_address;
if ($coin_release_list->save()) {
//转账
$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([
'txhash' => $result,
'lid' => $coin_release_list->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) {
$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)) {
if ($step == self::STEP_CHECK_SECOND && CoinReleaseCheck::CHECK_SECOND_STATUS_SUCCEED == $model->check_second_status) {
//TODO 提币 区块链转账接口
$from = '';
$member = CoinReleaseMember::findOne($model->mid);
if ($member) {
$coin_publish_rule = CoinPublishRule::findOne($member->rule_id);
if ($coin_publish_rule) {
$coin_publish = CoinPublish::findOne($coin_publish_rule->pid);
if ($coin_publish) {
$from = $coin_publish->address;
}
}
}
if (empty($from)) {
return ['code' => -1, 'msg' => '提币失败'];
}
if (strtoupper($model->coin) == 'BTY') {
$isToken = false;
} else {
$isToken = true;
}
//开启事务
$trans = CoinReleaseMember::getDb()->beginTransaction();
//减少用户资产
$member->release -= $model->amount;
$member->output += $model->amount;
if ($model->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->mid = $member->id;
$coin_release_list->mobile = $member->mobile;
$coin_release_list->amount = $model->amount;
$coin_release_list->coin = $model->coin;
$coin_release_list->type = 1;//提币
$coin_release_list->from = $from;
$coin_release_list->to = $model->to_address;
$coin_release_list->save();
//使用任务根据txhash查询提币状态s
Yii::$app->queue->delay(15)->push(new QueryTransJob([
'txhash' => $result,
'lid' => $coin_release_list->id,
'cid' => $model->id
]));
}
} elseif (self::STEP_CANCEL == $step) {
if ($model->save(false)) {
//返还币
$assets = CoinReleaseMember::findOne($model->mid);
if ($assets) {
$assets->release += $model->amount;
$assets->output -= $model->amount;
if (!$assets->save()) {
Yii::warning("撤提失败! [id]: {$assets->id}, [amount]: $model->amount", __CLASS__);
if ($assets->save()) {
$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