From c8aee7b9bfd79cfd741d7e5692520f4f51a31a86 Mon Sep 17 00:00:00 2001 From: kimi <kimi42345@gmail.com> Date: 星期一, 18 五月 2020 18:30:01 +0800 Subject: [PATCH] bak 修改 获取版本数据前 --- src/main/java/com/highdatas/mdm/controller/SysMenuController.java | 174 +++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 147 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/highdatas/mdm/controller/SysMenuController.java b/src/main/java/com/highdatas/mdm/controller/SysMenuController.java index 709c502..1d931d8 100644 --- a/src/main/java/com/highdatas/mdm/controller/SysMenuController.java +++ b/src/main/java/com/highdatas/mdm/controller/SysMenuController.java @@ -3,21 +3,26 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.highdatas.mdm.entity.SysMenu; +import com.highdatas.mdm.entity.*; +import com.highdatas.mdm.pojo.ActivitiBusinessType; +import com.highdatas.mdm.pojo.ActivitiStatus; import com.highdatas.mdm.pojo.CodeMsg; -import com.highdatas.mdm.pojo.MaintainDataType; import com.highdatas.mdm.pojo.Result; -import com.highdatas.mdm.service.ISysMenuService; +import com.highdatas.mdm.service.*; import com.highdatas.mdm.util.Constant; import com.highdatas.mdm.util.DbUtils; +import com.highdatas.mdm.util.NoticeClient; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import java.util.Date; import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; +import java.util.stream.Collectors; /** * <p> @@ -31,19 +36,119 @@ @RequestMapping("/menu") public class SysMenuController { @Autowired - private ISysMenuService menuService; + ISysMenuService menuService; - @RequestMapping(value = "/all", method = RequestMethod.GET) + @Autowired + IMenuMappingService menuMappingService; + @Autowired + ISysFieldService fieldService; + @Autowired + IDeletedTableLogService deletedTableLogService; + @Autowired + IFlowsService flowsService; + @Autowired + IMaintainService maintainService; + @Autowired + IMaintainFieldService maintainFieldService; + @Autowired + IMasterAuthorService masterAuthorService; + @Autowired + NoticeClient noticeClient; + @RequestMapping(value = "/all") public Result<List<SysMenu>> getAll() { EntityWrapper<SysMenu> sysMenuEntityWrapper = new EntityWrapper<>(); - sysMenuEntityWrapper.orderBy(" parent_id, order_no"); + sysMenuEntityWrapper.orderBy("parent_id, order_no"); return Result.success(menuService.selectList(sysMenuEntityWrapper)) ; } + + @RequestMapping(value = "/author/all", method = RequestMethod.GET) + public Result<List<SysMenu>> getAllBak(HttpServletRequest request) { + TUser user = DbUtils.getUser(request); + List<SysMenu> menu = masterAuthorService.getMenu(user); + return Result.success(menu) ; + } + + @RequestMapping(value = "/audit", method = RequestMethod.GET) + public Result<List<SysMenu>> audit(HttpServletRequest request) { + HttpSession session = request.getSession(); + TUser user = (TUser) session.getAttribute("user"); + String userId = user.getUserId(); + List<Flows> flows = flowsService.selectList(new EntityWrapper<Flows>().ne("business_type", ActivitiBusinessType.exists).ne("status", ActivitiStatus.open).ne("status", ActivitiStatus.close)); + flows = flows.stream().filter(flow -> flowsService.isNextAudit(flow, userId)).collect(Collectors.toList()); + + HashSet<String> tableNameSet = new HashSet<>(); + List<String> maintainIds = flows.stream().filter(flow -> flow.getBusinessType().equals(ActivitiBusinessType.maintain)).map(Flows::getBusinessId).collect(Collectors.toList()); + List<String> maintainFieldIds = flows.stream().filter(flow -> flow.getBusinessType().equals(ActivitiBusinessType.field)).map(Flows::getBusinessId).collect(Collectors.toList()); + + if (maintainIds.isEmpty() && maintainFieldIds.isEmpty()) { + return Result.success(null); + } + for (String maintainFieldId : maintainFieldIds) { + MaintainField maintainField = maintainFieldService.selectById(maintainFieldId); + if (maintainField == null) { + continue; + } + String tableName = maintainField.getTableName(); + if (StringUtils.isEmpty(tableName)) { + continue; + } + tableNameSet.add(tableName); + } + maintainIds = maintainIds.stream().filter(s -> masterAuthorService.checkMaintainAuthor(user,s)).collect(Collectors.toList()); + if (!maintainIds.isEmpty()) { + List<Maintain> maintains = maintainService.selectBatchIds(maintainIds); + + List<String> tableNameList = maintains.stream().map(Maintain::getTableName).collect(Collectors.toList()); + tableNameSet.addAll(tableNameList); + } + if (tableNameSet.size() == 0) { + return Result.success(null); + } + List<MenuMapping> menuMappingList = menuMappingService.selectList(new EntityWrapper<MenuMapping>().in("table_name", tableNameSet)); + List<String> menuIds = menuMappingList.stream().map(MenuMapping::getMenuId).collect(Collectors.toList()); + if (menuIds.isEmpty()) { + return Result.success(null); + } + LinkedHashSet<String> parentIdSet = new LinkedHashSet<>(menuIds); + List<SysMenu> parentList = menuService.getMenuByParentId(parentIdSet); + if (parentList == null) { + return Result.success(null); + } + + return Result.success(parentList); + } + + + @RequestMapping(value = "/list", method = RequestMethod.GET) + public Result<List<SysMenu>> getMenuList() { + EntityWrapper<SysMenu> sysMenuEntityWrapper = new EntityWrapper<>(); + sysMenuEntityWrapper.eq("menu_type", "DataMenu"); + sysMenuEntityWrapper.orderBy("parent_id, order_no"); + List<SysMenu> sysMenus = menuService.selectList(sysMenuEntityWrapper); + LinkedHashSet<String> parentIdSet = new LinkedHashSet<>(); + for (SysMenu sysMenu : sysMenus) { + MenuMapping menuMapping = menuMappingService.selectOne(new EntityWrapper<MenuMapping>().eq("menu_id", sysMenu.getId())); + if (menuMapping == null) { + continue; + } + String tableName = menuMapping.getTableName(); + List<SysField> fieldByTable = fieldService.getFieldByTable(tableName); + if (fieldByTable == null || fieldByTable.size() == 0) { + continue; + } + parentIdSet.add(sysMenu.getId()); + } + List<SysMenu> parentList = menuService.getMenuByParentId(parentIdSet); + + return Result.success(parentList) ; + } + + @RequestMapping(value = "/allTheme", method = RequestMethod.GET) public Result<List<SysMenu>> getAllTheme() { EntityWrapper<SysMenu> sysMenuEntityWrapper = new EntityWrapper<>(); - sysMenuEntityWrapper.eq("menu_type",Constant.StructureMenu).orderBy("parent_id desc "); + sysMenuEntityWrapper.eq("menu_type",Constant.StructureMenu).orderBy("parent_id desc"); return Result.success(menuService.selectList(sysMenuEntityWrapper)) ; } @@ -52,7 +157,7 @@ public Result<Page<SysMenu>> getAll(@PathVariable int pageno, HttpServletRequest request) { String pageSize = request.getParameter("pageSize"); if (StringUtils.isEmpty(pageSize)) { - pageSize = "20"; + pageSize = "15"; } Integer size = Integer.valueOf(pageSize); Page page = new Page(pageno, size); @@ -98,11 +203,10 @@ menu.setId(uuid); menu.setParentId(parentId); menu.setOrderNo(orderno); - menu.setDataType(MaintainDataType.parse(dataType)); - menu.setMenuType(menuType); + menu.setMenuType(menuType).setCreateTime(new Date()); boolean inserted = menuService.insert(menu); if (inserted) { - return Result.success("鎻掑叆鎴愬姛", null); + return Result.success(menu); } else { return Result.error(CodeMsg.INSERT_ERROR); } @@ -142,31 +246,30 @@ }else { orderno = Integer.valueOf(ordernoStr); } - menu = new SysMenu().setId(id).setParentId(parentId).setMenuType(menuType).setName(name).setOrderNo(orderno); + menu = new SysMenu().setCreateTime(new Date()).setId(id).setParentId(parentId).setMenuType(menuType).setName(name).setOrderNo(orderno); menu.insert(); } - if (menu.getMenuType().equalsIgnoreCase(Constant.DataMenu)) { - Result<List<SysMenu>> listResult = menuByParentId(id); - List<SysMenu> data = listResult.getData(); - long count = data.stream().filter(sysMenu -> sysMenu.getDataType().equals(MaintainDataType.unkonwn)).count(); - if (count != data.size()) { - return Result.error(CodeMsg.SELECT_ERROR); - } - } - new SysMenu().setParentId(id).setId(DbUtils.getUUID()).setName(Constant.UnMatched).setOrderNo(1).setCreateTime(new Date()).setDataType(MaintainDataType.afterData).insert(); - new SysMenu().setParentId(id).setId(DbUtils.getUUID()).setName(Constant.Current).setOrderNo(2).setCreateTime(new Date()).setDataType(MaintainDataType.currentData).insert(); - new SysMenu().setParentId(id).setId(DbUtils.getUUID()).setName(Constant.History).setOrderNo(3).setCreateTime(new Date()).setDataType(MaintainDataType.beforeData).insert(); +// if (menu.getMenuType().equalsIgnoreCase(Constant.DataMenu)) { +// Result<List<SysMenu>> listResult = menuByParentId(id); +// List<SysMenu> data = listResult.getData(); +// long count = data.stream().filter(sysMenu -> sysMenu.getDataType().equals(MaintainDataType.unkonwn)).count(); +// if (count != data.size()) { +// return Result.error(CodeMsg.SELECT_ERROR); +// } +// } - return Result.success(CodeMsg.SUCCESS); + return Result.success(menu); } @RequestMapping(value = "/update", method = RequestMethod.GET) public Result<Object> update(@RequestParam String id, HttpServletRequest request) { SysMenu menu = menuService.selectById(id); + if (menu == null) { return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND); } + menu.setUpdateTime(new Date()); String ordernoStr = request.getParameter("orderNo"); String parentId = request.getParameter("parentId"); String menuType = request.getParameter("menuType"); @@ -207,15 +310,33 @@ return result; } @RequestMapping(value = "/delete/{menuid}", method = RequestMethod.GET) - public Result<Object> delete(@PathVariable String menuid) throws Exception { + public Result<Object> delete(@PathVariable String menuid, HttpServletRequest request) throws Exception { + TUser user = DbUtils.getUser(request); Result<List<SysMenu>> all = getAll(); List<SysMenu> data = all.getData(); + SysMenu parentMenu = menuService.selectById(menuid); + HashSet<SysMenu> sysMenus = deleteMenuByParentId(data, menuid); for (SysMenu sysMenu : sysMenus) { + List<MenuMapping> menuMappingList = menuMappingService.selectList(new EntityWrapper<MenuMapping>().eq("menu_id", sysMenu.getId())); + for (MenuMapping menuMapping : menuMappingList) { + DeletedTableLog deletedTableLog = new DeletedTableLog(); + deletedTableLog.setId(DbUtils.getUUID()).setTableName(menuMapping.getTableName()).setCreateTime(new Date()); + deletedTableLog.insert(); + menuMapping.deleteById(); + + + } + sysMenu.deleteById(); } - boolean delete = menuService.deleteById(menuid); + if (parentMenu == null) { + return Result.success(null); + } + String menuType = parentMenu.getMenuType(); + + boolean delete = parentMenu.deleteById(); if (delete) { return Result.success(null); } else { @@ -247,6 +368,5 @@ List<SysMenu> sysMenus = menuService.selectList(menuEntityWrapper); return Result.success(sysMenus); } - } -- Gitblit v1.8.0