chuan 2 months ago
parent
commit
88da2272b9
  1. 6
      app/admin/service/AdminBaseService.php
  2. 2
      app/admin/service/UserService.php
  3. 6
      app/admin/service/setting/FeeService.php
  4. 2
      app/admin/service/setting/IPOService.php
  5. 8
      app/home/controller/News.php
  6. 6
      app/home/middleware/AuthMiddleware.php
  7. 2
      app/home/route/app.php
  8. 16
      app/home/service/BaseHomeService.php
  9. 25
      app/home/service/WalletService.php
  10. 23
      app/model/UserGoldFuturesLogModel.php
  11. 8
      app/model/UserGoldFuturesModel.php

6
app/admin/service/AdminBaseService.php

@ -510,6 +510,12 @@ class AdminBaseService
case 19: case 19:
$fee_key = 'TRADE:FEE:FOREX'; $fee_key = 'TRADE:FEE:FOREX';
break; break;
case 20:
$fee_key = 'TRADE:FEE:INDEX_INR';
break;
case 21:
$fee_key = 'TRADE:FEE:GOLD_FUTURES';
break;
default: default:
$fee_key = ''; $fee_key = '';
break; break;

2
app/admin/service/UserService.php

@ -287,7 +287,7 @@ class UserService extends AdminBaseService
->column('usable_num,frozen_num', 'user_id'); ->column('usable_num,frozen_num', 'user_id');
// 黄金期货的资产 // 黄金期货的资产
$userGoldFuturesList = UserGoldFuturesModel::where('user_id', 'in', $userIdArr) $userGoldFuturesList = UserGoldFuturesModel::where('user_id', 'in', $userIdArr)
->where('contract_id', 'GC') ->where('contract_id', 'USD')
->column('usable_num,frozen_num', 'user_id'); ->column('usable_num,frozen_num', 'user_id');
// 获取用户绑定的客服信息 // 获取用户绑定的客服信息

6
app/admin/service/setting/FeeService.php

@ -98,6 +98,9 @@ class FeeService extends AdminBaseService
// 设置缓存 // 设置缓存
$fee_key = $this->getTradeFeeKey($param['market_type']); $fee_key = $this->getTradeFeeKey($param['market_type']);
if (empty($fee_key)) {
return $this->toData('500', '缺少对应类型缓存KEY配置');
}
$redis = $this->getRedis(); $redis = $this->getRedis();
$redis->del($fee_key); $redis->del($fee_key);
$redis->hMSet($fee_key, $param); $redis->hMSet($fee_key, $param);
@ -190,6 +193,9 @@ class FeeService extends AdminBaseService
// 设置缓存 // 设置缓存
$fee_key = $this->getTradeFeeKey($param['market_type']); $fee_key = $this->getTradeFeeKey($param['market_type']);
if (empty($fee_key)) {
return $this->toData('500', '缺少对应类型缓存KEY配置');
}
$redis = $this->getRedis(); $redis = $this->getRedis();
$redis->del($fee_key); $redis->del($fee_key);
$redis->hMSet($fee_key, $param); $redis->hMSet($fee_key, $param);

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

@ -1658,7 +1658,7 @@ class IPOService extends AdminBaseService
'list_table' => $prefix . 'gold_futures_list', 'list_table' => $prefix . 'gold_futures_list',
'trade_table' => $prefix . 'gold_futures_trade', 'trade_table' => $prefix . 'gold_futures_trade',
'redis_key' => 'GoldFutures:STOCK:LIST:', 'redis_key' => 'GoldFutures:STOCK:LIST:',
'stock_id' => 'GC', // 黄金期货资产表中contract_id对应的值,即 bot_user_gold_futures.contract_id 'stock_id' => 'USD', // 黄金期货资产表中contract_id对应的值,即 bot_user_gold_futures.contract_id
// 'country' => '', // 'country' => '',
// 'check' => '', // 'check' => '',
]; ];

8
app/home/controller/News.php

