在laravel php

时间:2017-08-31 18:52:50

标签: php mysql laravel

这是在php laravel-5.4 mysql中注册新用户代码

enter image description here

public function store(Request $request)
{

    $epincheck = $request->epin;

    if (Epin::where('epin', '=', '75656565')->exists()) {

        //   DB::table('epins')->where('epin', $epincheck)->delete();
        $post = new Admin();
        $post->name = $request->name;
        $post->email = $request->email;
        $post->plan = $request->plan;
        $post->epin = $epincheck;
        $post->ref = $request->ref;
        $post->mobile = $request->mobile;
        $post->password = bcrypt($request->password);
        $post->save();

        //other trims
        $referal_user = $request->ref;
        $referal_email = DB::table('admins')->where('mobile', $referal_user)->first();
        $referal_id = $referal_email->id;

        $update_ref_user = Admin::find($referal_id);
        $previous_users_left = $referal_email->user_left;
        $previous_users_right = $referal_email->user_right;
        $direct_referal = $referal_email->direct_referal;
        $list_all_right_user = $referal_email->user_listing_right;
        $list_all_left_user = $referal_email->user_listing_left;
        $left_count = $referal_email->no_user_left;
        $right_count = $referal_email->no_user_right;
        $direct_count = $referal_email->no_direct_referal;

        if(!$previous_users_right && $previous_users_left )
        {
            $update_ref_user->user_right =  $request->email ;
            $update_ref_user->no_user_right =  $right_count+1 ;
            $update_ref_user->user_listing_right =   $request->email . ' , ' . $list_all_right_user ;
            $update_ref_user->save();

            $last_updated_id = $update_ref_user->id;
            $update_up_line = DB::table('admins')->where('id', $last_updated_id);
            $update_up_line_list = $update_up_line->id;

            //  $update_up_line = Admin::find($last_updated_id);

            /* $update_up_line_update->user_listing_right = $request->email;
             $update_up_line-> save();*/

            //looping get referal id -> find referee -> update ;
            //find last  referal id -> find referee -> update ;
            //find referal id -> find referee -> update ;
            //find referal id -> find referee -> update ;
            //find referal id -> find referee -> update ;
            //when there is no ref_no loop ends
            //stop when count ends;
        }

        if(!$previous_users_left)
        {
            $update_ref_user->user_left =  $request->email ;
            $update_ref_user->no_user_left =  $left_count + 1 ;
            $update_ref_user->user_listing_left =  $request->email . ' , ' . $list_all_left_user  ;

            $update_ref_user->save();

        }
        if($previous_users_left && $previous_users_right)
        {
            $update_ref_user->direct_referal = $direct_referal . ' , ' . $request->email ;
            $update_ref_user->no_direct_referal = $direct_count +1 ;

            $update_ref_user->save();

        }
        //sms gatewat
        /*Send SMS using PHP*/

        return redirect('/admin/login');
        // \Session::flash('msg', 'Changes Saved.' );

    }

    else {
        echo "You Have Entered Invalid Pin";
    }
}

注册新用户时,他以注册形式输入参考代码。 我希望当新用户注册mobile->'123'和参考号'987'时 步骤1)找到新注册用户的“参考号”,然后在所有注册用户的“移动”字段中搜索“参考号”,然后将$ 200(它是货币)的50%加到他的收入中,在数据库字段名称中添加以前用户的名字= “user_under”

步骤2)找到前一个用户的“参考号”然后在所有注册用户的“移动”字段中搜索“参考号”,然后将$ 200(它是货币)的30%添加到他的收入中,在数据库中添加以前用户的名字字段名称=“user_under”

步骤3)找到先前用户的“参考号”,然后在所有注册用户的“移动”字段中搜索“参考号”,然后将$ 200(它是货币)的10%加到他的收入中,并在之前添加用户的名字。数据库字段名称=“user_under”

步骤4)找到先前用户的“参考编号”,然后在所有注册用户的“移动”字段中搜索“参考编号”,然后在数据库字段名称中添加以前用户的名称=“user_under”

******步骤4继续,直到参考编号=空/无值

我无法理解如何应用逻辑

#####编辑

@jeffrey

