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
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);
|
|
}
|
|
}
|
|
|
|
|
|
}
|