From 1ac82194258aa4fafbc57724235b40fec3fbe49c Mon Sep 17 00:00:00 2001 From: guofeilong Date: Wed, 10 May 2023 15:28:14 +0800 Subject: [PATCH] * Fix problem in function deleteMembers . --- module/project/model.php | 2 +- module/project/tao.php | 22 +++++++++++++++++++ .../test/tao/deleteextramembersbyproject.php | 22 ------------------- module/project/test/tao/deletemembers.php | 20 +++++++++++++++++ .../project.yaml | 4 +++- .../test/tao/yaml/deletemembers/team.yaml | 10 +++++++++ 6 files changed, 56 insertions(+), 24 deletions(-) delete mode 100644 module/project/test/tao/deleteextramembersbyproject.php create mode 100755 module/project/test/tao/deletemembers.php rename module/project/test/tao/yaml/{deleteextramembersbyproject => deletemembers}/project.yaml (90%) create mode 100644 module/project/test/tao/yaml/deletemembers/team.yaml diff --git a/module/project/model.php b/module/project/model.php index c12ced91ad..c8ba32968f 100755 --- a/module/project/model.php +++ b/module/project/model.php @@ -1347,7 +1347,7 @@ class projectModel extends model if($oldProject->model == 'kanban') { $deleteMembers = array_diff(array_keys($oldMembers), array_values($newMembers)); - $this->projectTao->deleteExtraMembersByProject($projectID, $oldProject->openedBy, $deleteMembers); + $this->projectTao->deleteMembers($projectID, $oldProject->openedBy, $deleteMembers); } /* Init member default for update members. */ diff --git a/module/project/tao.php b/module/project/tao.php index 817bf10775..54a073c76c 100755 --- a/module/project/tao.php +++ b/module/project/tao.php @@ -772,6 +772,28 @@ class projectTao extends projectModel ->fetchAll('project'); } + /** + * 删除团队成员。 + * Delete Members. + * + * @param int $projectID + * @param int $openedBy + * @param array $deleteMembers + * @access protected + * @return bool + */ + protected function deleteMembers(int $projectID, int $openedBy, array $deleteMembers): bool + { + $this->dao->delete()->from(TABLE_TEAM) + ->where('root')->eq($projectID) + ->andWhere('type')->eq('project') + ->andWhere('account')->in($deleteMembers) + ->andWhere('account')->ne($openedBy) + ->exec(); + + return !dao::isError(); + } + /** * 通过项目ID获取任务数量统计。 * Get the number of tasks associated with the project. diff --git a/module/project/test/tao/deleteextramembersbyproject.php b/module/project/test/tao/deleteextramembersbyproject.php deleted file mode 100644 index cc37cdbe5f..0000000000 --- a/module/project/test/tao/deleteextramembersbyproject.php +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env php -loadModel('project'); - -$project = new stdClass; -$team = array(); -$members = array(); - -r($tester->project->deleteextramembersbyproject(2, $project, $team, $members)) && p() && e(1); diff --git a/module/project/test/tao/deletemembers.php b/module/project/test/tao/deletemembers.php new file mode 100755 index 0000000000..b751cb5274 --- /dev/null +++ b/module/project/test/tao/deletemembers.php @@ -0,0 +1,20 @@ +#!/usr/bin/env php +loadModel('project'); + +$project = new stdclass(); +$members = array(); + +r($tester->project->deleteMembers(2, 1, $members)) && p() && e('1'); diff --git a/module/project/test/tao/yaml/deleteextramembersbyproject/project.yaml b/module/project/test/tao/yaml/deletemembers/project.yaml similarity index 90% rename from module/project/test/tao/yaml/deleteextramembersbyproject/project.yaml rename to module/project/test/tao/yaml/deletemembers/project.yaml index 7e9f1c066d..97f82369f3 100644 --- a/module/project/test/tao/yaml/deleteextramembersbyproject/project.yaml +++ b/module/project/test/tao/yaml/deletemembers/project.yaml @@ -13,7 +13,7 @@ fields: - field: status range: 'wait,doing,closed,suspended' - field: parent - range: 0, 1, 0, 3, 3, 0 + range: 1, 1, 0, 3, 3, 0 - field: path range: '`,1,`, `,1,2,`, `,3,`, `,3,4,`, `,3,4,5,`, `,6,`' - field: hasProduct @@ -22,3 +22,5 @@ fields: range: '项目1, 执行1-2, 项目3, 执行3-4, 执行3-5, 无迭代无产品项目6' - field: code range: 'project1, sprint1-2, project3, sprint3-4, sprint3-5, project6' + - field: openedBy + range: 'member1' diff --git a/module/project/test/tao/yaml/deletemembers/team.yaml b/module/project/test/tao/yaml/deletemembers/team.yaml new file mode 100644 index 0000000000..cfa83299b0 --- /dev/null +++ b/module/project/test/tao/yaml/deletemembers/team.yaml @@ -0,0 +1,10 @@ +title: zt_team +author: guofeilong +version: "1.0" +fields: + - field: id + range: 1-6 + - field: root + range: 1-6 + - field: account + range: 'member1, member2, member3, member4, member5, member6,'