package com.highdatas.mdm.controller; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.highdatas.mdm.entity.MenuMapping; import com.highdatas.mdm.entity.SysMenu; import com.highdatas.mdm.entity.TUser; import com.highdatas.mdm.pojo.CodeMsg; import com.highdatas.mdm.pojo.Result; import com.highdatas.mdm.service.IMaintainDetailService; import com.highdatas.mdm.service.IMaintainService; import com.highdatas.mdm.service.IMenuMappingService; import com.highdatas.mdm.service.ISysMenuService; import com.highdatas.mdm.util.DbUtils; import com.highdatas.mdm.util.NoticeClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.Date; import java.util.LinkedHashSet; import java.util.List; /** *

* 前端控制器 *

* * @author kimi * @since 2019-12-16 */ @RestController @RequestMapping("/menuMapping") public class MenuMappingController { @Autowired IMenuMappingService menuMappingService; @Autowired IMaintainService maintainService; @Autowired IMaintainDetailService maintainDetailService; @Autowired ISysMenuService menuService; @Autowired NoticeClient noticeClient; /** * * @description: 通过id获取menumapping * @param id menumapping id * @return: menumapping数据 * */ @RequestMapping(value = "/get/{id}", method = RequestMethod.GET) public Result get(@PathVariable String id, HttpServletRequest request) { return menuMappingService.getMapping(request.getSession(),id); } /** * * @description: 保存主题的详细信息 * @return: 是否保存成功 * */ @RequestMapping(value = "/add", method = RequestMethod.POST) public Result insert(@RequestBody MenuMapping menuMapping, HttpServletRequest request) { String menuId = menuMapping.getMenuId(); int cnt = menuMappingService.selectCount(new EntityWrapper().eq("menu_id", menuId)); if (cnt != 0) { menuMapping.updateById(); } MenuMapping inserted = menuMappingService.create(menuMapping); if (inserted != null) { return Result.success(inserted); } else { return Result.error(CodeMsg.INSERT_ERROR); } } /** * * @description: 保存主题的详细信息 * @return: 是否保存成功 * */ @RequestMapping(value = "/update", method = RequestMethod.POST) public Result update(@RequestBody MenuMapping menuMapping, HttpServletRequest request) { menuMapping.setUpdateTime(new Date()); String menuId = menuMapping.getMenuId(); SysMenu menu = menuService.selectById(menuId); String preParentId = menu.getParentId(); String themeId = menuMapping.getThemeId(); if (!preParentId.equalsIgnoreCase(themeId)) { menu.setParentId(themeId); menu.updateById(); } boolean updated = menuMapping.updateById(); if (updated) { TUser user = DbUtils.getUser(request); if (menu != null) { LinkedHashSet parentIdSet = new LinkedHashSet<>(); parentIdSet.add(menuId); LinkedHashSet byParentId = menuService.getByParentId(parentIdSet); if (byParentId == null) { noticeClient.EditMenuMapping(menu, null, user.getUserId()); } else { if (!byParentId.isEmpty()) { List sysMenus = menuService.selectBatchIds(byParentId); SysMenu parentMenu = sysMenus.get(0); noticeClient.EditMenuMapping(menu, parentMenu, user.getUserId()); } } } return Result.success(menuMapping); } else { return Result.error(CodeMsg.UPDATE_ERROR); } } /** * * @description: 通过主题删除主题详细信息 * @return: 是否删除menumapping * */ @RequestMapping(value = "/delete/{menuid}", method = RequestMethod.GET) public Result delete(@PathVariable String menuid) throws Exception { boolean deleted = menuMappingService.deleteById(menuid); if (deleted) { return Result.success("删除成功", null); } else { return Result.error(CodeMsg.DELETE_ERROR); } } }