From 1065817f17a73c6e004cb63608769c41a4e09223 Mon Sep 17 00:00:00 2001 From: leiyong <1549684884@qq.com> Date: Thu, 12 Nov 2020 18:25:05 +0800 Subject: [PATCH] * Adjust the doc module code. --- module/doc/control.php | 14 +++++++---- module/doc/model.php | 31 +++++++++++++++++------- module/doc/view/index.html.php | 2 +- module/doc/view/side.html.php | 2 +- module/product/model.php | 8 ++++--- module/programplan/model.php | 10 ++++++++ module/project/control.php | 3 +-- module/project/model.php | 44 ++++++++++++++++++++++++++-------- 8 files changed, 83 insertions(+), 31 deletions(-) diff --git a/module/doc/control.php b/module/doc/control.php index f9ed382633..e4295de115 100644 --- a/module/doc/control.php +++ b/module/doc/control.php @@ -53,13 +53,14 @@ class doc extends control $actionURL = $this->createLink('doc', 'browse', "lib=0&browseType=bySearch&queryID=myQueryID"); $this->doc->buildSearchForm(0, array(), 0, $actionURL, 'index'); - $this->view->title = $this->lang->doc->common . $this->lang->colon . $this->lang->doc->index; - $this->view->position[] = $this->lang->doc->index; + $this->view->title = $this->lang->doc->common . $this->lang->colon . $this->lang->doc->index; + $this->view->position[] = $this->lang->doc->index; + $this->view->latestEditedDocs = $this->loadModel('doc')->getDocsByBrowseType(0, 'byediteddate', 0, 0, 'editedDate_desc, id_desc', $pager); $this->view->myDocs = $this->loadModel('doc')->getDocsByBrowseType(0, 'openedbyme', 0, 0, 'addedDate_desc', $pager); $this->view->statisticInfo = $this->doc->getStatisticInfo(); $this->view->users = $this->loadModel('user')->getPairs('noletter'); - $this->view->doingProjects = $this->loadModel('project')->getList('undone', 5); + $this->view->doingProjects = $this->loadModel('project')->getProjectsByProgram($this->session->PRJ, 'undone', 5); $this->display(); } @@ -222,9 +223,12 @@ class doc extends control echo js::error(dao::getError()); } } + + $programID = $this->session->PRJ; + $products = $this->product->getProductsByProject($programID, 'noclosed'); + $projects = $this->project->getPairs('nocode', $programID); + $libTypeList = $this->lang->doc->libTypeList; - $products = $this->product->getPairs('nocode'); - $projects = $this->project->getPairs('nocode', $this->session->PRJ); if(empty($products)) unset($libTypeList['product']); if(empty($projects)) unset($libTypeList['project']); diff --git a/module/doc/model.php b/module/doc/model.php index a9d7a28502..7159842da3 100644 --- a/module/doc/model.php +++ b/module/doc/model.php @@ -139,12 +139,17 @@ class docModel extends model */ public function getLibs($type = '', $extra = '', $appendLibs = '') { + $projectID = $this->session->PRJ; if($type == 'product' or $type == 'project') { + $idList = array(); + if($type == 'product') $idList = $this->loadModel('product')->getProductIDByProject($projectID, false); + if($type == 'project') $idList = $this->loadModel('project')->getProjectIDByProgram($projectID); + $table = $type == 'product' ? TABLE_PRODUCT : TABLE_PROJECT; $stmt = $this->dao->select('t1.*')->from(TABLE_DOCLIB)->alias('t1') ->leftJoin($table)->alias('t2')->on("t1.$type=t2.id") - ->where("t1.$type")->ne(0) + ->beginIF(!empty($idList))->andWhere('t2.id')->in($idList)->fi() ->beginIF($type == 'project' and strpos($this->config->doc->custom->showLibs, 'unclosed') !== false)->andWhere('t2.status')->notin('done,closed')->fi() ->andWhere('t1.deleted')->eq(0) ->orderBy("t2.order desc, t1.order, t1.id") @@ -153,17 +158,19 @@ class docModel extends model elseif($type == 'all') { /* If extra have unclosedProject then ignore unclosed project libs. */ - $unclosedProjects = array(); - if(strpos($extra, 'unclosedProject') !== false) $unclosedProjects = $this->dao->select('id')->from(TABLE_PROJECT)->where('deleted')->eq(0)->andWhere('status')->notin('done,closed')->fetchPairs('id', 'id'); + $status = (strpos($extra, 'unclosedProject') !== false) ? 'undone' : 'all'; + $projects = $this->loadModel('project')->getProjectIDByProgram($projectID, $status); + $products = $this->loadModel('product')->getProductIDByProject($projectID, false); $stmt = $this->dao->select('*')->from(TABLE_DOCLIB) ->where('deleted')->eq(0) - ->beginIF(strpos($extra, 'unclosedProject') !== false) - ->andWhere('project', true)->eq('0') - ->orWhere('project')->in($unclosedProjects) + ->andWhere() + ->markLeft(1) + ->where('`type`')->eq('custom') + ->orWhere('project')->in($projects) + ->orWhere('product')->in($products) ->markRight(1) - ->fi() - ->orderBy('`order`,id desc') + ->orderBy('id_desc') ->query(); } else @@ -176,7 +183,7 @@ class docModel extends model if(strpos($extra, 'withObject') !== false) { - $products = $this->loadModel('product')->getPairs('', $this->session->PRJ); + $products = $this->loadModel('product')->getProductsByProject($this->session->PRJ); $projects = $this->loadModel('project')->getPairs('', $this->session->PRJ); } @@ -1098,10 +1105,16 @@ class docModel extends model $nonzeroLibs = $this->dao->select('lib,count(*) as count')->from(TABLE_DOC)->where('deleted')->eq('0')->groupBy('lib')->having('count')->ne(0)->fetchPairs('lib', 'lib'); } + $idList = array(); + $projectID = $this->session->PRJ; + if($type == 'product') $idList = $this->loadModel('product')->getProductIDByProject($projectID, false); + if($type == 'project') $idList = $this->loadModel('project')->getProjectIDByProgram($projectID); + $table = $type == 'product' ? TABLE_PRODUCT : TABLE_PROJECT; $stmt = $this->dao->select('t1.*')->from(TABLE_DOCLIB)->alias('t1') ->leftJoin($table)->alias('t2')->on("t1.$type=t2.id") ->where('t1.deleted')->eq(0)->andWhere("t1.$type")->ne(0) + ->beginIF(!empty($idList))->andWhere('t2.id')->in($idList)->fi() ->beginIF($type == 'project' and strpos($this->config->doc->custom->showLibs, 'unclosed') !== false)->andWhere('t2.status')->notin('done,closed')->fi() ->beginIF(strpos($this->config->doc->custom->showLibs, 'zero') === false)->andWhere('t1.id')->in($nonzeroLibs)->fi() ->orderBy("t2.`order` desc, t1.`order` asc, id desc") diff --git a/module/doc/view/index.html.php b/module/doc/view/index.html.php index 5c497bf2cf..af82294b8c 100644 --- a/module/doc/view/index.html.php +++ b/module/doc/view/index.html.php @@ -141,7 +141,7 @@
-