Files
xinhu/webmain/task/api/indexreimAction.php
2023-04-05 13:00:20 +08:00

323 lines
9.6 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
class indexreimClassAction extends apiAction
{
/**
* PC客户端首页读取
*/
public function indexinitAction()
{
$viewobj = m('view');
$dbs = m('reim');
$dba = m('admin');
$gtype = $this->rock->get('gtype');
$udarr = m('dept')->getdeptuserdata();
$userarr = $udarr['uarr'];
$deptarr = $udarr['darr'];
$grouparr = $dbs->getgroup($this->adminid);
$agentarr = $dbs->getagent($this->adminid);
$historyarr = $dbs->gethistory($this->adminid);
$modearr = array();
if(isempt($gtype)){
$applyarr = m('mode')->getmoderows($this->adminid,'and islu=1');
foreach($applyarr as $k=>$rs){
if(!$viewobj->isadd($rs, $this->adminid))continue;
$modearr[]=array('type'=>$rs['type'],'num'=>$rs['num'],'name'=>$rs['name']);
}
}
$arr['deptjson'] = json_encode($deptarr);
$arr['userjson'] = json_encode($userarr);
$arr['groupjson'] = json_encode($grouparr);
$arr['agentjson'] = json_encode($agentarr);
$arr['historyjson'] = json_encode($historyarr);
$arr['modearr'] = $modearr;
$arr['config'] = $dbs->getreims();
$arr['loaddt'] = $this->now;
$arr['ip'] = $this->ip;
$arr['editpass'] = $dba->iseditpass($this->adminid);
$arr['companyinfo'] = $dba->getcompanyinfo($this->adminid, 1);
$arr['onlinearr'] = $this->onlinearr();
$arr['outunum'] = $this->option->getval('outunum'.$this->adminid.'');
$arr['outgroupopen']= $this->option->getval('outgroupopen'.$this->adminid.'');
if(getconfig('systype')=='demo'){
$arr['outgroupopen'] = 'close';
$arr['outunum'] = 'y4rwlnabc';
}
$this->rock->savesession(array('homestyle' => 'rock'));
return returnsuccess($arr);
}
//在线情况读取
private function onlinearr()
{
$time = date('Y-m-d H:i:s', time()-6*60);
$rows = m('login')->getall("`online`=1 and ((`ispush`=1) or (`cfrom`='reim' and moddt>='$time'))",'uid,ispush,web,cfrom');
$onlinearr = array();
foreach($rows as $k=>$rs){
$uid = $rs['uid'];
if(!isset($onlinearr[$uid]))$onlinearr[$uid]=array('uid'=>$uid,'reim'=>0,'mobile'=>0,'web'=>'');
if($rs['cfrom']=='reim')$onlinearr[$uid]['reim'] = 1;
if($rs['ispush']=='1'){
$onlinearr[$uid]['mobile'] = 1;
$onlinearr[$uid]['web'] = $rs['web'];
}
}
return $onlinearr;
}
/**
* REIM的初始化
*/
public function reiminitAction()
{
$dbs = m('reim');
$dba = m('admin');
$udarr = m('dept')->getdeptuserdata();
$userarr = $udarr['uarr'];
$deptarr = $udarr['darr'];
$grouparr = $dbs->getgroup($this->adminid);
$historyarr = $dbs->gethistory($this->adminid);
$agentarr = $dbs->getagent($this->adminid);
$arr['deptjson'] = json_encode($deptarr);
$arr['userjson'] = json_encode($userarr);
$arr['groupjson'] = json_encode($grouparr);
$arr['historyjson'] = json_encode($historyarr);
$arr['agentjson'] = json_encode($agentarr);
$arr['config'] = $dbs->getreims();
$arr['loaddt'] = $this->now;
$arr['ip'] = $this->ip;
$arr['editpass'] = $dba->iseditpass($this->adminid);
$arr['companyinfo'] = $dba->getcompanyinfo($this->adminid, 1);
$this->showreturn($arr);
}
/**
* 会话列表记录
*/
public function gethistoryAction()
{
$arr = m('reim')->gethistory($this->adminid);
$this->showreturn($arr);
}
/**
* 最新app读取通信地址
*/
public function reimconfigAction()
{
$arr['config'] = m('reim')->getreims();
$type = $this->option->getval('reimservertype','0');
$appwx = $this->option->getval('reimappwxsystem','0');
if($type=='0' || $appwx=='0'){//非nodejs版本就不要
$arr['config']['wsurl'] = '';
$arr['config']['recid'] = '';
}
$this->showreturn($arr);
}
/**
* 手机网页版读取最新webapp的
*/
public function mwebinitAction()
{
$dbs = m('reim');
$dba = m('admin');
$agentarr = $dbs->getappagent($this->adminid);
$historyarr = $dbs->gethistory($this->adminid);
$arr['agentjson'] = json_encode($agentarr['rows']);
$arr['historyjson'] = json_encode($historyarr);
$arr['loaddt'] = $this->now;
$arr['loadtime'] = time();
if($historyarr)$arr['loadtime'] = strtotime($historyarr[0]['optdt']);
$arr['editpass'] = $dba->iseditpass($this->adminid);
$arr['companyinfo'] = $dba->getcompanyinfo($this->adminid, 1);
//读取app首页显示图片从公告和新闻上读取
$arr['myhomenum'] = '';
if($this->isshowshouye('appsy_yyshow'))$arr['myhomenum'] = $this->option->getval('yinghomeshow_'.$this->adminid.'');//我常用的
$silderarr = array();
if($this->isshowshouye('appsy_ggshow')){
$sildergong = m('flow')->initflow('gong')->getflowrows($this->adminid, 'my', 5, " and `appxs`=1");
foreach($sildergong as $k=>$rs){
if(isempt($rs['fengmian']))continue;
$silderarr[] = array(
'src' => $this->rock->gethttppath($rs['fengmian']),
'title' => $rs['title'],
'url' => 'task.php?a=x&num=gong&mid='.$rs['id'].''
);
}
}
if($this->isshowshouye('appsy_xwshow','否')){
$sildernews = m('flow')->initflow('news')->getflowrows($this->adminid, 'my', 5, " and `appxs`=1");
foreach($sildernews as $k=>$rs){
if(isempt($rs['fengmian']))continue;
$silderarr[] = array(
'src' => $this->rock->gethttppath($rs['fengmian']),
'title' => $rs['title'],
'url' => 'task.php?a=x&num=news&mid='.$rs['id'].''
);
}
}
$arr['silderarr'] = $silderarr;
$arr['outunum'] = $this->option->getval('outunum'.$this->adminid.'');
$arr['outgroupopen'] = $this->option->getval('outgroupopen'.$this->adminid.'');
$arr['tonghuabo'] = getconfig('video_bool') ? '1' : '2';//是否开启音视频
$arr['lxrshow'] = ($this->option->getval('appsy_lxrshow')!='否') ? 1 : 2;
$this->showreturn($arr);
}
private function isshowshouye($lx, $mr='是')
{
$val = $this->option->getval($lx);
if(isempt($val))$val=$mr;
return $val=='是';
}
public function ldataAction()
{
$loaddt = $this->rock->jm->base64decode($this->post('loaddt'));
if($loaddt && !c('check')->isdatetime($loaddt))$loaddt='';
$type = $this->post('type','history');
$dbs = m('reim');
$json = array();
if($type=='history')$json = $dbs->gethistory($this->adminid, $loaddt);
if($type=='group')$json = $dbs->getgroup($this->adminid);
if($type=='dept')$json = m('dept')->getdata();
if($type=='user')$json = m('admin')->getuser();
if($type=='agent')$json = $dbs->getagent($this->adminid);
if($type=='config')$json = m('reim')->getreims();
$arr['json'] = json_encode($json);
$arr['loaddt'] = $this->now;
$arr['ip'] = $this->ip;
$arr['type'] = $type;
$this->showreturn($arr);
}
public function indexupgetAction()
{
$historyarr = m('reim')->gethistory($this->adminid);
$arr['historyjson'] = json_encode($historyarr);
$this->showreturn($arr);
}
public function changewxtxAction()
{
$tx = (int)$this->post('tx','1');
m('admin')->update('wxtx='.$tx.'', $this->adminid);
$this->showreturn('');
}
public function showmyinfoAction()
{
$dbs = m('admin');
$arr = $dbs->getone($this->adminid,'`id`,`deptallname`,`ranking`,`email`,`tel`,`apptx`,`face`,`name`,`user`,`mobile`');
if(!$arr)$this->showreturn('','not user', 201);
$arr['face'] = $dbs->getface($arr['face']);
$arr['admintoken'] = $this->admintoken;
$arr['companyinfo'] = $dbs->getcompanyinfo($this->adminid, 1);
$arr['companymode'] = ISMORECOM;
if(m('reim')->installwx(3)){
$bdwx = m('wouser')->getone('`uid`='.$this->adminid.'','nickname,headimgurl');
$arr['bdwx'] = $bdwx;
}
$this->showreturn($arr);
}
public function wxbdjcAction()
{
m('wouser')->update('`uid`=0','`uid`='.$this->adminid.'');
$this->showreturn('');
}
//同步微信上头像
public function tongbufaceAction()
{
$reim = m('reim');
if($reim->installwx(1)){
$barr = m('weixinqy:user')->anayface($this->userrs['user'], true);
if($barr['errcode'] != 0)$this->showreturn('',$barr['msg'],202);
$this->showreturn($barr);
}else{
$this->showreturn('','没部署企业微信',201);
}
}
public function loadinfoAction()
{
$type = $this->get('type');
$receid = $this->get('receid');
$arr = array();
if($type=='user'){
$arr = m('admin')->getuser(0, $receid);
}
$this->showreturn($arr);
}
//判断是否有最新历史信息
public function loadhitAction()
{
$time = $this->get('time');
$arr['loadtime'] = $time;
$optdt = date('Y-m-d H:i:s', $time);
$arr['total'] = 0;
$historyarr = m('reim')->gethistory($this->adminid, $optdt);
$arr['rows'] = $historyarr;
if($historyarr)$arr['loadtime'] = strtotime($historyarr[0]['optdt']);
$this->showreturn($arr);
}
//设置常应用
public function shecyyAction()
{
$yynum = $this->get('yynum');
$myyyid= $this->option->getval('yinghomeshow_'.$this->adminid.'');
$yarrs = array();
$iscy = 0;
if(isempt($myyyid)){
$yarrs[]= $yynum;
$iscy = 1;
}else{
$yarrs = explode(',', $myyyid);
if(in_array($yynum, $yarrs)){
$iscy = 0;
foreach($yarrs as $k1=>$v1)if($v1==$yynum)unset($yarrs[$k1]);
}else{
$iscy = 1;
$yarrs[]= $yynum;
}
}
$myyyid = join(',', $yarrs);
$this->option->setval('yinghomeshow_'.$this->adminid.'', $myyyid);
$msg = '已设置首页显示';
if($iscy==0)$msg = '已取消首页显示';
$this->showreturn(array(
'iscy' => $iscy,
'msg' => $msg,
));
}
public function openoutqunAction()
{
$isop = $this->get('isop');
$this->option->setval('outgroupopen'.$this->adminid.'', $isop);
return returnsuccess();
}
}