bourse stock
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

197 lines
6.5 KiB

<?php
namespace app\home\service;
use app\model\RechargeApplyModel;
use app\model\UserBrokerageModel;
use app\model\UserLevelModel;
use think\facade\Db;
/**
* 处理团队佣金业务
*/
class TeamService extends BaseHomeService
{
public function getUserTeamCollect(int $user_id):array
{
//获取到level1人数
$level_num=UserLevelModel::getUserLevelCount([
'parent_id'=>$user_id
]);
$level2_num=UserLevelModel::getUserLevelCount([
'grandpa_id'=>$user_id
]);
$level3_num=UserLevelModel::getUserLevelCount([
'top_id'=>$user_id
]);
//总人数
$total_num=$level_num+$level2_num+$level3_num;
$users_level=UserLevelModel::getUsers([
'parent_id'=>$user_id
]);
if(!empty($users_level)){
$users_level_arr=array_column($users_level,'user_id');
$pay_level=RechargeApplyModel::getUserPayNum($users_level_arr);
}else{
$pay_level=0;
}
$users_level2=UserLevelModel::getUsers([
'grandpa_id'=>$user_id
]);
if(!empty($users_level2)){
$users_level2_arr=array_column($users_level2,'user_id');
$pay_level2=RechargeApplyModel::getUserPayNum($users_level2_arr);
}else{
$pay_level2=0;
}
$users_level3=UserLevelModel::getUsers([
'top_id'=>$user_id
]);
if(!empty($users_level3)){
$users_level3_arr=array_column($users_level3,'user_id');
$pay_level3=RechargeApplyModel::getUserPayNum($users_level3_arr);
}else{
$pay_level3=0;
}
$total_pay=$pay_level+$pay_level2+$pay_level3;
//总收入
$level_back_num=UserBrokerageModel::getUserBrokerageNum([
'user_id'=>$user_id,
'level_type'=>1
],'brokerage_num');
$level2_back_num=UserBrokerageModel::getUserBrokerageNum([
'user_id'=>$user_id,
'level_type'=>2
],'brokerage_num');
$level3_back_num=UserBrokerageModel::getUserBrokerageNum([
'user_id'=>$user_id,
'level_type'=>3
],'brokerage_num');
$total_back_num=$level_back_num+$level2_back_num+$level3_back_num;
//今日收入
$today=date('Y-m-d 00:00:00');
$level_today_num=UserBrokerageModel::getUserBrokerageNum([
['user_id','=',$user_id],
['level_type','=',1],
['create_time','>=',$today],
],'brokerage_num');
$level2_today_num=UserBrokerageModel::getUserBrokerageNum([
['user_id','=',$user_id],
['level_type','=',2],
['create_time','>=',$today],
],'brokerage_num');
$level3_today_num=UserBrokerageModel::getUserBrokerageNum([
['user_id','=',$user_id],
['level_type','=',3],
['create_time','>=',$today],
],'brokerage_num');
$today_back_num=$level_today_num+$level2_today_num+$level3_today_num;
$result=[
'total_num'=>[
'reg_num'=>$total_num,
'recharge_num'=>$total_pay,
'back_num'=>$total_back_num,
'today_back_num'=>$today_back_num
],
'level1'=>[
'reg_num'=>$level_num,
'recharge_num'=>$pay_level,
'back_num'=>$level_back_num,
'today_back_num'=>$level2_today_num
],
'level2'=>[
'reg_num'=>$level2_num,
'recharge_num'=>$pay_level2,
'back_num'=>$level2_back_num,
'today_back_num'=>$level2_today_num
],
'level3'=>[
'reg_num'=>$level3_num,
'recharge_num'=>$pay_level3,
'back_num'=>$level3_back_num,
'today_back_num'=>$level3_today_num
]
];
return $this->toData(0,'Request successful.',$result);
}
public function getUserTeamBack(array $data) : array
{
$list=UserBrokerageModel::getUserBrokerageList($data);
return $this->toData(0,'Request successful.',$list);
}
public function getUserTeamList(array $data):array
{
$list=UserLevelModel::getUserTeamList($data);
return $this->toData(0,'Request successful.',$list);
}
//注册返佣
public function regBrokerage(int $parent_id,int $grandpa_id,int $top_id)
{
$reg_brokerage_stting=$this->getBrokerageRegSetting();
$reg_parent_brokerage=$reg_brokerage_stting['parent_fee'];
$reg_grandpa_brokerage=$reg_brokerage_stting['grandpa_fee'];
$reg_top_brokerage=$reg_brokerage_stting['top_fee'];
if($reg_parent_brokerage>0 && $parent_id>0){
$this->addUserBrokerage([
'user_id'=>$parent_id,
'level_type'=>1,
'back_type'=>0,
'brokerage_num'=>$reg_parent_brokerage,
'service_fee'=>0,
'create_time'=>date('Y-m-d H:i:s'),
]);
}
if($reg_grandpa_brokerage>0 && $grandpa_id>0){
$this->addUserBrokerage([
'user_id'=>$grandpa_id,
'level_type'=>2,
'back_type'=>0,
'brokerage_num'=>$reg_parent_brokerage,
'service_fee'=>0,
'create_time'=>date('Y-m-d H:i:s'),
]);
}
if($reg_top_brokerage>0 && $top_id>0){
$this->addUserBrokerage([
'user_id'=>$top_id,
'level_type'=>3,
'back_type'=>0,
'brokerage_num'=>$reg_parent_brokerage,
'service_fee'=>0,
'create_time'=>date('Y-m-d H:i:s'),
]);
}
}
private function addUserBrokerage($data)
{
UserBrokerageModel::InsertUserBrokerage($data);
//查询提现资金账户信息
$from_account=(new WalletService())->lockUserBalance(1,$data['user_id']);
if(!empty($from_account)){
$from_update['usable_num']=$from_account['usable_num']+$data['brokerage_num'];
(new WalletService())->updateUserBalance(1,$from_update,$data['user_id']);
$to_log['user_id']=$data['user_id'];
$to_log['change_type']=9;
$to_log['change_num']=$data['brokerage_num'];
$to_log['before_num']=$from_update['usable_num'];
(new WalletService())->addUserBalanceLog(1,$to_log);
}
}
}