| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- <?php
- /**
- * 应用上的接口文件,读取数据显示
- */
- class agentModel extends Model
- {
- public $agentnum = '';
- public $agentid = '0';
- public $modeid = 3;
- public $page = 1;
- public $loadci = 1;
- public $limit = 10; //默认加载的条数
- public $user_id = 0;
- public $event = '';
- public $agentrs;
- public $moders;
- public $flow = null;
- public $tongmode = true;
-
- public function getdatas($uid, $lx, $p){}
-
- /**
- * 从新接口方法
- * $rows 要展示数据 $rowd 原始数据
- */
- protected function agentrows($rows, $rowd, $uid){return $rows;}
- protected function agenttotals($uid){return array();}
- protected function agentdata($uid, $lx){return false;}
-
- protected $showuface = true;//是否显示对应人员头像
-
-
- public function gettotal()
- {
- return array(
- 'stotal' => 0,
- 'titles' => ''
- );
- }
-
- public function getagentinfor($num)
- {
- $this->agentnum = $num;
- $this->agentrs = m('im_group')->getone("`num`='$num'");
- $this->moders = m('flow_set')->getone("`num`='$num'");
- if($this->agentrs){
- $this->agentid = $this->agentrs['id'];
- }
- if($this->moders){
- $this->modeid = $this->moders['id'];
- $this->flow = m('flow')->initflow($num);
- $this->flow->ismobile = 1;
- }
- }
-
-
- public function getdata($uid, $num, $lx, $page)
- {
- $this->tongmode = true;
- if(!isempt($lx)){
- $lxa = explode('|', $lx);
- if(isset($lxa[1]) && !isempt($lxa[1])){
- if($lxa[1] != $num)$this->tongmode = false;
- $num = $lxa[1];
- $lx = $lxa[0];
- }
- }
- $this->loadci = (int)$this->rock->get('loadci','0');
- $this->getagentinfor($num);
- $this->page = $page;
- $this->user_id = $uid;
- $this->event = $lx;
- $narr = $this->agentdata($uid, $lx);
- $lx = $this->event;
- if(!$narr)$narr = $this->getdatalimit($uid, $lx);
- $arr = array(
- 'wdtotal' => 0,
- 'event' => $lx,
- 'num' => $num,
- 'rows' => array(),
- 'rowd' => array(),
- 'page' => $page,
- 'limit' => $this->limit,
- 'agentid' => $this->agentid,
- 'count' => 0,
- 'maxpage' => 0
- );
- if(is_array($narr))foreach($narr as $k=>$v)$arr[$k]=$v;
- $barr = $this->agentrows($arr['rows'],$arr['rowd'], $uid);
- if(isset($barr['rows'])){
- foreach($barr as $k=>$v)$arr[$k]=$v;
- $barr = $barr['rows'];
- }
- $arr['rows'] = $this->showrowsface($barr);
- $arr['stotal'] = $this->agenttotals($uid);
- unset($arr['rowd']);
- return $arr;
- }
-
- //状态切换读取一般用于有流程
- protected function agentrows_status($rows, $rowd){
- foreach($rowd as $k=>$rs){
- if($this->flow){
- $rows[$k]['modename'] = $this->moders['name'];
- $rows[$k]['modenum'] = $this->moders['num'];
- if(isset($rs['status'])){
- $zts = $this->flow->getstatus($rs);
- $rows[$k]['statustext'] = $zts[0];
- $rows[$k]['statuscolor'] = $zts[1];
- if($rs['status']==5)$rows[$k]['ishui'] = 1;
- }
- }
- }
- return $rows;
- }
-
- /**
- * 应用上获取数据
- */
- public function getdatalimit($uid, $lx)
- {
- if(!$this->flow)return array();
- $nas = $this->flow->billwhere($uid, $lx);
- $_wehs = $nas['where'];
-
- $where = '1=1 '.$_wehs.'';
- $fields = '*';
- $order = '';
- $_tabsk = $nas['table'];
- if(contain($_tabsk,' ')){
- $tables = $_tabsk;
- $table = $this->flow->mtable;
- }else{
- $table = $_tabsk;
- $tables = $this->rock->T($table);
- }
- if(!isempt($nas['order']))$order = $nas['order'];
- if(!isempt($nas['fields']))$fields = $nas['fields'];
- $arr = m($table)->getlimit($where, $this->page, $fields, $order, $this->limit, $tables);
- $rows = $arr['rows'];
- $row = array();
- $summarx= $this->flow->moders['summarx'];
- if(isempt($summarx))$summarx = 'cont:'.$this->flow->moders['summary'].'';
- $suarr = $this->zhaiyaoar($summarx);
- $rows = $this->flow->viewjinfields($rows);//禁看字段处理
- foreach($rows as $k=>$rs){
- $jarr = array();
- $rs = $this->flow->flowrsreplace($rs, 2);
- if(isset($rs['id']))$jarr['id'] = $rs['id'];
- if(isset($rs['uid']))$jarr['uid'] = $rs['uid'];
- if(isset($rs['ishui']))$jarr['ishui'] = $rs['ishui'];
- foreach($suarr as $f=>$nr){
- $str = $this->rock->reparr($nr, $rs);
- if($f=='cont')$str = $this->contreplaces($str);
- $jarr[$f] = $str;
- }
- $rows[$k] = $rs;
- $ors = $this->flow->flowrsreplace_we($jarr, $rs);
- if(!$this->tongmode){
- if(!isset($ors['modenum']))$ors['modenum'] = $this->moders['num'];
- if(!isset($ors['modename']))$ors['modename'] = $this->moders['name'];
- }
- $row[] = $ors;
- }
- $arr['rows'] = $row;
- $arr['rowd'] = $rows;
- return $arr;
- }
-
- private function zhaiyaoar($str)
- {
- $stra = explode("\n", $str);
- $arr = array();
- foreach($stra as $nr){
- if(strpos($nr,'title:')===0)$arr['title'] = substr($nr, 6);
- if(strpos($nr,'optdt:')===0)$arr['optdt'] = substr($nr, 6);
- if(strpos($nr,'cont:')===0)$arr['cont'] = substr($nr, 5);
- }
- if(!$arr)$arr['cont'] = $str;
- return $arr;
- }
-
- private function contreplaces($str)
- {
- $stra = explode('[br]', $str);
- $s1 = '';
- foreach($stra as $s){
- $a1 = explode(':', $s);
- if(isset($a1[1]) && $a1[1]==''){
- }else{
- $s1.='$%#'.$s.'';
- }
- }
- if($s1!=''){
- $s1 = str_replace('$%#', "\n", substr($s1, 3));
- }
- return $s1;
- }
-
- /**
- * 显示人员对应头像
- */
- private function showrowsface($rows)
- {
- if(!$this->showuface)return $rows;
- $uids = '0';
- foreach($rows as $k=>$rs){
- if(isset($rs['uid']))$uids .=','.$rs['uid'].'';
- }
- if($uids!='0'){
- $adb = m('admin');
- $uarr = $this->db->getarr('[Q]admin','id in('.$uids.')','`face`,`name`');
- foreach($rows as $k=>$rs){
- if(!isset($rs['uid']))continue;
- if(isset($uarr[$rs['uid']])){
- $rows[$k]['face'] = $adb->getface($uarr[$rs['uid']]['face']);
- }
- }
- }
- return $rows;
- }
- }
|