在Laravel中,如果用户有任何赞助商用户,则希望通过循环分发佣金
我正在创建级别计划传销,将佣金分配给赞助用户,最高可达5/10级别 这是我的代码,我可以做我想做的事情,但我相信这会有更简单更干净的方法来做这件事,这是10级的硬核。 我想创造动态的地方。我可以更改级别a,并且该计算适用于该特定级别 请帮我提前谢谢 这是我的控制器在Laravel中,如果用户有任何赞助商用户,则希望通过循环分发佣金,laravel,Laravel,我正在创建级别计划传销,将佣金分配给赞助用户,最高可达5/10级别 这是我的代码,我可以做我想做的事情,但我相信这会有更简单更干净的方法来做这件事,这是10级的硬核。 我想创造动态的地方。我可以更改级别a,并且该计算适用于该特定级别 请帮我提前谢谢 这是我的控制器 $sponser= DB::table('customers')->where('customers_id', '=', $request->customers_id)->value('sponsor_id
$sponser= DB::table('customers')->where('customers_id', '=', $request->customers_id)->value('sponsor_id');
// $isMember = ;
if (!empty($sponser)) {
$percentage = 4;
$price = $products_data->final_price;
$comm = ($price * $percentage )/ 100;
DB::table('ref_commissions')->insert([
'user_id' => $sponser,
'order_id' => $orders_id,
'percent' => $percentage,
'commission' => $comm,
]);
$sponser2= DB::table('customers')->where('user_id', '=', $sponser)->value('sponsor_id');
if (!empty($sponser2)) {
DB::table('ref_commissions')->insert([
'user_id' => $sponser2,
'order_id' => $orders_id,
'percent' => $percentage,
'commission' => $comm,
]);
$sponser3= DB::table('customers')->where('user_id', '=', $sponser2)->value('sponsor_id');
if (!empty($sponser3)) {
DB::table('ref_commissions')->insert([
'user_id' => $sponser3,
'order_id' => $orders_id,
'percent' => $percentage,
'commission' => $comm,
]);
$sponser4= DB::table('customers')->where('user_id', '=', $sponser3)->value('sponsor_id');
if (!empty($sponser4)) {
DB::table('ref_commissions')->insert([
'user_id' => $sponser4,
'order_id' => $orders_id,
'percent' => $percentage,
'commission' => $comm,
]);
$sponser5= DB::table('customers')->where('user_id', '=', $sponser4)->value('sponsor_id');
if (!empty($sponser5)) {
DB::table('ref_commissions')->insert([
'user_id' => $sponser5,
'order_id' => $orders_id,
'percent' => $percentage,
'commission' => $comm,
]);
$sponser6= DB::table('customers')->where('user_id', '=', $sponser5)->value('sponsor_id');
if (!empty($sponser5)) {
DB::table('ref_commissions')->insert([
'user_id' => $sponser6,
'order_id' => $orders_id,
'percent' => $percentage,
'commission' => $comm,
]);
$sponser7= DB::table('customers')->where('user_id', '=', $sponser6)->value('sponsor_id');
if (!empty($sponser5)) {
DB::table('ref_commissions')->insert([
'user_id' => $sponser7,
'order_id' => $orders_id,
'percent' => $percentage,
'commission' => $comm,
]);
$sponser8= DB::table('customers')->where('user_id', '=', $sponser7)->value('sponsor_id');
if (!empty($sponser5)) {
DB::table('ref_commissions')->insert([
'user_id' => $sponser8,
'order_id' => $orders_id,
'percent' => $percentage,
'commission' => $comm,
]);
$sponser9= DB::table('customers')->where('user_id', '=', $sponser8)->value('sponsor_id');
if (!empty($sponser5)) {
DB::table('ref_commissions')->insert([
'user_id' => $sponser9,
'order_id' => $orders_id,
'percent' => $percentage,
'commission' => $comm,
]);
}
//10 Level
}
//9 Level
}
//8 level
}
//7 level
}
//6 level
}
// 5 level
}
//4 level
}
//3 level
}
//2 level
}
// 1 level
我认为可能存在另一种重构该方法的方法,但这里有一种减少代码行的方法。希望有效
// Generic insert method
public function insertRefCommissions($data) {
DB::table('ref_commissions')->insert($data);
$sponser= DB::table('customers')
->where('user_id', '=', $data['user_id'])
->value('sponsor_id');
return $sponser;
}
public function sponser() {
$sponser= DB::table('customers')->where('customers_id', '=', $request->customers_id)->value('sponsor_id');
// $isMember = ;
if (!empty($sponser)) {
$percentage = 4;
$price = $products_data->final_price;
$comm = ($price * $percentage )/ 100;
$data = [
'user_id' => $sponser,
'order_id' => $orders_id,
'percent' => $percentage,
'commission' => $comm,
];
$sponser2 = $this->insertRefCommissions(array_merge($data,[ 'user_id' => $sponser ]));
if (!empty($sponser2)) {
$sponser3 = $this->insertRefCommissions(array_merge($data,[ 'user_id' => $sponser2 ]));
if (!empty($sponser3)) {
$sponser4 = $this->insertRefCommissions(array_merge($data,[ 'user_id' => $sponser3 ]));
if (!empty($sponser4)) {
$sponser5 = $this->insertRefCommissions(array_merge($data,[ 'user_id' => $sponser4 ]));
if (!empty($sponser5)) {
$sponser6 = $this->insertRefCommissions(array_merge($data,[ 'user_id' => $sponser5 ]));
if (!empty($sponser6)) {
$sponser7 = $this->insertRefCommissions(array_merge($data,[ 'user_id' => $sponser6 ]));
if (!empty($sponser7)) {
$sponser8 = $this->insertRefCommissions(array_merge($data,[ 'user_id' => $sponser7 ]));
if (!empty($sponser8)) {
$sponser9 = $this->insertRefCommissions(array_merge($data,[ 'user_id' => $sponser8 ]));
if (!empty($sponser9)) {
$sponser10 = $this->insertRefCommissions(array_merge($data,[ 'user_id' => $sponser9 ]));
}
//10 Level
}
//9 Level
}
//8 level
}
//7 level
}
//6 level
}
// 5 level
}
//4 level
}
//3 level
}
//2 level
}
// 1 level
}