model = new \app\admin\model\User; $this->view->assign("statusList", $this->model->getStatusList()); } /** * 查看 */ public function index() { $this->selectpageFields = ['id','nickname']; //设置过滤方法 $this->request->filter(['strip_tags', 'trim']); if (false === $this->request->isAjax()) { return $this->view->fetch(); } //如果发送的来源是 Selectpage,则转发到 Selectpage if ($this->request->request('keyField')) { return $this->selectpage(); } list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $list = $this->model ->where($where) ->order($sort, $order) ->paginate($limit); $result = ['total' => $list->total(), 'rows' => $list->items()]; return json($result); } /** * 关系转移 */ public function zhuanyiintro(){ if($this->request->isPost()){ $user_id = input('user_id'); $new_intro_uid = input('new_intro_uid'); //验证 if(empty($user_id)) $this->error("请输入需要转移的用户ID"); if(empty($new_intro_uid)) $this->error("请输入新的推荐人用户ID"); $user = Db::name('user')->where('id',$user_id)->find(); if(empty($user)){ $this->error('不存在的用户'); } $new_intro = Db::name('user')->where('id',$new_intro_uid)->find(); if(empty($new_intro)){ $this->error('不存在的新推荐人'); } if($user_id == $new_intro_uid){ $this->error('新邀请人不能是被转移用户'); } $down_user_ids = $this->my_down_all($user_id,[$user_id]); if(in_array($new_intro_uid,$down_user_ids)){ $this->error('新的邀请人不能在被转移用户下级网体内,会出现内循环'); } Db::startTrans(); //我的多个下级,的推荐人,改成新人 $my_down = Db::name('user')->where('intro_uid',$user['id'])->select(); if(!empty($my_down)){ $rs_down = Db::name('user')->where('intro_uid',$user['id'])->update(['intro_uid'=>$new_intro_uid]); if($rs_down === false){ Db::rollback(); $this->error('操作失败'); } } //记录个日志 $log = [ 'info' => '用户['.$user['id'].']的关系被转移,其名下直推有['.implode(',',array_column($my_down,'id')).'],都改到['.$new_intro_uid.']名下', 'createtime' => time(), ]; $log_id = Db::name('intro_log')->insertGetId($log); if(!$log_id){ Db::rollback(); $this->error('操作失败'); } //提交 Db::commit(); $this->success('转移完成'); } return $this->view->fetch(); } }