作者 景龙
1 个管道 的构建 通过 耗费 9 秒

修改分销逻辑

@@ -349,23 +349,22 @@ class Person extends Api @@ -349,23 +349,22 @@ class Person extends Api
349 $score = $scoreRule['set_score']; 349 $score = $scoreRule['set_score'];
350 } 350 }
351 $offlineModel = new Line(); 351 $offlineModel = new Line();
352 - //此处判断分享用户否已有上线,如果有,则不能成为其他的下线  
353 - $each_other = $offlineModel->where(['off_uid'=>$share_uid])->select();  
354 - //判断本登录用户是否有上线 352 + //判断本登录用户是否有上线,如果有,则不能成为其他人的下线
355 $other = $offlineModel->where(['off_uid'=>$this->user_id])->select(); 353 $other = $offlineModel->where(['off_uid'=>$this->user_id])->select();
356 //分享人是自己无效 354 //分享人是自己无效
357 if($share_uid != $this->user_id){ 355 if($share_uid != $this->user_id){
358 - //分享用户有上线  
359 - if($each_other){  
360 - $on_uid = array_unique(array_column($each_other,'uid'))[0];  
361 - //给上线增加积分 356 + //本登录用户没有上线
  357 + if(!$other){
  358 + //给分享用户增加积分
362 $userModel = new \app\admin\model\User(); 359 $userModel = new \app\admin\model\User();
363 - $userModel->where(['id'=>$on_uid,'status'=>'normal'])->setInc('score', $score);  
364 - //创建上线用户的积分记录  
365 - $offlineModel->create(['uid'=>$on_uid,'s_score'=>$score,'off_uid'=>$share_uid,'type'=>$class]); 360 + $userModel->where(['id'=>$share_uid,'status'=>'normal'])->setInc('score', $score);
  361 + //成为分享用户的下线并创建积分记录
  362 + $offlineModel->create(['uid'=>$share_uid,'s_score'=>$score,'off_uid'=>$this->user_id,'type'=>$class]);
366 }else{ 363 }else{
367 - //本登录用户没有上线  
368 - if(!$other){ 364 + //本登陆用户有上线
  365 + $is_share = array_unique(array_column($other,'uid'))[0];
  366 + //判断上线是不是原有的上线用户
  367 + if($is_share == $share_uid){
369 //给分享用户增加积分 368 //给分享用户增加积分
370 $userModel = new \app\admin\model\User(); 369 $userModel = new \app\admin\model\User();
371 $userModel->where(['id'=>$share_uid,'status'=>'normal'])->setInc('score', $score); 370 $userModel->where(['id'=>$share_uid,'status'=>'normal'])->setInc('score', $score);