|
|
@ -19,6 +19,7 @@ use app\model\UserDigitalModel; |
|
|
|
use app\model\UserForexModel; |
|
|
|
use app\model\UserLoginLog; |
|
|
|
use app\model\UserModel; |
|
|
|
use app\model\UserStageStateModel; |
|
|
|
use app\model\UserStockBrlModel; |
|
|
|
use app\model\UserStockEurModel; |
|
|
|
use app\model\UserStockFurModel; |
|
|
@ -124,212 +125,228 @@ class UserService extends AdminBaseService |
|
|
|
} |
|
|
|
|
|
|
|
$userList = UserModel::where($where)->where($whereU)->page($param['page'], $param['limit'])->order('user_id', 'desc')->select(); |
|
|
|
if (empty($userList)) { |
|
|
|
return $this->toData('0', 'SUCCESS', ['total' => 0, 'list' => [], 'extent' => ['market_type_list' => StockMarketModel::STOCK_MARKET_TYPE, 'is_agent' => $IsAgent, 'agent_list' => $agentNameArr, 'market_rate' => $marketRate, 'market_tape_list' => $tapeList]]); |
|
|
|
} |
|
|
|
$total = UserModel::where($where)->where($whereU)->count(); |
|
|
|
|
|
|
|
$rows = []; |
|
|
|
if (!empty($userList)) { |
|
|
|
$userIdArr = []; |
|
|
|
$parentIdArr = []; |
|
|
|
foreach ($userList as $value) { |
|
|
|
$userIdArr[] = $value['user_id']; |
|
|
|
if ($value['parent_id'] > 0) { |
|
|
|
$parentIdArr[] = $value['parent_id']; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 查询父级 |
|
|
|
$parentNos = UserModel::where('user_id', 'in', $parentIdArr)->column('user_no', 'user_id'); |
|
|
|
|
|
|
|
// 查询用户余额 |
|
|
|
$userContractList = UserContractModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('contract_id', 'USDT') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
// 查询用户余额 |
|
|
|
$userContractSecList = UserContractSecModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('contract_id', 'USDT') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
$userStockList = UserStockModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'USD') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
$userDigitalList = UserDigitalModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('digital_id', 'USDT') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
|
|
|
|
// 印尼资产 |
|
|
|
$userStockIdrList = UserStockIdnModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'IDR') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
|
|
|
|
// 泰股资产 |
|
|
|
$userStockThaList = UserStockThaModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'THB') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
|
|
|
|
// 马股资产 |
|
|
|
$userStockMysList = UserStockMysModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'MYR') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
|
|
|
|
// 印度股票资产 |
|
|
|
$userStockInList = UserStockInModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'INR') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
//新加坡股票资产 |
|
|
|
$userStockSGDList = UserStockSgdModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'SGD') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
//基金资产 |
|
|
|
$userStockFundList = UserStockFundModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'USD') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
//印度期权 |
|
|
|
$userStockOptionInrList = UserStockOptionInrModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'INR') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
//港股 |
|
|
|
$userStockHkList = UserStockHkdModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'HKD') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
//英股 |
|
|
|
$userStockUkList = UserStockGBXModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'GBX') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
//法股 |
|
|
|
$userStockFurList = UserStockFurModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'EUR') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
//德股 |
|
|
|
$userStockEurList = UserStockEurModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'EUR') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
//巴西 |
|
|
|
$userStockBrlList = UserStockBrlModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'BRL') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
|
|
|
|
$userStockJpList = UserStockJpModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'JPY') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
//外汇 |
|
|
|
$userForexList = UserForexModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('contract_id', 'USD') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
|
|
|
|
// 用户关联的客服id |
|
|
|
$customerRelationList = CustomerRelationalModel::where('user_id', 'in', $userIdArr)->column('customer_id', 'user_id'); |
|
|
|
// 获取每个客服的名称 |
|
|
|
$customerNames = []; |
|
|
|
if ($customerRelationList) { |
|
|
|
$customerIds = array_values($customerRelationList); |
|
|
|
$customerNames = AdminModel::where('id', 'in', $customerIds)->column('nick_name', 'id'); |
|
|
|
$rows = []; |
|
|
|
$userIdArr = []; |
|
|
|
$parentIdArr = []; |
|
|
|
foreach ($userList as $value) { |
|
|
|
$userIdArr[] = $value['user_id']; |
|
|
|
if ($value['parent_id'] > 0) { |
|
|
|
$parentIdArr[] = $value['parent_id']; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 用户实名认证信息 |
|
|
|
$realNameTranslation = UserVerifyLogModel::where('user_id', 'in', $userIdArr) ->column('user_id,name,code,front_img,back_img,status,country', 'user_id'); |
|
|
|
if ($realNameTranslation) { |
|
|
|
// 获取s3图片 |
|
|
|
$frontImgIds = array_column($realNameTranslation, 'front_img'); |
|
|
|
$imgArr = AwsS3Model::where('id', 'in', $frontImgIds)->column('s3_url', 'id'); |
|
|
|
// 获取国家 |
|
|
|
$countryIds = array_column($realNameTranslation, 'country'); |
|
|
|
$countryArr = CountryModel::where('id', 'in', $countryIds)->column('name_cn', 'id'); |
|
|
|
foreach ($realNameTranslation as $k=>$v) { |
|
|
|
if (!empty($v['front_img'])) { |
|
|
|
$realNameTranslation[$k]['front_img'] = $imgArr[$v['front_img']] ?? ''; |
|
|
|
} |
|
|
|
if (!empty($v['country'])) { |
|
|
|
$realNameTranslation[$k]['country'] = $countryArr[$v['country']] ?? ''; |
|
|
|
} |
|
|
|
// 查询父级 |
|
|
|
$parentNos = UserModel::where('user_id', 'in', $parentIdArr)->column('user_no', 'user_id'); |
|
|
|
|
|
|
|
// 查询用户余额 |
|
|
|
$userContractList = UserContractModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('contract_id', 'USDT') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
// 查询用户余额 |
|
|
|
$userContractSecList = UserContractSecModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('contract_id', 'USDT') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
$userStockList = UserStockModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'USD') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
$userDigitalList = UserDigitalModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('digital_id', 'USDT') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
|
|
|
|
// 印尼资产 |
|
|
|
$userStockIdrList = UserStockIdnModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'IDR') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
|
|
|
|
// 泰股资产 |
|
|
|
$userStockThaList = UserStockThaModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'THB') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
|
|
|
|
// 马股资产 |
|
|
|
$userStockMysList = UserStockMysModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'MYR') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
|
|
|
|
// 印度股票资产 |
|
|
|
$userStockInList = UserStockInModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'INR') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
//新加坡股票资产 |
|
|
|
$userStockSGDList = UserStockSgdModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'SGD') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
//基金资产 |
|
|
|
$userStockFundList = UserStockFundModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'USD') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
//印度期权 |
|
|
|
$userStockOptionInrList = UserStockOptionInrModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'INR') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
//港股 |
|
|
|
$userStockHkList = UserStockHkdModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'HKD') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
//英股 |
|
|
|
$userStockUkList = UserStockGBXModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'GBX') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
//法股 |
|
|
|
$userStockFurList = UserStockFurModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'EUR') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
//德股 |
|
|
|
$userStockEurList = UserStockEurModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'EUR') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
//巴西 |
|
|
|
$userStockBrlList = UserStockBrlModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'BRL') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
|
|
|
|
$userStockJpList = UserStockJpModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('stock_id', 'JPY') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
//外汇 |
|
|
|
$userForexList = UserForexModel::where('user_id', 'in', $userIdArr) |
|
|
|
->where('contract_id', 'USD') |
|
|
|
->column('usable_num,frozen_num', 'user_id'); |
|
|
|
|
|
|
|
// 用户关联的客服id |
|
|
|
$customerRelationList = CustomerRelationalModel::where('user_id', 'in', $userIdArr)->column('customer_id', 'user_id'); |
|
|
|
// 获取每个客服的名称 |
|
|
|
$customerNames = []; |
|
|
|
if ($customerRelationList) { |
|
|
|
$customerIds = array_values($customerRelationList); |
|
|
|
$customerNames = AdminModel::where('id', 'in', $customerIds)->column('nick_name', 'id'); |
|
|
|
} |
|
|
|
|
|
|
|
// 查询用户充值、提款冻结状态 |
|
|
|
$accountFrozenList = AccountFrozenModel::where('user_id', 'in', $userIdArr)->column('frozen_recharge,frozen_withdraw', 'user_id'); |
|
|
|
|
|
|
|
// 用户实名认证信息 |
|
|
|
$realNameTranslation = UserVerifyLogModel::where('user_id', 'in', $userIdArr)->column('user_id,name,code,front_img,back_img,status,country', 'user_id'); |
|
|
|
if ($realNameTranslation) { |
|
|
|
// 获取s3图片 |
|
|
|
$frontImgIds = array_column($realNameTranslation, 'front_img'); |
|
|
|
$imgArr = AwsS3Model::where('id', 'in', $frontImgIds)->column('s3_url', 'id'); |
|
|
|
// 获取国家 |
|
|
|
$countryIds = array_column($realNameTranslation, 'country'); |
|
|
|
$countryArr = CountryModel::where('id', 'in', $countryIds)->column('name_cn', 'id'); |
|
|
|
foreach ($realNameTranslation as $k=>$v) { |
|
|
|
if (!empty($v['front_img'])) { |
|
|
|
$realNameTranslation[$k]['front_img'] = $imgArr[$v['front_img']] ?? ''; |
|
|
|
} |
|
|
|
if (!empty($v['country'])) { |
|
|
|
$realNameTranslation[$k]['country'] = $countryArr[$v['country']] ?? ''; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//最近登录IP、最近登录国家 |
|
|
|
$subQuery = UserLoginLog::field('user_id,MAX(login_date) AS last_login_date') |
|
|
|
->where('user_id', 'in', $userIdArr)->group('user_id')->buildSql(); |
|
|
|
$lastLoginLog = UserLoginLog::alias('a')->field('a.id') |
|
|
|
->join([$subQuery => 'w'], 'a.user_id=w.user_id AND a.login_date=w.last_login_date')->column(['id', 'ip', 'country', 'city'], 'a.user_id'); |
|
|
|
// 用户阶段信息 |
|
|
|
$userStageStateList = UserStageStateModel::where('user_id', 'in', $userIdArr)->column('first_stage,first_stage_state,second_stage,second_stage_state,third_stage,third_stage_state', 'user_id'); |
|
|
|
|
|
|
|
foreach ($userList as $item) { |
|
|
|
$itmCustomerId = $customerRelationList[$item['user_id']] ?? 0; //当前用户关联的客服ID |
|
|
|
$itmCustomerName = ""; |
|
|
|
if ($itmCustomerId) { |
|
|
|
$itmCustomerName = $customerNames[$itmCustomerId] ?? ""; //当前客服的名称 |
|
|
|
} |
|
|
|
|
|
|
|
$rows[] = [ |
|
|
|
'id' => $item['user_id'], |
|
|
|
'user_no' => $item['user_no'], |
|
|
|
'nickname' => $item['nick_name'], |
|
|
|
'regTime' => $item['create_time'], |
|
|
|
'parentNo' => $parentNos[$item['parent_id']] ?? '-', |
|
|
|
'parent_id' => $item['parent_id'], |
|
|
|
'invite_code' => $item['invite_code'], |
|
|
|
'email' => $item['email'], |
|
|
|
'mobile' => $item['country_code'] . '-' . $item['phone_number'], |
|
|
|
'customer_remark' => $item['customer_remark'], |
|
|
|
'label' => $item['label'], |
|
|
|
'base_label' => $item['base_label'], |
|
|
|
'customer_id' => $itmCustomerId, |
|
|
|
'customer_name' => $itmCustomerName, |
|
|
|
'real_name_translation' => $realNameTranslation[$item['user_id']] ?? [], |
|
|
|
|
|
|
|
//余额 |
|
|
|
'digital' => $userDigitalList[$item['user_id']]['usable_num'] ?? '0', |
|
|
|
'stock' => $userStockList[$item['user_id']]['usable_num'] ?? '0', |
|
|
|
'contract' => $userContractList[$item['user_id']]['usable_num'] ?? '0', |
|
|
|
'contract_sec' => $userContractSecList[$item['user_id']]['usable_num'] ?? '0', |
|
|
|
'forex' => $userForexList[$item['user_id']]['usable_num'] ?? '0',//外汇 |
|
|
|
'stock_idn' => $userStockIdrList[$item['user_id']]['usable_num'] ?? '0', // 印尼股票余额 |
|
|
|
'stock_tha' => $userStockThaList[$item['user_id']]['usable_num'] ?? '0', // 泰股资产 |
|
|
|
'stock_mys' => $userStockMysList[$item['user_id']]['usable_num'] ?? '0', // 马股资产 |
|
|
|
'stock_in' => $userStockInList[$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', // 印度期权资产 |
|
|
|
'stock_hk' => $userStockHkList[$item['user_id']]['usable_num'] ?? '0', // 香港股资产 |
|
|
|
'stock_uk' => $userStockUkList[$item['user_id']]['usable_num'] ?? '0', // 英股资产 |
|
|
|
'stock_fur' => $userStockFurList[$item['user_id']]['usable_num'] ?? '0', // 法股资产 |
|
|
|
'stock_eur' => $userStockEurList[$item['user_id']]['usable_num'] ?? '0', // 德股资产 |
|
|
|
'stock_brl' => $userStockBrlList[$item['user_id']]['usable_num'] ?? '0', // 巴西股资产 |
|
|
|
'stock_jp' => $userStockJpList[$item['user_id']]['usable_num'] ?? '0', // 巴西股资产 |
|
|
|
|
|
|
|
//冻结资金 |
|
|
|
'digital_frozen' => $userDigitalList[$item['user_id']]['frozen_num'] ?? '0', |
|
|
|
'stock_frozen' => $userStockList[$item['user_id']]['frozen_num'] ?? '0', |
|
|
|
'contract_frozen' => $userContractList[$item['user_id']]['frozen_num'] ?? '0', |
|
|
|
'forex_frozen' => $userForexList[$item['user_id']]['frozen_num'] ?? '0', |
|
|
|
'contract_sec_frozen' => $userContractSecList[$item['user_id']]['frozen_num'] ?? '0', |
|
|
|
'stock_idn_frozen' => $userStockIdrList[$item['user_id']]['frozen_num'] ?? '0', // 印尼股票余额 |
|
|
|
'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_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', // 印度期权资产 |
|
|
|
'stock_hk_frozen' => $userStockHkList[$item['user_id']]['frozen_num'] ?? '0', // 香港股资产 |
|
|
|
'stock_uk_frozen' => $userStockUkList[$item['user_id']]['frozen_num'] ?? '0', // 英港股资产 |
|
|
|
'stock_fur_frozen' => $userStockFurList[$item['user_id']]['frozen_num'] ?? '0', // 法股资产 |
|
|
|
'stock_eur_frozen' => $userStockEurList[$item['user_id']]['frozen_num'] ?? '0', // 德股资产 |
|
|
|
'stock_brl_frozen' => $userStockBrlList[$item['user_id']]['frozen_num'] ?? '0', // 德股资产 |
|
|
|
'stock_jp_frozen' => $userStockJpList[$item['user_id']]['frozen_num'] ?? '0', // 德股资产 |
|
|
|
//最近登录IP、最近登录国家 |
|
|
|
$subQuery = UserLoginLog::field('user_id,MAX(login_date) AS last_login_date') |
|
|
|
->where('user_id', 'in', $userIdArr)->group('user_id')->buildSql(); |
|
|
|
$lastLoginLog = UserLoginLog::alias('a')->field('a.id') |
|
|
|
->join([$subQuery => 'w'], 'a.user_id=w.user_id AND a.login_date=w.last_login_date')->column(['id', 'ip', 'country', 'city'], 'a.user_id'); |
|
|
|
|
|
|
|
'rechargeAmount' => 0, |
|
|
|
'withdrawalAmount' => 0, |
|
|
|
'regIp' => $item['reg_ip'], |
|
|
|
'status' => $item['status'], |
|
|
|
'statusName' => UserModel::$statusMap[$item['status']] ?? '-', |
|
|
|
'loginTime' => $item['last_login_time'], |
|
|
|
'is_real' => $item['is_real'], |
|
|
|
'real_status' => $item['real_status'], |
|
|
|
'lever_status' => $item['lever_status'], |
|
|
|
'is_test_user' => $item['is_test_user'], |
|
|
|
'is_test_user_text' => UserModel::$isTestUserMap[$item['is_test_user']] ?? '-', |
|
|
|
'last_ip' => $lastLoginLog[$item['user_id']]['ip'] ?? '-', |
|
|
|
'last_country' => empty($lastLoginLog[$item['user_id']]['country']) ? '-' : json_decode($lastLoginLog[$item['user_id']]['country'], true)['en'], |
|
|
|
'agent_id' => $item['agent_id'], |
|
|
|
'agent_name' => $item['agent_id'] > 0 ? $agentNameArr[$item['agent_id']] ?? '-' : '-', |
|
|
|
]; |
|
|
|
foreach ($userList as $item) { |
|
|
|
$itmCustomerId = $customerRelationList[$item['user_id']] ?? 0; //当前用户关联的客服ID |
|
|
|
$itmCustomerName = ""; |
|
|
|
if ($itmCustomerId) { |
|
|
|
$itmCustomerName = $customerNames[$itmCustomerId] ?? ""; //当前客服的名称 |
|
|
|
} |
|
|
|
|
|
|
|
$rows[] = [ |
|
|
|
'id' => $item['user_id'], |
|
|
|
'user_no' => $item['user_no'], |
|
|
|
'nickname' => $item['nick_name'], |
|
|
|
'regTime' => $item['create_time'], |
|
|
|
'parentNo' => $parentNos[$item['parent_id']] ?? '-', |
|
|
|
'parent_id' => $item['parent_id'], |
|
|
|
'invite_code' => $item['invite_code'], |
|
|
|
'email' => $item['email'], |
|
|
|
'mobile' => $item['country_code'] . '-' . $item['phone_number'], |
|
|
|
'customer_remark' => $item['customer_remark'], |
|
|
|
'label' => $item['label'], |
|
|
|
'base_label' => $item['base_label'], |
|
|
|
'customer_id' => $itmCustomerId, |
|
|
|
'customer_name' => $itmCustomerName, |
|
|
|
'real_name_translation' => $realNameTranslation[$item['user_id']] ?? [], |
|
|
|
'frozen_recharge' => $accountFrozenList[$item['user_id']]['frozen_recharge'] ?? 0, |
|
|
|
'frozen_withdraw' => $accountFrozenList[$item['user_id']]['frozen_withdraw'] ?? 0, |
|
|
|
'first_stage' => $userStageStateList[$item['user_id']]['first_stage'] ?? '', |
|
|
|
'first_stage_state' => $userStageStateList[$item['user_id']]['first_stage_state'] ?? 0, |
|
|
|
'second_stage' => $userStageStateList[$item['user_id']]['second_stage'] ?? '', |
|
|
|
'second_stage_state' => $userStageStateList[$item['user_id']]['second_stage_state'] ?? 0, |
|
|
|
'third_stage' => $userStageStateList[$item['user_id']]['third_stage'] ?? '', |
|
|
|
'third_stage_state' => $userStageStateList[$item['user_id']]['third_stage_state'] ?? 0, |
|
|
|
|
|
|
|
//余额 |
|
|
|
'digital' => $userDigitalList[$item['user_id']]['usable_num'] ?? '0', |
|
|
|
'stock' => $userStockList[$item['user_id']]['usable_num'] ?? '0', |
|
|
|
'contract' => $userContractList[$item['user_id']]['usable_num'] ?? '0', |
|
|
|
'contract_sec' => $userContractSecList[$item['user_id']]['usable_num'] ?? '0', |
|
|
|
'forex' => $userForexList[$item['user_id']]['usable_num'] ?? '0',//外汇 |
|
|
|
'stock_idn' => $userStockIdrList[$item['user_id']]['usable_num'] ?? '0', // 印尼股票余额 |
|
|
|
'stock_tha' => $userStockThaList[$item['user_id']]['usable_num'] ?? '0', // 泰股资产 |
|
|
|
'stock_mys' => $userStockMysList[$item['user_id']]['usable_num'] ?? '0', // 马股资产 |
|
|
|
'stock_in' => $userStockInList[$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', // 印度期权资产 |
|
|
|
'stock_hk' => $userStockHkList[$item['user_id']]['usable_num'] ?? '0', // 香港股资产 |
|
|
|
'stock_uk' => $userStockUkList[$item['user_id']]['usable_num'] ?? '0', // 英股资产 |
|
|
|
'stock_fur' => $userStockFurList[$item['user_id']]['usable_num'] ?? '0', // 法股资产 |
|
|
|
'stock_eur' => $userStockEurList[$item['user_id']]['usable_num'] ?? '0', // 德股资产 |
|
|
|
'stock_brl' => $userStockBrlList[$item['user_id']]['usable_num'] ?? '0', // 巴西股资产 |
|
|
|
'stock_jp' => $userStockJpList[$item['user_id']]['usable_num'] ?? '0', // 巴西股资产 |
|
|
|
|
|
|
|
//冻结资金 |
|
|
|
'digital_frozen' => $userDigitalList[$item['user_id']]['frozen_num'] ?? '0', |
|
|
|
'stock_frozen' => $userStockList[$item['user_id']]['frozen_num'] ?? '0', |
|
|
|
'contract_frozen' => $userContractList[$item['user_id']]['frozen_num'] ?? '0', |
|
|
|
'forex_frozen' => $userForexList[$item['user_id']]['frozen_num'] ?? '0', |
|
|
|
'contract_sec_frozen' => $userContractSecList[$item['user_id']]['frozen_num'] ?? '0', |
|
|
|
'stock_idn_frozen' => $userStockIdrList[$item['user_id']]['frozen_num'] ?? '0', // 印尼股票余额 |
|
|
|
'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_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', // 印度期权资产 |
|
|
|
'stock_hk_frozen' => $userStockHkList[$item['user_id']]['frozen_num'] ?? '0', // 香港股资产 |
|
|
|
'stock_uk_frozen' => $userStockUkList[$item['user_id']]['frozen_num'] ?? '0', // 英港股资产 |
|
|
|
'stock_fur_frozen' => $userStockFurList[$item['user_id']]['frozen_num'] ?? '0', // 法股资产 |
|
|
|
'stock_eur_frozen' => $userStockEurList[$item['user_id']]['frozen_num'] ?? '0', // 德股资产 |
|
|
|
'stock_brl_frozen' => $userStockBrlList[$item['user_id']]['frozen_num'] ?? '0', // 德股资产 |
|
|
|
'stock_jp_frozen' => $userStockJpList[$item['user_id']]['frozen_num'] ?? '0', // 德股资产 |
|
|
|
|
|
|
|
'rechargeAmount' => 0, |
|
|
|
'withdrawalAmount' => 0, |
|
|
|
'regIp' => $item['reg_ip'], |
|
|
|
'status' => $item['status'], |
|
|
|
'statusName' => UserModel::$statusMap[$item['status']] ?? '-', |
|
|
|
'loginTime' => $item['last_login_time'], |
|
|
|
'is_real' => $item['is_real'], |
|
|
|
'real_status' => $item['real_status'], |
|
|
|
'lever_status' => $item['lever_status'], |
|
|
|
'is_test_user' => $item['is_test_user'], |
|
|
|
'is_test_user_text' => UserModel::$isTestUserMap[$item['is_test_user']] ?? '-', |
|
|
|
'last_ip' => $lastLoginLog[$item['user_id']]['ip'] ?? '-', |
|
|
|
'last_country' => empty($lastLoginLog[$item['user_id']]['country']) ? '-' : json_decode($lastLoginLog[$item['user_id']]['country'], true)['en'], |
|
|
|
'agent_id' => $item['agent_id'], |
|
|
|
'agent_name' => $item['agent_id'] > 0 ? $agentNameArr[$item['agent_id']] ?? '-' : '-', |
|
|
|
]; |
|
|
|
} |
|
|
|
|
|
|
|
return $this->toData('0', 'SUCCESS', ['total' => $total, 'list' => $rows, 'extent' => ['market_type_list' => StockMarketModel::STOCK_MARKET_TYPE, 'is_agent' => $IsAgent, 'agent_list' => $agentNameArr, 'market_rate' => $marketRate, 'market_tape_list' => $tapeList]]); |
|
|
@ -1166,6 +1183,51 @@ class UserService extends AdminBaseService |
|
|
|
return $this->toData('1', '系统异常 请稍后重试', [$exception->getMessage(), $exception->getTrace()]); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 编辑用户阶段信息 |
|
|
|
public function editUserStage($param) |
|
|
|
{ |
|
|
|
try { |
|
|
|
if (empty($param['user_id'])) { |
|
|
|
return $this->toData('400', '缺少参数'); |
|
|
|
} |
|
|
|
// 检测用户数据 |
|
|
|
$user = UserModel::where('user_id', $param['user_id'])->findOrEmpty()->toArray(); |
|
|
|
if (empty($user)) { |
|
|
|
return $this->toData('1', '用户不存在'); |
|
|
|
} |
|
|
|
// 检测用户阶段数据 |
|
|
|
$userStageState = UserStageStateModel::where(['user_id'=>$user['user_id']])->find(); |
|
|
|
if (empty($userStageState)) { |
|
|
|
UserStageStateModel::create([ |
|
|
|
'user_id' => $user['user_id'], |
|
|
|
'first_stage' => $param['first_stage'] ?? '', |
|
|
|
'first_stage_state' => $param['first_stage_state'] ?? 0, |
|
|
|
'second_stage' => $param['second_stage'] ?? '', |
|
|
|
'second_stage_state' => $param['second_stage_state'] ?? 0, |
|
|
|
'third_stage' => $param['third_stage'] ?? '', |
|
|
|
'third_stage_state' => $param['third_stage_state'] ?? 0, |
|
|
|
]); |
|
|
|
} else { |
|
|
|
if (isset($param['first_stage'])) { |
|
|
|
$userStageState->first_stage = $param['first_stage']; |
|
|
|
$userStageState->first_stage_state = $param['first_stage_state'] ?? 0; |
|
|
|
} |
|
|
|
if (isset($param['second_stage'])) { |
|
|
|
$userStageState->second_stage = $param['second_stage']; |
|
|
|
$userStageState->second_stage_state = $param['second_stage_state'] ?? 0; |
|
|
|
} |
|
|
|
if (isset($param['third_stage'])) { |
|
|
|
$userStageState->third_stage = $param['third_stage']; |
|
|
|
$userStageState->third_stage_state = $param['third_stage_state'] ?? 0; |
|
|
|
} |
|
|
|
$userStageState->save(); |
|
|
|
} |
|
|
|
return $this->toData('0', 'SUCCESS'); |
|
|
|
} catch (\Exception $exception) { |
|
|
|
return $this->toData('500', '系统异常 请稍后重试', [$exception->getMessage(), $exception->getTrace()]); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|