logobj = m('log');
}
protected function flowchangedata(){
$cont = c('html')->replace($this->rs['content']);
$fm = $this->rs['fengmian'];
if(!isempt($fm)){
$cont='
'.$cont.'';
}
$url = $this->rs['url'];
if(!isempt($url))$cont.='';
$this->rs['content'] = $cont;
}
public function flowrsreplace($rs, $lx=0)
{
$mintou = (int)arrvalue($rs, 'mintou','0');
if($lx==2){
$zt = $this->logobj->isread($this->mtable, $rs['id'], $this->adminid);
if($zt>0)$rs['ishui']=1;
}
if($lx==1){
$receid = $rs['receid'];
if(isempt($receid))$receid='all';
$barr = m('log')->getreadshu($this->mtable, $rs['id'],$receid , $rs['optdt'], $this->adminmodel);
foreach($barr as $k=>$v)$rs[$k]=$v;
$this->readunarr = $barr['wduarr'];
}
if($mintou>0){
$rs['title'] .='(投票)';
}
return $rs;
}
protected function flowsubmit($na, $sm)
{
if($this->rs['status']==1)$this->tisongtodo();
}
//移动端列表
private $ydarr = false;
public function flowrsreplace_we($row, $rs)
{
if(!isempt($rs['fengmian']))$row['picurl'] = $rs['fengmian'];
if($this->ydarr===false)$this->ydarr = explode(',', m('log')->getread('infor', $this->adminid));
if(!in_array($rs['id'], $this->ydarr)){
$row['statustext'] = '未读';
$row['statuscolor'] = '#ED5A5A';
}else{
$row['ishui'] = 1;
}
return $row;
}
public function flowwesearchdata($lx)
{
if($lx==1)return $this->option->getselectdata('gongtype', true);
return array(
'typename' => '所有通知',
'searchmsg' => '通知标题/分类',
);
}
//审核完成后发通知
protected function flowcheckfinsh($zt)
{
if($zt==1)$this->tisongtodo();
}
public function getreceids($receid, $whe='')
{
$receid = $this->adminmodel->gjoin($receid,'ud','where');
if($receid=='' || $receid=='all'){
$where = '';
}else{
$where = 'and id>0 and ('.$receid.')';
}
$ids = '';
$rows = $this->adminmodel->getall('`status`=1 '.$where.' '.$whe.'','id');
foreach($rows as $k=>$rs)$ids.=',u'.$rs['id'].'';
if($ids!='')$ids = substr($ids, 1);
return $ids;
}
//发送推送通知
private function tisongtodo()
{
//还没到展示时间就不发送提醒
$zstart= arrvalue($this->rs, 'zstart');
if(!isempt($zstart) && $zstart>$this->rock->date)return;
$h = c('html');
$cont = $h->htmlremove($this->rs['content']);
$cont = $h->substrstr($cont,0, 40);
if(strlen($cont)>41)$cont.='...';
if(isempt($cont))$cont = $this->rs['title']; //为空时
$this->push($this->rs['receid'], '通知公告', $cont, $this->rs['title'],1);
//添加短信提醒,短信提醒
if(arrvalue($this->rs,'issms')=='1'){
$receid = $this->rs['receid'];//接收人ID,可以为部门合聚,如d2,u1(必须)
if(isempt($receid))$receid = 'all'; //为空就是全部人
$qiannum= ''; //【系统→短信管理→短信签名】下获取,如没有自己的签名默认【信呼OA】
$tplnum = m('option')->getval('gongsmstpl', 'gongsms');//到【数据选项→行政选项】下设置通知短信模版编号
$params = array(
'title' => $this->rs['title'],
'typename' => $this->rs['typename'],
);
$url = $this->getxiangurlx();//详情连接地址(选填),短信模版有url就需要填写
c('xinhuapi')->sendsms($receid, $qiannum, $tplnum, $params, $url);
}
}
protected function flowgetoptmenu($opt)
{
$to = m('log')->isread($this->mtable, $this->id);
return $to<=0;
}
protected function flowoptmenu($ors, $crs)
{
$table = $this->mtable;
$mid = $this->id;
$uid = $this->adminid;
$lx = $ors['num'];
$log = m('log');
if($lx=='yd'){
$log->addread($table, $mid, $uid);
}
if($lx=='allyd'){
$ydid = $log->getread($table, $uid);
$where = "id not in($ydid)";
$meswh = m('admin')->getjoinstr('receid', $uid);
$where .= $meswh;
$rows = m($table)->getrows($where,'id');
foreach($rows as $k=>$rs)$log->addread($table, $rs['id'], $uid);
}
}
protected function flowbillwhere($uid, $lx)
{
$key = $this->rock->post('key');
$typeid = (int)$this->rock->post('typeid','0');
$keywere= '';
$whyere = '';
if(!isempt($key))$keywere.=" and (`title` like '%$key%' or `typename`='$key')";
//我和我未读
if($lx=='my' || $lx=='wexx'){
$whyere= "and (`zstart` is null or `zstart`<='{$this->rock->date}')";
$whyere.= " and (`zsend` is null or `zsend`>='{$this->rock->date}')";
$wdate = $this->adminmodel->getmou('workdate', $uid);
if(!isempt($wdate))$whyere.=" and `indate`>='$wdate'";
}
if($typeid>0){
$typename=$this->option->getmou('name', $typeid);
$whyere.=" and `typename`='$typename'";
}
return array(
'order' => '`istop` desc,`optdt` desc',
'keywere' => $keywere,
'where' => $whyere,
'fields' => 'id,typename,optdt,title,optname,zuozhe,indate,recename,fengmian,mintou,`status`,`istop`,`appxs`,`comid`'
);
}
//显示投票
protected function flowdatalog($arr)
{
$istoupiao = 0;
$mintou = (int)arrvalue($this->rs, 'mintou','0');
$maxtou = (int)arrvalue($this->rs, 'maxtou','0');
$status = (int)arrvalue($this->rs, 'status','0');
$touarr = array();
$logarr = array();
if($mintou>0){
$istoupiao = 4;
$toutype = 0;//不需要投票,1已投票,2未投票
$receid = $this->rs['receid'];
if(isempt($receid)){
$istoupiao = 1;
}else{
$bo = $this->adminmodel->containjoin($receid, $this->adminid);
if($bo)$istoupiao = 1;
}
$zongps = 0;
$touitems = m('infors')->getall('mid='.$this->id.'','*','`sort`');
foreach($touitems as $k=>$rs){
$zongps+=floatval($rs['touci']);
$touitems[$k]['bili'] = 0;
}
if($zongps>0)foreach($touitems as $k=>$rs){
$touitems[$k]['bili'] = $this->rock->number(floatval($rs['touci'])/$zongps * 100);
}
$touarr['touitems'] = $touitems;
if($istoupiao==1){
if($this->rs['startdt']>$this->rock->now)$istoupiao = 2; //未开始
if($this->rs['enddt']<$this->rock->now)$istoupiao = 3; //结束
}
$touarr['type'] = ($mintou==1 && $maxtou==1)? 'radio': 'checkbox';
//判断我是否投票了
if($istoupiao==1 && $status==1){
$towheer = $this->mwhere." and `name`='投票' and `checkid`='$this->adminid'";
if($this->flogmodel->rows($towheer)>0){
$toutype = 1;
$istoupiao = 5;
}else{
$toutype = 2; //未投票
}
}
$touarr['toutype'] = $toutype;
//判断是否可以显示结果
$showtou = 0;
if($istoupiao!=2 && $status==1 && ($toutype==1 || $toutype==0))$showtou = 1;
if($showtou==0){
foreach($arr['logarr'] as $k1=>$rs1){
if($rs1['actname']!='投票')$logarr[] = $rs1;
}
}
$touarr['showtou'] = $showtou;
$touarr['mintou'] = $mintou;
$touarr['maxtou'] = $maxtou;
}
$toupiaoarrr = explode(',',',投票进行中,未开始,已结束,你不在投票对象中,已投票过了');
$arr['istoupiao'] = $istoupiao; //投票状态0不能,1可以,2未开始,3结束 4你不需要投票
$arr['toupiaostatus'] = $toupiaoarrr[$istoupiao];
$arr['title'] = '';
$arr['touarr'] = $touarr;
if($logarr)$arr['logarr'] = $logarr;
$arr['readunarr'] = $this->readunarr;//读取未查阅
return $arr;
}
}