@ -8,6 +8,7 @@ use app\model\UserChatLinkModel;
use Goutte\Client; use Goutte\Client;
use think\facade\Cache; use think\facade\Cache;
use think\facade\Config; use think\facade\Config;
use think\facade\Lang;
use think\facade\Log; use think\facade\Log;
use think\facade\Queue; use think\facade\Queue;
use think\Request; use think\Request;
@ -98,13 +99,12 @@ class News extends HomeBaseController
public function testApi() public function testApi()
{ {
$uniq = bin2hex(random_bytes(16)); $uniq = bin2hex(random_bytes(16));
$getEnv = env('ACCOUT_TYPE.ALL_IN_ONE');
return json([ return json([
'code' => '0', 'code' => '0',
'message' => 'successful', 'message' => lang('parameter_error'),
'data' => [], 'data' => [
'env' => $getEnv,
'random' => $uniq, 'random' => $uniq,
],
]); ]);
} }

6
app/home/middleware/AuthMiddleware.php

@ -5,6 +5,8 @@ namespace app\home\middleware;
use app\model\UserModel; use app\model\UserModel;
use think\facade\Cache; use think\facade\Cache;
use think\facade\Config; use think\facade\Config;
use think\facade\Lang;
use think\facade\Log;
use think\Request; use think\Request;
/** /**
@ -20,15 +22,15 @@ class AuthMiddleware
return response()->send(); return response()->send();
} }
// 设置多语言 // 设置多语言
Config::set(['default_lang'=>'zh-jp'], 'lang'); // P2 默认设置日语
$request->lang = Config::get('lang.default_lang'); $request->lang = Config::get('lang.default_lang');
Config::set(['default_lang'=>'zh-jp'], 'lang');
$header = $request->header(); $header = $request->header();
if (isset($header['language'])) { if (isset($header['language'])) {
$lang_list = Config::get('lang.allow_lang_list'); $lang_list = Config::get('lang.allow_lang_list');
$lang = strtolower($header['language']); $lang = strtolower($header['language']);
if (in_array($lang, $lang_list)) { if (in_array($lang, $lang_list)) {
Lang::setLangSet($lang);
$request->lang = $lang; $request->lang = $lang;
Config::set(['default_lang'=>$lang], 'lang');
} }
} }

2
app/home/route/app.php

@ -296,7 +296,7 @@ Route::group('/',function (){
Route::post('get_ip', 'Login/getIP'); Route::post('get_ip', 'Login/getIP');
Route::get('get_news', 'News/index'); Route::get('get_news', 'News/index');
Route::post('test', 'Stock/stockAnalysis'); Route::post('test', 'News/testApi')->middleware(\app\home\middleware\AuthMiddleware::class);
Route::post('test_api', 'Document/informationArticleList'); Route::post('test_api', 'Document/informationArticleList');

16
app/home/service/BaseHomeService.php

@ -567,6 +567,8 @@ class BaseHomeService
$brl_stock_fee_key='TRADE:FEE:BR_STOCK'; $brl_stock_fee_key='TRADE:FEE:BR_STOCK';
$jp_stock_fee_key='TRADE:FEE:JP_STOCK'; $jp_stock_fee_key='TRADE:FEE:JP_STOCK';
$forex_fee_key='TRADE:FEE:FOREX'; $forex_fee_key='TRADE:FEE:FOREX';
$indian_stock_index_key = 'TRADE:FEE:INDEX_INR'; // 印度股指
$gold_futures_key = 'TRADE:FEE:GOLD_FUTURES'; // 黄金期货
if($market_type==0){ if($market_type==0){
@ -633,6 +635,14 @@ class BaseHomeService
$this->redis->del($forex_fee_key); $this->redis->del($forex_fee_key);
$this->redis->hMset($forex_fee_key,$item); $this->redis->hMset($forex_fee_key,$item);
break; break;
case 20:
$this->redis->del($indian_stock_index_key);
$this->redis->hMset($indian_stock_index_key,$item);
break;
case 21:
$this->redis->del($gold_futures_key);
$this->redis->hMset($gold_futures_key,$item);
break;
} }
} }
return $trade_fee_list; return $trade_fee_list;
@ -684,6 +694,12 @@ class BaseHomeService
case 19: case 19:
$res=$this->redis->hGetAll($forex_fee_key); $res=$this->redis->hGetAll($forex_fee_key);
break; break;
case 20:
$res=$this->redis->hGetAll($indian_stock_index_key);
break;
case 21:
$res=$this->redis->hGetAll($gold_futures_key);
break;
} }
return $res; return $res;
} }

25
app/home/service/WalletService.php

@ -18,6 +18,7 @@ use app\model\UserContractSecModel;
use app\model\UserDigitalModel; use app\model\UserDigitalModel;
use app\model\UserForexLogModel; use app\model\UserForexLogModel;
use app\model\UserForexModel; use app\model\UserForexModel;
use app\model\UserGoldFuturesLogModel;
use app\model\UserGoldFuturesModel; use app\model\UserGoldFuturesModel;
use app\model\UserHkdPreStockOrderModel; use app\model\UserHkdPreStockOrderModel;
use app\model\UserIdnPreStockOrderModel; use app\model\UserIdnPreStockOrderModel;
@ -66,6 +67,7 @@ use app\model\WalletListModel;
use app\utility\UnqId; use app\utility\UnqId;
use think\exception\ValidateException; use think\exception\ValidateException;
use think\facade\Cache; use think\facade\Cache;
use think\facade\Config;
use think\facade\Db; use think\facade\Db;
class WalletService extends BaseHomeService class WalletService extends BaseHomeService
@ -1298,8 +1300,6 @@ class WalletService extends BaseHomeService
return $this->toData('2', 'error'); return $this->toData('2', 'error');
} }
//print_r($from_account);
$cha_num = $from_account['usable_num'] - $data['change_num']; $cha_num = $from_account['usable_num'] - $data['change_num'];
if ($cha_num < 0) { if ($cha_num < 0) {
Db::rollback(); Db::rollback();
@ -1324,7 +1324,6 @@ class WalletService extends BaseHomeService
return $this->toData('500', lang('data_empty')); return $this->toData('500', lang('data_empty'));
} }
//插入账户资金划转表 //插入账户资金划转表
$transfer_data['user_id'] = $data['user_id']; $transfer_data['user_id'] = $data['user_id'];
$transfer_data['from_account'] = $data['from_account']; $transfer_data['from_account'] = $data['from_account'];
@ -1355,7 +1354,6 @@ class WalletService extends BaseHomeService
//变动类型:1-充值,2-提现,3-买入,4-卖出,5-冻结,6-解冻,7账户转出,8账户转入 //变动类型:1-充值,2-提现,3-买入,4-卖出,5-冻结,6-解冻,7账户转出,8账户转入
//插入资金变动日志 //插入资金变动日志
$from_log['user_id'] = $data['user_id']; $from_log['user_id'] = $data['user_id'];
$from_log['change_type'] = 7; $from_log['change_type'] = 7;
$from_log['change_num'] = -$data['change_num']; $from_log['change_num'] = -$data['change_num'];
@ -1364,7 +1362,7 @@ class WalletService extends BaseHomeService
$res = $this->addUserBalanceLog($data['from_account'], $from_log); $res = $this->addUserBalanceLog($data['from_account'], $from_log);
if (empty($res)) { if (empty($res)) {
Db::rollback(); Db::rollback();
return $this->toData('500', lang('system_busy')); return $this->toData('500', 'Logging Failure of from_account');
} }
@ -1376,7 +1374,7 @@ class WalletService extends BaseHomeService
$res = $this->addUserBalanceLog($data['to_account'], $to_log); $res = $this->addUserBalanceLog($data['to_account'], $to_log);
if (empty($res)) { if (empty($res)) {
Db::rollback(); Db::rollback();
return $this->toData('500', lang('system_busy')); return $this->toData('500', 'Logging Failure of to_account');
} }
Db::commit(); Db::commit();
@ -1600,7 +1598,7 @@ class WalletService extends BaseHomeService
case 21: case 21:
return UserGoldFuturesModel::updateUserGoldFutures($update_data, [ return UserGoldFuturesModel::updateUserGoldFutures($update_data, [
'user_id' => $user_id, 'user_id' => $user_id,
'contract_id' => 'GC' 'contract_id' => 'USD'
]); ]);
break; break;
default: default:
@ -1687,6 +1685,9 @@ class WalletService extends BaseHomeService
case 20: case 20:
$log_data['contract_id'] = 'INR'; $log_data['contract_id'] = 'INR';
return UserStockIndexInrLogModel::InsertUserBalanceLog($log_data); return UserStockIndexInrLogModel::InsertUserBalanceLog($log_data);
case 21:
$log_data['contract_id'] = 'USD';
return UserGoldFuturesLogModel::InsertUserBalanceLog($log_data);
default: default:
return false; return false;
break; break;
@ -1836,16 +1837,12 @@ class WalletService extends BaseHomeService
{ {
try { try {
// 1 现货 2 合约 3 美股 4 印尼股 5 马股 6 泰股 7 印度 // 1 现货 2 合约 3 美股 4 印尼股 5 马股 6 泰股 7 印度
if (empty($data['from_account']) || empty($data['to_account'])) {
return $this->toData('400', lang('parameter_error'));
}
$fromAccount = $data['from_account']; $fromAccount = $data['from_account'];
$toAccount = $data['to_account']; $toAccount = $data['to_account'];
if($fromAccount <1 || $fromAccount > 20){
return $this->toData('2', 'Transfer out account type is incorrect.');
}
if($toAccount <1 || $toAccount > 20){
return $this->toData('2', 'Transfer out account type is incorrect.');
}
if ($fromAccount == $toAccount) { if ($fromAccount == $toAccount) {
return $this->toData('500', lang('the_transfer_out_account_and_the_transfer_in_account_cannot_be_the_same_account')); return $this->toData('500', lang('the_transfer_out_account_and_the_transfer_in_account_cannot_be_the_same_account'));
} }

23
app/model/UserGoldFuturesLogModel.php

@ -0,0 +1,23 @@
<?php
namespace app\model;
class UserGoldFuturesLogModel extends BaseModel
{
protected $name = 'user_gold_futures_log';
public static function InsertUserBalanceLog(array $data)
{
$self = new self;
$self->user_id = $data['user_id'];
$self->contract_id = $data['contract_id'];
$self->change_type = $data['change_type'];
$self->change_num = $data['change_num'];
if(isset($data['order_id'])){
$self->order_id = $data['order_id'];
}
$self->before_num = $data['before_num'];
$self->create_time = date('Y-m-d H:i:s');
$self->update_time = date('Y-m-d H:i:s');
return $self->save();
}
}

8
app/model/UserGoldFuturesModel.php

@ -5,7 +5,7 @@ class UserGoldFuturesModel extends BaseModel
{ {
protected $name = 'user_gold_futures'; protected $name = 'user_gold_futures';
public static function getUserGoldFuturesLock(int $user_id,string $contract_id ='GC'):array public static function getUserGoldFuturesLock(int $user_id,string $contract_id ='USD'):array
{ {
$info = self::where([ $info = self::where([
'user_id'=>$user_id, 'user_id'=>$user_id,
@ -30,7 +30,7 @@ class UserGoldFuturesModel extends BaseModel
if(!empty($data['trade_name'])){ if(!empty($data['trade_name'])){
$contract_id = $data['trade_name']; $contract_id = $data['trade_name'];
}else{ }else{
$contract_id = 'GC'; $contract_id = 'USD';
} }
$info = self::where([ $info = self::where([
'user_id' => $data['user_id'], 'user_id' => $data['user_id'],
@ -57,7 +57,7 @@ class UserGoldFuturesModel extends BaseModel
if($list->isEmpty()){ if($list->isEmpty()){
$self = new self; $self = new self;
$self->user_id = $user_id; $self->user_id = $user_id;
$self->contract_id = 'GC'; $self->contract_id = 'USD';
$self->usable_num = '0'; $self->usable_num = '0';
$self->frozen_num = '0'; $self->frozen_num = '0';
$self->create_time = date('Y-m-d H:i:s'); $self->create_time = date('Y-m-d H:i:s');
@ -69,7 +69,7 @@ class UserGoldFuturesModel extends BaseModel
])->field('usable_num,frozen_num,contract_id as name')->select(); ])->field('usable_num,frozen_num,contract_id as name')->select();
} }
foreach ($list as $key=>$val){ foreach ($list as $key=>$val){
if($val['name']=='GC'){ if($val['name']=='USD'){
$list[$key]['buy_up']=[ $list[$key]['buy_up']=[
'buy_num'=>0, 'buy_num'=>0,
'buy_money'=>0 'buy_money'=>0

Loading…
Cancel
Save