| // +------------------------------------------------+ namespace app\system\controller; use app\common\model\Member as MemberModel; use app\common\model\MemberList as MemberListModel; use app\common\model\MemberSet as MemberSetModel; use app\common\model\Team as TeamModel; use app\common\service\Member as MemberService; use think\Request; class Member extends _Init { public function index($type = '', $mobile = '', $start_date = '', $end_date = '', $empty_vip = '', $empty_agent = '', $nickname = '') { $model = new MemberModel(); $model->alias('Member'); $model = $model->hasWhere('info'); $map = [ 'Member.status' => ['egt', 0], 'Member.id' => ['gt', 1], ]; if ($type) { switch ($type) { case 'all': break; case 'user': $map['Member.username'] = ''; break; case 'member': $map['Member.username'] = ['neq', '']; $map['MemberInfo.is_fee'] = 0; $map['MemberInfo.is_agent'] = 0; break; case 'vip': $map['MemberInfo.is_fee'] = 1; break; case 'agent': $map['MemberInfo.is_agent'] = 1; break; } } if ($mobile) { $map['MemberInfo.mobile'] = $mobile; } if (is_numeric($empty_vip)) { $map['Member.empty_vip'] = $empty_vip; } if (is_numeric($empty_agent)) { $map['Member.empty_agent'] = $empty_agent; } if ($start_date && $end_date) { $map['create_time'] = ['between time', [$start_date, date('Y-m-d H:i:s', strtotime('+1 day', strtotime($end_date)) - 1)]]; } elseif ($start_date) { $map['create_time'] = ['> time', $start_date]; } elseif ($end_date) { $map['create_time'] = ['< time', date('Y-m-d H:i:s', strtotime('+1 day', strtotime($end_date)) - 1)]; } if ($nickname) { $map['MemberInfo.nickname'] = ['like', "%" . $nickname . '%']; } $this->list = $model->where($map)->order('Member.create_time desc')->paginate(); return $this->fetch(); } /** * 添加用户 * @param Request $request 用户的信息 username password */ public function add(Request $request) { if (IS_POST) { $username = $request->post('username'); $password = $request->post('password'); $result = MemberService::register($username, $password); return $this->back($result); } else { return $this->fetch(); } } /** * 设置用户状态 * @param [type] $uid 用户id * @param [type] $status 要设置的状态 true false 正常 禁用 * @return [type] [description] */ public function status($uid, $status) { $result = MemberService::status($uid, $status); return $this->back($result); } /** * 重置密码 * @param [type] $uid 用户id * @return [type] [description] */ public function password(Request $request, $uid) { if (IS_POST) { $password = $request->post('password'); $result = MemberService::updatePassword($uid, $password); return $this->back($result); } else { $this->info = MemberModel::get($uid); return $this->fetch(); } } public function junior($pid) { $this->list = MemberListModel::where('uid', $pid)->paginate(); return $this->fetch(); } //设置vip/代理商 public function set($uid, $type) { if (IS_POST) { $data = $this->request->post(); $res = MemberService::memberSet($uid, $data['time'], $type, $data['team_id']); if ($res === true) { return $this->success('操作成功'); } else { return $this->error($res); } } else { $this->team = TeamModel::where('status', 1)->select(); $this->member = MemberModel::get($uid); return $this->fetch(); } } /** * 空点记录 * @param string $mobile [description] * @param string $start_date [description] * @param string $end_date [description] * @param string $empty_vip [description] * @param string $empty_agent [description] * @return [type] [description] */ public function member_empty($type = '', $start_date = '', $end_date = '') { $model = new MemberSetModel(); $map = []; if ($type) { $map['type'] = $type; } if ($start_date && $end_date) { $map['create_time'] = ['between time', [$start_date, date('Y-m-d H:i:s', strtotime('+1 day', strtotime($end_date)) - 1)]]; } elseif ($start_date) { $map['create_time'] = ['> time', $start_date]; } elseif ($end_date) { $map['create_time'] = ['< time', date('Y-m-d H:i:s', strtotime('+1 day', strtotime($end_date)) - 1)]; } $this->list = $model->where($map)->order('create_time desc')->paginate(); return $this->fetch(); } //推荐网络 public function recommend($uid = UID) { if (!is_numeric($uid)) { $uid = MemberModel::where('username', $uid)->value('id'); } $this->list = MemberService::recommend($uid); return $this->fetch(''); } public function set_parent($id) { if (IS_POST) { $data = $this->request->post(); $res = MemberService::setParent($data); return $this->back($res); } else { $this->info = MemberModel::get($id); return $this->fetch(); } } public function del_parent($myuid) { $userinfo = MemberModel::get($myuid); //新推荐人 if ($userinfo) { if ($userinfo['pid']) { if ($userinfo->save(['pid' => ''])) { // SysLogs::create(UID, 'edit_member_pid', ['data' => $userinfo]); return $this->success('解绑推荐人成功。'); } else { return $this->error('解绑失败。'); } } else { return $this->error('推荐人不存在。'); } } else { return $this->error('用户不存在。'); } } public function change_parent($mobile, $myuid) { $userinfo = MemberModel::where('username', $mobile)->find(); //新推荐人 $myinfo = MemberModel::where('id', $myuid)->find(); //当前用户 新推荐人id != 当前用户id 当前用户pid != 新推荐人id 新推荐人pid != 当前用户id if ($userinfo) { if ($userinfo['id'] == $myuid || $myinfo['pid'] == $userinfo['id']) { return $this->error('新上级不能是本人或与当前推荐人一致'); } $pid = $userinfo['pid']; while ($pid > 0) { if ($pid == $myuid) { return $this->error('用户已是您的下级,不能再设置为上级'); } $pid = self::find_parent($pid); }; $data = ['id' => $userinfo->id, 'mobile' => $userinfo->username, 'nickname' => $userinfo->info->nickname]; return $this->success('', '', $data); } else { return $this->error('您输入手机号的用户不存在,请重新输入。'); } } public function find_parent($pid) { return MemberModel::where('id', $pid)->value('pid'); } }