/** * 显示当前面板内容 * @Title: showPanel * @Description: todo(页面展示) * @author 管理员 * @date 2015-06-30 19:36:36 * @throws */ public function showPanel() { import('@.ORG.Browse'); $submodel = M("mis_system_panel_desing_sub"); $sublist = $submodel->where("masid=15")->select(); $scdmodel = D("SystemConfigDetail"); $map["status"] = 1; foreach ($sublist as $key => $val) { $model = $val["modelname"]; $fields = explode(",", $val["showtitle"]); $defaultwidth = (int) 100 / count($fields); $temp = explode(",", $val["showtitle"]); foreach ($temp as $tk => $tv) { $temparr = explode("|", $tv); if ($temparr[2]) { $fields[$temparr[0]]['name'] = $temparr[0]; $fields[$temparr[0]]['width'] = $temparr[1]; $fields[$temparr[0]]['sort'] = $temparr[2]; } } sortArray($fields, 'sort', 'asc', 'number'); $detailList = $scdmodel->getDetail($model, true, "", "status"); $sublist[$key]['link'] = __APP__ . "/" . $model . "/index"; $sublist[$key]['rel'] = $model; $newd = array(); foreach ($fields as $k => $v) { foreach ($detailList as $dk => $dv) { if ($v['name'] == $dv['name']) { $newd[$k] = $dv; $newd[$k]['shows'] = 1; $newd[$k]['sortnum'] = $v['sort']; if (strpos('px', $v['width']) > 0 || strpos('PX', $v['width']) > 0 || strpos('Px', $v['width']) > 0) { $newd[$k]['widths'] = $v['width']; } else { $newd[$k]['widths'] = $v['width'] ? $v['width'] . "%" : $defaultwidth . "%"; } } } } $sublist[$key]["detailList"] = $newd; //具体数据1 $listmodel = D($model); $val['num'] = $val['num'] ? $val['num'] : 5; //获取当前模型数据权限 by renl 20150626 $broMap = Browse::getUserMap($model); if ($broMap) { if ($map['_string']) { $map['_string'] .= " and " . $broMap; } else { $map['_string'] = $broMap; } } $list = $listmodel->where($map)->order('id desc')->limit($val['num'])->select(); $sublist[$key]["list"] = $list; unset($map["_string"]); } $this->assign("sublist", $sublist); $this->display("MisSystemPanelDesingMas:news"); }
/** +---------------------------------------------------------- * 根据表单生成查询条件 * 进行列表过滤 +---------------------------------------------------------- * @access protected +---------------------------------------------------------- * @param Model $model 数据对象 * @param HashMap $map 过滤条件 * @param string $sortBy 排序 * @param boolean $asc 是否正序 * @param mothed $mothed 针对_list查询完后对返回的数组进行再次处理,所以需要传入一个处理方法名。 * @param module $modules 如果当前传入的$name 是视图的话,是无法用method_exists方法,所以需要多传入一个当前模型名字。 * @param echoSql 当等1时, 输出记算行数的sql语名; * @param $sorttype 字符串排序(多字段时使用) (exec: parentid desc,id asc) 2015-8-3 14:15 Write By xyz +---------------------------------------------------------- * @return void +---------------------------------------------------------- * @throws ThinkExecption +---------------------------------------------------------- */ protected function _list($name, $map, $sortBy = '', $asc = false, $group = '', $echoSql = '', $sortstr = '', $limit = true) { import('@.ORG.Browse'); //map附加 //提醒条件 if ($_REQUEST['remindMap']) { $remindMap = base64_decode($_REQUEST['remindMap']); if ($map['_string']) { $map['_string'] .= " and " . $remindMap; } else { $map['_string'] = $remindMap; } $this->assign("remindMap", $_REQUEST['remindMap']); } //权限验证条件 $getactionname = $this->getActionName(); $alicname = array("MisSalesMyProject", "MisSystemClientChangeRole"); if ($_SESSION['a'] != 1 && ($name == $this->getActionName() || in_array($getactionname, $alicname))) { //当遇到项目项目模型查询数据权限的时候,进行转移到项目动态信息 $newname = $this->getActionName() == "MisSalesMyProject" ? "MisAutoPvb" : $name; $broMap = Browse::getUserMap($newname); //添加商机特殊数据权限过滤 if ($name == "MisSaleMyBusiness") { if (!$_POST['isbrows']) { unset($broMap); } } //echo 111; if ($_REQUEST['projectid'] && $_REQUEST['projectworkid']) { $map['projectid'] = $_REQUEST['projectid']; } //将以前所有的$map置前,以免和转授权起冲突--放于$broMap判断之前 if ($broMap) { if ($map['_string']) { if (is_string($broMap) !== false) { $map['_string'] .= " and " . $broMap; //自身权限 } else { if (is_array($broMap)) { if ($broMap[0]) { $map['_string'] .= " and " . $broMap[0]; //自身权限 } if ($broMap[1]) { //转授权限 $map["_logic"] = "and"; $m['_complex'] = $map; $m['_string'] = $broMap[1]; $m['_logic'] = 'or'; $map = $m; } } } } else { if (is_string($broMap) !== false) { $map['_string'] .= $broMap; //自身权限 } else { if (is_array($broMap)) { if ($broMap[0]) { $map['_string'] .= $broMap[0]; //自身权限 } if ($broMap[1]) { //转授权限 $map["_logic"] = "and"; $m['_complex'] = $map; $m['_string'] = $broMap[1]; $m['_logic'] = 'or'; $map = $m; } } } } } } $model = D($name); // 视图对象的排序 $viewSign = substr($name, -4); if ($viewSign == 'View') { $viewTables = array_keys($model->viewFields); $viewTable = $viewTables[0]; $viewOrderBy = $model->viewFields[$viewTable][0]; $order = $viewTable . "." . $viewOrderBy; } else { if (isset($_REQUEST['orderField']) && $_REQUEST['orderField']) { $order = $_REQUEST['orderField']; //$order="`" .$order."`" ; } else { $order = !empty($sortBy) ? $sortBy : $model->getPk(); //$order="`" .$order."`" ; } } //排序方式默认按照倒序排列 //接受 sost参数 0 表示倒序 非0都 表示正序 if (isset($_REQUEST['orderDirection'])) { if (false === strpos(strtolower($_REQUEST['orderField']), ' asc') && false === strpos(strtolower($_REQUEST['orderField']), ' desc')) { $sort = $_REQUEST['orderDirection']; } else { $sort = ''; } } else { $ss = strtolower(C("SYSTEM_SORT")); $ssu = $ss == 'asc' ? 'desc' : 'asc'; $sort = $asc ? $ssu : $ss; } //特殊处理 字符串排序参数 write by xyz if ($sortstr) { $order = $sortstr; $sort = ''; } /* ***************** 修改 ***************** */ if ($_POST['search_flag'] == 1) { $this->setAdvancedMap($map); } // '*' $count = $model->where($map)->count('*'); $htmls .= <<<EOF \t<script> \tconsole.log("list查询:{$model->getLastSql()}"); \t</script> EOF; // echo $htmls; //print_r($map); if ($group) { $count = $model->group($group)->where($map)->getField('id', true); $count = count($count); } if ($echoSql == 'count' && $_SESSION['a'] == 1) { echo $model->getLastSql(); } //传参开启调式 eagle /* ***************** 修改 ***************** */ //不存在则遍历一遍重新拼装$map来处理视图类型数据 if ($count > 0) { import("@.ORG.Page"); //创建分页对象 $numPerPage = C('PAGE_LISTROWS'); $dwznumPerPage = C('PAGE_DWZLISTROWS'); if (!empty($_REQUEST['numPerPage'])) { $numPerPage = $_REQUEST['numPerPage']; } if ($_POST["dwzpageNum"] == "") { $dwznumPerPage = $numPerPage; } $p = new Page($count, $numPerPage, '', $dwznumPerPage); //分页查询数据 if ($_POST['dwzloadhtml']) { $p->firstRow = $p->firstRow + (intval($_POST['dwzpageNum']) - 1) * $numPerPage; } //查数据,导出不控制分页 if ($_POST['export_bysearch'] == 1) { //如果是导出则无分页 if ($group) { $voList = $model->group($group)->where($map)->order($order . " " . $sort)->select(); } else { $voList = $model->where($map)->order($order . " " . $sort)->select(); } } else { $limitval = $limit ? $p->firstRow . ',' . $p->listRows : ''; if ($group) { $voList = $model->group($group)->where($map)->order($order . " " . $sort)->limit($limitval)->select(); } else { $voList = $model->where($map)->order($order . " " . $sort)->limit($limitval)->select(); } } logs($model->getLastSql(), 'listSql'); $htmls .= <<<EOF \t\t\t\t<script> \t\t\t\tconsole.log("查询语句:{$model->getLastSql()}"); \t\t\t\t</script> EOF; // echo $htmls; // dump($voList); // echo $model->getLastSql(); if ($echoSql == 'list' && $_SESSION['a'] == 1) { echo $model->getLastSql(); } // 处理lookup数据 by杨东 if ($_POST['dealLookupList'] == 1) { $this->dealLookupDelegate($voList, $name, $_POST['dealLookupType'], $_POST['viewname']); } //给每条数据分配该有的toolbar操作按钮 $this->setToolBorInVolist($voList); // end $module = A($this->getActionName()); if (method_exists($module, "_after_list")) { call_user_func(array(&$module, "_after_list"), &$voList); } //如果是导出直接输出到excel if ($_POST['export_bysearch'] == 1) { $this->exportBysearch($voList, $name); } foreach ($map as $key => $val) { if (!is_array($val)) { $p->parameter .= "{$key}=" . urlencode($val) . "&"; } } $page = $p->show(); //列表排序显示 $sortImg = $sort; //排序图标 $sortAlt = $sort == 'desc' ? '升序排列' : '倒序排列'; //排序提示 $sort = $sort == 'desc' ? 'desc' : 'asc'; //排序方式 $pageNum = !empty($_REQUEST[C('VAR_PAGE')]) ? $_REQUEST[C('VAR_PAGE')] : 1; //模板赋值显示 $this->assign('pageNum', $pageNum); $this->assign('list', $voList); $this->assign("page", $page); } else { if ($_POST['export_bysearch'] == 1) { $this->exportBysearch(array()); } // 处理lookup数据 当数据库无数据时,也需调用一次dealLookupDelegate,才能得到detaillist if ($_POST['dealLookupList'] == 1) { $voList = array(); $this->dealLookupDelegate($voList, $name, $_POST['dealLookupType'], $_POST['viewname']); } } $this->assign('dwztotalpage', C('PAGE_DWZLISTROWS') / $numPerPage); $this->assign('sort', $sort); $this->assign('order', $order); $this->assign('sortImg', $sortImg); $this->assign('sortType', $sortAlt); $this->assign('totalCount', $count); $this->assign('numPerPage', $numPerPage); $this->assign('dwznumPerPage', C('PAGE_DWZLISTROWS')); $this->assign('currentPage', !empty($_REQUEST[C('VAR_PAGE')]) ? $_REQUEST[C('VAR_PAGE')] : 1); Cookie::set('_currentUrl_', __SELF__); return; }
/** +---------------------------------------------------------- * 根据表单生成查询条件 * 进行列表过滤 +---------------------------------------------------------- * @access protected +---------------------------------------------------------- * @param Model $model 数据对象 * @param HashMap $map 过滤条件 * @param string $sortBy 排序 * @param boolean $asc 是否正序 * @param mothed $mothed 针对_list查询完后对返回的数组进行再次处理,所以需要传入一个处理方法名。 * @param module $modules 如果当前传入的$name 是视图的话,是无法用method_exists方法,所以需要多传入一个当前模型名字。 +---------------------------------------------------------- * @return void +---------------------------------------------------------- * @throws ThinkExecption +---------------------------------------------------------- */ protected function _list($name, $map, $sortBy = '', $asc = false) { //测试点 //dump($map); $model = D($name); //排序字段 默认为主键名 if (isset($_REQUEST['orderField'])) { $order = $_REQUEST['orderField']; } else { $order = !empty($sortBy) ? $sortBy : $model->getPk(); } //排序方式默认按照倒序排列 //接受 sost参数 0 表示倒序 非0都 表示正序 if (isset($_REQUEST['orderDirection'])) { $sort = $_REQUEST['orderDirection']; } else { $sort = $asc ? 'asc' : 'desc'; } if ($_SESSION['a'] != 1) { $broMap = Browse::getUserMap($this->getActionName()); if ($broMap) { if ($map['_string']) { $map['_string'] .= " and " . $broMap; } else { $map['_string'] = $broMap; } } } /* ***************** 修改 ***************** */ if ($_POST['search_flag'] == 1) { $this->setAdvancedMap($map); } //取得满足条件的记录数 // if($_POST['search_flag'] == 1){ // //获取search模板唯一标示ename // $ename=$_REQUEST["ename"]; // $search_sql = R("Search/spellSql", array($map, $name,$ename)); // $_POST['search_sql']=$search_sql; // $count = count($model->query($search_sql)); // }else{ $count = $model->where($map)->count('*'); // } /* ***************** 修改 ***************** */ //不存在则遍历一遍重新拼装$map来处理视图类型数据 if ($count > 0) { import("@.ORG.Page"); //创建分页对象 $numPerPage = C('PAGE_LISTROWS'); $dwznumPerPage = C('PAGE_DWZLISTROWS'); if (!empty($_REQUEST['numPerPage'])) { $numPerPage = $_REQUEST['numPerPage']; } if ($_POST["dwzpageNum"] == "") { $dwznumPerPage = $numPerPage; } $p = new Page($count, $numPerPage, '', $dwznumPerPage); //分页查询数据 if ($_POST['dwzloadhtml']) { $p->firstRow = $p->firstRow + (intval($_POST['dwzpageNum']) - 1) * $numPerPage; } /* ***************** 修改 ***************** */ // if($_POST['search_flag'] == 1){ // if($_POST['export_bysearch']==1){//如果是导出则无分页 // $search_sql .= " ORDER BY `{$_POST['maintable']}`.`$order` $sort"; // }else{ // $search_sql .= " ORDER BY `{$_POST['maintable']}`.`$order` $sort LIMIT {$p->firstRow},{$p->listRows}"; // } // /* 开启搜索缓存 */ // $md5_sql = md5($search_sql); // $voList = S($md5_sql); // //开启搜索缓存 // // if(!$voList){ // // $voList = $model->query($search_sql); // // S($md5_sql, $voList); // // } // //关闭搜索缓存 // $voList = $model->query($search_sql); // }else{ if ($_POST['export_bysearch'] == 1) { //如果是导出则无分页 $voList = $model->where($map)->order("`" . $order . "` " . $sort)->select(); } else { $voList = $model->where($map)->order("`" . $order . "` " . $sort)->limit($p->firstRow . ',' . $p->listRows)->select(); } // } /* ***************** 修改 ***************** */ $this->setToolBorInVolist($voList); $module = A($this->getActionName()); if (method_exists($module, "_after_list")) { call_user_func(array(&$module, "_after_list"), &$voList); } //如果是导出直接输出到excel if ($_POST['export_bysearch'] == 1) { $this->exportBysearch($voList); } // 处理lookup数据 by杨东 if ($_POST['dealLookupList'] == 1) { $this->dealLookupList($voList); } foreach ($map as $key => $val) { if (!is_array($val)) { $p->parameter .= "{$key}=" . urlencode($val) . "&"; } } $page = $p->show(); //列表排序显示 $sortImg = $sort; //排序图标 $sortAlt = $sort == 'desc' ? '升序排列' : '倒序排列'; //排序提示 $sort = $sort == 'desc' ? 'desc' : 'asc'; //排序方式 $pageNum = !empty($_REQUEST[C('VAR_PAGE')]) ? $_REQUEST[C('VAR_PAGE')] : 1; //模板赋值显示 $this->assign('pageNum', $pageNum); $this->assign('list', $voList); $this->assign("page", $page); } else { if ($_POST['export_bysearch'] == 1) { $this->exportBysearch(array()); } } $this->assign('dwztotalpage', C('PAGE_DWZLISTROWS') / $numPerPage); $this->assign('sort', $sort); $this->assign('order', $order); $this->assign('sortImg', $sortImg); $this->assign('sortType', $sortAlt); $this->assign('totalCount', $count); $this->assign('numPerPage', $numPerPage); $this->assign('dwznumPerPage', C('PAGE_DWZLISTROWS')); $this->assign('currentPage', !empty($_REQUEST[C('VAR_PAGE')]) ? $_REQUEST[C('VAR_PAGE')] : 1); Cookie::set('_currentUrl_', __SELF__); return; }
/** * @Title: _filter * @Description: todo(项目管理中,分派和执行的数据查询条件) * @param unknown $model * @param unknown $map * @author 黎明刚 * @date 2014年12月29日 上午10:54:44 * @throws */ public function _filter($model, &$map) { // 判定是否为超级管理员 if ($_SESSION["a"] != 1) { //我的项目 if ($model == "MisSalesMyProject") { //优先确定系统存储的userid if ($_SESSION[C('USER_AUTH_KEY')]) { $userid = $_SESSION[C('USER_AUTH_KEY')]; } else { if ($_REQUEST['userid']) { //特殊处理手机端用户的userid获取方法 $userid = $_REQUEST['userid']; } } //用户的查询权限组等级 $misSalesMyProjectRolegroupUserModel = D('MisSalesMyProjectRolegroupUser'); //获取所有权限和单独授权的项目ID $Plevelslists = $misSalesMyProjectRolegroupUserModel->getPlevelslists($userid); //创建一个用于获取全部ID的数组 $plist = array(); foreach ($Plevelslists as $k => $v) { //判断单独授权 把单独授权的所有ID放进装有用于存放项目ID的数组 if ($v['dandushouquanID']) { //打散成数组 $plists = explode(",", $v['dandushouquanID']); //添加进去 foreach ($plists as $kk1 => $vv1) { array_push($plist, $vv1); } } //判断是不是获取权限 0为无任何权限 if ($v['plevels'] != 0) { if ($v['plevels'] == 1) { //传入一个过滤条件 $plists = $misSalesMyProjectRolegroupUserModel->getMyProjectIdLists($v['rules']); } else { //获取部门或部门子部门的部门ID $deptidlists = $misSalesMyProjectRolegroupUserModel->getDeptid($userid, $v['plevels']); //根据部门ID获取部门下的所有ID $useridlists = $misSalesMyProjectRolegroupUserModel->getDeptidByUserId($deptidlists); //根据ID获取所有ID的项目执行列表ID 传入一个过滤条件 $plists = $misSalesMyProjectRolegroupUserModel->getMyProjectIdList($useridlists, $v['rules']); } //把获取的所有ID添加到全部的ID数组里面 foreach ($plists as $kk2 => $vv2) { array_push($plist, $vv2); } } } //去除所有相同的项目ID $plist = array_unique($plist); //获取有权限查看的角色 $misProjectFlowResource = D('MisProjectFlowResource'); $plists = $misProjectFlowResource->getMyProjectIdList($userid); foreach ($plists as $k => $v) { array_push($plist, $v); } //删除相同的项目ID $plist = array_unique($plist); //根据后台用户,获取角色信息 $roleGroupList = D('RolegroupUser'); $rolegrouplist = $roleGroupList->getRoleGroupByUserId($userid); foreach ($rolegrouplist as $key => $val) { $where = array(); $where['outlinelevel'] = 4; $where['status'] = 1; $where['_string'] = 'FIND_IN_SET( ' . $val . ',readtaskrole )'; //任务 $mis_project_flow_form = M("mis_project_flow_form"); $worklist = $mis_project_flow_form->where($where)->distinct("projectid")->getField("id,projectid"); if ($worklist) { foreach ($worklist as $k => $v) { if ($plist) { if (!in_array($v, $plist)) { array_push($plist, $v); } } else { array_push($plist, $v); } } } } //删除重复项目ID $plist = array_unique($plist); if ($plist) { $map['projectid'] = array(" in ", $plist); } else { $map['projectid'] = array("lt", 0); } } else { if ($model == "MisSalesProjectAllocation") { //项目分派 $map['operateid'] = 0; $map['auditState'] = array('lt', 3); //未审核完毕的 //针对手机端用户做判断 if ($_SESSION[C('USER_AUTH_KEY')]) { $map['createid'] = $_SESSION[C('USER_AUTH_KEY')]; } else { if ($_REQUEST['userid']) { $map['createid'] = $_REQUEST['userid']; } else { $map['createid'] = null; } } // 查询当前用户 if ($_SESSION['a'] != 1) { import("@.ORG.Browse"); $broMap = Browse::getUserMap("MisAutoQzu"); if ($broMap) { if ($map['_string']) { if (is_string($broMap) !== false) { $map['_string'] .= " and " . $broMap; } else { if (is_array($broMap)) { if ($broMap[0]) { $map['_string'] .= " and " . $broMap; } if ($broMap[1]) { $map["_logic"] = "and"; $m['_complex'] = $map; $m['_string'] = $broMap[1]; $m['_logic'] = 'or'; $map = $m; } } } } else { if (is_string($broMap) !== false) { $map['_string'] .= $broMap; } else { if (is_array($broMap)) { if ($broMap[0]) { $map['_string'] .= $broMap; } if ($broMap[1]) { $map["_logic"] = "and"; $m['_complex'] = $map; $m['_string'] = $broMap[1]; $m['_logic'] = 'or'; $map = $m; } } } } } } } } } }
/** * +---------------------------------------------------------- * 根据表单生成查询条件 * 进行列表过滤 * +---------------------------------------------------------- * * @access protected * +---------------------------------------------------------- * @param Model $model * 数据对象 * @param HashMap $map * 过滤条件 * @param string $sortBy * 排序 * @param boolean $asc * 是否正序 * @param * echoSql 当等1时, 输出记算行数的sql语名; * +---------------------------------------------------------- * @return void +---------------------------------------------------------- * @throws ThinkExecption +---------------------------------------------------------- */ protected function _list($name, $map, $sortBy = '', $asc = true, $countfield = '*', $echoSql = '0', $sortstr = '') { // ------首页小模块组合查询的条件------// if ($_REQUEST['remindMap']) { $remindMap = base64_decode($_REQUEST['remindMap']); if ($map['_string']) { $map['_string'] .= " and " . $remindMap; } else { $map['_string'] = $remindMap; } $this->assign("remindMap", $_REQUEST['remindMap']); } // end // 查询当前用户 if ($_SESSION['a'] != 1) { import("@.ORG.Browse"); $broMap = Browse::getUserMap($this->getActionName()); // if ($broMap) { // if($map['_string']){ // $map['_string'] .= " and " . $broMap; // }else{ // $map['_string']= $broMap; // } // } if ($broMap) { if ($map['_string']) { if (is_string($broMap) !== false) { $map['_string'] .= " and " . $broMap; } else { if (is_array($broMap)) { if ($broMap[0]) { $map['_string'] .= " and " . $broMap; } if ($broMap[1]) { $map["_logic"] = "and"; $m['_complex'] = $map; $m['_string'] = $broMap[1]; $m['_logic'] = 'or'; $map = $m; } } } } else { if (is_string($broMap) !== false) { $map['_string'] .= $broMap; } else { if (is_array($broMap)) { if ($broMap[0]) { $map['_string'] .= $broMap; } if ($broMap[1]) { $map["_logic"] = "and"; $m['_complex'] = $map; $m['_string'] = $broMap[1]; $m['_logic'] = 'or'; $map = $m; } } } } } } if ($_REQUEST['projectid'] && $_REQUEST['projectworkid']) { $map['projectid'] = $_REQUEST['projectid']; } // 获取当前控制器名称 $actionname = $this->getActionName(); // begin $scdmodel = D('SystemConfigDetail'); // 读取列名称数据(按照规则,应该在index方法里面) $detailList = $scdmodel->getDetail($actionname); if ($detailList) { $this->assign('detailList', $detailList); } // 扩展工具栏操作 $toolbarextension = $scdmodel->getDetail($actionname, true, 'toolbar', 'sortnum', 'shows', true); if ($toolbarextension) { $this->assign('toolbarextension', $toolbarextension); } // end $model = D($name); // 排序字段 默认为主键名 if (isset($_REQUEST['orderField'])) { $order = $_REQUEST['orderField']; } else { //$order = 'auditState'; //龚云要求全改为默认id升序 --xyz $order = 'createtime'; } // 排序方式默认按照倒序排列 // 接受 sost参数 0 表示倒序 非0都 表示正序 $ss = strtolower(C("SYSTEM_SORT")); $ssu = $ss == 'asc' ? 'desc' : 'asc'; if (isset($_REQUEST['orderDirection'])) { $sort = $_REQUEST['orderDirection']; } else { $sort = $asc ? $ssu : $ss; } //$orderBy = "`" . $order . "` " . $sort . ',id '. $ss; $orderBy = "`" . $order . "` " . $sort; //特殊处理 字符串排序参数 write by xyz if ($sortstr) { $orderBy = $sortstr; } /* ***************** 搜索修改 ***************** */ if ($_POST['search_flag'] == 1) { // 检索信息,返回&$map条件 $this->setAdvancedMap($map); } // 取得满足条件的记录数 $count = $model->where($map)->count("*"); // 传参开启调式 eagle if ($echoSql) { echo $model->getLastSql(); } /* ***************** 搜索修改 ***************** */ if ($count > 0) { import("@.ORG.Page"); // 创建分页对象 $numPerPage = C('PAGE_LISTROWS'); $dwznumPerPage = C('PAGE_DWZLISTROWS'); if (!empty($_REQUEST['numPerPage'])) { $numPerPage = $_REQUEST['numPerPage']; } if ($_POST["dwzpageNum"] == "") { $dwznumPerPage = $numPerPage; } $p = new Page($count, $numPerPage, '', $dwznumPerPage); // 分页查询数据 if ($_POST['dwzloadhtml']) { $p->firstRow = $p->firstRow + (intval($_POST['dwzpageNum']) - 1) * $numPerPage; } /* ***************** 搜索修改 ***************** */ if ($_POST['export_bysearch'] == 1) { // 如果是导出则无分页 $voList = $model->where($map)->order($orderBy)->select(); } else { $voList = $model->where($map)->order($orderBy)->limit($p->firstRow . ',' . $p->listRows)->select(); } // 处理lookup数据 by杨东 if ($_POST['dealLookupList'] == 1) { $this->dealLookupDelegate($voList, $name, $_POST['dealLookupType'], $_POST['viewname']); } // 给每条数据分配该有的toolbar操作按钮 $this->setToolBorInVolist($voList); /* ***************** 搜索修改 ***************** */ $module = A($name); if (method_exists($module, "_after_list")) { // 这里的 & 符号必须加上。不然进不到_after_list call_user_func(array(&$module, "_after_list"), $voList); } // 如果是导出直接输出到excel if ($_POST['export_bysearch'] == 1) { $this->exportBysearch($voList); } // 分页显示 $page = $p->show(); // 列表排序显示 $sortImg = $sort; // 排序图标 $sortAlt = $sort == 'desc' ? '升序排列' : '倒序排列'; // 排序提示 $sort = $sort == 'desc' ? 'desc' : 'asc'; // 排序方式 $pageNum = !empty($_REQUEST[C('VAR_PAGE')]) ? $_REQUEST[C('VAR_PAGE')] : 1; // 模板赋值显示 $this->assign('pageNum', $pageNum); $this->assign('list', $voList); $this->assign("page", $page); } else { if ($_POST['export_bysearch'] == 1) { $this->exportBysearch(array()); } } $this->assign('sort', $sort); if ($sortstr) { $this->assign('order', $orderBy); } else { $this->assign('order', $order); } $this->assign('sortImg', $sortImg); $this->assign('sortType', $sortAlt); $this->assign('totalCount', $count); $this->assign('numPerPage', $numPerPage); $this->assign('dwznumPerPage', C('PAGE_DWZLISTROWS')); $this->assign('dwztotalpage', C('PAGE_DWZLISTROWS') / $numPerPage); $this->assign('currentPage', !empty($_REQUEST[C('VAR_PAGE')]) ? $_REQUEST[C('VAR_PAGE')] : 1); Cookie::set('_currentUrl_', __SELF__); }
public function _list2($name, $map, $sortBy = '', $asc = false, $group = '', $echoSql = '', $sortstr = '') { import('@.ORG.Browse'); //map附加 //提醒条件 if ($_REQUEST['remindMap']) { $remindMap = base64_decode($_REQUEST['remindMap']); if ($map['_string']) { $map['_string'] .= " and " . $remindMap; } else { $map['_string'] = $remindMap; } } //权限验证条件 if ($_SESSION['a'] != 1 && $name == $this->getActionName()) { $broMap = Browse::getUserMap($this->getActionName()); //添加商机特殊数据权限过滤 if ($name == "MisSaleMyBusiness") { if (!$_POST['isbrows']) { unset($broMap); } } if ($broMap) { if ($map['_string']) { $map['_string'] .= " and " . $broMap; } else { $map['_string'] = $broMap; } } } if ($_REQUEST['projectid'] && $_REQUEST['projectworkid']) { $map['projectid'] = $_REQUEST['projectid']; } $model = D($name); // 视图对象的排序 $viewSign = substr($name, -4); if ($viewSign == 'View') { $viewTables = array_keys($model->viewFields); $viewTable = $viewTables[0]; $viewOrderBy = $model->viewFields[$viewTable][0]; $order = $viewTable . "." . $viewOrderBy; } else { if (isset($_REQUEST['orderField']) && $_REQUEST['orderField']) { $order = $_REQUEST['orderField']; //$order="`" .$order."`" ; } else { $order = !empty($sortBy) ? $sortBy : $model->getPk(); //$order="`" .$order."`" ; } } //排序方式默认按照倒序排列 //接受 sost参数 0 表示倒序 非0都 表示正序 if (isset($_REQUEST['orderDirection'])) { $sort = $_REQUEST['orderDirection']; } else { $sort = $asc ? 'asc' : 'desc'; } //特殊处理 字符串排序参数 write by xyz if ($sortstr) { $order = $sortstr; $sort = ''; } /* ***************** 修改 ***************** */ if ($_POST['search_flag'] == 1) { $this->setAdvancedMap($map); } // '*' $count = $model->where($map)->count('*'); //trace($model->getLastSql()); if ($group) { $count = $model->group($group)->where($map)->getField('id', true); $count = count($count); } if ($echoSql == 'count' && $_SESSION['a'] == 1) { echo $model->getLastSql(); } //传参开启调式 eagle /* ***************** 修改 ***************** */ //不存在则遍历一遍重新拼装$map来处理视图类型数据 $str = ''; if ($count > 0) { import("@.ORG.Page"); //创建分页对象 //分页查询数据 if ($group) { $voList = $model->group($group)->where($map)->order($order . " " . $sort)->select(); } else { $voList = $model->where($map)->order($order . " " . $sort)->select(); } foreach ($voList as $k => $v) { $str .= $str ? "," . $v['id'] : $v['id']; } } return $str; }