|
|
@@ -511,68 +511,72 @@ class AutoexeController extends \Think\Controller
|
|
|
$oy_list = $oy_list->data[0];
|
|
|
$close = $oy_list->last;//现价
|
|
|
}
|
|
|
-
|
|
|
- //手续费计算(开仓价格 * 开仓数量 * 手续费率) ,开仓时扣除手续费
|
|
|
- $wt_price = $vo['wt_price']; //委托价格
|
|
|
- $direction = $vo['direction']; //交易方向
|
|
|
- if ($direction == 1) { //做多(上涨) 当前价小于等于委托价格就开仓 要跌了才开仓
|
|
|
- if ($close <= $wt_price) {
|
|
|
- $data['fee'] = $fee = $vo['fee'];
|
|
|
- if ($usermoney['money'] >= $fee) {
|
|
|
- $data['price'] = $close;
|
|
|
- $data['status'] = 2;
|
|
|
- $data['addtime'] = date("Y-m-d H:i:s", time());
|
|
|
- $re_a = M("leverorder")->where(array('id' => $id))->save($data);
|
|
|
- $re_b = M("levermoney")->where(array('uid' => $uid))->setDec('money', $fee);
|
|
|
- $ubill['uid'] = $uid;
|
|
|
- $ubill['username'] = $uinfo['username'];
|
|
|
- $ubill['num'] = $fee;
|
|
|
- $ubill['coinname'] = "lever";
|
|
|
- $ubill['afternum'] = $usermoney['money'] - $fee;
|
|
|
- $ubill['type'] = 25;
|
|
|
- $ubill['addtime'] = date("Y-m-d H:i:s", time());
|
|
|
- $ubill['st'] = 2;
|
|
|
- $ubill['remark'] = L('合约交易开仓手续费');
|
|
|
- $re_c = M("bill")->add($ubill);
|
|
|
- if ($re_a && $re_b && $re_c) {
|
|
|
- echo "=订单ID:" . $id . ",开仓成功=";
|
|
|
+ if ($close) {
|
|
|
+ //手续费计算(开仓价格 * 开仓数量 * 手续费率) ,开仓时扣除手续费
|
|
|
+ $wt_price = $vo['wt_price']; //委托价格
|
|
|
+ $direction = $vo['direction']; //交易方向
|
|
|
+ if ($direction == 1) { //做多(上涨) 当前价小于等于委托价格就开仓 要跌了才开仓
|
|
|
+ if ($close <= $wt_price) {
|
|
|
+ $data['fee'] = $fee = $vo['fee'];
|
|
|
+ if ($usermoney['money'] >= $fee) {
|
|
|
+ $data['price'] = $close;
|
|
|
+ $data['status'] = 2;
|
|
|
+ $data['addtime'] = date("Y-m-d H:i:s", time());
|
|
|
+ $re_a = M("leverorder")->where(array('id' => $id))->save($data);
|
|
|
+ $re_b = M("levermoney")->where(array('uid' => $uid))->setDec('money', $fee);
|
|
|
+ $ubill['uid'] = $uid;
|
|
|
+ $ubill['username'] = $uinfo['username'];
|
|
|
+ $ubill['num'] = $fee;
|
|
|
+ $ubill['coinname'] = "lever";
|
|
|
+ $ubill['afternum'] = $usermoney['money'] - $fee;
|
|
|
+ $ubill['type'] = 25;
|
|
|
+ $ubill['addtime'] = date("Y-m-d H:i:s", time());
|
|
|
+ $ubill['st'] = 2;
|
|
|
+ $ubill['remark'] = L('合约交易开仓手续费');
|
|
|
+ $re_c = M("bill")->add($ubill);
|
|
|
+ if ($re_a && $re_b && $re_c) {
|
|
|
+ echo "=订单ID:" . $id . ",开仓成功=";
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ echo "=订单ID:" . $id . ",手续费不足=";
|
|
|
}
|
|
|
} else {
|
|
|
- echo "=订单ID:" . $id . ",手续费不足=";
|
|
|
+ echo "=订单ID:" . $id . ",做多,价格不合适=";
|
|
|
}
|
|
|
- } else {
|
|
|
- echo "=订单ID:" . $id . ",做多,价格不合适=";
|
|
|
- }
|
|
|
|
|
|
- } else if ($direction == 2) { //做空(下跌) 当前价大于等于委托价格就开仓 要涨了才开仓
|
|
|
- if ($close >= $wt_price) {
|
|
|
- $data['fee'] = $fee = $vo['fee'];
|
|
|
- if ($usermoney['money'] >= $fee) {
|
|
|
- $data['price'] = $close;
|
|
|
- $data['status'] = 2;
|
|
|
- $data['addtime'] = date("Y-m-d H:i:s", time());
|
|
|
- $re_a = M("leverorder")->where(array('id' => $id))->save($data);
|
|
|
- $re_b = M("levermoney")->where(array('uid' => $uid))->setDec('money', $fee);
|
|
|
- $ubill['uid'] = $uid;
|
|
|
- $ubill['username'] = $uinfo['username'];
|
|
|
- $ubill['num'] = $fee;
|
|
|
- $ubill['coinname'] = "usdt";
|
|
|
- $ubill['afternum'] = $usermoney['money'] - $fee;
|
|
|
- $ubill['type'] = 25;
|
|
|
- $ubill['addtime'] = date("Y-m-d H:i:s", time());
|
|
|
- $ubill['st'] = 2;
|
|
|
- $ubill['remark'] = L('合约交易开仓手续费');
|
|
|
- $re_c = M("bill")->add($ubill);
|
|
|
- if ($re_a && $re_b && $re_c) {
|
|
|
- echo "=订单ID:" . $id . ",开仓成功=";
|
|
|
+ } else if ($direction == 2) { //做空(下跌) 当前价大于等于委托价格就开仓 要涨了才开仓
|
|
|
+ if ($close >= $wt_price) {
|
|
|
+ $data['fee'] = $fee = $vo['fee'];
|
|
|
+ if ($usermoney['money'] >= $fee) {
|
|
|
+ $data['price'] = $close;
|
|
|
+ $data['status'] = 2;
|
|
|
+ $data['addtime'] = date("Y-m-d H:i:s", time());
|
|
|
+ $re_a = M("leverorder")->where(array('id' => $id))->save($data);
|
|
|
+ $re_b = M("levermoney")->where(array('uid' => $uid))->setDec('money', $fee);
|
|
|
+ $ubill['uid'] = $uid;
|
|
|
+ $ubill['username'] = $uinfo['username'];
|
|
|
+ $ubill['num'] = $fee;
|
|
|
+ $ubill['coinname'] = "usdt";
|
|
|
+ $ubill['afternum'] = $usermoney['money'] - $fee;
|
|
|
+ $ubill['type'] = 25;
|
|
|
+ $ubill['addtime'] = date("Y-m-d H:i:s", time());
|
|
|
+ $ubill['st'] = 2;
|
|
|
+ $ubill['remark'] = L('合约交易开仓手续费');
|
|
|
+ $re_c = M("bill")->add($ubill);
|
|
|
+ if ($re_a && $re_b && $re_c) {
|
|
|
+ echo "=订单ID:" . $id . ",开仓成功=";
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ echo "=订单ID:" . $id . ",手续费不足=";
|
|
|
}
|
|
|
} else {
|
|
|
- echo "=订单ID:" . $id . ",手续费不足=";
|
|
|
+ echo "=订单ID:" . $id . ",做空,价格不合适=";
|
|
|
}
|
|
|
- } else {
|
|
|
- echo "=订单ID:" . $id . ",做空,价格不合适=";
|
|
|
}
|
|
|
+ }else{
|
|
|
+ echo "未获取到参数";
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -653,126 +657,130 @@ class AutoexeController extends \Think\Controller
|
|
|
// $coinapi = "https://api.huobi.pro/market/history/kline?period=1day&size=1&symbol=" . $symbol;
|
|
|
// $newprice = $this->getnewprice($coinapi);
|
|
|
}
|
|
|
+ if ($newprice){
|
|
|
|
|
|
- //买入,当行情价小于等于限价时则交易
|
|
|
- $minfo = M("user_coin")->where(array('userid' => $uid))->find();
|
|
|
- if ($type == 1) {
|
|
|
- $usdtnum = $v['usdtnum'];
|
|
|
- if ($newprice <= $xjprice) {
|
|
|
- //计算能够买到的量
|
|
|
- $buy_coinnum = sprintf("%.8f", ($usdtnum / $newprice));
|
|
|
- //手续费
|
|
|
- $fee = $buy_coinnum * $sxfbl / 100;
|
|
|
- //实际到账号的金额
|
|
|
- $tcoinnum = $buy_coinnum - $fee;
|
|
|
- //更新订单
|
|
|
- $data['coinnum'] = $tcoinnum;
|
|
|
- $data['price'] = $newprice;
|
|
|
- $data['tradetime'] = date("Y-m-d H:i:s", time());
|
|
|
- $data['fee'] = $fee;
|
|
|
- $data['status'] = 2;
|
|
|
- $savere = M("bborder")->where(array('id' => $id))->save($data);
|
|
|
- //增加购买数量并写入日志
|
|
|
- $incre = M("user_coin")->where(array('userid' => $uid))->setInc($lowercoin, $tcoinnum);
|
|
|
- $cincbill['uid'] = $uid;
|
|
|
- $cincbill['username'] = $v['account'];
|
|
|
- $cincbill['num'] = $tcoinnum;
|
|
|
- $cincbill['coinname'] = $lowercoin;
|
|
|
- $cincbill['afternum'] = $minfo[$lowercoin] + $tcoinnum;
|
|
|
- $cincbill['type'] = 10;
|
|
|
- $cincbill['addtime'] = date("Y-m-d H:i:s", time());
|
|
|
- $cincbill['st'] = 1;
|
|
|
- $cincbill['remark'] = L('币币交易限价购买委托成交');
|
|
|
- $cincre = M("bill")->add($cincbill);
|
|
|
-
|
|
|
- //扣除冻结的USDT并写入日志
|
|
|
- $decre = M("user_coin")->where(array('userid' => $uid))->setDec("usdtd", $usdtnum);
|
|
|
- $uincbill['uid'] = $uid;
|
|
|
- $uincbill['username'] = $v['account'];
|
|
|
- $uincbill['num'] = $usdtnum;
|
|
|
- $uincbill['coinname'] = "usdt";
|
|
|
- $uincbill['afternum'] = $minfo['usdt'] - $usdtnum;
|
|
|
- $uincbill['type'] = 9;
|
|
|
- $uincbill['addtime'] = date("Y-m-d H:i:s", time());
|
|
|
- $uincbill['st'] = 2;
|
|
|
- $uincbill['remark'] = L('币币交易限价购买委托成交');
|
|
|
- $uincre = M("bill")->add($uincbill);
|
|
|
-
|
|
|
- if ($savere && $cincre && $uincre) {
|
|
|
-
|
|
|
- $notice['uid'] = $uid;
|
|
|
- $notice['account'] = $v['account'];
|
|
|
- $notice['title'] = L('币币交易限价委托交易');
|
|
|
- $notice['content'] = L('币币交易限价购买委托订单购买成功');
|
|
|
- $notice['addtime'] = date("Y-m-d H:i:s", time());
|
|
|
- $notice['status'] = 1;
|
|
|
- M("notice")->add($notice);
|
|
|
-
|
|
|
- echo "==委托订单ID:" . $id . ",购买成功==";
|
|
|
- }
|
|
|
- } else {
|
|
|
- echo "==委托订单ID:" . $id . ",没有达到限价购买价格==";
|
|
|
- }
|
|
|
+ //买入,当行情价小于等于限价时则交易
|
|
|
+ $minfo = M("user_coin")->where(array('userid' => $uid))->find();
|
|
|
+ if ($type == 1) {
|
|
|
+ $usdtnum = $v['usdtnum'];
|
|
|
+ if ($newprice <= $xjprice) {
|
|
|
+ //计算能够买到的量
|
|
|
+ $buy_coinnum = sprintf("%.8f", ($usdtnum / $newprice));
|
|
|
+ //手续费
|
|
|
+ $fee = $buy_coinnum * $sxfbl / 100;
|
|
|
+ //实际到账号的金额
|
|
|
+ $tcoinnum = $buy_coinnum - $fee;
|
|
|
+ //更新订单
|
|
|
+ $data['coinnum'] = $tcoinnum;
|
|
|
+ $data['price'] = $newprice;
|
|
|
+ $data['tradetime'] = date("Y-m-d H:i:s", time());
|
|
|
+ $data['fee'] = $fee;
|
|
|
+ $data['status'] = 2;
|
|
|
+ $savere = M("bborder")->where(array('id' => $id))->save($data);
|
|
|
+ //增加购买数量并写入日志
|
|
|
+ $incre = M("user_coin")->where(array('userid' => $uid))->setInc($lowercoin, $tcoinnum);
|
|
|
+ $cincbill['uid'] = $uid;
|
|
|
+ $cincbill['username'] = $v['account'];
|
|
|
+ $cincbill['num'] = $tcoinnum;
|
|
|
+ $cincbill['coinname'] = $lowercoin;
|
|
|
+ $cincbill['afternum'] = $minfo[$lowercoin] + $tcoinnum;
|
|
|
+ $cincbill['type'] = 10;
|
|
|
+ $cincbill['addtime'] = date("Y-m-d H:i:s", time());
|
|
|
+ $cincbill['st'] = 1;
|
|
|
+ $cincbill['remark'] = L('币币交易限价购买委托成交');
|
|
|
+ $cincre = M("bill")->add($cincbill);
|
|
|
+
|
|
|
+ //扣除冻结的USDT并写入日志
|
|
|
+ $decre = M("user_coin")->where(array('userid' => $uid))->setDec("usdtd", $usdtnum);
|
|
|
+ $uincbill['uid'] = $uid;
|
|
|
+ $uincbill['username'] = $v['account'];
|
|
|
+ $uincbill['num'] = $usdtnum;
|
|
|
+ $uincbill['coinname'] = "usdt";
|
|
|
+ $uincbill['afternum'] = $minfo['usdt'];
|
|
|
+ $uincbill['type'] = 9;
|
|
|
+ $uincbill['addtime'] = date("Y-m-d H:i:s", time());
|
|
|
+ $uincbill['st'] = 2;
|
|
|
+ $uincbill['remark'] = L('币币交易限价购买委托成交');
|
|
|
+ $uincre = M("bill")->add($uincbill);
|
|
|
+
|
|
|
+ if ($savere && $cincre && $uincre) {
|
|
|
|
|
|
- //卖出,当行情价大于等于限价时则交易
|
|
|
- } elseif ($type == 2) {
|
|
|
- $coinnum = $v['coinnum'];
|
|
|
- if ($newprice >= $xjprice) {
|
|
|
- //求出卖出所得的USDT量
|
|
|
- $allusdt = sprintf("%.8f", ($coinnum * $newprice));
|
|
|
- //求出手续费
|
|
|
- $fee = $allusdt * $sxfbl / 100;
|
|
|
- //求出实际到账USDT量
|
|
|
- $tusdtnum = $allusdt - $fee;
|
|
|
- //更新订单
|
|
|
- $data['usdtnum'] = $tusdtnum;
|
|
|
- $data['price'] = $newprice;
|
|
|
- $data['tradetime'] = date("Y-m-d H:i:s", time());
|
|
|
- $data['fee'] = $fee;
|
|
|
- $data['status'] = 2;
|
|
|
- $savere = M("bborder")->where(array('id' => $id))->save($data);
|
|
|
- //增加卖出所得的USDT量并写入日志
|
|
|
- $incre = M("user_coin")->where(array('userid' => $uid))->setInc("usdt", $tusdtnum);
|
|
|
- $uincbill['uid'] = $uid;
|
|
|
- $uincbill['username'] = $v['account'];
|
|
|
- $uincbill['num'] = $tusdtnum;
|
|
|
- $uincbill['coinname'] = 'usdt';
|
|
|
- $uincbill['afternum'] = $minfo['usdt'] + $tusdtnum;
|
|
|
- $uincbill['type'] = 9;
|
|
|
- $uincbill['addtime'] = date("Y-m-d H:i:s", time());
|
|
|
- $uincbill['st'] = 1;
|
|
|
- $uincbill['remark'] = L('币币交易限价出售委托成交');
|
|
|
- $uincre = M("bill")->add($uincbill);
|
|
|
-
|
|
|
- //扣除冻结的卖出币量并写入日志
|
|
|
- $decre = M("user_coin")->where(array('userid' => $uid))->setDec($lowercoin . "d", $coinnum);
|
|
|
- $cincbill['uid'] = $uid;
|
|
|
- $cincbill['username'] = $v['account'];
|
|
|
- $cincbill['num'] = $coinnum;
|
|
|
- $cincbill['coinname'] = $lowercoin;
|
|
|
- $cincbill['afternum'] = $minfo[$lowercoin] - $coinnum;
|
|
|
- $cincbill['type'] = 10;
|
|
|
- $cincbill['addtime'] = date("Y-m-d H:i:s", time());
|
|
|
- $cincbill['st'] = 2;
|
|
|
- $cincbill['remark'] = L('币币交易限价出售委托成交');
|
|
|
- $cincre = M("bill")->add($cincbill);
|
|
|
-
|
|
|
- if ($savere && $cincre && $uincre) {
|
|
|
-
|
|
|
- $notice['uid'] = $uid;
|
|
|
- $notice['account'] = $v['account'];
|
|
|
- $notice['title'] = L('币币交易限价委托交易');
|
|
|
- $notice['content'] = L('币币交易限价购买委托订单出售成功');
|
|
|
- $notice['addtime'] = date("Y-m-d H:i:s", time());
|
|
|
- $notice['status'] = 1;
|
|
|
- M("notice")->add($notice);
|
|
|
-
|
|
|
- echo "==委托订单ID:" . $id . ",出售成功==";
|
|
|
+ $notice['uid'] = $uid;
|
|
|
+ $notice['account'] = $v['account'];
|
|
|
+ $notice['title'] = L('币币交易限价委托交易');
|
|
|
+ $notice['content'] = L('币币交易限价购买委托订单购买成功');
|
|
|
+ $notice['addtime'] = date("Y-m-d H:i:s", time());
|
|
|
+ $notice['status'] = 1;
|
|
|
+ M("notice")->add($notice);
|
|
|
+
|
|
|
+ echo "==委托订单ID:" . $id . ",购买成功==";
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ echo "==委托订单ID:" . $id . ",没有达到限价购买价格==";
|
|
|
}
|
|
|
|
|
|
- } else {
|
|
|
- echo "==委托订单ID:" . $id . ",没有达到限价出售价格==";
|
|
|
+ //卖出,当行情价大于等于限价时则交易
|
|
|
+ } elseif ($type == 2) {
|
|
|
+ $coinnum = $v['coinnum'];
|
|
|
+ if ($newprice >= $xjprice) {
|
|
|
+ //求出卖出所得的USDT量
|
|
|
+ $allusdt = sprintf("%.8f", ($coinnum * $newprice));
|
|
|
+ //求出手续费
|
|
|
+ $fee = $allusdt * $sxfbl / 100;
|
|
|
+ //求出实际到账USDT量
|
|
|
+ $tusdtnum = $allusdt - $fee;
|
|
|
+ //更新订单
|
|
|
+ $data['usdtnum'] = $tusdtnum;
|
|
|
+ $data['price'] = $newprice;
|
|
|
+ $data['tradetime'] = date("Y-m-d H:i:s", time());
|
|
|
+ $data['fee'] = $fee;
|
|
|
+ $data['status'] = 2;
|
|
|
+ $savere = M("bborder")->where(array('id' => $id))->save($data);
|
|
|
+ //增加卖出所得的USDT量并写入日志
|
|
|
+ $incre = M("user_coin")->where(array('userid' => $uid))->setInc("usdt", $tusdtnum);
|
|
|
+ $uincbill['uid'] = $uid;
|
|
|
+ $uincbill['username'] = $v['account'];
|
|
|
+ $uincbill['num'] = $tusdtnum;
|
|
|
+ $uincbill['coinname'] = 'usdt';
|
|
|
+ $uincbill['afternum'] = $minfo['usdt'] + $tusdtnum;
|
|
|
+ $uincbill['type'] = 9;
|
|
|
+ $uincbill['addtime'] = date("Y-m-d H:i:s", time());
|
|
|
+ $uincbill['st'] = 1;
|
|
|
+ $uincbill['remark'] = L('币币交易限价出售委托成交');
|
|
|
+ $uincre = M("bill")->add($uincbill);
|
|
|
+
|
|
|
+ //扣除冻结的卖出币量并写入日志
|
|
|
+ $decre = M("user_coin")->where(array('userid' => $uid))->setDec($lowercoin . "d", $coinnum);
|
|
|
+ $cincbill['uid'] = $uid;
|
|
|
+ $cincbill['username'] = $v['account'];
|
|
|
+ $cincbill['num'] = $coinnum;
|
|
|
+ $cincbill['coinname'] = $lowercoin;
|
|
|
+ $cincbill['afternum'] = $minfo[$lowercoin] - $coinnum;
|
|
|
+ $cincbill['type'] = 10;
|
|
|
+ $cincbill['addtime'] = date("Y-m-d H:i:s", time());
|
|
|
+ $cincbill['st'] = 2;
|
|
|
+ $cincbill['remark'] = L('币币交易限价出售委托成交');
|
|
|
+ $cincre = M("bill")->add($cincbill);
|
|
|
+
|
|
|
+ if ($savere && $cincre && $uincre) {
|
|
|
+
|
|
|
+ $notice['uid'] = $uid;
|
|
|
+ $notice['account'] = $v['account'];
|
|
|
+ $notice['title'] = L('币币交易限价委托交易');
|
|
|
+ $notice['content'] = L('币币交易限价购买委托订单出售成功');
|
|
|
+ $notice['addtime'] = date("Y-m-d H:i:s", time());
|
|
|
+ $notice['status'] = 1;
|
|
|
+ M("notice")->add($notice);
|
|
|
+
|
|
|
+ echo "==委托订单ID:" . $id . ",出售成功==";
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ echo "==委托订单ID:" . $id . ",没有达到限价出售价格==";
|
|
|
+ }
|
|
|
}
|
|
|
+ }else{
|
|
|
+ echo "未获取到参数";
|
|
|
}
|
|
|
}
|
|
|
} else {
|