Browse Source

gold futures

master
chuan 2 months ago
parent
commit
223ad1132b
  1. 23
      app/admin/controller/setting/GoldFutures.php
  2. 22
      app/admin/route/app.php
  3. 9
      app/admin/service/UserService.php
  4. 53
      app/admin/service/setting/GoldFuturesService.php
  5. 25
      app/admin/service/setting/IPOService.php
  6. 2
      app/admin/service/setting/StockIndexService.php
  7. 12
      app/admin/service/setting/StockMarketService.php
  8. 32
      app/home/service/WalletService.php
  9. 79
      app/model/ForexListMode.php
  10. 7
      app/model/GoldFuturesListModel.php
  11. 71
      app/model/GoldFuturesTradeModel.php
  12. 46
      app/model/StockMarketModel.php
  13. 6
      app/model/UserForexModel.php
  14. 105
      app/model/UserGoldFuturesModel.php
  15. 4
      app/model/UserStockIndexInrModel.php

23
app/admin/controller/setting/GoldFutures.php

@ -0,0 +1,23 @@
<?php
namespace app\admin\controller\setting;
use app\admin\controller\AdminBaseController;
use app\admin\service\setting\GoldFuturesService;
class GoldFutures extends AdminBaseController
{
// 印度股指名称列表
public function getTradeNameList()
{
$result = (new GoldFuturesService())->getTradeNameList();
return json($result);
}
// 黄金期货列表
public function goldFuturesList()
{
$result = (new GoldFuturesService())->inrStockIndexList($this->request->param());
return json($result);
}
}

22
app/admin/route/app.php

