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); }