request->param(); isset($param['cate_id']) or $param['cate_id']=0; $this->assign('cate_id',$param['cate_id']); $username = $_SESSION['think']['name']; $userinfo = Db::name('user')->where('user_login',$username)->find(); $catid = isset($param['catid'])?$param['catid']:0; $this->assign("catid",$catid); if($userinfo['user_type']== 1){ //分类信息 $cate_tree=$this->getAccessTreeData(); $this->assign('cate_tree',json_encode($cate_tree)); $map = array(); $query = array(); if($catid){ $query['catid'] = $catid; //如果是一级分类则查找所有的子分类 $cateinfo = Db::name('category')->where('id',$catid)->find(); if($cateinfo['parent_id']==0){ $sonarr = Db::name('category')->where('parent_id',$catid)->select()->toArray(); $cate_arr = array(); foreach ($sonarr as $kk=>$vv){ $cate_arr[] = $vv['id']; } $map[] = ['catid','in',$cate_arr]; }else{ $map['catid'] = $catid; } } $this->assign('qx',1); $users = Db::name('user')->where('id','gt',1)->select(); $this->assign('users',$users); //超级管理员 $lists = Db::name('message')->where($map)->order('create_time desc')->paginate(20,false,['query'=>$query]); $this->assign('lists',$lists); }else{ $map = array(); if($catid){ $map['catid'] = $catid; } //普通用户 $this->assign('qx',0); $userinfo = Db::name('user')->where('user_login',$username)->find(); $userid = $userinfo['id']; //分配的信息id $fenpei = Db::name('user_fp')->where('userid',$userid)->find(); // print_r($fenpei);exit; if(empty($fenpei)){ $lists = array(); }else{ // $cates = explode(',',$fenpei['cates']); $cates = $fenpei['cates']; $from = $fenpei['tiaoshu']; $map[] = ['create_time','>',$fenpei['from_time']]; //ppppp if($fenpei['enable']==1){ $map2[] = ['p1.create_time','>',$fenpei['from_time']]; $field=['p1.*','concat(LEFT(p1.mobile,4),"****",RIGHT(p1.mobile,3))'=>'mobile','count(p2.id)'=> 'vid' ]; $lists = Db::name('message') ->alias('p1') ->leftJoin('mobile_log p2','p1.`id`=p2.`msg_id`') ->group('p1.`id`') ->order('p1.create_time','asc') ->field($field)->where('p1.catid','in',$cates)->where($map2)->limit(0,$from)->select(); $lists=$this->covermobile($lists,$this->returnmobile()); }else{ $field=['*']; $lists = Db::name('message')->field($field)->where('catid','in',$cates)->where($map)->order('create_time','asc')->limit(0,$from)->select(); } $lists=$this->array_fan($lists); array_multisort(array_column($lists,'create_time'), SORT_DESC, $lists); } $this->assign('fenpei',$fenpei); $this->assign('lists',$lists); } return $this->fetch(); } //已经查看的手机号 public function returnmobile() { $map = array(); $username = $_SESSION['think']['name']; $userinfo = Db::name('user')->where('user_login',$username)->find(); $userid = $userinfo['id']; //分配的信息id $fenpei = Db::name('user_fp')->where('userid',$userid)->find(); $data=array(); if(!empty($fenpei)) { $cates = $fenpei['cates']; $from = $fenpei['tiaoshu']; $map[] = ['create_time','>',$fenpei['from_time']]; if($fenpei['enable']==1){ $map2[] = ['p1.create_time','>',$fenpei['from_time']]; $field=['p1.*','FROM_UNIXTIME(p1.create_time)'=>'create_time' ]; $data = Db::name('message') ->alias('p1') ->leftJoin('mobile_log p2','p1.`id`=p2.`msg_id`') ->field($field)->where('p1.catid','in',$cates)->where($map2)->where('p2.user_id',$userid)->limit(0,$from)->select(); } } return $data; } /** * 替换已经查看的手机,使*号变为原来手机号码,二维数组 * * */ private function covermobile($lists,$data) { $j=0; $re_list=array(); foreach ($lists as $val) { $re_list[$j]=$val; foreach ($data as $arr) { if($val['id']==$arr['id']) { $re_list[$j]['mobile']=$arr['mobile']; } } $j++; } return $re_list; } //把二维数组反转 public function array_fan($arr) { $data=array(); if(!empty($arr)) { $num= count($arr); $j=0; $data=array(); for($i=$num-1;$i>=0;$i--) { $data[$i]=$arr[$j]; $j++; } } return $data; } /*** * @throws \think\Exception * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException * @throws \think\exception\PDOException */ public function tomobile() { $param = $this->request->param(); $username = $_SESSION['think']['name']; $userinfo = Db::name('user')->where('user_login',$username)->find(); $userid = $userinfo['id']; //分配的信息id $fenpei = Db::name('user_fp')->where('userid',$userid)->find(); $bol=0; if(!empty($fenpei)) { //判断是否超过3次 $msg_id=$param['id']; $msg=Db::name('mobile_log')->where('msg_id',$msg_id)->count(); if($msg>2){ $this->error('该条信息已经被人查看'); } $cates = $fenpei['cates']; $from = $fenpei['tiaoshu']; $map[] = ['create_time','>',$fenpei['from_time']]; $fromid=['id'=>$param['id']]; $lists = Db::name('message')->field(['id'])->where('catid','in',$cates)->where($map)->order('id')->limit(0,$from)->select()->toArray(); $message = Db::name('message')->field(['id','mobile'])->where('catid','in',$cates)->where($map)->where($fromid)->limit(0,$from)->find(); // dump(Db::table('message')->getLastSql()); foreach ($lists as $value) { if(in_array($message['id'], $value)){ $bol=$message['mobile']; } } //检查记录 if(!empty($message)){ $mobile_where=['user_id'=>$userid,'msg_id'=>$message['id']]; $mobile_log=Db::name('mobile_log')->where($mobile_where)->find(); if(empty($mobile_log)) { //如果为空则需要插入记录并在user_fp减少一个点数 //先判断是否还有点数 if($fenpei['points']>0){ $mobile_in['user_id']=$userid; $mobile_in['msg_id']=$message['id']; $mobile_in['create_time']=time(); $res=Db::name('mobile_log')->insert($mobile_in); if($res){ Db::name('user_fp')->where('userid',$userid)->dec('points', 1)->update(); $arr=array( 'points'=>$fenpei['points']-1, 'mobile'=>$message['mobile'] ); $this->success($arr); } }else{ $this->error('你的点数已经用尽'); } }else{ $arr=array( 'points'=>$fenpei['points'], 'mobile'=>$message['mobile'] ); $this->success($arr); } }else{ $this->error('数据获取错误'); } } } public function add(){ return $this->fetch(); } public function export() { $map = array(); $username = $_SESSION['think']['name']; $userinfo = Db::name('user')->where('user_login',$username)->find(); $userid = $userinfo['id']; //分配的信息id $fenpei = Db::name('user_fp')->where('userid',$userid)->find(); if(!empty($fenpei)) { $cates = $fenpei['cates']; $from = $fenpei['tiaoshu']; $map[] = ['create_time','>',$fenpei['from_time']]; if($fenpei['enable']==1){ $map2[] = ['p1.create_time','>',$fenpei['from_time']]; $field=['p1.*','FROM_UNIXTIME(p1.create_time)'=>'create_time' ]; $data = Db::name('message') ->alias('p1') ->leftJoin('mobile_log p2','p1.`id`=p2.`msg_id`') ->field($field)->where('p1.catid','in',$cates)->where($map2)->where('p2.user_id',$userid)->limit(0,$from)->select(); }else{ $field=['*']; $data = Db::name('message')->field($field)->where('catid','in',$cates)->where($map)->order('id')->limit(0,$from)->select(); } } $field = array( 'A' => array('jm_title', '品牌'), 'B' => array('news_kw', '新闻'), 'C' => array('catname', '分类'), 'D' => array('name', '姓名'), 'E' => array('ip', 'IP'), 'F' => array('tzed', '投资额度'), 'G' => array('mobile', '电话'), 'H' => array('content', '留言内容'), 'I' => array('create_time', '留言时间'), ); $this->exportExcel($field, $data,date('Y-m-d')); } private function exportExcel($field, $list, $title='name') { $objPHPExcel = new \PHPExcel(); $objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel); //设置保存版本格式 $objPHPExcel->getActiveSheet()->setTitle('用户信息表'); foreach ($list as $key => $value) { foreach ($field as $k => $v) { if ($key == 0) { $objPHPExcel->getActiveSheet()->setCellValue($k . '1', $v[1]); } $i = $key + 2; $objPHPExcel->getActiveSheet()->setCellValue($k . $i, $value[$v[0]]); } } ob_end_clean(); header("Pragma: public"); header("Expires: 0"); header("Cache-Control:must-revalidate, post-check=0, pre-check=0"); header("Content-Type:application/force-download"); header("Content-Type:application/vnd.ms-execl"); header("Content-Type:application/octet-stream"); header("Content-Type:application/download");; header('Content-Disposition:attachment;filename='.$title.'.xls'); header("Content-Transfer-Encoding:binary"); $objWriter->save('php://output'); } public function addPost(){ $param = $this->request->param(); if($param['jm_id']){ $info = Db::name('jiameng')->field('title')->where('id',$param['jm_id'])->find(); if(empty($info)){ $this->error('品牌id无效'); }else{ $param['jm_title'] = $info['title']; } } if(!empty($param['jm_title'])) { $info_title = Db::name('jiameng')->field('id')->where('title',$param['jm_title'])->find(); if(!$info_title) { $this->error('没有该品牌信息'); } $param['jm_id']=$info_title['id']; } //mobile if(strlen($param['mobile']) == 11) { if(!$this->checkPhoneNumberValidate($param['mobile'])){ $this->error('手机号码不正确'); } }else{ $this->error('手机号码不正确'); } if(empty($param['catname'])) { $this->error('分类不能为空'); } //$week_time=time()-604800; // $res_mobile=Db::name('category')->where('mobile',$param['mobile'])->where('create_time','>',$week_time)->find(); // if($res_mobile) // { // $this->error('手机号码一个周内只能留一次'); // } // $ip=get_client_ip(); // $start_time=strtotime(date('Y-m-d') ); // $ip_count=Db::name('category')->where('ip',$ip)->where('create_time','>',$start_time)->count(); // if($ip_count>1) // { // $this->error('同一个ip一天只可以留言2次'); // } // ppppppppp if($param['catname']){ $cat=Db::name('category')->where('catname',$param['catname'])->find(); if(!empty($cat)){ $param['catid']=$cat['id']; }else{ $this->error('添加失败,没有该分类'); } } // ppppppppp $param['create_time'] = time(); $res = Db::name('message')->insert($param); if($res){ $this->success('添加成功'); }else{ $this->error('添加失败'); } } private function checkPhoneNumberValidate($phone_number){ $g = "/^1[34578]\d{9}$/"; $g2 = "/^19[89]\d{8}$/"; $g3 = "/^166\d{8}$/"; if(preg_match($g, $phone_number)){ return true; }else if(preg_match($g2, $phone_number)){ return true; }else if(preg_match($g3, $phone_number)){ return true; } return false; } /** * 信息分配给用户 */ public function fenpei(){ $param = $this->request->param(); if(count($param['msg'])<1){ $this->error('请选择信息'); } if(count($param['members'])<1){ $this->error('请选择用户'); } foreach($param['msg'] as $k=>$v){ foreach($param['members'] as $kk=>$vv){ $data = array( 'msg_id' => $v, 'user_id'=> $vv ); $yicha = Db::name('message_fp')->where($data)->count(); if($yicha){ }else{ $data['create_time'] = time(); Db::name('message_fp')->insert($data); } } } $this->success('分配成功'); } public function edit(){ $param = $this->request->param(); isset($param['id']) or $this->error('需要id'); $users = Db::name('user')->where('id','gt',1)->select(); $this->assign('users',$users); //已分配的 $yifen = Db::name('Message_fp')->where('msg_id',$param['id'])->select(); $yifenarr = array(); foreach($yifen as $k=>$v){ $yifenarr[] = $v['user_id']; } $this->assign('yifenarr',$yifenarr); $info = Db::name('Message')->where('id',$param['id'])->find(); $this->assign('info',$info); return $this->fetch(); } public function editPost(){ $param = $this->request->param(); isset($param['id']) or $this->error('需要id'); //先删掉 Db::name('Message_fp')->where('msg_id',$param['id'])->delete(); foreach($param['members'] as $kk=>$vv){ $data = array( 'msg_id' => $param['id'], 'user_id'=> $vv, 'create_time' => time() ); Db::name('message_fp')->insert($data); } $this->success('调整成功'); } public function edit1(){ $param = $this->request->param(); isset($param['id']) or $this->error('需要id'); $info = Db::name('Message')->where('id',$param['id'])->find(); $this->assign('info',$info); return $this->fetch(); } public function editCatePost(){ $param = $this->request->param(); isset($param['id']) or $this->error('需要id'); //先删掉 // ppppppppp if($param['catname']){ $cat=Db::name('category')->where('catname',$param['catname'])->find(); if(!empty($cat)){ $param['catid']=$cat['id']; }else{ $this->error('添加失败,没有该分类'); } } // ppppppppp $res = Db::name('message')->update($param); $this->success('修改成功'); } public function delete(){ $param = $this->request->param(); isset($param['id']) or $this->error('需要id'); $res = Db::name('Message')->where('id',$param['id'])->delete(); if($res){ $this->success('删除成功'); }else{ $this->error('删除失败'); } } /** * 获取树的信息 */ public function getAccessTreeData(){ $rs_array=[]; $list=Db::name('category')->order(["list_order" => "ASC"])->select()->toArray(); if(!empty($list)){ foreach($list as $k=>$v){ $rs_array[$v['id']]=$v; $parents=$this->getDeepParent($v); foreach($parents as $pv){ $rs_array[$pv['id']]=$pv; } } }else{ $rs_array=$list; } if(!empty($rs_array)){ foreach($rs_array as $k=>$v){ $rs_array[$k]['name']=$v['catname']; $rs_array[$k]['iconSkin']='dept'; } } return array_values($rs_array); } /** * 父节点数据 */ public function getDeepParent($data){ $temp_array=[]; $parent_data_info=Db::name('category')->where('id',$data['parent_id'])->find(); if(empty($parent_data_info)){ return $temp_array; } if(!empty($parent_data_info)){ $temp_array[$parent_data_info['id']]=$parent_data_info; $rs_array=$this->getDeepParent($parent_data_info); } return array_merge($temp_array,$rs_array); } public function shanghu(){ $param = $this->request->param(); $shname = isset($param['shname'])?trim($param['shname']):''; $map = array(); if($shname){ $map['a.user_login'] = $shname; } $shanghu_list = Db::name('user')->alias('a')->field('a.user_login,a.id as shid,b.*')->leftJoin('jm_user_fp b','a.id=b.userid')->where('a.user_type',3)->where($map)->paginate(20); $this->assign('lists',$shanghu_list); //分类信息 $cates = Db::name('category')->select(); $cate_arr = array(); foreach($cates as $k=>$v){ $cate_arr[$v['id']] = $v['catname']; } $this->assign('shname',$shname); $this->assign('cate_arr',$cate_arr); return $this->fetch(); } /** * 编辑商户 */ public function shanghuEdit(){ $param = $this->request->param(); isset($param['userid']) or $this->error('需要id'); $info = array(); $info = Db::name('user_fp')->where('userid',$param['userid'])->find(); $userinfo = Db::name('user')->where('id',$param['userid'])->find(); if(empty($info)){ $ypz = 0; }else{ $ypz = 1; } //分类信息 $cates = Db::name('category')->where('parent_id','gt',0)->select(); $this->assign('cates',$cates); $this->assign('userinfo',$userinfo); $this->assign('ypz',$ypz); $this->assign('info',$info); return $this->fetch(); } public function shanghuPost(){ $param = $this->request->param(); isset($param['from_time'])&&$param['from_time']!='' or $this->error('需要开始时间'); // isset($param['end_time'])&&$param['end_time']!='' or $this->error('需要开始时间'); isset($param['cates'])&&count($param['cates'])>0 or $this->error('请选择至少一个分类'); $param['cates'] = implode(",",$param['cates']); $param['from_time'] = strtotime($param['from_time']); $param['end_time'] = strtotime($param['end_time']); //pppppp if(!$param['enable']){ $param['enable']='2'; } //pppppp if($param['ypz']==1){ //更新 unset($param['ypz']); $param['update_time'] = time(); $res = Db::name('user_fp')->where('userid',$param['userid'])->update($param); }else{ //添加 unset($param['ypz']); $param['create_time'] = time(); $res = Db::name('user_fp')->insert($param); } if($res){ $this->success('调整成功'); }else{ $this->error('调整失败'); } } }