@ -128,12 +128,6 @@ Route::group('/', function () {
Route::post('/order/in_stock_back', 'Order/stockBack')->append(['market_type' =>7]); // 印度股票撤单
Route::post('/order/in_stock_clear', 'Order/stockClear')->append(['market_type' =>7]); // 印度股票平仓
// 印度股指订单
Route::post('order/inr_stock_index_hold', 'Order/StockHold')->append(['market_type' =>20]); // 印度股指持仓
Route::post('order/inr_stock_index_place', 'Order/stockPlace')->append(['market_type' =>20]); // 印度股指挂单
Route::post('order/inr_stock_index_back', 'Order/stockBack')->append(['market_type' =>20]); // 印度股指撤单
Route::post('order/inr_stock_index_clear', 'Order/stockClear')->append(['market_type' =>20]); // 印度股指平仓
// 新加坡股票
Route::post('/order/sgd_stock_hold', 'Order/StockHold')->append(['market_type' =>9]);
Route::post('/order/sgd_stock_place', 'Order/stockPlace')->append(['market_type' =>9]);
@ -171,6 +165,18 @@ Route::group('/', function () {
Route::post('/order/jp_stock_back', 'Order/StockBack')->append(['market_type' =>18]); // 股票撤单
Route::post('/order/jp_stock_clear', 'Order/StockClear')->append(['market_type' =>18]); // 股票平仓
// 印度股指订单
Route::post('order/inr_stock_index_hold', 'Order/StockHold')->append(['market_type' =>20]); // 印度股指持仓
Route::post('order/inr_stock_index_place', 'Order/stockPlace')->append(['market_type' =>20]); // 印度股指挂单
Route::post('order/inr_stock_index_back', 'Order/stockBack')->append(['market_type' =>20]); // 印度股指撤单
Route::post('order/inr_stock_index_clear', 'Order/stockClear')->append(['market_type' =>20]); // 印度股指平仓
// 黄金期货订单
Route::post('order/gold_futures_hold', 'Order/StockHold')->append(['market_type' =>21]); // 黄金期货持仓
Route::post('order/gold_futures_place', 'Order/stockPlace')->append(['market_type' =>21]); // 黄金期货挂单
Route::post('order/gold_futures_back', 'Order/stockBack')->append(['market_type' =>21]); // 黄金期货撤单
Route::post('order/gold_futures_clear', 'Order/stockClear')->append(['market_type' =>21]); // 黄金期货平仓
// 印度期权
Route::post('/order/in_option_hold', 'Order/inOptionHold'); // 股票持仓
Route::post('/order/in_option_place', 'Order/inOptionPlace'); // 股票挂单
@ -362,6 +368,10 @@ Route::group('/', function () {
Route::post('setting/inr_stock_index', 'setting.StockIndex/inrStockIndexList'); // 印度股指列表
Route::post('setting/inr_stock_select', 'setting.StockIndex/getTradeNameList'); // 印度股指名称列表
// 黄金期货配置
Route::post('setting/gold_futures_list', 'setting.GoldFutures/goldFuturesList'); // 黄金期货列表
Route::post('setting/gold_futures_select', 'setting.GoldFutures/getTradeNameList'); // 黄金期货交易对列表
// 外汇配置
Route::post('/setting/forex_index', 'setting.Forex/index');
Route::post('/setting/forex_add', 'setting.Forex/add')->middleware('admin_log');

9
app/admin/service/UserService.php

@ -20,6 +20,7 @@ use app\model\UserContractModel;
use app\model\UserContractSecModel;
use app\model\UserDigitalModel;
use app\model\UserForexModel;
use app\model\UserGoldFuturesModel;
use app\model\UserLoanModel;
use app\model\UserLoginLog;
use app\model\UserMarketModel;
@ -284,6 +285,10 @@ class UserService extends AdminBaseService
$userForexList = UserForexModel::where('user_id', 'in', $userIdArr)
->where('contract_id', 'USD')
->column('usable_num,frozen_num', 'user_id');
// 黄金期货的资产
$userGoldFuturesList = UserGoldFuturesModel::where('user_id', 'in', $userIdArr)
->where('contract_id', 'GC')
->column('usable_num,frozen_num', 'user_id');
// 获取用户绑定的客服信息
$customerIds = [];
@ -398,6 +403,7 @@ class UserService extends AdminBaseService
'stock_mys' => $userStockMysList[$item['user_id']]['usable_num'] ?? '0', // 马股资产
'stock_in' => $userStockInList[$item['user_id']]['usable_num'] ?? '0', // 印度股资产
'stock_index_inr' => $userStockIndexInrList[$item['user_id']]['usable_num'] ?? '0', //印度股指资产
'gold_futures' => $userGoldFuturesList[$item['user_id']]['usable_num'] ?? '0', //黄金期货资产
'stock_sgd' => $userStockSGDList[$item['user_id']]['usable_num'] ?? '0', // 新加坡股资产
'stock_fund' => $userStockFundList[$item['user_id']]['usable_num'] ?? '0', // 基金资产
'stock_option_in' => $userStockOptionInrList[$item['user_id']]['usable_num'] ?? '0', // 印度期权资产
@ -418,7 +424,8 @@ class UserService extends AdminBaseService
'stock_tha_frozen' => $userStockThaList[$item['user_id']]['frozen_num'] ?? '0', // 泰股资产
'stock_mys_frozen' => $userStockMysList[$item['user_id']]['frozen_num'] ?? '0', // 马股资产
'stock_in_frozen' => $userStockInList[$item['user_id']]['frozen_num'] ?? '0', // 印度股资产
'stock_index_inr_frozen' => $userStockIndexInrList[$item['user_id']]['frozen_num'] ?? '0', // 印度股指资产资产
'stock_index_inr_frozen' => $userStockIndexInrList[$item['user_id']]['frozen_num'] ?? '0', // 印度股指冻结资产
'gold_futures_frozen' => $userGoldFuturesList[$item['user_id']]['frozen_num'] ?? '0', // 黄金期货冻结资产
'stock_sgd_frozen' => $userStockSGDList[$item['user_id']]['frozen_num'] ?? '0', // 新加坡股资产
'stock_fund_frozen' => $userStockFundList[$item['user_id']]['frozen_num'] ?? '0', // 基金资产
'stock_option_in_frozen' => $userStockOptionInrList[$item['user_id']]['frozen_num'] ?? '0', // 印度期权资产

53
app/admin/service/setting/GoldFuturesService.php

@ -0,0 +1,53 @@
<?php
namespace app\admin\service\setting;
use app\admin\service\AdminBaseService;
use app\model\GoldFuturesListModel;
class GoldFuturesService extends AdminBaseService
{
// 获取黄金期货交易对列表
public function getTradeNameList()
{
try {
$list = GoldFuturesListModel::where('status', 1)->order('id', 'desc')->column('name', 'id');
return $this->toData('0', 'SUCCESS', ['list' => $list]);
} catch (\Exception $e) {
return $this->toData('1', '系统繁忙', [$e->getMessage(), $e->getTrace()]);
}
}
// 黄金期货列表
public function inrStockIndexList($param): array
{
try {
if (empty($param['page']) || empty($param['limit'])) {
return $this->toData('400', '缺少必要参数');
}
$where = [];
if (!empty($param['trade_name'])) {
$where[] = ['trade_name', 'like', '%' . $param['trade_name'] . '%'];
}
$list = GoldFuturesListModel::where($where)->order('id', 'desc')->paginate([
'page' => $param['page'],
'list_rows' => $param['limit'],
]);
$tapeList = (new IPOService())->getStockTape(20);
return $this->toData('0', 'SUCCESS', [
'list' => $list->items(),
'total' => $list->total(),
'page' => $list->currentPage(),
'last_page' => $list->lastPage(),
'extend' => [
'tape_list' => $tapeList['tape'],
'source_list' => $tapeList['source'] ?? [],
]
]);
} catch (\Exception $e) {
return $this->toData('500', '系统繁忙', [$e->getMessage(), $e->getTrace()]);
}
}
}

25
app/admin/service/setting/IPOService.php

@ -5,7 +5,6 @@ namespace app\admin\service\setting;
use app\admin\service\AdminBaseService;
use app\admin\validate\setting\StockValidate;
use app\model\ForexListMode;
use app\model\PreBrlStockModel;
use app\model\PreEurStockModel;
use app\model\PreFurStockModel;
@ -21,19 +20,16 @@ use app\model\PreUsStockModel;
use app\model\StockBrlListModel;
use app\model\StockEurListModel;
use app\model\StockFurListModel;
use app\model\StockFurTradeModel;
use app\model\StockGBXListModel;
use app\model\StockHkdListModel;
use app\model\StockIdnListModel;
use app\model\StockInListModel;
use app\model\StockJpListModel;
use app\model\StockListModel;
use app\model\StockMarketModel;
use app\model\StockMysListModel;
use app\model\StockPricesSettingModel;
use app\model\StockSgdListModel;
use app\model\StockThaListModel;
use app\model\TradeFeeModel;
use app\model\UserArrearsModel;
use app\model\UserModel;
use app\model\UserUsPreStockOrderModel;
@ -1655,6 +1651,18 @@ class IPOService extends AdminBaseService
'check' => 'indexInr_stock_',
];
break;
case 21:
$result = [
'user_table' => $prefix . 'user_gold_futures',
'log_table' => $prefix . 'user_gold_futures_log',
'list_table' => $prefix . 'gold_futures_list',
'trade_table' => $prefix . 'gold_futures_trade',
'redis_key' => 'GoldFutures:STOCK:LIST:',
'stock_id' => 'GC', // 黄金期货资产表中contract_id对应的值,即 bot_user_gold_futures.contract_id
// 'country' => '',
// 'check' => '',
];
break;
default:
$result = [];
break;
@ -1741,12 +1749,14 @@ class IPOService extends AdminBaseService
];
break;
case 19:
// 外汇
$result = [
'tape' => [],
'type' => [],
];
break;
case 20:
// 印度股指
$result = [
'tape' =>[
1 => "NSE",
@ -1758,6 +1768,13 @@ class IPOService extends AdminBaseService
],
];
break;
case 21:
// 黄金期货
$result = [
'tape' => [],
'type' => [],
];
break;
}
return $result;
}

2
app/admin/service/setting/StockIndexService.php

@ -75,7 +75,7 @@ class StockIndexService extends AdminBaseService
$where = [];
if (!empty($param['trade_name'])) {
$where[] = ['stock_code', 'like', '%' . $param['trade_name']];
$where[] = ['trade_name', 'like', '%' . $param['trade_name'] . '%'];
}
$list = StockIndexInrListModel::where($where)->order('id', 'desc')->paginate([
'page' => $param['page'],

12
app/admin/service/setting/StockMarketService.php

@ -27,10 +27,14 @@ class StockMarketService extends AdminBaseService
$rows = $list->toArray();
}
return $this->toData('0','SUCCESS', ['total' => count($rows), 'list' => $rows, 'extent' => [
'stock_market_type_list' => StockMarketModel::STOCK_MARKET_TYPE,
'trade_day_type' => StockMarketModel::TRADE_DAY_TYPE,
]]);
return $this->toData('0','SUCCESS', [
'total' => count($rows),
'list' => $rows,
'extent' => [
'stock_market_type_list' => StockMarketModel::STOCK_MARKET_TYPE,
'trade_day_type' => StockMarketModel::TRADE_DAY_TYPE,
]
]);
}catch (\Exception $exception){
return $this->toData('1', '系统繁忙', [$exception->getMessage()]);
}

32
app/home/service/WalletService.php

@ -18,6 +18,7 @@ use app\model\UserContractSecModel;
use app\model\UserDigitalModel;
use app\model\UserForexLogModel;
use app\model\UserForexModel;
use app\model\UserGoldFuturesModel;
use app\model\UserHkdPreStockOrderModel;
use app\model\UserIdnPreStockOrderModel;
use app\model\UserInPreStockOrderModel;
@ -586,6 +587,24 @@ class WalletService extends BaseHomeService
}
}
// 获取用户黄金期货资产
private function getUserGoldFutures($data, int $type = 0): array
{
try {
validate(WalletValidate::class)->scene('getUserBalance')->check($data);
if ($type == 0) {
return UserGoldFuturesModel::getUserGoldFuturesList($data['user_id']);
} else {
return UserGoldFuturesModel::getUserGoldFutureByUserId($data);
}
} catch (ValidateException $validateException) {
$message = $validateException->getMessage();
return $this->toData('500', $message, []);
} catch (\Exception $exception) {
return $this->toData('500', lang('system_busy'), [$exception->getMessage(), $exception->getTrace()]);
}
}
/**
* 获取用户印度股票 资产
* @param $user_id
@ -969,6 +988,9 @@ class WalletService extends BaseHomeService
case 20:
$usdt_info = $this->getUserStockIndexInr($data, 1);
break;
case 21:
$usdt_info = $this->getUserGoldFutures($data, 1);
break;
default:
$usdt_info = $this->getUserDigital($data, 1);
break;
@ -1451,9 +1473,12 @@ class WalletService extends BaseHomeService
// 印度股指
return UserStockIndexInrModel::getUserStockIndexInrLock($user_id);
break;
case 21:
// 黄金期货
return UserGoldFuturesModel::getUserGoldFuturesLock($user_id);
break;
default:
return [];
break;
}
}
@ -1572,6 +1597,11 @@ class WalletService extends BaseHomeService
'user_id' => $user_id,
'contract_id' => 'INR'
]);
case 21:
return UserGoldFuturesModel::updateUserGoldFutures($update_data, [
'user_id' => $user_id,
'contract_id' => 'GC'
]);
break;
default:
return false;

79
app/model/ForexListMode.php

@ -1,79 +0,0 @@
<?php
namespace app\model;
/**
* @property int id
* @property string trade_name
* @property string status
* @property string is_owner
* @property string logo_link
* @property string face_value
* @property string info
* @property string sort
* @property string min_pry
* @property string max_pry
* @property string compel_num
* @property string keep_decimal
* @property string create_time
* @property string update_time
*/
class ForexListMode extends BaseModel
{
protected $name = 'forex_list';
protected $pk = 'id';
public static function getMarketList($data): array
{
$where=[
['status','=',1]
];
if(!empty($data['trade_name'])){
$where[]=[
'trade_name','like',strtoupper($data['trade_name']).'%'
];
}
if($data['page']<1){
$data['page']=1;
}
if($data['page_size']<1){
$data['page_size']=10;
}
$count=self::where($where)->count();
$list = self::where($where)->field('trade_name as name,trade_name as code')->page($data['page'],$data['page_size'])->select();
if(empty($list)){
return [];
}
return [
'total'=>$count,
'list'=>$list->toArray(),
];
}
public static function existMarket($trade_name):bool
{
$id=self::where('trade_name',$trade_name)->value('id');
return $id >0;
}
public static function getMarketFaceList($type=0)
{
$list=self::where('status',1)->field('face_value,trade_name as name,trade_name as code,sort,max_pry,min_pry')->select();
if(empty($list)){
return [];
}
$list=$list->toArray();
if($type==1){
foreach ($list as $val){
$face_list[$val['name']]=$val['face_value'];
}
}else{
$face_list=$list;
}
return $face_list;
}
}

