groupid=$groupid; } /** * 列表 */ public function index() { $kind=input("kind"); $this->assign('kind',$kind); $search_name=input('search_name'); $this->assign('search_name',$search_name); $map=array(); if($kind)$map['kind']=$kind; if($search_name){ $map['title']= array('like',"%".$search_name."%"); } $gid=$this->groupid; if(!in_array($gid,[1,2])&&$gid)$map['groups']=[['like',"%,".$gid.",%"],['like',$gid.",%"],['like',"%".$gid."%"],'OR']; $admin_list=Db::name('activity')->where($map)->order('id desc')->paginate(config('paginate.list_rows'),false,['query'=>get_query()]); $page = $admin_list->render(); $this->assign('list',$admin_list); $this->assign('page',$page); return $this->fetch(); } /** * 添加 */ public function add() { $kind=input("kind"); $this->assign('kind',$kind); $auth_group=Db::name('auth_group')->where('status','1')->select(); $this->assign('groups',$auth_group); $list=Db::name('smstpl')->where('status','1')->select(); $this->assign('tpls',$list); $apply=[]; array_push($apply,['fname'=>'姓名','ftag'=>'uname','ftype'=>'input','frequire'=>1,'foptions'=>'','fnotice'=>'','del'=>1,'fsort'=>1]); array_push($apply,['fname'=>'性别','ftag'=>'usex','ftype'=>'radio','frequire'=>1,'foptions'=>'男||女','fnotice'=>'','del'=>1,'fsort'=>2]); array_push($apply,['fname'=>'年龄','ftag'=>'uage','ftype'=>'input','frequire'=>1,'foptions'=>'','fnotice'=>'','del'=>1,'fsort'=>3]); array_push($apply,['fname'=>'工作','ftag'=>'ujob','ftype'=>'input','frequire'=>1,'foptions'=>'','fnotice'=>'','del'=>1,'fsort'=>4]); array_push($apply,['fname'=>'电话','ftag'=>'utel','ftype'=>'input','frequire'=>1,'foptions'=>'','fnotice'=>'','del'=>1,'fsort'=>5]); array_push($apply,['fname'=>'邮箱','ftag'=>'uemail','ftype'=>'input','frequire'=>1,'foptions'=>'','fnotice'=>'','del'=>1,'fsort'=>6]); $this->assign("apply",$apply); $this->assign('role',$this->groupid); return $this->fetch(); } /** * 添加操作 */ public function runadd() { $kind=input("kind"); $this->assign('kind',$kind); $data=[]; $data['title']=input('title'); $data['kind']=$kind; $data['status']=input('status'); $data['login']=input('login'); $data['contact']=input('contact'); $data['notice']=input('notice'); $data['poster']=input('poster'); $data['banner']=input('banner'); $data['pic']=input('pic'); $data['infor']=input('infor'); $data['smsid']=input('smsid'); $start=input('start_date'); if($start)$start=strtotime($start); $data['start_date']=$start; $end=input('end_date'); if($end)$end=strtotime($end); $data['end_date']=$end; $data['create_date']=time(); $groups=isset($_POST['groups'])?$_POST['groups']:''; $data['groups']=is_array($groups)?implode(',', $groups):''; $apply=input('apply')?htmlspecialchars_decode(input('apply')):''; if($apply){ $applylist=json_decode($apply,true); array_multisort(array_column($applylist,'fsort'),SORT_ASC,$applylist); $apply=$applylist; $apply=json_encode($apply); $fileds=array_column($applylist,'ftag'); $cfileds=Db::name('activityapply')->getTableFields(['table'=>'wjs_activityapply']); $update=true; foreach ($fileds as $k=>$row){ if(!in_array($row, $cfileds)){ $current=$applylist[$k]; $curtext='varchar(255)'; if($current['ftype']=='checkbox'||$current['ftype']=='select'||$current['ftype']=='date') $curtext='int(11)'; if($current['ftype']=='textarea') $curtext='text'; if($current['frequire']==1)$curtext.=" not null "; $sql="alter table wjs_activityapply add column ".$current['ftag']." ".$curtext." comment '".$current['fname'].' '.$current['foptions']."'"; $query=db()->execute($sql); if(!$query){ $update=false; break; } } } if(!$update){ $this->error('修改失败',url('admin/Activitys/index',['kind'=>$kind])); } } $data['apply']=$apply; $admin_id=Db::name('activity')->insert($data); if($admin_id){ $this->success('添加成功',url('admin/Activitys/index',['kind'=>$kind])); }else{ $this->error('添加失败',url('admin/Activitys/index',['kind'=>$kind])); } } /** * 修改 */ public function edit() { $kind=input("kind"); $this->assign('kind',$kind); $list=Db::name('activity')->find(input('admin_id')); $list['groups']=$list['groups']?explode(',',$list['groups']):[]; $apply=$list['apply']?json_decode(htmlspecialchars_decode($list['apply']),true):[]; if(!count($apply)){ array_push($apply,['fname'=>'姓名','ftag'=>'uname','ftype'=>'input','frequire'=>1,'foptions'=>'','fnotice'=>'','del'=>1,'fsort'=>1]); array_push($apply,['fname'=>'性别','ftag'=>'usex','ftype'=>'radio','frequire'=>1,'foptions'=>'男||女','fnotice'=>'','del'=>1,'fsort'=>2]); array_push($apply,['fname'=>'年龄','ftag'=>'uage','ftype'=>'input','frequire'=>1,'foptions'=>'','fnotice'=>'','del'=>1,'fsort'=>3]); array_push($apply,['fname'=>'工作','ftag'=>'ujob','ftype'=>'input','frequire'=>1,'foptions'=>'','fnotice'=>'','del'=>1,'fsort'=>4]); array_push($apply,['fname'=>'电话','ftag'=>'utel','ftype'=>'input','frequire'=>1,'foptions'=>'','fnotice'=>'','del'=>1,'fsort'=>5]); array_push($apply,['fname'=>'邮箱','ftag'=>'uemail','ftype'=>'input','frequire'=>1,'foptions'=>'','fnotice'=>'','del'=>1,'fsort'=>6]); } $this->assign("apply",$apply); $this->assign('list',$list); $auth_group=Db::name('auth_group')->where('status','1')->select(); $this->assign('groups',$auth_group); $list=Db::name('smstpl')->where('status','1')->select(); $this->assign('tpls',$list); $this->assign('role',$this->groupid); return $this->fetch(); } /** * 修改操作 */ public function runedit() { $kind=input("kind"); $this->assign('kind',$kind); $data=[]; $data['title']=input('title'); $data['kind']=$kind; $data['status']=input('status'); $data['login']=input('login'); $data['contact']=input('contact'); $data['notice']=input('notice'); $data['poster']=input('poster'); $data['banner']=input('banner'); $data['pic']=input('pic'); $data['infor']=input('infor'); $data['smsid']=input('smsid'); $start=input('start_date'); if($start)$start=strtotime($start); $data['start_date']=$start; $end=input('end_date'); if($end)$end=strtotime($end); $data['end_date']=$end; $data['create_date']=time(); $groups=isset($_POST['groups'])?$_POST['groups']:''; $data['groups']=is_array($groups)?implode(',', $groups):''; $apply=input('apply')?htmlspecialchars_decode(input('apply')):''; if($apply){ $applylist=json_decode($apply,true); array_multisort(array_column($applylist,'fsort'),SORT_ASC,$applylist); $apply=$applylist; $apply=json_encode($apply); $fileds=array_column($applylist,'ftag'); $cfileds=Db::name('activityapply')->getTableFields(['table'=>'wjs_activityapply']); $update=true; foreach ($fileds as $k=>$row){ if(!in_array($row, $cfileds)){ $current=$applylist[$k]; $curtext='varchar(255)'; if($current['ftype']=='checkbox'||$current['ftype']=='select'||$current['ftype']=='date') $curtext='int(11)'; if($current['ftype']=='textarea') $curtext='text'; if($current['frequire']==1)$curtext.=" not null "; $sql="alter table wjs_activityapply add column ".$current['ftag']." ".$curtext." comment '".$current['fname'].' '.$current['foptions']."'"; $query=db()->execute($sql); if(!$query){ $update=false; break; } } } if(!$update){ $this->error('修改失败',url('admin/Activitys/index',['kind'=>$kind])); } } $data['apply']=$apply; $id=input('id'); $rst=Db::name('activity')->where(['id'=>$id])->update($data); if($rst!==false){ $this->success('修改成功',url('admin/Activitys/index',['kind'=>$kind])); }else{ $this->error('修改失败',url('admin/Activitys/index',['kind'=>$kind])); } } /** * 删除 */ public function del() { $kind=input("kind"); $this->assign('kind',$kind); $admin_id=input('id'); if (empty($admin_id)){ $this->error('ID不存在',url('admin/Activitys/index',['kind'=>$kind])); } $rst=Db::name('activity')->delete($admin_id); if($rst!==false){ $this->success('删除成功',url('admin/Activitys/index',['kind'=>$kind])); }else{ $this->error('删除失败',url('admin/Activitys/index',['kind'=>$kind])); } } public function export(){ $id=input('admin_id'); $map=['id'=>$id]; $activity=Db::name('activity')->where($map)->find(); if(!$activity)$this->error("活动不存在"); $applys=Db::name('activityapply')->where(['aid'=>$id])->select(); $apply=json_decode($activity['apply'],true); $expTitle=$activity['title']; $expCellName=[]; foreach ($apply as $jow){ if($jow['ftag']&&$jow['fname']&&$jow['ftype']!='file'&&$jow['ftype']!='notice')array_push($expCellName,[$jow['ftag'],$jow['fname'],$jow['foptions'],$jow['ftype']]); } array_push($expCellName,['create_time','报名时间','','date']); $apply=$activity['apply']?json_decode($activity['apply'],true):[]; foreach ($applys as &$row){ $row['usex']=$row['usex']==1?'男':'女'; if(count($apply)){ foreach ($apply as $j=>$jow){ $key=$jow['ftag']; $val=$row[$key]; if($jow['ftype']=='select'||$jow['ftype']=='radio'){ $opts=$jow['foptions']; if($opts){ $opts=explode("||", $opts); $val=intval($val); $val=isset($opts[$val-1])?$opts[$val-1]:''; if($jow['ftype']=='radio'&&$val=='其他'){ $val.=$row['uother']; } } } if($jow['ftype']=='checkbox'){ $opts=$jow['foptions']; if($opts){ $opts=explode("||", $opts); $shtml=''; $vals=explode(",", $val); foreach ($vals as $tmp){ $tmp=intval($tmp); $shtml.=isset($opts[$tmp-1])?$opts[$tmp-1].';':''; } $val=$shtml; } } $row[$key]=$val; } } } $expTableData=$applys; $res=exportExcel($expTitle,$expCellName,$expTableData); } /** * 列表 */ public function tpl() { $kind=input("kind"); $this->assign('kind',$kind); $search_name=input('search_name'); $this->assign('search_name',$search_name); $map=array(); if($kind)$map['kind']=$kind; if($search_name){ $map['title']= array('like',"%".$search_name."%"); } $admin_list=Db::name('smstpl')->where($map)->order('id desc')->paginate(config('paginate.list_rows'),false,['query'=>get_query()]); $page = $admin_list->render(); $this->assign('list',$admin_list); $this->assign('page',$page); return $this->fetch(); } /** * 添加 */ public function addtpl() { $kind=input("kind"); $this->assign('kind',$kind); return $this->fetch(); } /** * 添加操作 */ public function runaddtpl() { $data=[]; $data['title']=input('title'); $data['status']=input('status'); $data['infor']=input('infor'); $data['create_date']=time(); $admin_id=Db::name('smstpl')->insert($data); $url=url('admin/Activitys/tpl'); if($admin_id){ $this->success('添加成功',$url); }else{ $this->error('添加失败',$url); } } /** * 修改 */ public function edittpl() { $kind=input("kind"); $this->assign('kind',$kind); $list=Db::name('smstpl')->find(input('admin_id')); $this->assign('list',$list); return $this->fetch(); } /** * 修改操作 */ public function runedittpl() { $data=[]; $data['title']=input('title'); $data['status']=input('status'); $data['infor']=input('infor'); $data['create_date']=time(); $id=input('id'); $rst=Db::name('smstpl')->where(['id'=>$id])->update($data); $url=url('admin/Activitys/tpl'); if($rst!==false){ $this->success('修改成功',$url); }else{ $this->error('修改失败',$url); } } /** * 删除 */ public function deltpl() { $kind=input("kind"); $this->assign('kind',$kind); $admin_id=input('id'); $url=url('admin/Activitys/tpl'); if (empty($admin_id)){ $this->error('ID不存在',$url); } $rst=Db::name('smstpl')->delete($admin_id); if($rst!==false){ $this->success('删除成功',$url); }else{ $this->error('删除失败',$url); } } /** * 列表 */ public function sms() { $kind=input("kind",'activitys'); $this->assign('kind',$kind); $search_name=input('search_name'); $this->assign('search_name',$search_name); $map=array(); if($kind)$map['sms_type']=$kind; if($search_name){ $map['sms_txt|sms_tel']= array('like',"%".$search_name."%"); } $admin_list=Db::name('smslog')->where($map)->order('sms_id desc')->paginate(config('paginate.list_rows'),false,['query'=>get_query()]); $page = $admin_list->render(); $this->assign('list',$admin_list); $this->assign('page',$page); return $this->fetch(); } /** * 删除 */ public function delsms() { $kind=input("kind"); $this->assign('kind',$kind); $admin_id=input('id'); $url=url('admin/Activitys/sms'); if (empty($admin_id)){ $this->error('ID不存在',$url); } $rst=Db::name('smslog')->delete($admin_id); if($rst!==false){ $this->success('删除成功',$url); }else{ $this->error('删除失败',$url); } } /** * 列表 */ public function apply() { $kind=input("kind"); $this->assign('kind',$kind); $aid=input('aid'); $search_name=input('search_name'); $this->assign('search_name',$search_name); $map=array(); if($kind)$map['kind']=$kind; if($search_name){ $map['uname|ucard']= array('like',"%".$search_name."%"); } if($aid)$map['aid']=$aid; $admin_list=Db::name('activityapply')->where($map)->order('id desc')->paginate(config('paginate.list_rows'),false,['query'=>get_query()]); $page = $admin_list->render(); $this->assign('list',$admin_list); $this->assign('page',$page); $this->assign('aid',$aid); return $this->fetch(); } /** * 修改 */ public function editapply() { $kind=input("kind"); $this->assign('kind',$kind); $list=Db::name('activityapply')->find(input('admin_id')); $aid=isset($list['aid'])?$list['aid']:''; $showlist=[]; if($aid&&$list){ $activity=Db::name('activity')->where(['id'=>$aid])->find(); $apply=$activity['apply']?json_decode($activity['apply'],true):[]; if(count($apply)){ foreach ($apply as $j=>$jow){ $key=$jow['ftag']; $val=$list[$key]; if($jow['ftype']=='date'){ $val=date("Y-m-d",$val); } if($jow['ftype']=='select'||$jow['ftype']=='radio'){ $opts=$jow['foptions']; if($opts){ $opts=explode("||", $opts); $val=intval($val); $val=isset($opts[$val-1])?$opts[$val-1]:''; if($jow['ftype']=='radio'&&$val=='其他'){ $val.=$list['uother']; } } } if($jow['ftype']=='checkbox'){ $opts=$jow['foptions']; if($opts){ $opts=explode("||", $opts); $shtml=''; $vals=explode(",", $val); foreach ($vals as $tmp){ $tmp=intval($tmp); $shtml.=isset($opts[$tmp-1])?$opts[$tmp-1].';':''; } $val=$shtml; } } if($jow['ftype']=='file'){ $files=explode(";", $val); $shtml=''; foreach ($files as $k=>$tmp){ $file=pathinfo($tmp); if(isset($file['extension'])){ if(in_array($file['extension'],['jpg','jpeg','png','gif'])){ $shtml.=''; }else{ $shtml.='附件'.$k.''; } } } $val=$shtml; } if($jow['ftype']!='notice')array_push($showlist,['key'=>$jow['fname'],'val'=>$val]); } } } $this->assign('showlist',$showlist); $this->assign('list',$list); return $this->fetch(); } /** * 删除 */ public function delapply() { $kind=input("kind"); $this->assign('kind',$kind); $admin_id=input('id'); $url=url('admin/Activitys/apply'); if (empty($admin_id)){ $this->error('ID不存在',$url); } $rst=Db::name('activityapply')->delete($admin_id); if($rst!==false){ $this->success('删除成功',$url); }else{ $this->error('删除失败',$url); } } /** * 审核/取消审核 */ public function editstate(){ if(request()->isAjax()){ $exptime=input('exptime'); $data=[]; $data['express']=input('express'); $data['expname']=input('expname'); $data['exptime']=$exptime?strtotime($exptime):''; $data['state']=input('state'); $data['advice']=input('advice'); $data['passtime']=(input('state')==1)?time():''; $id=input('id'); $aid=input('aid'); $rst=Db::name('activityapply')->where(['id'=>$id])->update($data); $url=url("apply",['aid'=>$aid]); if($rst!==false){ $this->success('审核成功',$url); }else{ $this->error('审核失败',$url); } } $id=input('id'); $aid=input('aid'); $find=Db::name('activityapply')->where(array('id'=>$id))->find(); $this->assign('list',$find); $this->assign('aid',$aid); return $this->fetch(); } /** * 审核/取消审核 */ public function state() { $id=input('x'); $find=Db::name('activityapply')->where(array('id'=>$id))->find(); $msg='未审'; if($find){ $status=$find['state']; if($status==1){ $statedata = array('state'=>0); }else{ $statedata = array('state'=>1); $msg='已审'; } $send=$find['send']; if($send==0){ $statedata['send']=1; } $query=Db::name('activityapply')->where(array('id'=>$id))->setField($statedata); if($send==0&&$query){ $aid=$find['aid']; $act=Db::name('activity')->where(array('id'=>$aid))->find(); if($act){ $notice_title='您好,您的活动报名('.$act['title'].')已审核成功 '; $notice=''; $sl_data=[ 'notice_title'=>$notice_title, 'notice'=>$notice_title, 'user_id'=>$find['uid'], 'apply_id'=>$aid, 'create_id'=>session('admin_auth.aid'), 'create_type'=>1, 'create_time'=>time() ]; Db::name('activitynotice')->insert($sl_data); } } } $this->success($msg); } }