|
|
@@ -20,7 +20,7 @@ date_default_timezone_set("PRC");
|
|
|
|
|
|
//初始化 (创建了一个tcp服务)
|
|
|
|
|
|
-$workerTcp = new Worker("tcp://127.0.0.1:12345");
|
|
|
+$workerTcp = new Worker("tcp://0.0.0.0:12346");
|
|
|
|
|
|
$workerTcp->name = "TCP";
|
|
|
|
|
|
@@ -28,7 +28,7 @@ $workerTcp::$logFile = __DIR__.'/workerman.log';
|
|
|
$num = 1;
|
|
|
|
|
|
$workerTcp->onWorkerStart = function ($workerTcp) {
|
|
|
-
|
|
|
+ global $dbMt5;
|
|
|
global $db; //数据库
|
|
|
global $con; //访问本地创建的webserver服务器
|
|
|
global $connection_to_tcp; //访问接口服务器(远程的)
|
|
|
@@ -51,10 +51,10 @@ $workerTcp->onWorkerStart = function ($workerTcp) {
|
|
|
$seqnum = 1;
|
|
|
getToken();
|
|
|
$db = new Connection(DB_HOST, DB_PORT, DB_USERNAME, DB_PASSWORD, DB_NAME); //本地数据库的配置
|
|
|
-
|
|
|
+ $dbMt5 = new Connection("43.249.29.218","23891","mt5devel","Pn9OZuvfmJFGZf4qsDQuYA32q3ryVPV0","mt5backup");
|
|
|
|
|
|
//访问本地的websocket服务器=============================================
|
|
|
- $con = new AsyncTcpConnection("ws://127.0.0.1:12380");
|
|
|
+ $con = new AsyncTcpConnection("ws://127.0.0.1:12381");
|
|
|
$con->onConnect = function ($on) {
|
|
|
global $index;
|
|
|
global $rollback_index;
|
|
|
@@ -75,7 +75,7 @@ $workerTcp->onWorkerStart = function ($workerTcp) {
|
|
|
global $send_data;
|
|
|
global $connection_count;
|
|
|
$msg = json_decode($data, true);
|
|
|
-
|
|
|
+
|
|
|
if ($msg['type'] == "heartbeat") {
|
|
|
$connection_count = $msg["connection_count"];
|
|
|
}
|
|
|
@@ -83,7 +83,7 @@ $workerTcp->onWorkerStart = function ($workerTcp) {
|
|
|
sendTo_tcp_Server($msg);
|
|
|
}
|
|
|
if ($msg['type'] == "set_current_order") { //设置当前跟单订单
|
|
|
-
|
|
|
+
|
|
|
sendTo_tcp_Server($msg);
|
|
|
}
|
|
|
if($msg['type'] == 'set_current_position'){
|
|
|
@@ -101,7 +101,7 @@ $workerTcp->onWorkerStart = function ($workerTcp) {
|
|
|
}else{
|
|
|
$message = 0;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$insert_data = $msg['data'];
|
|
|
$insert_data = array_chunk($insert_data, 12); //每十个是一个数组
|
|
|
$send_data = $insert_data; //传递的数据
|
|
|
@@ -169,99 +169,100 @@ $workerTcp->onWorkerStart = function ($workerTcp) {
|
|
|
};
|
|
|
|
|
|
|
|
|
- $connection_to_tcp->onClose = function($connection_to_tcp)
|
|
|
- {
|
|
|
+ $connection_to_tcp->onClose = function($connection_to_tcp)
|
|
|
+ {
|
|
|
|
|
|
- echo "connection closed\n";
|
|
|
- log_file("to_tcp connection closed\n");
|
|
|
+ echo "connection closed\n";
|
|
|
+ log_file("to_tcp connection closed\n");
|
|
|
|
|
|
- // $connection_to_tcp->reConnect(); //执行连接
|
|
|
- };
|
|
|
+ // $connection_to_tcp->reConnect(); //执行连接
|
|
|
+ };
|
|
|
|
|
|
- $connection_to_tcp->onError = function($connection_to_tcp, $code, $msg)
|
|
|
- {
|
|
|
- echo "Error code:$code msg:$msg\n";
|
|
|
- };
|
|
|
+ $connection_to_tcp->onError = function($connection_to_tcp, $code, $msg)
|
|
|
+ {
|
|
|
+ echo "Error code:$code msg:$msg\n";
|
|
|
+ };
|
|
|
|
|
|
|
|
|
|
|
|
- // 向远处的服务器发送信息============================================================
|
|
|
+ // 向远处的服务器发送信息============================================================
|
|
|
|
|
|
- $connection_to_tcp->connect(); //执行连接
|
|
|
- //发送给 接口tcp服务器 心跳========================================================
|
|
|
+ $connection_to_tcp->connect(); //执行连接
|
|
|
+ //发送给 接口tcp服务器 心跳========================================================
|
|
|
|
|
|
- Timer::add(30, function () use ($connection_to_tcp) {
|
|
|
+ Timer::add(30, function () use ($connection_to_tcp) {
|
|
|
|
|
|
- //定时发送心跳信息
|
|
|
- $connection_to_tcp->send('{"type":"ping"}' . "\n");
|
|
|
+ //定时发送心跳信息
|
|
|
+ $connection_to_tcp->send('{"type":"ping"}' . "\n");
|
|
|
|
|
|
- });
|
|
|
+ });
|
|
|
|
|
|
|
|
|
|
|
|
- // 发送给 webserver 服务器 心跳=====================================================
|
|
|
- Timer::add(1, function () use ($con,$connection_to_tcp) {
|
|
|
- // 定时发送心跳信息
|
|
|
- global $connection_count;
|
|
|
+ // 发送给 webserver 服务器 心跳=====================================================
|
|
|
+ Timer::add(1, function () use ($con,$connection_to_tcp) {
|
|
|
+ // 定时发送心跳信息
|
|
|
+ global $connection_count;
|
|
|
|
|
|
- if($connection_count){
|
|
|
- if($connection_count>1){
|
|
|
+ if($connection_count){
|
|
|
+ if($connection_count>1){
|
|
|
|
|
|
- $connection_to_tcp->connect(); //客户端上线重新连接接口
|
|
|
- $connection_to_tcp->onConnect = function ($connection_to_tcp) {
|
|
|
- // 发送心跳信息
|
|
|
- $connection_to_tcp->send('{"type":"ping"}' . "\n");
|
|
|
- };
|
|
|
- // 接口服务器向我发送的信息
|
|
|
- $connection_to_tcp->onMessage = function ($connection_to_tcp, $data) {
|
|
|
+ $connection_to_tcp->connect(); //客户端上线重新连接接口
|
|
|
+ $connection_to_tcp->onConnect = function ($connection_to_tcp) {
|
|
|
+ // 发送心跳信息
|
|
|
+ $connection_to_tcp->send('{"type":"ping"}' . "\n");
|
|
|
+ };
|
|
|
+ // 接口服务器向我发送的信息
|
|
|
+ $connection_to_tcp->onMessage = function ($connection_to_tcp, $data) {
|
|
|
|
|
|
- tcpMessHandle($data);
|
|
|
- };
|
|
|
+ tcpMessHandle($data);
|
|
|
+ };
|
|
|
|
|
|
- $connection_to_tcp->onClose = function($connection_to_tcp)
|
|
|
- {
|
|
|
+ $connection_to_tcp->onClose = function($connection_to_tcp)
|
|
|
+ {
|
|
|
|
|
|
- echo "connection closed\n";
|
|
|
- log_file("to_tcp connection closed\n");
|
|
|
+ echo "connection closed\n";
|
|
|
+ log_file("to_tcp connection closed\n");
|
|
|
|
|
|
- // $connection_to_tcp->reConnect(); //执行连接
|
|
|
- };
|
|
|
+ // $connection_to_tcp->reConnect(); //执行连接
|
|
|
+ };
|
|
|
|
|
|
- $connection_to_tcp->onError = function($connection_to_tcp, $code, $msg)
|
|
|
- {
|
|
|
- echo "Error code:$code msg:$msg\n";
|
|
|
- };
|
|
|
+ $connection_to_tcp->onError = function($connection_to_tcp, $code, $msg)
|
|
|
+ {
|
|
|
+ echo "Error code:$code msg:$msg\n";
|
|
|
+ };
|
|
|
|
|
|
- }else{
|
|
|
- //客户端不在线
|
|
|
- $connection_to_tcp->close();
|
|
|
- }
|
|
|
+ }else{
|
|
|
+ //客户端不在线
|
|
|
+ $connection_to_tcp->close();
|
|
|
}
|
|
|
- $con->send(json_encode(['type' => 'heartbeat']). "\n");
|
|
|
- });
|
|
|
+ }
|
|
|
+ $con->send(json_encode(['type' => 'heartbeat']). "\n");
|
|
|
+ });
|
|
|
|
|
|
|
|
|
- Timer::add(300,function(){
|
|
|
- refreshToken();
|
|
|
- global $token;
|
|
|
- var_dump($token);
|
|
|
- });
|
|
|
- // 心跳检测(TCP 所有客户端) 心跳===================================================
|
|
|
- Timer::add(1, function () use ($workerTcp) {
|
|
|
- $time_now = time(); //当前时间
|
|
|
- foreach ($workerTcp->connections as $connection) {
|
|
|
- // 有可能该connection还没收到过消息,则lastMessageTime设置为当前时间
|
|
|
- if (empty($connection->lastMessageTime)) {
|
|
|
- $connection->lastMessageTime = $time_now;
|
|
|
- continue;
|
|
|
- }
|
|
|
- // 上次通讯时间间隔大于心跳间隔,则认为客户端已经下线,关闭连接
|
|
|
- if ($time_now - $connection->lastMessageTime > HEARTBEAT_TIME) {
|
|
|
+ /*Timer::add(,function(){
|
|
|
+ global $token;
|
|
|
+ refreshToken();
|
|
|
|
|
|
- $connection->close();
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
+
|
|
|
+ });*/
|
|
|
+ // 心跳检测(TCP 所有客户端) 心跳===================================================
|
|
|
+ Timer::add(1, function () use ($workerTcp) {
|
|
|
+ $time_now = time(); //当前时间
|
|
|
+ foreach ($workerTcp->connections as $connection) {
|
|
|
+ // 有可能该connection还没收到过消息,则lastMessageTime设置为当前时间
|
|
|
+ if (empty($connection->lastMessageTime)) {
|
|
|
+ $connection->lastMessageTime = $time_now;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 上次通讯时间间隔大于心跳间隔,则认为客户端已经下线,关闭连接
|
|
|
+ if ($time_now - $connection->lastMessageTime > HEARTBEAT_TIME) {
|
|
|
+
|
|
|
+ $connection->close();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
};
|
|
|
|
|
|
@@ -330,11 +331,11 @@ function tcpMessHandle($data)
|
|
|
var_dump($msg);
|
|
|
if ($msg['type'] == "get_order_record") { //查询订单状态
|
|
|
$recv_buffer = "";
|
|
|
- /* if (!isset($msg['seqnum'])) {
|
|
|
- return false;
|
|
|
- }
|
|
|
- ack($msg['seqnum']);
|
|
|
- $seqnum++;*/
|
|
|
+ /* if (!isset($msg['seqnum'])) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ ack($msg['seqnum']);
|
|
|
+ $seqnum++;*/
|
|
|
}
|
|
|
if ($msg['type'] == "set_current_order") { //设置当前跟单订单
|
|
|
$recv_buffer = "";
|
|
|
@@ -342,27 +343,27 @@ function tcpMessHandle($data)
|
|
|
return false;
|
|
|
}*/
|
|
|
sendToWebServer($msg);
|
|
|
- /* ack($msg['seqnum']);
|
|
|
- $seqnum++;*/
|
|
|
+ /* ack($msg['seqnum']);
|
|
|
+ $seqnum++;*/
|
|
|
|
|
|
}
|
|
|
|
|
|
if ($msg['type'] == "insert") { //Insert请求 (有数据库操作,插入)
|
|
|
$recv_buffer = "";
|
|
|
- /* if (!isset($msg['seqnum'])) {
|
|
|
- return false;
|
|
|
- }
|
|
|
- if ($seqnum != $msg["seqnum"]) {
|
|
|
- return false;
|
|
|
- }*/
|
|
|
+ /* if (!isset($msg['seqnum'])) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if ($seqnum != $msg["seqnum"]) {
|
|
|
+ return false;
|
|
|
+ }*/
|
|
|
global $message;
|
|
|
global $token;
|
|
|
|
|
|
$index++; //将数据加一
|
|
|
$total = count($send_data); //总数据的长度
|
|
|
$insert_data = $msg['dest'];
|
|
|
- /* ack($msg['seqnum']);
|
|
|
- $seqnum++;*/
|
|
|
+ /* ack($msg['seqnum']);
|
|
|
+ $seqnum++;*/
|
|
|
if ($index < $total) {
|
|
|
send_insert($send_data, $index, $send_order);
|
|
|
} else {
|
|
|
@@ -381,17 +382,17 @@ function tcpMessHandle($data)
|
|
|
} else {
|
|
|
if($message == 1){
|
|
|
if($value['error_code'] == 0){
|
|
|
- $arr .= "(" . "'{$msg['type']}'" . "," . $msg['orig_order'] . "," . $msg['orig_login'] . "," . $value['dest_login'] . "," . $value['dest_order'] . "," . $value['percentage'] . "," . $value['profit'] . "," . $value['error_code'] . "," . $time . ")" . ",";
|
|
|
- $delete_sql .= "(dest_login = $value[dest_login] and orig_order = $msg[orig_order] and error_code != 0) or ";
|
|
|
+ $arr .= "(" . "'{$msg['type']}'" . "," . $msg['orig_position'] . "," . $msg['orig_login'] . "," . $value['dest_login'] . "," . $value['dest_position'] . "," . $value['percentage'] . "," . $value['profit'] . "," . $value['error_code'] . "," . $time . ")" . ",";
|
|
|
+ $delete_sql .= "(dest_login = $value[dest_login] and orig_order = $msg[orig_position] and error_code != 0) or ";
|
|
|
$login .= $value['dest_login'].",";
|
|
|
}
|
|
|
}else{
|
|
|
|
|
|
- $arr .= "(" . "'{$msg['type']}'" . "," . $msg['orig_order'] . "," . $msg['orig_login'] . "," . $value['dest_login'] . "," . $value['dest_order'] . "," . $value['percentage'] . "," . $value['profit'] . "," . $value['error_code'] . "," . $time . ")" . ",";
|
|
|
- if($value['error_code'] == 0){
|
|
|
+ $arr .= "(" . "'{$msg['type']}'" . "," . $msg['orig_position'] . "," . $msg['orig_login'] . "," . $value['dest_login'] . "," . $value['dest_position'] . "," . $value['percentage'] . "," . $value['profit'] . "," . $value['error_code'] . "," . $time . ")" . ",";
|
|
|
+ if($value['error_code'] == 0){
|
|
|
|
|
|
- $login .= $value['dest_login'].",";
|
|
|
- }
|
|
|
+ $login .= $value['dest_login'].",";
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -404,6 +405,7 @@ function tcpMessHandle($data)
|
|
|
$arr = substr($arr, 0, -1);
|
|
|
$sql = sprintf("INSERT INTO %s(%s) VALUES %s ", "order_progress", $filed, $arr);
|
|
|
$sql2 = sprintf("INSERT INTO %s(%s) VALUES %s", "order_save", $filed, $arr);
|
|
|
+
|
|
|
if($message == 1){
|
|
|
if ($delete_sql != 'delete from order_progress where ') {
|
|
|
$delete_sql = trim($delete_sql, 'or ');
|
|
|
@@ -417,32 +419,33 @@ function tcpMessHandle($data)
|
|
|
$db->query($sql2);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
if($login){
|
|
|
$logins = substr($login,0,-1);
|
|
|
balancefix($logins);
|
|
|
|
|
|
}
|
|
|
|
|
|
- /* if($message == 1){
|
|
|
+ if($message == 1){
|
|
|
$msg['type'] = "ErrorInsert";
|
|
|
}else{
|
|
|
$msg['type'] = "insert";
|
|
|
- }*/
|
|
|
+ }
|
|
|
sendToWebServer($msg); //发送给前端
|
|
|
}
|
|
|
if ($msg['type'] == "rollback") { //Rollback请求 (有数据库操作,插入并看看是否需要直接返回给前端)
|
|
|
$recv_buffer = "";
|
|
|
- /* if (!isset($msg['seqnum'])) {
|
|
|
- return false;
|
|
|
- }
|
|
|
- if ($seqnum != $msg['seqnum']) {
|
|
|
- return false;
|
|
|
- }*/
|
|
|
+ /* if (!isset($msg['seqnum'])) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if ($seqnum != $msg['seqnum']) {
|
|
|
+ return false;
|
|
|
+ }*/
|
|
|
$rollback_index++; //将数据加一
|
|
|
$total = count($rollback_data); //总数据的长度
|
|
|
$rollbackdata = $msg['desc'];
|
|
|
- /* ack($msg["seqnum"]);
|
|
|
- $seqnum++;*/
|
|
|
+ /* ack($msg["seqnum"]);
|
|
|
+ $seqnum++;*/
|
|
|
if ($rollback_index < $total) {
|
|
|
send_rollback($rollback_data, $rollback_index);
|
|
|
|
|
|
@@ -456,7 +459,13 @@ function tcpMessHandle($data)
|
|
|
|
|
|
$update = [];
|
|
|
$login = '';
|
|
|
+ foreach($rollbackdata as $key=>$value){
|
|
|
+ $rollbackdata[$key]['dest_orders'] = json_encode($rollbackdata[$key]['dest_orders'],JSON_FORCE_OBJECT);
|
|
|
+ $rollbackdata[$key]['dest_deals'] = json_encode($rollbackdata[$key]['dest_orders'],JSON_FORCE_OBJECT);
|
|
|
+ }
|
|
|
+
|
|
|
foreach ($rollbackdata as $key => $value) {
|
|
|
+
|
|
|
if ($value['error_code'] == -2) {
|
|
|
return false;
|
|
|
} else {
|
|
|
@@ -464,15 +473,14 @@ function tcpMessHandle($data)
|
|
|
$time = time();
|
|
|
if ($value['error_code'] == 0) {
|
|
|
|
|
|
- $delete_sql .= "(dest_login = $value[dest_login] and orig_order = $msg[orig_order]) or ";
|
|
|
- $value['dest_orders'] = json_encode($value['dest_orders']);
|
|
|
- $value['dest_deals'] = json_encode($value['dest_deals']);
|
|
|
- $insert_sql .= "('$msg[type]',$msg[orig_order],$msg[orig_login],$value[dest_login], $value[dest_orders],$value[dest_deals],$value[percentage],$value[error_code],$time),";
|
|
|
- $login .= $value['dest_login'].",";
|
|
|
+ $delete_sql .= "(dest_login = $value[dest_login] and orig_order = $msg[orig_position]) or ";
|
|
|
+ var_dump($value['dest_login']);
|
|
|
+ $insert_sql .= "('$msg[type]',$msg[orig_position],$msg[orig_login],'$value[dest_login]','$value[dest_orders]',$value[dest_deals],$value[percentage],$value[error_code],$time),";
|
|
|
+ $login .= $value['dest_login'].",";
|
|
|
} else {
|
|
|
//不成功把参数组装数组以便批量修改
|
|
|
$rollbackdata[$key]['type'] = $msg['type'];
|
|
|
- $rollbackdata[$key]['orig_order'] = $msg['orig_order'];
|
|
|
+ $rollbackdata[$key]['orig_order'] = $msg['orig_position'];
|
|
|
$rollbackdata[$key]['orig_login'] = $msg['orig_login'];
|
|
|
$rollbackdata[$key]['addtime'] = time();
|
|
|
array_push($update, $value);
|
|
|
@@ -481,9 +489,12 @@ function tcpMessHandle($data)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
//执行批量修改数据
|
|
|
if (!empty($update)) {
|
|
|
- $sql = batchUpdate($rollbackdata, 'dest_login', ['orig_order' => $msg['orig_order']],"order_progress");
|
|
|
+ $sql = batchUpdate($rollbackdata, 'dest_login', ['orig_order' => $msg['orig_position']],"order_progress");
|
|
|
$db->query($sql);
|
|
|
}
|
|
|
|
|
|
@@ -494,24 +505,28 @@ function tcpMessHandle($data)
|
|
|
$db->query($delete_sql);
|
|
|
$db->query($insert_sql);
|
|
|
if($login){
|
|
|
+
|
|
|
$logins = substr($login,0,-1);
|
|
|
+ var_dump($logins);
|
|
|
balancefix($logins);
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if ($msg['type'] == "except_rollback") { //retry表中的Rollback请求 (有数据库操作,插入并看看是否需要直接返回给前端)
|
|
|
$recv_buffer = "";
|
|
|
- /* if (!isset($msg['seqnum'])) {
|
|
|
- return false;
|
|
|
- }
|
|
|
- if ($seqnum != $msg['seqnum']) {
|
|
|
- return false;
|
|
|
- }*/
|
|
|
- /* ack($msg["seqnum"]);
|
|
|
- $seqnum++;*/
|
|
|
+ /* if (!isset($msg['seqnum'])) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if ($seqnum != $msg['seqnum']) {
|
|
|
+ return false;
|
|
|
+ }*/
|
|
|
+ /* ack($msg["seqnum"]);
|
|
|
+ $seqnum++;*/
|
|
|
$retry_rollback_index++; //将数据加一
|
|
|
$total = count($retry_rollback_data); //总数据的长度
|
|
|
if ($retry_rollback_index < $total) {
|
|
|
@@ -561,14 +576,14 @@ function tcpMessHandle($data)
|
|
|
|
|
|
|
|
|
if ($msg['type'] == "retry") { //
|
|
|
- /* if (!isset($msg['seqnum'])) {
|
|
|
- return false;
|
|
|
- }
|
|
|
- if ($seqnum != $msg['seqnum']) {
|
|
|
- return false;
|
|
|
- }*/
|
|
|
- /* ack($msg["seqnum"]);
|
|
|
- $seqnum++;*/
|
|
|
+ /* if (!isset($msg['seqnum'])) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if ($seqnum != $msg['seqnum']) {
|
|
|
+ return false;
|
|
|
+ }*/
|
|
|
+ /* ack($msg["seqnum"]);
|
|
|
+ $seqnum++;*/
|
|
|
$retry_index++; //将数据加一
|
|
|
$total = count($retry_data); //总数据的长度
|
|
|
if ($retry_index < $total) {
|
|
|
@@ -634,7 +649,7 @@ function sendToWebServer($data)
|
|
|
{
|
|
|
global $con;
|
|
|
log_file($data);
|
|
|
- $con->send(json_encode($data) . "\n");
|
|
|
+ $con->send(json_encode($data) . "\n");
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -643,18 +658,18 @@ function sendToWebServer($data)
|
|
|
function sendTo_tcp_Server($data){
|
|
|
global $connection_to_tcp;
|
|
|
global $seqnum;
|
|
|
- // $data['seqnum'] = $seqnum;
|
|
|
+ // $data['seqnum'] = $seqnum;
|
|
|
log_file($data);
|
|
|
echo "发送给接口的信息";
|
|
|
var_dump($data);
|
|
|
- $connection_to_tcp->send(json_encode($data) . "\n");
|
|
|
+ $connection_to_tcp->send(json_encode($data) . "\n");
|
|
|
}
|
|
|
|
|
|
// insert 数据
|
|
|
function send_insert($data,$index=0,$order){
|
|
|
-
|
|
|
+
|
|
|
$send['type'] = "insert_some";
|
|
|
- $send['orig_order'] = (int)$order; //订单号码
|
|
|
+ $send['orig_position'] = (int)$order; //订单号码
|
|
|
$send['dest'] =[];
|
|
|
$send_data = $data[$index]; //将分割的数据交给全局变量
|
|
|
foreach ($send_data as $key => $value) {
|
|
|
@@ -663,32 +678,31 @@ function send_insert($data,$index=0,$order){
|
|
|
array_push($send['dest'],$send_child);
|
|
|
}
|
|
|
|
|
|
- sendTo_tcp_Server($send);
|
|
|
+ sendTo_tcp_Server($send);
|
|
|
}
|
|
|
|
|
|
// rollback 数据
|
|
|
function send_rollback($data,$index=0){
|
|
|
|
|
|
- global $db;
|
|
|
+ global $dbMt5;
|
|
|
$send['type'] = "rollback_some";
|
|
|
- $send['orig_order'] = (int)$data[$index][0]['orig_order']; //订单号码
|
|
|
+ $send['orig_position'] = (int)$data[$index][0]['orig_order']; //订单号码
|
|
|
$send['orig_login'] = (int)$data[$index][0]['orig_login']; //登录者账号
|
|
|
$send['desc'] =[];
|
|
|
$send_child =[];
|
|
|
-
|
|
|
- $send_data = $data[$index];//将分割的数据交给全局变量
|
|
|
-
|
|
|
+ $send_data = $data[$index]; //将分割的数据交给全局变量
|
|
|
foreach ($send_data as $key => $value) {
|
|
|
- $order = $db->query("SELECT `Order` FROM mt5_orders_history WHERE PositionID = {$value['dest_order']}");
|
|
|
- $deals = $db->query("select `Deal` FROM mt5_deals WHERE PositionID = {$value['dest_order']}");
|
|
|
+ $order = $dbMt5->query("SELECT `Order` FROM mt5_orders_history WHERE PositionID = {$value['dest_order']}");
|
|
|
+ $deals = $dbMt5->query("SELECT `Deal` FROM mt5_deals WHERE PositionID = {$value['dest_order']}");
|
|
|
$send_child['dest_login'] = (int)$value['dest_login']; //登录的账号
|
|
|
- $send_child['dest_orders'] = array_column($order,"Order"); //订单号
|
|
|
- $send_child['dest_deals'] = array_column($deals,"Deal");
|
|
|
- $send_child['percentage'] = (int)$value['percentage']; //手数
|
|
|
+ $send_child['dest_orders'] = array_column($order,'Order'); //订单号
|
|
|
+ $send_child['dest_deals'] = array_column($deals,'Deal');
|
|
|
+ $send_child['percentage'] = (int)$value['percentage'];
|
|
|
array_push($send['desc'],$send_child);
|
|
|
}
|
|
|
- var_dump($send);
|
|
|
- // sendTo_tcp_Server($send);
|
|
|
+
|
|
|
+
|
|
|
+ sendTo_tcp_Server($send);
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -711,7 +725,7 @@ function send_retry_rollback($data,$index=0){
|
|
|
}
|
|
|
echo "发送的数据";
|
|
|
var_dump($send);
|
|
|
- sendTo_tcp_Server($send);
|
|
|
+ sendTo_tcp_Server($send);
|
|
|
}
|
|
|
|
|
|
// retry表中的retry操作
|
|
|
@@ -732,7 +746,7 @@ function send_retry($data,$index=0){
|
|
|
}
|
|
|
echo "发送的数据";
|
|
|
var_dump($send);
|
|
|
- sendTo_tcp_Server($send);
|
|
|
+ sendTo_tcp_Server($send);
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -782,10 +796,11 @@ function parseParams($params)
|
|
|
function getToken()
|
|
|
{
|
|
|
global $token;
|
|
|
-
|
|
|
- $params = ['request'=>'login','login'=>LOGIN,'password'=>PASSWORD];
|
|
|
- $data = http(BALANCE_URL,$params);
|
|
|
+ $requestApi = "/api/request_token";
|
|
|
+ $params = ['login'=>LOGIN,'password'=>PASSWORD];
|
|
|
+ $data = http(BALANCE_URL.$requestApi,$params,"POST");
|
|
|
$data = json_decode($data,true);
|
|
|
+ var_dump($requestApi,$data);
|
|
|
$token = $data['token'];
|
|
|
|
|
|
}
|
|
|
@@ -798,15 +813,22 @@ function refreshToken()
|
|
|
$data = http(BALANCE_URL,$params);
|
|
|
$data = json_decode($data,true);
|
|
|
$token = $data['token'];
|
|
|
+
|
|
|
}
|
|
|
|
|
|
function balancefix($logins)
|
|
|
{
|
|
|
global $token;
|
|
|
-
|
|
|
- $params = ['logins'=>$logins,'request'=>'balancefix','token'=>$token];
|
|
|
- $data = http(BALANCE_URL,$params);
|
|
|
+ $requestApi = "/api/balance_fix";
|
|
|
+ $params = ['logins'=>$logins,'token'=>$token];
|
|
|
+ $data = http(BALANCE_URL.$requestApi,$params,"POST");
|
|
|
+ $data = json_decode($data,true);
|
|
|
var_dump($data);
|
|
|
+ if(!$data){
|
|
|
+ getToken();
|
|
|
+ balancefix($logins);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|
|
|
//发送curl
|