7
app/model/GoldFuturesListModel.php

@ -0,0 +1,7 @@
<?php
namespace app\model;
class GoldFuturesListModel extends BaseModel
{
protected $name = 'gold_futures_list';
}

71
app/model/GoldFuturesTradeModel.php

@ -0,0 +1,71 @@
<?php
namespace app\model;
class GoldFuturesTradeModel extends BaseModel
{
protected $name = 'gold_futures_trade';
protected $pk = 'trade_id';
// 获取持仓成本
public static function getTradeOrderBuyNum(int $user_id,string $contract_id,int $trade_type)
{
$num=0;
$money=0;
//查询持仓订单总成本
$list=self::where([
'user_id'=>$user_id,
'status'=>1,
'contract_id'=>$contract_id,
'trade_type'=>$trade_type
])->field('order_number,deal_price,service_cost')->select();
if(!empty($list)) {
$list_arr=$list->toArray();
foreach ($list_arr as $val){
$order_num=$val['order_number']*$val['deal_price'] ;//+ $val['service_cost'];
$money+=$order_num;
$num+=$val['order_number'];
}
}
return [
'buy_num'=>$num,
'buy_money'=>$money
];
}
// 获取累计盈亏
public static function getTradeOrderDailyNum(int $user_id)
{
$num=0;
//查询持仓订单总成本
$list=self::where([
'user_id'=>$user_id,
'status'=>3
])->field('order_number,closing_price,deal_price,closing_cost,service_cost,trade_type')->select();
if(!empty($list)) {
$list_arr=$list->toArray();
foreach ($list_arr as $val){
if($val['trade_type']==1){
$order_num=$val['order_number']*($val['closing_price']-$val['deal_price']);
}else{
$order_num=$val['order_number']*($val['deal_price']-$val['closing_price']);
}
$num+=$order_num;
}
}
return $num;
}
public static function getTradeOrderFee(int $user_id)
{
$info=self::where([
['user_id','=',$user_id],
['status','in',[1,3]]
])->field('sum(service_cost+closing_cost) as fee')->find();
if(empty($info)){
return 0;
}else{
$info=$info->toArray();
return empty($info['fee']) ? 0 : $info['fee'];
}
}
}

