diff --git a/src/main/java/cn/palmte/work/model/ProjectVisible.java b/src/main/java/cn/palmte/work/model/ProjectVisible.java new file mode 100644 index 0000000..a8c7fde --- /dev/null +++ b/src/main/java/cn/palmte/work/model/ProjectVisible.java @@ -0,0 +1,29 @@ +package cn.palmte.work.model; + +import lombok.Data; + +import javax.persistence.*; + +/** + * 项目可见性配置 + */ +@Data +@Entity +@Table(name = "project_visible") +public class ProjectVisible { + + @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/ProjectVisibleRepository.java b/src/main/java/cn/palmte/work/model/ProjectVisibleRepository.java new file mode 100644 index 0000000..8e75a76 --- /dev/null +++ b/src/main/java/cn/palmte/work/model/ProjectVisibleRepository.java @@ -0,0 +1,7 @@ +package cn.palmte.work.model; + + +import org.springframework.data.jpa.repository.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 e0743d4..e5bc5bc 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 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; } public Page list(Map searchInfo, int pageNumber, int pageSize){ QueryHelper queryHelper = getQueryHelper(searchInfo); - //TODO 增加权限过滤 return pagination.paginate(queryHelper.getSql(), Project.class,pageNumber,pageSize); }