소스 검색

订单查询未平仓也能查出来问题 以及前端insert后再刷新继续看是否有未insert的

Candy 6 년 전
부모
커밋
c9ee3e9755

+ 4 - 4
thinkphp/TCPserver/config.php

@@ -18,12 +18,12 @@ define('DB_PORT', 3306);
 define('DB_USERNAME', 'root');
 define('DB_PASSWORD', 'abc123');*/
 
-define('DB_NAME', 'mt4r111');
-define('DB_HOST', '192.168.5.110');
+define('DB_NAME', 'monk_live');
+define('DB_HOST', '47.88.237.229');
 //define('DB_HOST', '192.168.5.104');
 define('DB_PORT', 3306);
-define('DB_USERNAME', 'elmo');
-define('DB_PASSWORD', 'Elmo@666');
+define('DB_USERNAME', 'root');
+define('DB_PASSWORD', 'titan666');
 
 /*define('DB_NAME', 'view');
 define('DB_HOST', '127.0.0.1');

+ 1 - 0
thinkphp/TCPserver/webserver.php

@@ -63,6 +63,7 @@ $workerWs->onMessage = function ($connection, $data) {
 
                     break;
                 case "login":                                  //异步客户端的登录(标识身份)
+                    var_dump($msg['uid']);
                     $connection->uid = $msg['uid'];
                     break;
     

+ 13 - 0
thinkphp/TCPserver/workerman.log

@@ -1678,3 +1678,16 @@ Stack trace:
 #9 D:\view1\thinkphp\TCPserver\tcpServer.php(1054): Workerman\Worker::runAll()
 #10 {main}
 2019-06-14 15:19:45 pid:1 Worker process terminated
+2019-10-21 15:14:03 pid:1 PDOException: SQLSTATE[HY000] [1045] Access denied for user 'elmo'@'192.168.5.21' (using password: YES) in D:\code\kshmt4\thinkphp\vendor\mysql\src\Connection.php:1711
+Stack trace:
+#0 D:\code\kshmt4\thinkphp\vendor\mysql\src\Connection.php(1711): PDO->__construct('mysql:dbname=mt...', 'elmo', 'Elmo@666', Array)
+#1 D:\code\kshmt4\thinkphp\vendor\mysql\src\Connection.php(1698): Workerman\MySQL\Connection->connect()
+#2 D:\code\kshmt4\thinkphp\TCPserver\tcpServer.php(50): Workerman\MySQL\Connection->__construct('192.168.5.110', 3306, 'elmo', 'Elmo@666', 'mt4r111')
+#3 [internal function]: {closure}(Object(Workerman\Worker))
+#4 D:\code\kshmt4\thinkphp\vendor\workerman\Worker.php(2220): call_user_func(Object(Closure), Object(Workerman\Worker))
+#5 D:\code\kshmt4\thinkphp\vendor\workerman\Worker.php(1225): Workerman\Worker->run()
+#6 D:\code\kshmt4\thinkphp\vendor\workerman\Worker.php(1168): Workerman\Worker::forkWorkersForWindows()
+#7 D:\code\kshmt4\thinkphp\vendor\workerman\Worker.php(478): Workerman\Worker::forkWorkers()
+#8 D:\code\kshmt4\thinkphp\TCPserver\tcpServer.php(752): Workerman\Worker::runAll()
+#9 {main}
+2019-10-21 15:14:04 pid:1 Worker process terminated

+ 6 - 6
thinkphp/application/database.php

@@ -15,20 +15,20 @@ return [
     // 服务器地址
    //'hostname'        => 'st.titanera.com',
     //'hostname'        => '192.168.5.104',
-    'hostname'        => '192.168.5.110',
+    'hostname'        => '103.85.110.232',
    // 'hostname'        => '',
     // 数据库名
-    //'database'        => 'monk_live',
-    'database'        => 'mt4r111',
+    'database'        => 'demo',
+
     //'database'        => 'view',
 
     // 用户名
-    //'username'        => 'root',
-    'username'        => 'elmo',
+    'username'        => 'root',
+
     //'username'        => 'root',
     // 密码
     //'password'        => 'abc123',
-    'password'        => 'Elmo@666',
+    'password'        => '151766',
     //'password'        => 'root',
     // 端口
     'hostport'        => '',

+ 2 - 2
thinkphp/application/index/controller/Index.php

@@ -4,7 +4,7 @@ use think\Controller;
 use think\Request;
 use think\Db;
 use think\Session;
-class Index extends ApiCommon
+class Index extends Controller
 {
 
 
@@ -103,7 +103,7 @@ class Index extends ApiCommon
 
             $data = input(); //获取订单的信息
 
-            $result = Db::name('mt4_trades')->where(['TICKET'=>$data['orderid']])->find();  //从数据库获取到订单信息
+            $result = Db::name('mt4_trades')->where(['TICKET'=>$data['orderid']])->where('CMD','in','0,1')->where('CLOSE_TIME','> time','1970-01-01')->find();  //从数据库获取到订单信息
             if($result){
 
                 return json(['code'=>'00','data'=>$result,'msg'=>'获得数据成功']);

+ 1 - 1
vue-admin-master/config/index.js

@@ -29,7 +29,7 @@ module.exports = {
     assetsPublicPath: '/',
     proxyTable: {
       '/api': {
-        target:'http://www.yytp.com/', //接口地址
+        target:'http://www.mt4service.com/', //接口地址
         // secure: false, // 如果是https接口,需要配置这个参数
         changeOrigin:true, //是否允许跨域
         pathRewrite:{

+ 3 - 3
vue-admin-master/src/views/Home.vue

@@ -11,7 +11,7 @@
 			</el-col>
 			<el-col :span="8">
 				<div  style="color:red;font-size:30px;">
-					真仓----(Live)
+					DEMO----(Live)
 				</div>
 			</el-col>
 			<el-col :span="4" class="userinfo">
@@ -85,7 +85,7 @@
 	export default {
 		data() {
 			return {
-				sysName:'可视化',
+				sysName:'MT4可视化',
 				collapsed:false,             //是否折叠
 				sysUserName: '',             //用户名
 				sysUserAvatar: '',           //用户头像
@@ -178,7 +178,7 @@
 		.header {
 			height: 60px;
 			line-height: 60px;
-			background: $color-primary;
+			background: red;
 			color:#fff;
 			.userinfo {
 				text-align: right;

+ 169 - 16
vue-admin-master/src/views/nav1/Table.vue

@@ -206,8 +206,8 @@
 
 
 <!-- 遮罩框的显示 -->
-    <el-dialog  title="进度提示"   width="30%" :visible.sync="dialogVisible"  :before-close="handleClose" :show-close='false' >
-		 <el-progress type="circle" :percentage="child_num" ></el-progress>
+    <el-dialog  title="进度提示"   width="60%" :visible.sync="dialogVisible"  :before-close="handleClose" :show-close='false' >
+		 <el-progress type="circle" :percentage="child_num" :text-inside="true" :stroke-width="18"></el-progress>
     </el-dialog>
 <!-- 遮罩框的显示 -->	
 
@@ -233,7 +233,8 @@
 					type:'',                    //信息的类型 (发起请求的类型)
 					volume:'',                  //存储跟踪订单的volume信息
 				},
-
+				isertArray: [],
+				isInsert:false,
 				users: [],                      //请求的所有用户
 				userdata:[],                    //对用户数据进行(分割)
 				total: 0,                       //用户总数
@@ -241,9 +242,7 @@
                 page_size:100,                   //用户分页的数目
 				listLoading: false,             //用户表的loading效果
 				sels: [],                       //用户表 列表选中列
-
-
-
+				allInsert: null,                //用来判断是否是全部插入
                 dialogVisible:false,            //控制是否显示锁屏
                 child_num:0,                    //控制进度条的进度
                 
@@ -424,6 +423,7 @@
 			},
 			// insert表中选择的数据
 			selsChange: function (sels) {
+				this.isInsert = true;
 				this.sels = sels;
 			},
 			// rollback表中选择的数据
@@ -446,12 +446,14 @@
                 this.loading_insert = false;
 				this.listLoading = true;
 				var __that__ = this; 
+
 				this.$api.post('/api/index/index/getuser',para,response => {
 					if (response.status == 200 && response.status < 300) {
 						let { msg, code ,user} = response.data;
 						if(code=="00"){
 
 							this.total = user.length;
+						
 							//对用户中的数据进行了计算
                             user.forEach(element => {
 								if(element.BALANCE<__that__.filters.step  && element.BALANCE>__that__.filters.tolerance){
@@ -469,8 +471,9 @@
 							this.listLoading = false;
 							this.display_table = true;
 						}else{
-
+							
 							// 失败就清除所有的用户信息
+							this.total = 0;
 							this.listLoading = false;
 							this.users=[];
 							this.userdata=[];
@@ -536,26 +539,48 @@
 							if (response.status == 200 && response.status < 300) {
 								let { msg, code } = response.data;
 								if(code=="00"){
-                                   console.log('插入函数');
+								   console.log('插入函数');
+								   console.log(_this.isInsert);
+								   
+								  
+								  
 								    for (let index = 0; index < _this.sels.length; index++) {
-										const element = _this.sels[index];
+											const element = _this.sels[index];
+										if(_this.isInsert == true){
+											_this.isertArray.push(element.LOGIN);
+										}
+									
 										if(element.state !=0){
 											_this.$message.error("含有做过的单");
 											return false;
 										}else{
-											if(element.BALANCE<_this.filters.tolerance){
+											var min = parseInt(_this.filters.tolerance);
+											if(parseInt(_this.filters.step) < parseInt(_this.filters.tolerance)){
+												
+												min = parseInt(_this.filters.step);
+											}
+										
+											if(parseInt(element.BALANCE)<min){
 												
 												_this.sels.splice(index,1);        //删除手数为0的元素
 												index = index-1;                   //因为数组会改变,所以长度也会变化
 												continue;                          //结束本次循环
 											}
-										    element.step = _this.filters.step;  //加入步长的计算	
+
+										    element.step = _this.filters.step;  //加入步长的计算
+											
 										}
 									}
+
+									
+								
 									if(_this.sels.length==0){
 										_this.$message.error("没有任何选择");
 										return false;
 									}
+
+									console.log(_this.sels.length);
+								
 									_this.insert_index = 0;
 									_this.loading_insert = true;
 									_this.dialogVisible = true;
@@ -565,7 +590,7 @@
 									data_insert.data = _this.sels;      //数组的格式(多个数据发送过去)
 									//发送socket
 									_this.socket.send(JSON.stringify(data_insert));
-
+									return true;
 								}else{
 									this.logining = false;
 									this.$message.error(msg);
@@ -591,6 +616,8 @@
 			Insert_all(){
                //将所有的数据传递给sels    
 			   this.sels = this.users;
+			   this.isInsert = false;
+			   this.allInsert = true;
 			   this.Insert();             //发送数据
 
 			},
@@ -833,8 +860,8 @@
             // socket连接函数
 			connect: function () {
 				    var _that_ = this;
-					this.socket = new WebSocket('ws://127.0.0.1:12380');
-					
+					//this.socket = new WebSocket('ws://47.106.182.13:12380');
+					this.socket = new WebSocket('ws://103.85.110.232:12383');
 					//连接成功后的回调函数
                     this.socket.onopen = function () {
                         clearInterval(this.reConnect);
@@ -856,20 +883,25 @@
 								case "set_current_order":                  //设置当前跟单订单信息							
 									break;
                                 case "insert":                             //插入发送内容
-                                    var insert_data = msg['dest'];         //将数组数据传递过去  
+									var insert_data = msg['dest'];         //将数组数据传递过去  
+									var aa = 1;
 									_that_.insert_index+=insert_data.length;
 									console.log("insert执行了");
 									var arraylog=[_that_.insert_index,_that_.sels.length];
+									
 									_that_.bugout.log(arraylog);
+									
 									_that_.child_num = (Math.round(_that_.insert_index / _that_.sels.length * 10000) / 100.00);
                                     if(_that_.sels.length == _that_.insert_index){
+										aa = 2;
 										// 全部执行完成后,对所有不是失败的数据,进行成功操作
 										_that_.sels.forEach((element1,index) => {
 											if(element1.state == 0){
 												_that_.$set(element1,'state',100);         //成功的订单
                                             }
 										});
-                                        _that_.loading_insert = false;
+										_that_.loading_insert = false;
+										aa = _that_.insert_index;
 										_that_.insert_index = 0;
 										_that_.dialogVisible = false;
 										_that_.child_num = 0;
@@ -883,6 +915,13 @@
                                             });
                                         }
 									});
+									console.log(aa,_that_.sels.length);
+									//console.log(_that_.allInsert);
+									if(aa == _that_.sels.length){
+										_that_.reInsert();
+									}
+									
+									
 									break;
 								case "rollback":                           //Rollback请求
                                     var rollback_data = msg['desc'];         //将数组数据传递过去
@@ -1085,6 +1124,120 @@
 							}
 				});
 			},
+			//执行重新insert
+			reInsert(){
+				console.log('执行reinsert');
+				var _this = this;
+				
+			
+				 let para = {
+					group: this.filters.group,                    //组的 条件
+					user: this.filters.username,                  //用户 条件
+					order:this.filters.orderid                    //当前准备跟踪的订单
+                };
+                this.loading_insert = false;
+				this.listLoading = true;
+				var __that__ = this; 
+
+				this.$api.post('/api/index/index/getuser',para,response => {
+					if (response.status == 200 && response.status < 300) {
+						let { msg, code ,user} = response.data;
+						if(code=="00"){
+
+							this.total = user.length;
+						
+							//对用户中的数据进行了计算
+                            user.forEach(element => {
+								if(element.BALANCE<__that__.filters.step  && element.BALANCE>__that__.filters.tolerance){
+									element.handsnum = 1*(__that__.filters.volume/10000);    //对数据进行格式化(保留两位小数) 
+									element.ladder =1;
+								}else{
+									element.handsnum = __that__.toDecimal2(Math.floor((element.BALANCE/__that__.filters.step))*(__that__.filters.volume/10000));    //对数据进行格式化(保留两位小数)
+									element.ladder = parseInt(element.BALANCE/__that__.filters.step);
+								}
+								element.state =0;     //初始状态均为0 即是暂无
+							});
+							this.users = user;
+							this.page_size = 100;
+							this.userdata = this.users.slice((this.page-1)*this.page_size,this.page*this.page_size);
+							this.listLoading = false;
+							var datas = user;
+							 _this.sels = user;
+				
+				 for (let index = 0; index < _this.sels.length; index++) {
+						const element = _this.sels[index];
+						if(_this.isInsert == true){
+							
+							if(_this.isertArray.indexOf(_this.sels[index].LOGIN) >= -1){
+									_this.sels.splice(index,1);        
+								index = index-1;   
+								continue;           
+							}
+							
+						}
+						if(element.state !=0){
+							_this.$message.error("含有做过的单");
+							return false;
+						}else{
+							var min = parseInt(_this.filters.tolerance);
+							if(parseInt(_this.filters.step) < parseInt(_this.filters.tolerance)){
+								
+								min = parseInt(_this.filters.step);
+							}
+						
+							if(parseInt(element.BALANCE)<min){
+								
+								_this.sels.splice(index,1);        //删除手数为0的元素
+								index = index-1;                   //因为数组会改变,所以长度也会变化
+								continue;                          //结束本次循环
+							}
+
+							element.step = _this.filters.step;  //加入步长的计算
+							
+						}
+					}
+					
+				
+				
+					
+					if(_this.sels.length==0){
+						if(_this.isInsert == true){
+							 _this.Preview();
+						}
+						
+						this.display_table = true;
+						return false;
+					}
+					_this.insert_index = 0;
+					_this.loading_insert = true;
+					_this.dialogVisible = true;
+					let data_insert={};
+					data_insert.type = 'vue_insert';
+					data_insert.orderid = _this.filters.orderid;
+					data_insert.data = _this.sels;      //数组的格式(多个数据发送过去)
+					//发送socket
+					_this.socket.send(JSON.stringify(data_insert));
+
+					_this.isertArray = [];
+						}else{
+							
+							// 失败就清除所有的用户信息
+							this.total = 0;
+							this.listLoading = false;
+							this.users=[];
+							this.userdata=[];
+
+						}
+					} else {
+
+						this.listLoading = false;
+						console.log(response.message);
+
+					}
+				});
+				
+					
+			},
             //保留两位小数的函数 
 			toDecimal2(x) {
 				var f = parseFloat(x);