diff --git a/src/main/java/com/casic/accessControl/marker/manager/MarkerManager.java b/src/main/java/com/casic/accessControl/marker/manager/MarkerManager.java index e637c66..e02a60f 100644 --- a/src/main/java/com/casic/accessControl/marker/manager/MarkerManager.java +++ b/src/main/java/com/casic/accessControl/marker/manager/MarkerManager.java @@ -56,7 +56,7 @@ @Resource private OptionItemManager optionItemManager; - public DataTable pageQueryMarker(String params, String markerDto, Long companyId) { + public DataTable pageQueryMarker(String params, String markerDto, User user) { DataTable result = new DataTable(); DataTableParameter parameter = DataTableUtils.getDataTableParameterByJsonParam(params); int start = parameter.getiDisplayStart(); @@ -111,8 +111,18 @@ } } - criteria1.add(Restrictions.eq("companyId", companyId)); + criteria1.add(Restrictions.eq("isValid", 1)); + + if(StringUtils.isNotBlank(user.getDatascope())){ + String[] datascope = user.getDatascope().split(","); + List compnyIds = new ArrayList<>(); + Arrays.asList(datascope).forEach(obj -> compnyIds.add(Long.valueOf(obj))); + criteria1.add(Restrictions.in("companyId",compnyIds)); + } else { + criteria1.add(Restrictions.eq("companyId", user.getCompany().getId())); + } + criteria1.addOrder(Order.desc("createTime")); Page page = pagedQuery(criteria1, pageNo, pageSize); List markerInfos = MarkerDto.convert2MarkerDtoList((List) page.getResult()); @@ -406,10 +416,20 @@ * * @return */ - public List getMarkerDtosByCondition(MarkerDto markerDto, Company company,int type) { + public List getMarkerDtosByCondition(MarkerDto markerDto, User user,int type) { Criteria criteria1 = this.getSession().createCriteria(Marker.class); - criteria1.add(Restrictions.eq("isValid", 1)).add(Restrictions.eq("companyId", company.getId())); + criteria1.add(Restrictions.eq("isValid", 1)); + + if(StringUtils.isNotBlank(user.getDatascope())){ + String[] datascope = user.getDatascope().split(","); + List compnyIds = new ArrayList<>(); + Arrays.asList(datascope).forEach(obj -> compnyIds.add(Long.valueOf(obj))); + criteria1.add(Restrictions.in("companyId",compnyIds)); + } else { + criteria1.add(Restrictions.eq("companyId", user.getCompany().getId())); + } + if(type > 0){//限制记录类型 criteria1.add(Restrictions.eq("recordType",type)); } @@ -475,7 +495,17 @@ } Company company = user.getCompany(); Criteria criteria = this.getSession().createCriteria(Marker.class); - criteria.add(Restrictions.eq("isValid", 1)).add(Restrictions.eq("companyId", company.getId())); + criteria.add(Restrictions.eq("isValid", 1)); + + if(StringUtils.isNotBlank(user.getDatascope())){ + String[] datascope = user.getDatascope().split(","); + List compnyIds = new ArrayList<>(); + Arrays.asList(datascope).forEach(obj -> compnyIds.add(Long.valueOf(obj))); + criteria.add(Restrictions.in("companyId",compnyIds)); + } else { + criteria.add(Restrictions.eq("companyId", user.getCompany().getId())); + } + List result = criteria.list(); return MarkerDto.convert2MarkerDtoList(result); } @@ -763,7 +793,7 @@ strMarkerDto = strMarkerDto.replace('\n',' '); MarkerDto markerDto = new Gson().fromJson(strMarkerDto, MarkerDto.class); type = markerDto.getRecordType() == null ? 0 : markerDto.getRecordType(); - markerDtos = getMarkerDtosByCondition(markerDto, user.getCompany(), type); + markerDtos = getMarkerDtosByCondition(markerDto, user, type); } else { markerDtos = getAllPoint(user); } diff --git a/src/main/java/com/casic/accessControl/marker/manager/MarkerManager.java b/src/main/java/com/casic/accessControl/marker/manager/MarkerManager.java index e637c66..e02a60f 100644 --- a/src/main/java/com/casic/accessControl/marker/manager/MarkerManager.java +++ b/src/main/java/com/casic/accessControl/marker/manager/MarkerManager.java @@ -56,7 +56,7 @@ @Resource private OptionItemManager optionItemManager; - public DataTable pageQueryMarker(String params, String markerDto, Long companyId) { + public DataTable pageQueryMarker(String params, String markerDto, User user) { DataTable result = new DataTable(); DataTableParameter parameter = DataTableUtils.getDataTableParameterByJsonParam(params); int start = parameter.getiDisplayStart(); @@ -111,8 +111,18 @@ } } - criteria1.add(Restrictions.eq("companyId", companyId)); + criteria1.add(Restrictions.eq("isValid", 1)); + + if(StringUtils.isNotBlank(user.getDatascope())){ + String[] datascope = user.getDatascope().split(","); + List compnyIds = new ArrayList<>(); + Arrays.asList(datascope).forEach(obj -> compnyIds.add(Long.valueOf(obj))); + criteria1.add(Restrictions.in("companyId",compnyIds)); + } else { + criteria1.add(Restrictions.eq("companyId", user.getCompany().getId())); + } + criteria1.addOrder(Order.desc("createTime")); Page page = pagedQuery(criteria1, pageNo, pageSize); List markerInfos = MarkerDto.convert2MarkerDtoList((List) page.getResult()); @@ -406,10 +416,20 @@ * * @return */ - public List getMarkerDtosByCondition(MarkerDto markerDto, Company company,int type) { + public List getMarkerDtosByCondition(MarkerDto markerDto, User user,int type) { Criteria criteria1 = this.getSession().createCriteria(Marker.class); - criteria1.add(Restrictions.eq("isValid", 1)).add(Restrictions.eq("companyId", company.getId())); + criteria1.add(Restrictions.eq("isValid", 1)); + + if(StringUtils.isNotBlank(user.getDatascope())){ + String[] datascope = user.getDatascope().split(","); + List compnyIds = new ArrayList<>(); + Arrays.asList(datascope).forEach(obj -> compnyIds.add(Long.valueOf(obj))); + criteria1.add(Restrictions.in("companyId",compnyIds)); + } else { + criteria1.add(Restrictions.eq("companyId", user.getCompany().getId())); + } + if(type > 0){//限制记录类型 criteria1.add(Restrictions.eq("recordType",type)); } @@ -475,7 +495,17 @@ } Company company = user.getCompany(); Criteria criteria = this.getSession().createCriteria(Marker.class); - criteria.add(Restrictions.eq("isValid", 1)).add(Restrictions.eq("companyId", company.getId())); + criteria.add(Restrictions.eq("isValid", 1)); + + if(StringUtils.isNotBlank(user.getDatascope())){ + String[] datascope = user.getDatascope().split(","); + List compnyIds = new ArrayList<>(); + Arrays.asList(datascope).forEach(obj -> compnyIds.add(Long.valueOf(obj))); + criteria.add(Restrictions.in("companyId",compnyIds)); + } else { + criteria.add(Restrictions.eq("companyId", user.getCompany().getId())); + } + List result = criteria.list(); return MarkerDto.convert2MarkerDtoList(result); } @@ -763,7 +793,7 @@ strMarkerDto = strMarkerDto.replace('\n',' '); MarkerDto markerDto = new Gson().fromJson(strMarkerDto, MarkerDto.class); type = markerDto.getRecordType() == null ? 0 : markerDto.getRecordType(); - markerDtos = getMarkerDtosByCondition(markerDto, user.getCompany(), type); + markerDtos = getMarkerDtosByCondition(markerDto, user, type); } else { markerDtos = getAllPoint(user); } diff --git a/src/main/java/com/casic/accessControl/marker/web/MarkerController.java b/src/main/java/com/casic/accessControl/marker/web/MarkerController.java index cb6591d..45a4756 100644 --- a/src/main/java/com/casic/accessControl/marker/web/MarkerController.java +++ b/src/main/java/com/casic/accessControl/marker/web/MarkerController.java @@ -66,7 +66,7 @@ public String list(String jsonParam, String markerDto, HttpSession session) { try { User currentUser = (User) session.getAttribute(StringUtils.SYS_USER); - DataTable markerList = markerManager.pageQueryMarker(jsonParam, markerDto, currentUser.getCompany().getId()); + DataTable markerList = markerManager.pageQueryMarker(jsonParam, markerDto, currentUser); Gson gson = new Gson(); String json = gson.toJson(markerList); return json; @@ -313,6 +313,11 @@ return map; } + /** + * 地图总览,获取全部标识 + * @param session + * @return + */ @RequestMapping("all-point-list") @ResponseBody public Map getAllPoint(HttpSession session) { @@ -451,6 +456,12 @@ return map; } + /** + * + * @param strMarkerDto + * @param session + * @return + */ @RequestMapping("getMarkerListByCondition") @ResponseBody @POST @@ -460,7 +471,7 @@ MarkerDto markerDto = new Gson().fromJson(strMarkerDto, MarkerDto.class); Company company = user.getCompany(); - List res = markerManager.getMarkerDtosByCondition(markerDto, company,0); + List res = markerManager.getMarkerDtosByCondition(markerDto, user,0); if (res.size() == 0) { map.put("data", Collections.emptyList()); map.put("message", "没有搜到标识器信息"); @@ -483,6 +494,7 @@ /** + * TODO 数据权限 * 客户端调用服务器端的导出功能,需要同步的时候,点击同步,调用此方法,服务器将标识器信息下载到指定的目录 */ @RequestMapping("exportMarker") diff --git a/src/main/java/com/casic/accessControl/marker/manager/MarkerManager.java b/src/main/java/com/casic/accessControl/marker/manager/MarkerManager.java index e637c66..e02a60f 100644 --- a/src/main/java/com/casic/accessControl/marker/manager/MarkerManager.java +++ b/src/main/java/com/casic/accessControl/marker/manager/MarkerManager.java @@ -56,7 +56,7 @@ @Resource private OptionItemManager optionItemManager; - public DataTable pageQueryMarker(String params, String markerDto, Long companyId) { + public DataTable pageQueryMarker(String params, String markerDto, User user) { DataTable result = new DataTable(); DataTableParameter parameter = DataTableUtils.getDataTableParameterByJsonParam(params); int start = parameter.getiDisplayStart(); @@ -111,8 +111,18 @@ } } - criteria1.add(Restrictions.eq("companyId", companyId)); + criteria1.add(Restrictions.eq("isValid", 1)); + + if(StringUtils.isNotBlank(user.getDatascope())){ + String[] datascope = user.getDatascope().split(","); + List compnyIds = new ArrayList<>(); + Arrays.asList(datascope).forEach(obj -> compnyIds.add(Long.valueOf(obj))); + criteria1.add(Restrictions.in("companyId",compnyIds)); + } else { + criteria1.add(Restrictions.eq("companyId", user.getCompany().getId())); + } + criteria1.addOrder(Order.desc("createTime")); Page page = pagedQuery(criteria1, pageNo, pageSize); List markerInfos = MarkerDto.convert2MarkerDtoList((List) page.getResult()); @@ -406,10 +416,20 @@ * * @return */ - public List getMarkerDtosByCondition(MarkerDto markerDto, Company company,int type) { + public List getMarkerDtosByCondition(MarkerDto markerDto, User user,int type) { Criteria criteria1 = this.getSession().createCriteria(Marker.class); - criteria1.add(Restrictions.eq("isValid", 1)).add(Restrictions.eq("companyId", company.getId())); + criteria1.add(Restrictions.eq("isValid", 1)); + + if(StringUtils.isNotBlank(user.getDatascope())){ + String[] datascope = user.getDatascope().split(","); + List compnyIds = new ArrayList<>(); + Arrays.asList(datascope).forEach(obj -> compnyIds.add(Long.valueOf(obj))); + criteria1.add(Restrictions.in("companyId",compnyIds)); + } else { + criteria1.add(Restrictions.eq("companyId", user.getCompany().getId())); + } + if(type > 0){//限制记录类型 criteria1.add(Restrictions.eq("recordType",type)); } @@ -475,7 +495,17 @@ } Company company = user.getCompany(); Criteria criteria = this.getSession().createCriteria(Marker.class); - criteria.add(Restrictions.eq("isValid", 1)).add(Restrictions.eq("companyId", company.getId())); + criteria.add(Restrictions.eq("isValid", 1)); + + if(StringUtils.isNotBlank(user.getDatascope())){ + String[] datascope = user.getDatascope().split(","); + List compnyIds = new ArrayList<>(); + Arrays.asList(datascope).forEach(obj -> compnyIds.add(Long.valueOf(obj))); + criteria.add(Restrictions.in("companyId",compnyIds)); + } else { + criteria.add(Restrictions.eq("companyId", user.getCompany().getId())); + } + List result = criteria.list(); return MarkerDto.convert2MarkerDtoList(result); } @@ -763,7 +793,7 @@ strMarkerDto = strMarkerDto.replace('\n',' '); MarkerDto markerDto = new Gson().fromJson(strMarkerDto, MarkerDto.class); type = markerDto.getRecordType() == null ? 0 : markerDto.getRecordType(); - markerDtos = getMarkerDtosByCondition(markerDto, user.getCompany(), type); + markerDtos = getMarkerDtosByCondition(markerDto, user, type); } else { markerDtos = getAllPoint(user); } diff --git a/src/main/java/com/casic/accessControl/marker/web/MarkerController.java b/src/main/java/com/casic/accessControl/marker/web/MarkerController.java index cb6591d..45a4756 100644 --- a/src/main/java/com/casic/accessControl/marker/web/MarkerController.java +++ b/src/main/java/com/casic/accessControl/marker/web/MarkerController.java @@ -66,7 +66,7 @@ public String list(String jsonParam, String markerDto, HttpSession session) { try { User currentUser = (User) session.getAttribute(StringUtils.SYS_USER); - DataTable markerList = markerManager.pageQueryMarker(jsonParam, markerDto, currentUser.getCompany().getId()); + DataTable markerList = markerManager.pageQueryMarker(jsonParam, markerDto, currentUser); Gson gson = new Gson(); String json = gson.toJson(markerList); return json; @@ -313,6 +313,11 @@ return map; } + /** + * 地图总览,获取全部标识 + * @param session + * @return + */ @RequestMapping("all-point-list") @ResponseBody public Map getAllPoint(HttpSession session) { @@ -451,6 +456,12 @@ return map; } + /** + * + * @param strMarkerDto + * @param session + * @return + */ @RequestMapping("getMarkerListByCondition") @ResponseBody @POST @@ -460,7 +471,7 @@ MarkerDto markerDto = new Gson().fromJson(strMarkerDto, MarkerDto.class); Company company = user.getCompany(); - List res = markerManager.getMarkerDtosByCondition(markerDto, company,0); + List res = markerManager.getMarkerDtosByCondition(markerDto, user,0); if (res.size() == 0) { map.put("data", Collections.emptyList()); map.put("message", "没有搜到标识器信息"); @@ -483,6 +494,7 @@ /** + * TODO 数据权限 * 客户端调用服务器端的导出功能,需要同步的时候,点击同步,调用此方法,服务器将标识器信息下载到指定的目录 */ @RequestMapping("exportMarker") diff --git a/src/main/java/com/casic/accessControl/user/domain/User.java b/src/main/java/com/casic/accessControl/user/domain/User.java index df61e09..70ace61 100644 --- a/src/main/java/com/casic/accessControl/user/domain/User.java +++ b/src/main/java/com/casic/accessControl/user/domain/User.java @@ -16,6 +16,7 @@ private Integer isValid; private Company company;//所属租户 private Role role; + private String datascope; // 数据权限 @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -92,4 +93,13 @@ public void setRole(Role role) { this.role = role; } + + @Column(name = "datascope") + public String getDatascope() { + return datascope; + } + + public void setDatascope(String datascope) { + this.datascope = datascope; + } }