Commit ad770fc3 authored by shajiaiming's avatar shajiaiming

fix

parent a7dd5665
...@@ -18,10 +18,6 @@ class OrderController extends BaseController ...@@ -18,10 +18,6 @@ class OrderController extends BaseController
goto doEnd; goto doEnd;
} }
$post = $request->post(); $post = $request->post();
// if (2 != count($post['txs'])) {
// $msg = '交易笔数错误!';
// goto doEnd;
// }
$data['is_sell'] = (false == $post['isSell']) ? 0 : 1; $data['is_sell'] = (false == $post['isSell']) ? 0 : 1;
$data['type'] = $post['type']; $data['type'] = $post['type'];
...@@ -33,16 +29,15 @@ class OrderController extends BaseController ...@@ -33,16 +29,15 @@ class OrderController extends BaseController
$data['transfer_number'] = date('YmdHis') . self::getrandnums(); $data['transfer_number'] = date('YmdHis') . self::getrandnums();
$redis = Yii::$app->redis; $redis = Yii::$app->redis_app;
$key = 'C2C_' . $data['is_sell'] . '_' . str_replace('/', '', strtoupper($post['token_name'])) . '_' . str_replace('/', '', strtoupper($post['market_name']));
$key = 'C2C_' . $post['address'] . '_' . $post['isSell'] . '_' . $post['token_name'] . '-' . $post['market_name']; if ($redis->hexists($key, $data['address'])) {
if ($redis->exists($key)) {
$msg = '尚存在一笔未完成的交易!'; $msg = '尚存在一笔未完成的交易!';
goto doEnd; goto doEnd;
} }
$redis->set($key, time()); if (!$redis->exists($key)) {
$redis->hmset($key, $data['address'], time());
}
foreach ($post['txs'] as $key => $val) { foreach ($post['txs'] as $key => $val) {
$model = new CoinCTocTransfer(); $model = new CoinCTocTransfer();
$data['txhex'] = $val['tx']; $data['txhex'] = $val['tx'];
...@@ -59,44 +54,6 @@ class OrderController extends BaseController ...@@ -59,44 +54,6 @@ class OrderController extends BaseController
return ['code' => $code, 'msg' => $msg]; return ['code' => $code, 'msg' => $msg];
} }
public function actionFixOrder()
{
$code = -1;
$request = Yii::$app->request;
if (!$request->isPost) {
$msg = '请求错误!';
goto doEnd;
}
$post = $request->post();
$data['is_sell'] = (false == $post['isSell']) ? 0 : 1;
$data['type'] = $post['type'];
$data['address'] = $post['address'];
foreach ($post['txs'] as $key => $val) {
$model = CoinCTocTransfer::find()->where(['is_sell' => $data['is_sell']])
->andWhere(['type' => $data['type']])
->andWhere(['address' => $data['address']])
->andWhere(['step' => $val['step']])
->andWhere(['<>', 'msg', 'success'])
->one();
$model->txhex = $val['tx'];
$model->transfer_url = $val['url'];
$model->send_result = 0;
$model->query_result = 0;
$model->msg = 0;
$model->save();
continue;
}
$redis = Yii::$app->redis;
$redis->set('C2C_' . $post['address'] . '_' . $data['is_sell'], time());
$code = 0;
$msg = 'success';
doEnd :
return ['code' => $code, 'msg' => $msg];
}
public function actionOrderList() public function actionOrderList()
{ {
$address = Yii::$app->request->get('address', ''); $address = Yii::$app->request->get('address', '');
...@@ -144,7 +101,7 @@ class OrderController extends BaseController ...@@ -144,7 +101,7 @@ class OrderController extends BaseController
{ {
$address = Yii::$app->request->get('address', ''); $address = Yii::$app->request->get('address', '');
$token_name = Yii::$app->request->get('token_name', ''); $token_name = Yii::$app->request->get('token_name', '');
$market_name= Yii::$app->request->get('market_name', ''); $market_name = Yii::$app->request->get('market_name', '');
$is_sell = Yii::$app->request->get('isSell', -1); $is_sell = Yii::$app->request->get('isSell', -1);
$type = Yii::$app->request->get('type', ''); $type = Yii::$app->request->get('type', '');
......
...@@ -17,8 +17,8 @@ class CoinCTocTransfer extends BaseActiveRecord ...@@ -17,8 +17,8 @@ class CoinCTocTransfer extends BaseActiveRecord
const TYPE_TRANSFER = 2; //交易 const TYPE_TRANSFER = 2; //交易
const TYPE_REVOKE = 3; //撤消 const TYPE_REVOKE = 3; //撤消
const C2C_ORDER_TRANSFERING = 'C2C_order_transfering'; const C2C_ORDERING = 'C2C_ORDERING';
const C2C_ORDER_FAIL = 'C2C_order_fail'; const C2C_ORDER_FAILED = 'C2C_ORDER_FAILED';
public static function getDb() public static function getDb()
{ {
......
...@@ -17,7 +17,7 @@ class OrderController extends Controller ...@@ -17,7 +17,7 @@ class OrderController extends Controller
*/ */
public function actionAutoOrder($is_sell, $type) public function actionAutoOrder($is_sell, $type)
{ {
$redis = Yii::$app->redis; $redis = Yii::$app->redis_app;
$model = CoinCTocTransfer::find()->where(['send_result' => "0", 'is_sell' => (int)$is_sell, 'type' => (int)$type, 'query_result' => '0'])->asArray()->all(); $model = CoinCTocTransfer::find()->where(['send_result' => "0", 'is_sell' => (int)$is_sell, 'type' => (int)$type, 'query_result' => '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;
...@@ -39,11 +39,11 @@ class OrderController extends Controller ...@@ -39,11 +39,11 @@ class OrderController extends Controller
} }
$key = $val['address'] . '_' . $val['is_sell'] . '_' . $val['token_name'] . '_' . $val['market_name']; $key = $val['address'] . '_' . $val['is_sell'] . '_' . $val['token_name'] . '_' . $val['market_name'];
$cache_transfering_time = $redis->hget(CoinCTocTransfer::C2C_ORDER_TRANSFERING, $key); $cache_transfering_time = $redis->hget(CoinCTocTransfer::C2C_ORDERING, $key);
if (true == $cache_transfering_time) { if (true == $cache_transfering_time) {
continue; continue;
} }
$redis->hmset(CoinCTocTransfer::C2C_ORDER_TRANSFERING, $key, $current_time); $redis->hmset(CoinCTocTransfer::C2C_ORDERING, $key, $current_time);
go(function () use ($val, $redis, $key) { go(function () use ($val, $redis, $key) {
\Co::sleep(0.5); \Co::sleep(0.5);
...@@ -66,7 +66,7 @@ class OrderController extends Controller ...@@ -66,7 +66,7 @@ class OrderController extends Controller
$currentModel->send_result = $send_result; $currentModel->send_result = $send_result;
$currentModel->msg = 0; $currentModel->msg = 0;
$currentModel->save(); $currentModel->save();
$redis->hdel(CoinCTocTransfer::C2C_ORDER_TRANSFERING, $key); $redis->hdel(CoinCTocTransfer::C2C_ORDERING, $key);
} else { } else {
$currentModel = CoinCTocTransfer::findOne($val['id']); $currentModel = CoinCTocTransfer::findOne($val['id']);
$currentModel->msg = $result['msg']; $currentModel->msg = $result['msg'];
...@@ -80,7 +80,7 @@ class OrderController extends Controller ...@@ -80,7 +80,7 @@ class OrderController extends Controller
public function actionOrderStatus() public function actionOrderStatus()
{ {
$redis = Yii::$app->redis; $redis = Yii::$app->redis_app;
$model = CoinCTocTransfer::find()->where(['<>', 'send_result', '0'])->andWhere(['msg' => '0'])->asArray()->all(); $model = CoinCTocTransfer::find()->where(['<>', 'send_result', '0'])->andWhere(['msg' => '0'])->asArray()->all();
if (empty($model)) { if (empty($model)) {
...@@ -109,7 +109,7 @@ class OrderController extends Controller ...@@ -109,7 +109,7 @@ class OrderController extends Controller
$current_time = time(); $current_time = time();
foreach ($model as $val) { foreach ($model as $val) {
$key = $val['address'] . '_' . $val['is_sell'] . '_' . $val['token_name'] . '_' . $val['market_name']; $key = $val['address'] . '_' . $val['is_sell'] . '_' . str_replace('/', '', strtoupper($val['token_name'])) . '_' . str_replace('/', '', strtoupper($val['market_name']));
$node_params = $val['transfer_url']; $node_params = $val['transfer_url'];
$node_params = explode(':', $node_params); $node_params = explode(':', $node_params);
$node_params = [ $node_params = [
...@@ -118,25 +118,24 @@ class OrderController extends Controller ...@@ -118,25 +118,24 @@ class OrderController extends Controller
'port' => isset($node_params[2]) ? $node_params[2] : '' 'port' => isset($node_params[2]) ? $node_params[2] : ''
]; ];
$send_result = $val['send_result']; $send_result = $val['send_result'];
#$result = $service->QueryTransaction($send_result);
$switch = true; $switch = true;
$result = $this->queryTransaction($node_params, $send_result); $result = $this->queryTransaction($node_params, $send_result);
if (isset($result['result']['actionName']) && 'unknown' == $result['result']['actionName']) { if (isset($result['result']['actionName']) && 'unknown' == $result['result']['actionName']) {
$redis->hdel(CoinCTocTransfer::C2C_ORDER_FAIL, $key); $redis->hdel(CoinCTocTransfer::C2C_ORDER_FAILED, $key);
$query_result = 'success'; $query_result = 'success';
$msg = 'success'; $msg = 'success';
$height = isset($result['result']['height']) ? $result['result']['height'] : 0; $height = isset($result['result']['height']) ? $result['result']['height'] : 0;
goto doEnd; goto doEnd;
} else if (isset($result['result']['receipt']['ty']) && 2 == $result['result']['receipt']['ty']) { } else if (isset($result['result']['receipt']['ty']) && 2 == $result['result']['receipt']['ty']) {
$redis->hdel(CoinCTocTransfer::C2C_ORDER_FAIL, $key); $redis->hdel(CoinCTocTransfer::C2C_ORDER_FAILED, $key);
$query_result = 'success'; $query_result = 'success';
$msg = 'success'; $msg = 'success';
$height = isset($result['result']['height']) ? $result['result']['height'] : 0; $height = isset($result['result']['height']) ? $result['result']['height'] : 0;
goto doEnd; goto doEnd;
} else { } else {
$cache_error_time = $redis->hget(CoinCTocTransfer::C2C_ORDER_FAIL, $key); $cache_error_time = $redis->hget(CoinCTocTransfer::C2C_ORDER_FAILED, $key);
if (false == $cache_error_time) { if (false == $cache_error_time) {
$redis->hmset(CoinCTocTransfer::C2C_ORDER_FAIL, $key, $current_time); $redis->hmset(CoinCTocTransfer::C2C_ORDER_FAILED, $key, $current_time);
continue; continue;
} }
...@@ -144,7 +143,7 @@ class OrderController extends Controller ...@@ -144,7 +143,7 @@ class OrderController extends Controller
continue; continue;
} }
$redis->hdel(CoinCTocTransfer::C2C_ORDER_FAIL, $key); $redis->hdel(CoinCTocTransfer::C2C_ORDER_FAILED, $key);
if (-1 == $result['code']) { if (-1 == $result['code']) {
$msg = $result['msg']; $msg = $result['msg'];
$query_result = $result['code']; $query_result = $result['code'];
...@@ -180,8 +179,8 @@ class OrderController extends Controller ...@@ -180,8 +179,8 @@ class OrderController extends Controller
} }
} }
if (true == $clear) { if (true == $clear) {
$key = 'C2C_' . $val['address'] . '_' . $val['is_sell'] . '_' . $val['token_name'] . '-' . $val['market_name']; $key = 'C2C_' . $val['is_sell'] . '_' . str_replace('/', '', strtoupper($val['token_name'])) . '_' . str_replace('/', '', strtoupper($val['market_name']));
$redis->del($key); $redis->hdel($key, $val['address']);
} }
} }
......
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