*/ public function index() { $keyword = input('keyword'); $group = input('group'); $wxmpid = input('wxmpid'); $uid = input('uid'); $map['status'] = array('egt', 0); $map['uid|nickname|username|mobile'] = array('like', '%' . $keyword . '%'); if($uid){ $map['uid'] = $uid; } if(isset($wxmpid)&&$wxmpid!=''){ $temp_wxmpid = $wxmpid==1?0:$wxmpid; $map['wxmpid'] = $temp_wxmpid; } if($group){ if($group==88){ $map['is_author'] = 1; }else{ $map['group'] = $group; } }else{ $map['group'] = array('not in',999); } $order = "uid desc"; $list = model('User')->where($map)->order($order)->paginate(15,false,['query' => ['keyword'=>$keyword,'group'=>$group,'wxmpid'=>$wxmpid]]); $wxmp = db('wxmp')->where('status=1')->column("id,nickname"); $group_list = db('auth_group')->field('id,title')->where(array('title'=>array('neq','管理员')))->select(); $data = array( 'keyword' => input('keyword'), 'group' => $group, 'list' => $list, 'wxmpid' => $wxmpid, 'wxmp' => $wxmp, 'page' => $list->render(), 'group_list' => $group_list, ); //当前在线人数统计 $mp=array(); $time = time() - 60*10; $mp['update_time'] = ['>',$time]; $user_count = db('history')->field('count(DISTINCT uid) as user')->where($mp)->select(); $user_count_s = $user_count[0]['user']; $this->assign('user_count',$user_count_s); $this->assign($data); $this->setMeta('用户信息'); return $this->fetch(); } /** * 添加用户 * @author netlife <40150501@qq.com> */ public function add() { $model = \think\Loader::model('User'); if (IS_POST) { $data = $this->request->param(); //创建注册用户 $result = $model->register($data['username'], $data['password'], $data['repassword'], $data['email'], false); if ($result) { return $this->success('用户添加成功!', url('admin/user/index')); } else { return $this->error($model->getError()); } } else { $data = array( 'keyList' => $model->addfield, ); $this->assign($data); $this->setMeta("添加用户"); return $this->fetch('edit'); } } /** * 修改昵称初始化 * @author huajie */ public function edit() { $model = model('User'); if (IS_POST) { $data = $this->request->post(); $reuslt = $model->editUser($data, true); if (false !== $reuslt) { return $this->success('修改成功!', url('admin/user/index')); } else { return $this->error($model->getError(), ''); } } else { $info = $this->getUserinfo(); $data = array( 'info' => $info, 'keyList' => $model->editfield, ); $this->assign($data); $this->setMeta("编辑用户"); return $this->fetch('public/edit'); } } public function info() { $model = model('User'); $info = $this->getUserinfo(); $percentage = db('member_extend')->where('uid',$info['uid'])->value('percentage'); $data = array( 'percentage' => $percentage, 'info' => $info, 'keyList' => $model->editfield, ); $this->assign($data); $this->setMeta("个人资料"); return $this->fetch('user/info'); } /** * del * @author colin */ public function del($id) { $uid = array('IN', is_array($id) ? implode(',', $id) : $id); if(in_array(1,$uid)){ return $this->error("超级管理员账号不能删除!"); } //获取用户信息 $find = $this->getUserinfo($uid); model('User')->where(array('uid' => $uid))->delete(); db('MemberUserapi')->where(array('uid' => $uid))->delete(); return $this->success('删除用户成功!'); } public function auth() { $access = model('AuthGroupAccess'); $group = model('AuthGroup'); if (IS_POST) { $uid = input('uid', '', 'trim,intval'); $access->where(array('uid' => $uid))->delete(); $group_type = config('user_group_type'); foreach ($group_type as $key => $value) { $group_id = input($key, '', 'trim,intval'); if ($group_id) { $add = array( 'uid' => $uid, 'group_id' => $group_id, ); $access->save($add); db('member')->where('uid='.$uid)->setField('group',$group_id); } } return $this->success("设置成功!",url('admin/user/index')); } else { $uid = input('id', '', 'trim,intval'); $row = $group::select(); $auth = $access::where(array('uid' => $uid))->select(); $auth_list = array(); foreach ($auth as $key => $value) { $auth_list[] = $value['group_id']; } foreach ($row as $key => $value) { if($value['id']!=3&&$value['id']!=4){ $list[$value['module']][] = $value; } } $data = array( 'uid' => $uid, 'auth_list' => $auth_list, 'list' => $list, ); $this->assign($data); $this->setMeta("用户分组"); return $this->fetch(); } } /** * 获取某个用户的信息 * @var uid 针对状态和删除启用 * @var pass 是查询password * @var errormasg 错误提示 * @author colin */ private function getUserinfo($uid = null, $pass = null, $errormsg = null) { $user = model('User'); $uid = $uid ? $uid : input('id'); //如果无UID则修改当前用户 $uid = $uid ? $uid : session('user_auth.uid'); $map['uid'] = $uid; if ($pass != null) { unset($map); $map['password'] = $pass; } $list = $user::where($map)->find(); if (!$list) { return $this->error($errormsg ? $errormsg : '不存在此用户!'); } return $list; } /** * 修改昵称提交 * @author huajie */ public function submitNickname() { //获取参数 $nickname = input('post.nickname'); $password = input('post.password'); if (empty($nickname)) { return $this->error('请输入昵称'); } if (empty($password)) { return $this->error('请输入密码'); } //密码验证 $User = new UserApi(); $uid = $User->login(UID, $password, 4); if ($uid == -2) { return $this->error('密码不正确'); } $Member = model('User'); $data = $Member->create(array('nickname' => $nickname)); if (!$data) { return $this->error($Member->getError()); } $res = $Member->where(array('uid' => $uid))->save($data); if ($res) { $user = session('user_auth'); $user['username'] = $data['nickname']; session('user_auth', $user); session('user_auth_sign', data_auth_sign($user)); return $this->success('修改昵称成功!'); } else { return $this->error('修改昵称失败!'); } } /** * 修改密码初始化 * @author huajie */ public function editpwd() { if (IS_POST) { $user = model('User'); $data = $this->request->post(); $res = $user->editpw($data); if ($res) { return $this->success('修改密码成功!'); } else { return $this->error($user->getError()); } } else { $this->setMeta('修改密码'); return $this->fetch(); } } /** * 会员状态修改 * @author 朱亚杰 */ public function changeStatus($method = null) { $id = array_unique((array) input('id', 0)); if (in_array(config('user_administrator'), $id)) { return $this->error("不允许对超级管理员执行该操作!"); } $id = is_array($id) ? implode(',', $id) : $id; if (empty($id)) { return $this->error('请选择要操作的数据!'); } $map['uid'] = array('in', $id); switch (strtolower($method)) { case 'forbiduser': $this->forbid('Member', $map); break; case 'resumeuser': $this->resume('Member', $map); break; case 'deleteuser': $this->delete('Member', $map); break; default: return $this->error('参数非法'); } } /** * percentage [阅读币修改] * * @return type **/ public function setegold() { if (IS_POST) { $uid= input('id'); $egold = input('post.egold'); $jgold = input('post.jgold'); if($egold){ $result = db('member')->where('uid',$uid)->setInc('egold', $egold); } if($jgold>0){ db('member')->where('uid',$uid)->setDec('zb', $jgold); $result = db('member')->where('uid',$uid)->setDec('egold', $jgold); }elseif($jgold=="0"){ $result = db('member')->where('uid',$uid)->update(['zb'=>0]); $result = db('member')->where('uid',$uid)->update(['egold'=>0]); } if ($result) { if($egold){ return $this->success("充值成功!", url('admin/user/index')); }else{ return $this->success("减阅读币成功!", url('admin/user/index')); } } else { return $this->error($this->model->getError(), url('admin/user/index')); } } else { $this->setMeta("手工充值"); return $this->fetch(); } } /** * percentage [阅读币修改] * * @return type **/ public function setvip() { if (IS_POST) { $uid= input('id'); $data['is_vip'] = input('post.is_vip'); if($data['is_vip']==1){ $vtime = 3600*24*30; }elseif($data['is_vip']==2){ $vtime = 3600*24*90; }elseif($data['is_vip']==3){ $vtime = 3600*24*365; }elseif($data['is_vip']==4){ $vtime = 0; }elseif($data['is_vip']==5){ $vtime = 3600*24*15; } if($vtime==0){ $result = db('member')->where('uid',$uid)->update(array( 'vip_enddate'=>0, 'is_vip'=>0 )); }else{ $istime = db('member')->where('uid',$uid)->value('vip_enddate'); if($istime && $istime>time()){ $result = db('member')->where('uid',$uid)->setInc('vip_enddate',$vtime); }else{ $data['vip_enddate'] = time()+$vtime; $result = db('member')->where('uid',$uid)->update($data); } } if ($result) { return $this->success("操作成功!", url('admin/user/index')); } else { return $this->error($this->model->getError(), url('admin/user/index')); } } else { $uid= input('id'); $username = db('member')->where('uid',$uid)->value('username'); $this->assign('username',$username); $this->assign('uid',$uid); $this->setMeta("开通包月/包季/包年用户"); return $this->fetch(); } } /** * gathering [收款信息] * * @return type **/ public function gatherinfo() { $uid= session('user_auth.uid'); $info = db('member_extend')->where('uid',$uid)->find(); $this->assign('info',$info); $this->assign('uid',$uid); $this->setMeta("收款信息"); return $this->fetch(); } /** * daili [代理管理] * * @return type **/ public function agent() { $nickname = input('keyword'); $level = input('level'); $map['m.status'] = array('egt', 0); $map['m.group'] = array('in','3,4'); if (is_numeric($nickname)) { $map['m.uid'] = $nickname; } else { $map['m.nickname|m.username'] = array('like', '%' . (string) $nickname . '%'); } if(session('user_auth.group')!=999){ $info = $this->getUserinfo(); if($info['is_top'] ==1){ $map['m.s_uid'] = session('user_auth.uid'); }else{ $map['m.uid'] = session('user_auth.uid'); } } //$map['m.username|m.nickname'] = array('like', '%' . (string) $nickname . '%'); $order = "m.uid desc"; $list = db('member')->alias('m')->join('cps_member_extend e','e.uid = m.uid')->where($map)->order($order)->paginate(15); $data = array( 'list' => $list, 'page' => $list->render(), ); $this->assign($data); $this->assign('level',$level); $this->setMeta("下线管理"); return $this->fetch(); } public function addagent() { $model = \think\Loader::model('User'); if (IS_POST) { $data = $this->request->param(); //创建注册用户 $result = $model->register($data['username'], $data['password'], $data['repassword'], $data['email'], false); if ($result) { return $this->success('用户添加成功!', url('admin/user/agent')); } else { return $this->error($model->getError()); } } else { $info = $this->getUserinfo(); $data = array( 'keyList' => $model->addfield, 'info'=>$info, ); $this->assign($data); $this->setMeta("添加代理"); return $this->fetch(); } } // 公众号推送 public function userpush(){ $id = input('id'); $nickname = db('member')->where('uid',$id)->value('username'); $pay = db('pay_setting')->field('id,price')->where('status',0)->select(); $this->setMeta('推送'); $this->assign('nickname',$nickname); $this->assign('uid',$id); $this->assign('pay',$pay); return $this->fetch(); } // 开始推送 public function startpush(){ $data = input(''); if($data){ import("Wechatpush.Wechatpush", EXTEND_PATH,'.php'); $wxid = db('member')->where('uid',$data['uid'])->value('wxid'); if($wxid!=0){ $wx_config = db('wxopen_account')->field('appid,appsecret')->where('id',$wxid)->find(); $appid = $wx_config['appid']; $secret= $wx_config['appsecret']; $wx = new \Wechatpush($appid,$secret); $link = urlencode($data['content']); $openid[] = db('member_userapi')->where('uid',$data['uid'])->value('wxmpid'); $wx->kefu($openid,$link); exit(json_encode(array('status'=>1,'reg'=>'推送成功'))); }else{ exit(json_encode(array('status'=>2,'reg'=>'未绑定公众号'))); } } } // 黑白名单设置 public function setUserStatus(){ $d = input(''); if($d){ $st = $d['t']==0?2:$d['t']; $res = db('member')->where('uid',$d['id'])->update([ 'status'=>$st ]); if($res){ exit(json_encode(array('status'=>1,'reg'=>'成功'))); }else{ exit(json_encode(array('status'=>2,'reg'=>'失败'))); } } } public function getregreturn(){ $radio1 = input('radio1'); if($radio1){ if($radio1=='今日'){ $tims = $this->timType(1); }elseif($radio1=='昨日'){ $tims = $this->timType(2); } $startdata = $tims['startdata']; $enddata = $tims['enddata']; $info['loginNum'] = db('member_regreturn')->where(['type'=>2])->where('addtime', 'between', [$startdata,$enddata])->count('id'); $info['regNum'] = db('member_regreturn')->where(['type'=>1])->where('addtime', 'between', [$startdata,$enddata])->count('id'); $data = db('member_regreturn')->where('addtime', 'between', [$startdata,$enddata])->order('id desc')->limit(100)->select(); if($data){ foreach($data as $k=>$v){ $data[$k]['addtime'] = date('Y-m-d H:i:s',$v['addtime']); } } exit(json_encode(array('status'=>1,'data'=>$data,'info'=>$info))); }else{ $this->setMeta('注册回传详情'); return $this->fetch(); } } public function timType($t){ if($t==1){ $startdata = date('Y-m-d 0:0:0'); //今日凌晨 $enddata = strtotime(date('Y-m-d H:i:s')); //现在 $f = date('i'); $enddata = $enddata+((60-$f)*60); $enddata = date('Y-m-d H:i:s',$enddata); }elseif($t==2){ $startdata=mktime(0,0,0,date('m'),date('d')-1,date('Y')); $startdata = date('Y-m-d H:i:s',$startdata); $enddata=mktime(0,0,0,date('m'),date('d'),date('Y')); $enddata = date('Y-m-d H:i:s',$enddata); } return array( 'startdata'=>strtotime($startdata), 'enddata'=>strtotime($enddata) ); } }