From 74472c9d22dddcb41383794caf0011043b20f817 Mon Sep 17 00:00:00 2001 From: kimi <kimi42345@gmail.com> Date: 星期二, 31 三月 2020 13:25:47 +0800 Subject: [PATCH] fix 数据权限 --- src/main/java/com/highdatas/mdm/controller/MasterDataController.java | 54 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 45 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/highdatas/mdm/controller/MasterDataController.java b/src/main/java/com/highdatas/mdm/controller/MasterDataController.java index 2f2186b..a0e09ad 100644 --- a/src/main/java/com/highdatas/mdm/controller/MasterDataController.java +++ b/src/main/java/com/highdatas/mdm/controller/MasterDataController.java @@ -13,7 +13,6 @@ import com.highdatas.mdm.util.Constant; import com.highdatas.mdm.util.DbUtils; import org.apache.commons.lang3.StringUtils; -import org.pentaho.reporting.libraries.formula.function.text.StringCountFunction; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -40,7 +39,8 @@ IMaintainService maintainService; @Autowired IMaintainDetailService maintainDetailService; - + @Autowired + IMaintainFieldService maintainFieldService; @Autowired IMenuMappingService menuMappingService; @@ -49,6 +49,8 @@ @Autowired IMasterModifiedService masterModifiedService; + @Autowired + IMasterAuthorService masterAuthorService; @RequestMapping(value = "{tableName}/uploaded", method = RequestMethod.GET) public Result get(@PathVariable String tableName, HttpServletRequest request) { @@ -76,6 +78,7 @@ @RequestMapping(value = "{tableName}/all/{pageNo}", method = RequestMethod.GET) public Result getByPage(@PathVariable String tableName, @PathVariable Integer pageNo, HttpServletRequest request) throws UnsupportedEncodingException { + TUser user = DbUtils.getUser(request); String pageSizeStr = request.getParameter("pageSize"); String whereSegment = request.getParameter(Constant.WHERE_SEGMENT); String fields = request.getParameter(Constant.FIELDS); @@ -99,35 +102,50 @@ version = String.valueOf(nowVersion.getVersion()); }else if(version.equalsIgnoreCase(Constant.MAX)){ findMax = true; - version = String.valueOf(maintainService.getMaxVersion(tableName).getVersion()); + Maintain maxVersion = maintainService.getMaxVersion(tableName); + if (maxVersion == null) { + return Result.success(null); + } + version = String.valueOf(maxVersion.getVersion()); } + Maintain maintainFromVersion = maintainService.getMaintainFromVersion(tableName, version); + if (maintainFromVersion == null) { + return null; + } + //ADD Filter + String filter = masterAuthorService.getFilter(user.getUserId(), maintainFromVersion.getId()); + if (!StringUtils.isEmpty(filter)) { + whereSegment = DbUtils.StrJoin(whereSegment, Constant.AND, filter); + } + if (StringUtils.isEmpty(fields)) { if (StringUtils.isEmpty(pageSizeStr)) { - return masterDataService.selectListByPageByVersion(tableName, whereSegment,pageNo,version, findMax); + return masterDataService.selectListByPageByVersion(user, tableName, whereSegment,pageNo,version, findMax); } - return masterDataService.selectListByPageByVersion(tableName, null, whereSegment,pageNo, Integer.valueOf(pageSizeStr),version,findMax); + return masterDataService.selectListByPageByVersion(user, tableName, null, whereSegment,pageNo, Integer.valueOf(pageSizeStr),version,findMax); }else { String[] split = fields.split(Constant.COMMA_TRIM); List<String> fieldList = Arrays.stream(split).collect(Collectors.toList()); if (StringUtils.isEmpty(pageSizeStr)) { - return masterDataService.selectListByPageByVersion(tableName, fieldList, whereSegment,pageNo, null,version, findMax); + return masterDataService.selectListByPageByVersion(user, tableName, fieldList, whereSegment,pageNo, null,version, findMax); } - return masterDataService.selectListByPageByVersion(tableName, fieldList, whereSegment,pageNo, Integer.valueOf(pageSizeStr), findMax); + return masterDataService.selectListByPageByVersion(user, tableName, fieldList, whereSegment,pageNo, Integer.valueOf(pageSizeStr), findMax); } } @RequestMapping(value = "{tableName}/all", method = RequestMethod.GET) public Result<MenuMapping> getAll(@PathVariable String tableName,HttpServletRequest request) { + TUser user = DbUtils.getUser(request); String whereSegment = request.getParameter(Constant.WHERE_SEGMENT); String version = request.getParameter(Constant.VERSION); if (StringUtils.isEmpty(version)) { version = String.valueOf(maintainService.getNowVersion(tableName).getVersion()); } if (StringUtils.isEmpty(whereSegment)) { - return masterDataService.selectList(tableName); + return masterDataService.selectList(user, tableName,Constant.WHERE_DEFAULT, version); } - return masterDataService.selectList(tableName,whereSegment); + return masterDataService.selectList(user, tableName,whereSegment, version); } @RequestMapping(value = "{maintainId}/modify/{operateStr}", method = RequestMethod.POST) @@ -328,4 +346,22 @@ return masterDataService.delete(tableName, whereSegment); } } + + @RequestMapping(value = "/getValByMaintainFieldId/{maintainFieldId}", method = RequestMethod.GET) + public Result getValByMaintainFieldId(@PathVariable String maintainFieldId,@RequestParam String menuId, @RequestParam String field, HttpServletRequest request) { + String tableName = menuMappingService.getTableNameByMenu(menuId); + if (StringUtils.isEmpty(tableName)) { + return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); + } + if (maintainFieldId.equalsIgnoreCase(Constant.All)) { + Set<String> fieldValList = masterDataService.getFieldValByTable(tableName, field); + return Result.success(fieldValList); + } + + Set<String> fieldValByMaintainField = masterDataService.getFieldValByMaintainField(maintainFieldId, field, tableName); + + return Result.success(fieldValByMaintainField); + } + + } -- Gitblit v1.8.0