MenuController.java 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  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. @ApiOperation(value = "查询权限标志")
  56. @RequestMapping(value = "/selectAuthCode", method = RequestMethod.POST)
  57. public AjaxMessage<List<String>> allList() {
  58. List<String> menuEntities = menuService.getAuthCode();
  59. return new AjaxMessage<>(ResultStatus.OK, menuEntities);
  60. }
  61. /**
  62. * 新增
  63. */
  64. @ApiOperation(value = "新增菜单信息")
  65. @RequestMapping(value = "/add", method = RequestMethod.POST)
  66. public AjaxMessage<Integer> addMenu(@ApiParam(value = "菜单信息", required = true) @RequestBody MenuEntity menu) {
  67. LoginUser currentUser = UserUtil.getCurrentUser();
  68. if (currentUser != null) {
  69. menu.setUpdateBy(currentUser.getUsername());
  70. menu.setCreateBy(currentUser.getUsername());
  71. menu.setDateCreate(new Date());
  72. menu.setDateUpdate(new Date());
  73. }
  74. if (menu.getParentMenuId() != null) {
  75. MenuEntity menuEntity = menuService.findMenuById(menu.getParentMenuId());
  76. if (menuEntity.getAppId() != null)
  77. menu.setAppId(menuEntity.getAppId());
  78. }
  79. menu.setStatus(1);
  80. int result = menuService.addMenu(menu) ? 1 : 0;
  81. return new AjaxMessage<>(ResultStatus.OK, result);
  82. }
  83. /**
  84. * 批量新增
  85. */
  86. @ApiOperation(value = "批量新增菜单信息")
  87. @RequestMapping(value = "/addBatch", method = RequestMethod.POST)
  88. public AjaxMessage<Integer> addMenus(@ApiParam(value = "菜单信息", required = true) @RequestBody ArrayList<MenuEntity> menus) {
  89. int result = menuService.saveBatch(menus) ? 1 : 0;
  90. return new AjaxMessage<>(ResultStatus.OK, result);
  91. }
  92. /**
  93. * 新增
  94. */
  95. @ApiOperation(value = "菜单图标")
  96. @RequestMapping(value = "addMenuImag", method = RequestMethod.POST)
  97. @ResponseBody
  98. public AjaxMessage<String> addUserPhoto(@ApiParam(value = "菜单图标", required = true) @RequestParam("avatarfile") MultipartFile file) {
  99. String avatar = "";
  100. if (!file.isEmpty()) {
  101. try {
  102. avatar = FileUploadUtil.uploadWeb(baseDir, file);
  103. } catch (IOException e) {
  104. return new AjaxMessage<>(ResultStatus.ERROR, e.getMessage());
  105. }
  106. }
  107. return new AjaxMessage<>(ResultStatus.OK, avatar);
  108. }
  109. /**
  110. * 按ID查询菜单
  111. */
  112. @ApiOperation(value = "按ID查询菜单")
  113. @GetMapping(value = "/findMenuById")
  114. public AjaxMessage<MenuEntity> findMenuById(@ApiParam(value = "菜单ID", required = true) @RequestParam Long id) {
  115. MenuEntity menu = menuService.findMenuById(id);
  116. return new AjaxMessage<>(ResultStatus.OK, menu);
  117. }
  118. /**
  119. * 修改保存菜单
  120. */
  121. @ApiOperation(value = "修改保存菜单")
  122. @RequestMapping(value = "/edit", method = RequestMethod.POST)
  123. public AjaxMessage<Integer> editMenu(@ApiParam(value = "菜单信息", required = true) @RequestBody MenuEntity menu) {
  124. LoginUser currentUser = UserUtil.getCurrentUser();
  125. if (currentUser != null) {
  126. menu.setUpdateBy(currentUser.getUsername());
  127. menu.setDateUpdate(new Date());
  128. }
  129. int result = menuService.updateMenuById(menu) ? 1 : 0;
  130. return new AjaxMessage<>(ResultStatus.OK, result);
  131. }
  132. /**
  133. * 删除
  134. */
  135. @ApiOperation(value = "批量删除菜单")
  136. @RequestMapping(value = "/deleteByIds", method = RequestMethod.POST)
  137. public AjaxMessage<Integer> deleteByIds(@ApiParam(value = "菜单IDS", required = true) @RequestBody Long[] ids) {
  138. if (ids == null || ids.length == 0) {
  139. return new AjaxMessage<>(ResultStatus.PARAM_ERROR);
  140. }
  141. List<Long> longIds = new ArrayList<>();
  142. for (Long item : ids) {
  143. longIds.add(item);
  144. }
  145. List<MenuEntity> menuEntityList = menuService.findMenuByParentIds(longIds);
  146. if (menuEntityList.size() > 0) {
  147. return new AjaxMessage<>(ResultStatus.EXSIT_IS_PARENT_ERROR, 0);
  148. }
  149. int result = menuService.delMenuByIds(ids) ? 1 : 0;
  150. return new AjaxMessage<>(ResultStatus.OK, result);
  151. }
  152. /**
  153. * 删除
  154. */
  155. @ApiOperation(value = "单个删除菜单")
  156. @RequestMapping(value = "/deleteById", method = RequestMethod.POST)
  157. public AjaxMessage<Integer> deleteById(@ApiParam(value = "菜单ID", required = true) @RequestParam Long id) {
  158. if (id == null) {
  159. return new AjaxMessage<>(ResultStatus.PARAM_ERROR);
  160. }
  161. List<Long> longIds = new ArrayList<>();
  162. longIds.add(id);
  163. List<MenuEntity> menuEntityList = menuService.findMenuByParentIds(longIds);
  164. if (menuEntityList.size() > 0) {
  165. return new AjaxMessage<>(ResultStatus.EXSIT_IS_PARENT_ERROR, 0);
  166. } else {
  167. int result = menuService.delMenuById(id) ? 1 : 0;
  168. return new AjaxMessage<>(ResultStatus.OK, result);
  169. }
  170. }
  171. }