package com.huaxu.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.huaxu.common.FileUploadUtil; import com.huaxu.entity.UserEntity; import com.huaxu.model.AjaxMessage; import com.huaxu.model.LoginUser; import com.huaxu.model.Pagination; import com.huaxu.model.ResultStatus; import com.huaxu.util.UserUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.validation.annotation.Validated; import org.springframework.ui.ModelMap; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Date; import org.springframework.web.bind.annotation.*; import com.huaxu.entity.MenuEntity; import com.huaxu.service.MenuService; import org.springframework.web.multipart.MultipartFile; /** * 菜单页面控制器 * @author WYY * @date 2020-10-26 16:15 */ @RestController @RequestMapping("/menu") @Api(tags = "菜单管理") public class MenuController { @Autowired private MenuService menuService; @Value("${UMIS.sys_config_path}") private String baseDir; @ApiOperation(value = "分页查询菜单信息") @RequestMapping(value = "/selectPage", method = RequestMethod.POST) public AjaxMessage> list(@RequestParam Integer pageNum, @RequestParam Integer pageSize, @ApiParam(value = "菜单信息", required = false) @RequestBody MenuEntity menuEntity) { IPage iPage = new Page<>(pageNum, pageSize); iPage = menuService.findPage(iPage, menuEntity); Pagination pages = new Pagination<>(iPage); return new AjaxMessage<>(ResultStatus.OK, pages); } @ApiOperation(value = "查询所有菜单") @RequestMapping(value = "/selectList", method = RequestMethod.POST) public AjaxMessage> allList(@ApiParam(value = "菜单信息", required = false) @RequestBody MenuEntity menuEntity) { List menuEntities = menuService.findList(menuEntity); return new AjaxMessage<>(ResultStatus.OK, menuEntities); } /** * 新增 */ @ApiOperation(value = "新增菜单信息") @RequestMapping(value = "/add", method = RequestMethod.POST) public AjaxMessage addMenu(@ApiParam(value = "菜单信息", required = true) @RequestBody MenuEntity menu) { LoginUser currentUser = UserUtil.getCurrentUser(); if (currentUser != null) { menu.setUpdateBy(currentUser.getUsername()); menu.setCreateBy(currentUser.getUsername()); menu.setDateCreate(new Date()); menu.setDateUpdate(new Date()); } if (menu.getParentMenuId() != null) { MenuEntity menuEntity = menuService.findMenuById(menu.getParentMenuId()); if (menuEntity.getAppId() != null) menu.setAppId(menuEntity.getAppId()); } menu.setStatus(1); int result = menuService.addMenu(menu) ? 1 : 0; return new AjaxMessage<>(ResultStatus.OK, result); } /** * 批量新增 */ @ApiOperation(value = "批量新增菜单信息") @RequestMapping(value = "/addBatch", method = RequestMethod.POST) public AjaxMessage addMenus(@ApiParam(value = "菜单信息", required = true) @RequestBody ArrayList menus) { int result = menuService.saveBatch(menus) ? 1 : 0; return new AjaxMessage<>(ResultStatus.OK, result); } /** * 新增 */ @ApiOperation(value = "菜单图标") @RequestMapping(value = "addMenuImag", method = RequestMethod.POST) @ResponseBody public AjaxMessage addUserPhoto(@ApiParam(value = "菜单图标", required = true) @RequestParam("avatarfile") MultipartFile file) { String avatar = ""; if (!file.isEmpty()) { try { avatar = FileUploadUtil.uploadWeb(baseDir, file); } catch (IOException e) { return new AjaxMessage<>(ResultStatus.ERROR, e.getMessage()); } } return new AjaxMessage<>(ResultStatus.OK, avatar); } /** * 按ID查询菜单 */ @ApiOperation(value = "按ID查询菜单") @GetMapping(value = "/findMenuById") public AjaxMessage findMenuById(@ApiParam(value = "菜单ID", required = true) @RequestParam Long id) { MenuEntity menu = menuService.findMenuById(id); return new AjaxMessage<>(ResultStatus.OK, menu); } /** * 修改保存菜单 */ @ApiOperation(value = "修改保存菜单") @RequestMapping(value = "/edit", method = RequestMethod.POST) public AjaxMessage editMenu(@ApiParam(value = "菜单信息", required = true) @RequestBody MenuEntity menu) { LoginUser currentUser = UserUtil.getCurrentUser(); if (currentUser != null) { menu.setUpdateBy(currentUser.getUsername()); menu.setDateUpdate(new Date()); } int result = menuService.updateMenuById(menu) ? 1 : 0; return new AjaxMessage<>(ResultStatus.OK, result); } /** * 删除 */ @ApiOperation(value = "批量删除菜单") @RequestMapping(value = "/deleteByIds", method = RequestMethod.POST) public AjaxMessage deleteByIds(@ApiParam(value = "菜单IDS", required = true) @RequestBody Long[] ids) { if (ids == null || ids.length == 0) { return new AjaxMessage<>(ResultStatus.PARAM_ERROR); } List longIds = new ArrayList<>(); for (Long item : ids) { longIds.add(item); } List menuEntityList = menuService.findMenuByParentIds(longIds); if (menuEntityList.size() > 0) { return new AjaxMessage<>(ResultStatus.EXSIT_IS_PARENT_ERROR, 0); } int result = menuService.delMenuByIds(ids) ? 1 : 0; return new AjaxMessage<>(ResultStatus.OK, result); } /** * 删除 */ @ApiOperation(value = "单个删除菜单") @RequestMapping(value = "/deleteById", method = RequestMethod.POST) public AjaxMessage deleteById(@ApiParam(value = "菜单ID", required = true) @RequestParam Long id) { if (id == null) { return new AjaxMessage<>(ResultStatus.PARAM_ERROR); } List longIds = new ArrayList<>(); longIds.add(id); List menuEntityList = menuService.findMenuByParentIds(longIds); if (menuEntityList.size() > 0) { return new AjaxMessage<>(ResultStatus.EXSIT_IS_PARENT_ERROR, 0); } else { int result = menuService.delMenuById(id) ? 1 : 0; return new AjaxMessage<>(ResultStatus.OK, result); } } }