belongsTo(UserLevel::class); } public static function getUserInfo($userId) { $user = self::field('id,sn,nickname,avatar,mobile')->findOrEmpty($userId)->toArray(); if (empty($user)) { return '系统'; } return $user; } /** * 填写邀请码 * @param $code * @param $my_id * @return bool|string */ public static function code($code, $my_id) { $my_leader = Db::name('user') ->field(['id', 'first_leader', 'second_leader', 'ancestor_relation']) ->where(['distribution_code' => $code]) ->find(); //更新我的第一上级、第二上级、关系链 $my_leader_id = $my_leader['id']; $my_first_leader = $my_leader['first_leader']; $my_leader['ancestor_relation'] = boolval($my_leader['ancestor_relation']) ? $my_leader['ancestor_relation'] : ''; $my_ancestor_relation = trim("{$my_leader_id},{$my_leader['ancestor_relation']}", ','); $user = User::findOrEmpty($my_id); // 旧关系链 if (!empty($user->ancestor_relation)) { $old_ancestor_relation = $user->id . ',' .$user->ancestor_relation; } else { $old_ancestor_relation = $user->id; } $data = [ 'first_leader' => $my_leader_id, 'second_leader' => $my_first_leader, 'ancestor_relation' => $my_ancestor_relation, ]; Db::name('user') ->where(['id' => $my_id]) ->update($data); //更新我向下一级的第二上级 $data = [ 'second_leader' => $my_leader_id, ]; Db::name('user') ->where(['first_leader' => $my_id]) ->update($data); //更新与我相关的所有关系链 Db::name('user') ->where("find_in_set({$my_id},ancestor_relation)") ->exp('ancestor_relation', "replace(ancestor_relation,'{$old_ancestor_relation}','" . trim("{$my_id},{$my_ancestor_relation}", ',') . "')") ->update(); } //用户登录 public static function login($param) { $username = $param['username']; $password = $param['password']; $user = self::get(['username' => $username]); if (!$user) { exception('用户不存在'); } if (!password_verify($password, $user->password)) { exception('密码错误'); } if ((int)$user->status !== 1) { exception('用户被冻结'); } return $user; } }