From 72f3bd51574493c238cca95966300f99ffad4d74 Mon Sep 17 00:00:00 2001 From: xxssyyyyssxx Date: Thu, 18 Nov 2021 17:39:31 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=8F=AF=E8=A7=81=E6=80=A7?= =?UTF-8?q?=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); }