From 72f3bd51574493c238cca95966300f99ffad4d74 Mon Sep 17 00:00:00 2001 From: xxssyyyyssxx Date: Thu, 18 Nov 2021 17:39:31 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=8F=AF=E8=A7=81?= =?UTF-8?q?=E6=80=A7=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/palmte/work/model/ProjectVisiable.java | 29 +++++++++++++++++++ .../work/model/ProjectVisiableRepository.java | 7 +++++ .../palmte/work/service/ProjectService.java | 8 ++++- 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 src/main/java/cn/palmte/work/model/ProjectVisiable.java create mode 100644 src/main/java/cn/palmte/work/model/ProjectVisiableRepository.java diff --git a/src/main/java/cn/palmte/work/model/ProjectVisiable.java b/src/main/java/cn/palmte/work/model/ProjectVisiable.java new file mode 100644 index 0000000..b2efacb --- /dev/null +++ b/src/main/java/cn/palmte/work/model/ProjectVisiable.java @@ -0,0 +1,29 @@ +package cn.palmte.work.model; + +import lombok.Data; + +import javax.persistence.*; + +/** + * 项目可见性配置 + */ +@Data +@Entity +@Table(name = "project_visiable") +public class ProjectVisiable { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private int id; + + @Column(name = "project_id") + private int projectId; + + /** + * 1按照角色,2按照人员 + */ + private String type; + + private int tid; + +} diff --git a/src/main/java/cn/palmte/work/model/ProjectVisiableRepository.java b/src/main/java/cn/palmte/work/model/ProjectVisiableRepository.java new file mode 100644 index 0000000..c4fcf5a --- /dev/null +++ b/src/main/java/cn/palmte/work/model/ProjectVisiableRepository.java @@ -0,0 +1,7 @@ +package cn.palmte.work.model; + + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface ProjectVisiableRepository extends JpaRepository { +} diff --git a/src/main/java/cn/palmte/work/service/ProjectService.java b/src/main/java/cn/palmte/work/service/ProjectService.java index e0743d4..af8932f 100644 --- a/src/main/java/cn/palmte/work/service/ProjectService.java +++ b/src/main/java/cn/palmte/work/service/ProjectService.java @@ -2,6 +2,7 @@ package cn.palmte.work.service; import cn.palmte.work.bean.*; import cn.palmte.work.model.*; +import cn.palmte.work.utils.InterfaceUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.springframework.beans.factory.annotation.Autowired; @@ -91,13 +92,18 @@ public class ProjectService { queryHelper.addCondition("p.last_update_time<=?", time); } + //项目可见性,根据角色和人员id + Admin admin = InterfaceUtil.getAdmin(); + int roleId = admin.getRoleId(); + Integer adminId = admin.getId(); + queryHelper.addCondition("p.id in (SELECT pv.project_id FROM project_visiable pv WHERE pv.type=1 AND pv.tid=? UNION SELECT pv.project_id FROM project_visiable pv WHERE pv.type=2 AND pv.tid=?)", roleId, adminId); + return queryHelper; } public Page list(Map searchInfo, int pageNumber, int pageSize){ QueryHelper queryHelper = getQueryHelper(searchInfo); - //TODO 增加权限过滤 return pagination.paginate(queryHelper.getSql(), Project.class,pageNumber,pageSize); } From 01fd7737728e38d930479881752d902b1fa9dd0d Mon Sep 17 00:00:00 2001 From: xxssyyyyssxx Date: Thu, 18 Nov 2021 17:41:16 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=8F=AF=E8=A7=81?= =?UTF-8?q?=E6=80=A7=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../work/model/{ProjectVisiable.java => ProjectVisible.java} | 4 ++-- ...tVisiableRepository.java => ProjectVisibleRepository.java} | 2 +- src/main/java/cn/palmte/work/service/ProjectService.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) rename src/main/java/cn/palmte/work/model/{ProjectVisiable.java => ProjectVisible.java} (85%) rename src/main/java/cn/palmte/work/model/{ProjectVisiableRepository.java => ProjectVisibleRepository.java} (51%) diff --git a/src/main/java/cn/palmte/work/model/ProjectVisiable.java b/src/main/java/cn/palmte/work/model/ProjectVisible.java similarity index 85% rename from src/main/java/cn/palmte/work/model/ProjectVisiable.java rename to src/main/java/cn/palmte/work/model/ProjectVisible.java index b2efacb..a8c7fde 100644 --- a/src/main/java/cn/palmte/work/model/ProjectVisiable.java +++ b/src/main/java/cn/palmte/work/model/ProjectVisible.java @@ -9,8 +9,8 @@ import javax.persistence.*; */ @Data @Entity -@Table(name = "project_visiable") -public class ProjectVisiable { +@Table(name = "project_visible") +public class ProjectVisible { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/cn/palmte/work/model/ProjectVisiableRepository.java b/src/main/java/cn/palmte/work/model/ProjectVisibleRepository.java similarity index 51% rename from src/main/java/cn/palmte/work/model/ProjectVisiableRepository.java rename to src/main/java/cn/palmte/work/model/ProjectVisibleRepository.java index c4fcf5a..8e75a76 100644 --- a/src/main/java/cn/palmte/work/model/ProjectVisiableRepository.java +++ b/src/main/java/cn/palmte/work/model/ProjectVisibleRepository.java @@ -3,5 +3,5 @@ package cn.palmte.work.model; import org.springframework.data.jpa.repository.JpaRepository; -public interface ProjectVisiableRepository extends JpaRepository { +public interface ProjectVisibleRepository extends JpaRepository { } diff --git a/src/main/java/cn/palmte/work/service/ProjectService.java b/src/main/java/cn/palmte/work/service/ProjectService.java index af8932f..e5bc5bc 100644 --- a/src/main/java/cn/palmte/work/service/ProjectService.java +++ b/src/main/java/cn/palmte/work/service/ProjectService.java @@ -96,7 +96,7 @@ public class ProjectService { Admin admin = InterfaceUtil.getAdmin(); int roleId = admin.getRoleId(); Integer adminId = admin.getId(); - queryHelper.addCondition("p.id in (SELECT pv.project_id FROM project_visiable pv WHERE pv.type=1 AND pv.tid=? UNION SELECT pv.project_id FROM project_visiable pv WHERE pv.type=2 AND pv.tid=?)", roleId, adminId); + queryHelper.addCondition("p.id in (SELECT pv1.project_id FROM project_visible pv1 WHERE pv1.type=1 AND pv1.tid=? UNION SELECT pv2.project_id FROM project_visible pv2 WHERE pv2.type=2 AND pv2.tid=?)", roleId, adminId); return queryHelper;