46
app/model/StockMarketModel.php

@ -27,27 +27,27 @@ class StockMarketModel extends BaseModel
protected $name = 'stock_market';
protected $pk = 'id';
// 股票市场类型
// 1 现货 2 合约 3 美股 4 印尼 5 马股 6 泰股 7 印度股
const DIGITAL_MARKET = '1';
const CONTRACT_MARKET = '2';
const STOCK_MARKET_USA = '3';
const STOCK_MARKET_YNG = '4';
const STOCK_MARKET_MG = '5';
const STOCK_MARKET_TG = '6';
const STOCK_MARKET_IN = '7';
const STOCK_MARKET_HY = '8';
const STOCK_MARKET_SGD = '9';
const STOCK_MARKET_FUND = '10';
const STOCK_MARKET_OPTION_IN = '11';
const STOCK_MARKET_HK = '12';
const STOCK_MARKET_UK = '14';
const STOCK_MARKET_FUR = '15';
const STOCK_MARKET_EUR = '16';
const STOCK_MARKET_BRL = '17';
const STOCK_MARKET_JP = '18';
const FOREX_MARKET = '19';
const STOCK_INR_INDEX = '20';
// 市场类型:1-现货(数字币) 2-合约 3-美股 4-印尼股 5-马股 6-泰股 7-印度股 8-秒合约 9-新加坡股 10-基金 11-印度期权 12-港股 14-英股 15-法股 16-德股 17-巴西股 18-日股 19-外汇 20-印度股指 21-黄金期货
const DIGITAL_MARKET = 1;
const CONTRACT_MARKET = 2;
const STOCK_MARKET_USA = 3;
const STOCK_MARKET_YNG = 4;
const STOCK_MARKET_MG = 5;
const STOCK_MARKET_TG = 6;
const STOCK_MARKET_IN = 7;
const STOCK_MARKET_HY = 8;
const STOCK_MARKET_SGD = 9;
const STOCK_MARKET_FUND = 10;
const STOCK_MARKET_OPTION_IN = 11;
const STOCK_MARKET_HK = 12;
const STOCK_MARKET_UK = 14;
const STOCK_MARKET_FUR = 15;
const STOCK_MARKET_EUR = 16;
const STOCK_MARKET_BRL = 17;
const STOCK_MARKET_JP = 18;
const FOREX_MARKET = 19;
const STOCK_INR_INDEX = 20;
const GOLD_FUTURES = 21;
const STOCK_MARKET_TYPE = [
self::DIGITAL_MARKET => '现货',
@ -69,6 +69,7 @@ class StockMarketModel extends BaseModel
self::STOCK_MARKET_JP => '日股',
self::FOREX_MARKET => '外汇',
self::STOCK_INR_INDEX => '印度股指',
self::GOLD_FUTURES => '黄金期货',
];
// 各类型交易记录表
@ -92,6 +93,7 @@ class StockMarketModel extends BaseModel
self::STOCK_MARKET_JP => 'bot_stock_jp_trade', // 日本股交易记录表
self::FOREX_MARKET => 'bot_forex_trade', // 外汇交易记录表
self::STOCK_INR_INDEX => 'stock_index_inr_trade', // 印度股指交易记录表
self::GOLD_FUTURES => 'bot_gold_futures_trade', // 黄金期货
];
// 状态
@ -120,7 +122,7 @@ class StockMarketModel extends BaseModel
return $rate;
}
//
public function getAllTape(){
return [
self::STOCK_MARKET_USA => StockListModel::$tapeList,

6
app/model/UserForexModel.php

@ -91,7 +91,6 @@ class UserForexModel extends BaseModel
}
public static function InsertUserForex(array $data)
{
$self = new self;
@ -102,12 +101,11 @@ class UserForexModel extends BaseModel
$self->create_time = date('Y-m-d H:i:s');
$self->save();
}
public static function updateUserForex(array $update_data,array $where)
{
$update_data['update_time']=date('Y-m-d H:i:s');
$res=self::where($where)->save($update_data);
//echo self::where($where)->getLastSql();
return $res;
return self::where($where)->save($update_data);
}

105
app/model/UserGoldFuturesModel.php

@ -0,0 +1,105 @@
<?php
namespace app\model;
class UserGoldFuturesModel extends BaseModel
{
protected $name = 'user_gold_futures';
public static function getUserGoldFuturesLock(int $user_id,string $contract_id ='GC'):array
{
$info = self::where([
'user_id'=>$user_id,
'contract_id'=>$contract_id
])->lock(true)->find();
if(empty($info)){
// 如果没有则创建
$info = new self;
$info->user_id = $user_id;
$info->contract_id = $contract_id;
$info->usable_num = 0;
$info->frozen_num = 0;
$info->create_time = date('Y-m-d H:i:s');
$info->update_time = date('Y-m-d H:i:s');
$info->save();
}
return $info->toArray();
}
public static function getUserGoldFutureByUserId(array $data):array
{
if(!empty($data['trade_name'])){
$contract_id = $data['trade_name'];
}else{
$contract_id = 'GC';
}
$info = self::where([
'user_id' => $data['user_id'],
'contract_id' => $contract_id
])->field('usable_num,frozen_num,contract_id as name')->find();
if(empty($info)){
$info = new self;
$info->user_id = $data['user_id'];
$info->contract_id = $contract_id;
$info->usable_num = 0;
$info->frozen_num = 0;
$info->create_time = date('Y-m-d H:i:s');
$info->update_time = date('Y-m-d H:i:s');
$info->save();
}
return $info->toArray();
}
public static function getUserGoldFuturesList(int $user_id):array
{
$list = self::where([
'user_id' => $user_id,
])->field('usable_num,frozen_num,contract_id as name')->select();
if($list->isEmpty()){
$self = new self;
$self->user_id = $user_id;
$self->contract_id = 'GC';
$self->usable_num = '0';
$self->frozen_num = '0';
$self->create_time = date('Y-m-d H:i:s');
$self->update_time = date('Y-m-d H:i:s');
$self->save();
$list = self::where([
'user_id'=>$user_id,
])->field('usable_num,frozen_num,contract_id as name')->select();
}
foreach ($list as $key=>$val){
if($val['name']=='GC'){
$list[$key]['buy_up']=[
'buy_num'=>0,
'buy_money'=>0
];
$list[$key]['buy_down']=[
'buy_num'=>0,
'buy_money'=>0
];
}else{
//获取持仓成本
$list[$key]['buy_up']=GoldFuturesTradeModel::getTradeOrderBuyNum($user_id,$val['name'],1);
$list[$key]['buy_down']=GoldFuturesTradeModel::getTradeOrderBuyNum($user_id,$val['name'],2);
}
}
//获取平仓累计盈亏
$daily_num=GoldFuturesTradeModel::getTradeOrderDailyNum($user_id);
$earnest_money=0;
$fee_num=GoldFuturesTradeModel::getTradeOrderFee($user_id);
return [
'earnest_money'=>(float)$earnest_money,//保证金
'daily_num'=>$daily_num,//累计盈亏
'fee_num'=>$fee_num,//累计盈亏
'list'=>$list->toArray()
];
}
public static function updateUserGoldFutures(array $update_data,array $where)
{
$update_data['update_time']=date('Y-m-d H:i:s');
return self::where($where)->save($update_data);
}
}

4
app/model/UserStockIndexInrModel.php

@ -101,9 +101,7 @@ class UserStockIndexInrModel extends BaseModel
public static function updateUserStockIndexInr(array $update_data,array $where)
{
$update_data['update_time']=date('Y-m-d H:i:s');
$res=self::where($where)->save($update_data);
//echo self::where($where)->getLastSql();
return $res;
return self::where($where)->save($update_data);
}
}
Loading…
Cancel
Save