可封裝APP
程序源碼 供大家學習使用
技術交流、支持 演示網址 http://117.48.206.60:9902
附上PHP版的demo
class Agent extends Admin{
//模擬盤統計
public function index(){
cookie('__forward__', $_SERVER['REQUEST_URI']);
// 獲取查詢條件
$map = $this->getMap();
$order = $this->getOrder();
$data_list = Db::name('member')
->where($map)
->where('agent_id <>0')
->order($order)
->paginate()
->each(function($item, $key){
$info = get_agents_info($item['agent_far']);
$item['agent_far_name'] = $info['mobile'] ? $info['mobile'] : config('web_site_title');
$count = Db::name('agents_back_money')->where(['mid'=>$item['id']])->sum('affect');
$item['count_profit'] = round($count,2);
$item['agent_back_rate'] = get_plus_rate($item['id']).'%';
return $item;
});
1、投資策略匹配資金倍數靈活可選
按天配資
按周配資
按月配資
免息配資
2、T+1/d交易、線上入金、實時開戶實盤交易
3、自動計算利息/收取利息、自動結算、提現申請
4、T日買入T+1日賣出,只在買入時收取買入市值的綜合手續費。T+1日未賣出,每交易日自動收取下一交易日延期費,實時盈虧後臺可查閱,後臺可人工強平。
<?php
namespace app\market\model;
use think\Model;
use think\Db;
class SubAccountMoney extends Model{
// 設置當前模型對應的完整數據表名稱
protected $table = '__STOCK_SUBACCOUNT_MONEY__';
// 自動寫入時間戳
protected $autoWriteTimestamp = true;
public function get_account_money($subaccount_id){
$result=Db::name('stock_subaccount_money')->field(true)->where(['stock_subaccount_id'=>$subaccount_id])->find();
if(empty($result))return null;
return $result;
}
public function get_account_money_inf($subaccount_id){
$result=Db::view('stock_subaccount_money m')
->view('stock_subaccount_risk r','loss_warn,loss_close,renewal','r.stock_subaccount_id=m.stock_subaccount_id','left')
->view('stock_borrow b','type,init_money,borrow_money,deposit_money,end_time,id as borrow_id,status as b_status','b.stock_subaccount_id=m.stock_subaccount_id','left')
->where(['m.stock_subaccount_id'=>$subaccount_id])
->find();
if(isset($result['b_status'])&&$result['b_status']===2){
$result['available_amount']=0;
}
$result['init_money'] = $result['init_money'] /100;
$result['loss_warn_money'] = ($result['borrow_money']+$result['loss_warn'] * $result['deposit_money'] /100)/100;
$result['loss_close_money'] = ($result['borrow_money']+$result['loss_close'] * $result['deposit_money']/100)/100;
$result['end_time']=date('Y-m-d H:i:s',$result['end_time']);
if(empty($result))return null;
return $result;
}
public function up_moneylog($sub_id,$affect_money,$type,$return_money=0,$Balance=0,$code="600000"){
$vm=Db::name('stock_subaccount_money')->lock(true)->field(true)->where(['stock_subaccount_id'=>$sub_id])->find();
if(empty($vm)){return false;}
//$nowTime = time();
switch ($type){
case 1://購買股票扣款
if($vm['avail']<$affect_money){return false;}
$mmoney['avail'] = $vm['avail']-$affect_money;
$fee=$affect_money/100;
self::record($sub_id,$affect_money,$mmoney['avail'],1,"(-)購買股票扣款,可用減少".$fee."元");
break;
case 2://賣出股票回款
$mmoney['avail'] = $vm['avail']+$affect_money;
$mmoney['return_money'] = $vm['return_money']+$return_money;
$mmoney['return_rate']=$mmoney['return_money']/$vm['deposit_money']*100;
$mmoney['available_amount'] = $vm['available_amount']+$return_money;//將盈虧加到可提盈字段
$fee=$affect_money/100;
self::record($sub_id,$affect_money,$mmoney['avail'],2,"(+)賣出股票回款,可用增加".$fee."元");
break;
case 3://實盤或限價購買股票扣款
if($vm['avail']<$affect_money){return false;}
$mmoney['avail'] = $vm['avail']-$affect_money;
$mmoney['freeze_amount'] = $vm['freeze_amount']+$affect_money;
$fee=$affect_money/100;
self::record($sub_id,$affect_money,$mmoney['avail'],3,"(-)購買股票扣款,可用減少".$fee."元");
break;
case 4://實盤賣出股票回款
$mmoney['freeze_amount'] = $vm['freeze_amount']+$affect_money;
self::record($sub_id,$affect_money,$vm['avail'],4,"(=)賣出股票回款");
break;
case 5://實盤或限價賣出成功解除凍結
$mmoney['avail'] = $vm['avail']+$affect_money+$Balance;
$mmoney['freeze_amount'] = $vm['freeze_amount']-$affect_money;
$mmoney['return_money'] = $vm['return_money']+$return_money;
$mmoney['return_rate']=$mmoney['return_money']/($vm['deposit_money']/100);
$mmoney['available_amount'] = $vm['available_amount']+$return_money;//將盈虧加到可提盈字段
$fee=round(($Balance+$affect_money)/100,2);
self::record($sub_id,$affect_money,$mmoney['avail'],5,"(+)賣出成功解除凍結,可用增加".$fee."元");
break;
case 6://實盤買入成功解除凍結
$mmoney['avail'] = $vm['avail']+$Balance;
$mmoney['freeze_amount'] = $vm['freeze_amount']-$affect_money;
$fee=round($Balance/100,2);
self::record($sub_id,$affect_money,$mmoney['avail'],6,"(+)買入成功解除凍結,可用增加".$fee."元");
break;
case 7://在子賬戶保證金中扣費用
$mmoney['deposit_money'] = $vm['deposit_money']-$affect_money;
self::record($sub_id,$affect_money,$vm['avail'],7,"(=)扣費用,可用不變");
break;
case 8://購買股票撤單
$mmoney['avail'] = $vm['avail']+$affect_money;
$mmoney['freeze_amount'] = $vm['freeze_amount']-$affect_money;
$fee=$affect_money/100;
self::record($sub_id,$affect_money,$mmoney['avail'],8,"(+)撤單解除凍結,可用增加".$fee."元");
break;
case 9://賣出股票撤單
$mmoney['avail']=$vm['avail'];
$mmoney['freeze_amount'] = $vm['freeze_amount']-$affect_money;
self::record($sub_id,$affect_money,$mmoney['avail'],9,"(=)賣出撤單解除凍結,可用不變");
break;
case 10://追加保證金
$mmoney['avail']=$vm['avail']+$affect_money;
$mmoney['stock_addmoney'] = $vm['stock_addmoney']+$affect_money;
$fee=$affect_money/100;
self::record($sub_id,$affect_money,$mmoney['avail'],10,"(+)用戶追加保證金,可用增加".$fee."元");
break;
case 11://擴大配資
$applyMoney=$return_money;
$mmoney['avail']=$vm['avail']+$affect_money+$applyMoney;
$mmoney['deposit_money'] = $vm['deposit_money']+$affect_money;
$mmoney['borrow_money'] = $vm['borrow_money']+$applyMoney;
$mmoney['stock_addfinancing']=$vm['stock_addfinancing'] + $affect_money;
$fee=($applyMoney+$affect_money)/100;
self::record($sub_id,$affect_money,$mmoney['avail'],11,"(+)用戶擴大配資,可用增加".$fee."元");
break;
case 12://提取盈利
$mmoney['avail']=$vm['avail']-$affect_money;
$mmoney['available_amount'] = $vm['available_amount']-$affect_money;
$mmoney['stock_drawprofit'] = $vm['stock_drawprofit']+$affect_money;
$fee=$affect_money/100;
self::record($sub_id,$affect_money,$mmoney['avail'],12,"(-)用戶提取盈利,可用減少".$fee."元");
break;
case 13://股票分紅
$mmoney['avail']=$vm['avail']+$affect_money;
$fee=$affect_money/100;
self::record($sub_id,$affect_money,$mmoney['avail'],13,"(+)用戶股票".$code."分紅,可用增加".$fee."元");
break;
case 15://收取股票紅利稅
$mmoney['avail']=$vm['avail']-$affect_money;
$fee=$affect_money/100;
self::record($sub_id,$affect_money,$mmoney['avail'],15,"(-)用戶股票".$code."分紅代扣利息稅,可用減少".$fee."元");
break;
default:
return false;
}
$ret=Db::name('stock_subaccount_money')->where(['stock_subaccount_id'=>$sub_id])->update($mmoney);
return $ret;
}
public static function record($sub_id,$affect_money,$account,$type,$info){
$record['sub_id'] = $sub_id;
$record['affect'] = $affect_money;
$record['account'] = $account;
$record['type'] = $type;
$record['info'] = $info;
$record['create_time'] = time();
$record['create_ip'] = get_client_ip(1);
$res=Db::name('stock_submoney_record')->insert($record);
return $res;
}
//子賬戶資金單位由分轉爲元
public static function ftoy($res){
if(!empty($res)) {
$res["min_commission"] = money_convert($res["min_commission"]);
$res["avail"] = money_convert($res["avail"]);
$res["available_amount"] = money_convert($res["available_amount"]);
$res["freeze_amount"] = money_convert($res["freeze_amount"]);
$res["return_money"] = money_convert($res["return_money"]);
//$res["return_rate"] = money_convert($res["return_rate"]);
$res["deposit_money"] = money_convert($res["deposit_money"]);
$res["borrow_money"] = money_convert($res["borrow_money"]);
$res["stock_addfinancing"] = money_convert($res["stock_addfinancing"]);
$res["stock_addmoney"] = money_convert($res["stock_addmoney"]);
$res["stock_drawprofit"] = money_convert($res["stock_drawprofit"]);
}
return $res;
}
}
數據接口使用的是 新浪和騰訊的
if (!function_exists('sina_market')) {
function sina_market($code)
{
$d = fenxi($code);
$randm = time() . mt_rand(100, 999);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://hq.sinajs.cn/rn=' . $randm . '&list=' . $d . ',' . $d . '_i');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$output = curl_exec($ch);
curl_close($ch);
$pos = strpos($output, '=') + 2;
$output = substr($output, $pos, -3);
$t2 = explode(',', mb_convert_encoding($output, 'utf-8', 'gbk'));
$t2[32] = $t2[0];
$t2[0] = $d;
return $t2;
}
}
if (!function_exists('qq_market')) {
function qq_market($code)
{
$d = fenxi($code);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://qt.gtimg.cn/q=' . $d);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$output = curl_exec($ch);
curl_close($ch);
$t2 = explode('~', mb_convert_encoding($output, 'utf-8', 'gbk'));
$t2[0] = substr($t2[0], 2, 8);
return $t2;
}
}
股票系統支付接口對接 股票系統數據接口對接 融資配資系統源碼開發 證券配資系統二次開發 A股策略平臺程序源碼
演示網址 http://117.48.206.60:9902
技術交流、支持 QQ 2446503032