这里是第5级的手动代码需要在递归时自动使用

 public function store(Request $request)
{

    $post = new Admin();
        $post->name = 'nill';
        $post->email = $request->email;
        $post->plan = 'uuiuii';
        $post->epin = '9999';
        $post->ref = $request->ref;
        $post->mobile = $request->mobile;
        $post->password = bcrypt($request->password);
        $post->save();


    $referal_user = $request->ref;
    $referal_email = DB::table('admins')->where('mobile', $referal_user)->first();
    $referal_id = $referal_email->id;
    $right_count = $referal_email->no_user_right;
    $list_all_right_user = $referal_email->user_listing_right;

    //first update


        $update_ref_user = Admin::find($referal_id);
    $get_user_previous = $referal_email->user_listing_right;
        $update_ref_user->user_right = $request->email;
        $update_ref_user->no_user_right = $right_count + 1;
        $update_ref_user->user_listing_right = $request->email . ' , ' . $get_user_previous;
        $update_ref_user->save();
        $last_updated_id = $update_ref_user->ref;

    ///next
    ///
   // echo $last_updated_id;

    $ref_previous2 =  $last_updated_id;
    if($ref_previous2 ) {
        $referal_email2 = DB::table('admins')->where('mobile', $last_updated_id)->first();
        $get_user_previous2 = $referal_email2->user_listing_right;
        $update_ref_user_id_2 = $referal_email2->id;
        $update_ref_user2 = Admin::find($update_ref_user_id_2);
        $update_ref_user2->user_right = 'jhkkkj';
        $update_ref_user2->no_user_right = $right_count + 1;
        $update_ref_user2->user_listing_right = $request->email . ' , ' . $get_user_previous2;
        $update_ref_user2->save();

        $ref_previous3 = $update_ref_user2->ref;
        if($ref_previous3 ) {
            $last_updated_id3 = $update_ref_user2->ref;
            $referal_email3 = DB::table('admins')->where('mobile', $last_updated_id3)->first();
            $get_user_previous3 = $referal_email3->user_listing_right;
            $update_ref_user_id_3 = $referal_email3->id;
            $update_ref_user3 = Admin::find($update_ref_user_id_3);
            $update_ref_user3->user_right = 'jhkkkj';
            $update_ref_user3->no_user_right = $right_count + 1;
            $update_ref_user3->user_listing_right = $request->email . ' , ' . $get_user_previous3;
            $update_ref_user3->save();



            $ref_previous4 = $update_ref_user3->ref;
            if($ref_previous4 ) {

                $last_updated_id4 = $update_ref_user3->ref;
                $referal_email4 = DB::table('admins')->where('mobile', $last_updated_id4)->first();
                $get_user_previous4 = $referal_email4->user_listing_right;
                $update_ref_user_id_4 = $referal_email4->id;
                $update_ref_user4 = Admin::find($update_ref_user_id_4);
                $update_ref_user4->user_right = 'jhkkkj';
                $update_ref_user4->no_user_right = $right_count + 1;
                $update_ref_user4->user_listing_right = $request->email . ' , ' . $get_user_previous4;
                $update_ref_user4->save();



                $ref_previous5 = $update_ref_user4->ref;
                if($ref_previous5 ) {
                    $last_updated_id5 = $update_ref_user4->ref;
                    $referal_email5 = DB::table('admins')->where('mobile', $last_updated_id5)->first();
                    $get_user_previous5 = $referal_email5->user_listing_right;
                    $update_ref_user_id_5 = $referal_email4->id;
                    $update_ref_user5 = Admin::find($update_ref_user_id_5);
                    $update_ref_user5->user_right = 'jhkkkj';
                    $update_ref_user5->no_user_right = $right_count + 1;
                    $update_ref_user5->user_listing_right = $request->email . ' , ' . $get_user_previous5;
                    $update_ref_user5->save();

                }
            }
        }
    }
    //next




    //4th update



    ///five
    ///
    ///





   return redirect('/admin/register2');

    }
#############这是解决方案
$referal_user = $request->ref;
    $referal_email = DB::table('admins')->where('mobile', $referal_user)->first();
    $referal_id = $referal_email->id;
    $right_count = $referal_email->no_user_right;
    $list_all_right_user = $referal_email->user_listing_right;
    $ref = $request->ref;
    $mobile = $request->mobile;
    $user_listing_left = $referal_email->user_listing_left;
    while( $refUser = Admin::where('mobile', $ref)->first() )
    {
        $refUser->user_left = $request->email;
        $refUser->user_listing_left = $refUser->user_listing_left . "," .$request->email;
        $refUser->save();

        // Update $ref to find the next guy
        $ref = $refUser->ref;

    }

1 个答案:

答案 0 :(得分:1)

我完全不理解这个问题,但我会试一试。

Recursive是关键词。您似乎想要上升参考树,并根据您的等级,向该人添加一定数量的$。但我不明白你的意思在数据库字段名称中添加以前用户的名字=" user_under" 该字段也不可见......

$percentages = [50, 30, 10, 5, 2, 1, 0.5];
$iteration = 0;
$ref = $request->ref;
while( $refUser = Admin::where('ref', $ref)->first() && $percentages[$iteration] )
{
    $refUser->income += floor( 200 * $percentages[$iteration++] );
    $refUser->save();

    // Update $ref to find the next guy
    $ref = $refUser->ref;
}

while循环的第二个条件是确保如果$ percentageages数组比数据库中的树短,它就不会中断并退出给钱。你当然可以扩展数组。

我希望这是你提出的问题,否则就发表评论。