MenuController.java 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. package com.huaxu.controller;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.huaxu.common.FileUploadUtil;
  5. import com.huaxu.entity.UserEntity;
  6. import com.huaxu.model.AjaxMessage;
  7. import com.huaxu.model.LoginUser;
  8. import com.huaxu.model.Pagination;
  9. import com.huaxu.model.ResultStatus;
  10. import com.huaxu.util.UserUtil;
  11. import io.swagger.annotations.Api;
  12. import io.swagger.annotations.ApiOperation;
  13. import io.swagger.annotations.ApiParam;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.beans.factory.annotation.Value;
  16. import org.springframework.stereotype.Controller;
  17. import org.springframework.validation.annotation.Validated;
  18. import org.springframework.ui.ModelMap;
  19. import java.io.IOException;
  20. import java.util.ArrayList;
  21. import java.util.List;
  22. import java.util.Map;
  23. import java.util.Date;
  24. import org.springframework.web.bind.annotation.*;
  25. import com.huaxu.entity.MenuEntity;
  26. import com.huaxu.service.MenuService;
  27. import org.springframework.web.multipart.MultipartFile;
  28. /**
  29. * 菜单页面控制器
  30. * @author WYY
  31. * @date 2020-10-26 16:15
  32. */
  33. @RestController
  34. @RequestMapping("/menu")
  35. @Api(tags = "菜单管理")
  36. public class MenuController {
  37. @Autowired
  38. private MenuService menuService;
  39. @Value("${UMIS.sys_config_path}")
  40. private String baseDir;
  41. @ApiOperation(value = "分页查询菜单信息")
  42. @RequestMapping(value = "/selectPage", method = RequestMethod.POST)
  43. public AjaxMessage<Pagination<MenuEntity>> list(@RequestParam Integer pageNum, @RequestParam Integer pageSize, @ApiParam(value = "菜单信息", required = false) @RequestBody MenuEntity menuEntity) {
  44. IPage<MenuEntity> iPage = new Page<>(pageNum, pageSize);
  45. iPage = menuService.findPage(iPage, menuEntity);
  46. Pagination<MenuEntity> pages = new Pagination<>(iPage);
  47. return new AjaxMessage<>(ResultStatus.OK, pages);
  48. }
  49. @ApiOperation(value = "查询所有菜单")
  50. @RequestMapping(value = "/selectList", method = RequestMethod.POST)
  51. public AjaxMessage<List<MenuEntity>> allList(@ApiParam(value = "菜单信息", required = false) @RequestBody MenuEntity menuEntity) {
  52. List<MenuEntity> menuEntities = menuService.findList(menuEntity);
  53. return new AjaxMessage<>(ResultStatus.OK, menuEntities);
  54. }
  55. /**
  56. * 新增
  57. */
  58. @ApiOperation(value = "新增菜单信息")
  59. @RequestMapping(value = "/add", method = RequestMethod.POST)
  60. public AjaxMessage<Integer> addMenu(@ApiParam(value = "菜单信息", required = true) @RequestBody MenuEntity menu) {
  61. LoginUser currentUser = UserUtil.getCurrentUser();
  62. if (currentUser != null) {
  63. menu.setUpdateBy(currentUser.getUsername());
  64. menu.setCreateBy(currentUser.getUsername());
  65. menu.setDateCreate(new Date());
  66. menu.setDateUpdate(new Date());
  67. }
  68. if (menu.getParentMenuId() != null) {
  69. MenuEntity menuEntity = menuService.findMenuById(menu.getParentMenuId());
  70. if (menuEntity.getAppId() != null)
  71. menu.setAppId(menuEntity.getAppId());
  72. }
  73. menu.setStatus(1);
  74. int result = menuService.addMenu(menu) ? 1 : 0;
  75. return new AjaxMessage<>(ResultStatus.OK, result);
  76. }
  77. /**
  78. * 批量新增
  79. */
  80. @ApiOperation(value = "批量新增菜单信息")
  81. @RequestMapping(value = "/addBatch", method = RequestMethod.POST)
  82. public AjaxMessage<Integer> addMenus(@ApiParam(value = "菜单信息", required = true) @RequestBody ArrayList<MenuEntity> menus) {
  83. int result = menuService.saveBatch(menus) ? 1 : 0;
  84. return new AjaxMessage<>(ResultStatus.OK, result);
  85. }
  86. /**
  87. * 新增
  88. */
  89. @ApiOperation(value = "菜单图标")
  90. @RequestMapping(value = "addMenuImag", method = RequestMethod.POST)
  91. @ResponseBody
  92. public AjaxMessage<String> addUserPhoto(@ApiParam(value = "菜单图标", required = true) @RequestParam("avatarfile") MultipartFile file) {
  93. String avatar = "";
  94. if (!file.isEmpty()) {
  95. try {
  96. avatar = FileUploadUtil.uploadWeb(baseDir, file);
  97. } catch (IOException e) {
  98. return new AjaxMessage<>(ResultStatus.ERROR, e.getMessage());
  99. }
  100. }
  101. return new AjaxMessage<>(ResultStatus.OK, avatar);
  102. }
  103. /**
  104. * 按ID查询菜单
  105. */
  106. @ApiOperation(value = "按ID查询菜单")
  107. @GetMapping(value = "/findMenuById")
  108. public AjaxMessage<MenuEntity> findMenuById(@ApiParam(value = "菜单ID", required = true) @RequestParam Long id) {
  109. MenuEntity menu = menuService.findMenuById(id);
  110. return new AjaxMessage<>(ResultStatus.OK, menu);
  111. }
  112. /**
  113. * 修改保存菜单
  114. */
  115. @ApiOperation(value = "修改保存菜单")
  116. @RequestMapping(value = "/edit", method = RequestMethod.POST)
  117. public AjaxMessage<Integer> editMenu(@ApiParam(value = "菜单信息", required = true) @RequestBody MenuEntity menu) {
  118. LoginUser currentUser = UserUtil.getCurrentUser();
  119. if (currentUser != null) {
  120. menu.setUpdateBy(currentUser.getUsername());
  121. menu.setDateUpdate(new Date());
  122. }
  123. int result = menuService.updateMenuById(menu) ? 1 : 0;
  124. return new AjaxMessage<>(ResultStatus.OK, result);
  125. }
  126. /**
  127. * 删除
  128. */
  129. @ApiOperation(value = "批量删除菜单")
  130. @RequestMapping(value = "/deleteByIds", method = RequestMethod.POST)
  131. public AjaxMessage<Integer> deleteByIds(@ApiParam(value = "菜单IDS", required = true) @RequestBody Long[] ids) {
  132. if (ids == null || ids.length == 0) {
  133. return new AjaxMessage<>(ResultStatus.PARAM_ERROR);
  134. }
  135. List<Long> longIds = new ArrayList<>();
  136. for (Long item : ids) {
  137. longIds.add(item);
  138. }
  139. List<MenuEntity> menuEntityList = menuService.findMenuByParentIds(longIds);
  140. if (menuEntityList.size() > 0) {
  141. return new AjaxMessage<>(ResultStatus.EXSIT_IS_PARENT_ERROR, 0);
  142. }
  143. int result = menuService.delMenuByIds(ids) ? 1 : 0;
  144. return new AjaxMessage<>(ResultStatus.OK, result);
  145. }
  146. /**
  147. * 删除
  148. */
  149. @ApiOperation(value = "单个删除菜单")
  150. @RequestMapping(value = "/deleteById", method = RequestMethod.POST)
  151. public AjaxMessage<Integer> deleteById(@ApiParam(value = "菜单ID", required = true) @RequestParam Long id) {
  152. if (id == null) {
  153. return new AjaxMessage<>(ResultStatus.PARAM_ERROR);
  154. }
  155. List<Long> longIds = new ArrayList<>();
  156. longIds.add(id);
  157. List<MenuEntity> menuEntityList = menuService.findMenuByParentIds(longIds);
  158. if (menuEntityList.size() > 0) {
  159. return new AjaxMessage<>(ResultStatus.EXSIT_IS_PARENT_ERROR, 0);
  160. } else {
  161. int result = menuService.delMenuById(id) ? 1 : 0;
  162. return new AjaxMessage<>(ResultStatus.OK, result);
  163. }
  164. }
  165. }