MenuServiceImpl.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. package com.tld.service.impl;
  2. import com.github.pagehelper.PageHelper;
  3. import com.github.pagehelper.PageInfo;
  4. import com.tld.mapper.MenuMapper;
  5. import com.tld.model.Menu;
  6. import com.tld.service.MenuService;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Service;
  9. import org.springframework.transaction.annotation.Transactional;
  10. import javax.servlet.http.HttpServletRequest;
  11. import java.util.*;
  12. @Service
  13. public class MenuServiceImpl implements MenuService {
  14. @Autowired
  15. private MenuMapper menuMapper;
  16. @Override
  17. public Map<String, Object> getMenu(Menu menu) {
  18. Map<String, Object> map = new HashMap<>();
  19. try{
  20. List<Map<String, Object>> list = new ArrayList<>();
  21. for(Menu menu1 : menuMapper.getMenu(menu)){
  22. Map<String, Object> treeMap = new TreeMap<>();
  23. treeMap.put("title", menu1.getName());
  24. treeMap.put("key", menu1.getId());
  25. treeMap.put("pId", menu1.getPId());
  26. treeMap.put("url", menu1.getUrl());
  27. menu1.setPId(menu1.getId());
  28. treeMap.put("children", getChildren(menu1));
  29. list.add(treeMap);
  30. }
  31. map.put("data", list);
  32. map.put("msg", "200");
  33. }catch (Exception e){
  34. e.printStackTrace();
  35. map.put("msg", "500");
  36. map.put("errMsg", "服务器请求异常,请稍后再试");
  37. }
  38. return map;
  39. }
  40. @Override
  41. @Transactional(rollbackFor = Exception.class)
  42. public Map<String, Object> addMenu(Menu menu, HttpServletRequest request) {
  43. Map<String, Object> map = new HashMap<>();
  44. try{
  45. menu.setModifyUser(request.getHeader("userId"));
  46. menuMapper.addMenu(menu);
  47. map.put("msg", "200");
  48. }catch (Exception e){
  49. e.printStackTrace();
  50. map.put("msg", "500");
  51. map.put("errMsg", "服务器请求异常,请稍后再试");
  52. }
  53. return map;
  54. }
  55. @Override
  56. @Transactional(rollbackFor = Exception.class)
  57. public Map<String, Object> updateMenu(Menu menu, HttpServletRequest request) {
  58. Map<String, Object> map = new HashMap<>();
  59. try{
  60. menu.setModifyUser(request.getHeader("userId"));
  61. menuMapper.updateMenu(menu);
  62. map.put("msg", "200");
  63. }catch (Exception e){
  64. e.printStackTrace();
  65. map.put("msg", "500");
  66. map.put("errMsg", "服务器请求异常,请稍后再试");
  67. }
  68. return map;
  69. }
  70. @Override
  71. @Transactional(rollbackFor = Exception.class)
  72. public Map<String, Object> delMenu(String id) {
  73. Map<String, Object> map = new HashMap<>();
  74. try{
  75. menuMapper.delMenu(id);
  76. map.put("msg", "200");
  77. }catch (Exception e){
  78. e.printStackTrace();
  79. map.put("msg", "500");
  80. map.put("errMsg", "服务器请求异常,请稍后再试");
  81. }
  82. return map;
  83. }
  84. @Override
  85. public Map<String, Object> getUserMenu(String userId) {
  86. Map<String, Object> map = new HashMap<>();
  87. try{
  88. List<Menu> list = menuMapper.getUserMenu(userId);
  89. map.put("data", list);
  90. map.put("msg", "200");
  91. }catch (Exception e){
  92. e.printStackTrace();
  93. map.put("msg", "500");
  94. map.put("errMsg", "服务器请求异常,请稍后再试");
  95. }
  96. return map;
  97. }
  98. @Override
  99. public Map<String, Object> getPage(Menu menu) {
  100. Map<String, Object> map = new HashMap<>();
  101. try{
  102. PageHelper.startPage(menu.getPage(), menu.getLimit());
  103. PageInfo<Menu> list = new PageInfo<>(menuMapper.getPage(menu));
  104. map.put("data", list);
  105. map.put("msg", "200");
  106. }catch (Exception e){
  107. e.printStackTrace();
  108. map.put("msg", "500");
  109. map.put("errMsg", "服务器请求异常,请稍后再试");
  110. }
  111. return map;
  112. }
  113. @Override
  114. public Map<String, Object> getUserMenuPDA(String userId) {
  115. Map<String, Object> map = new HashMap<>();
  116. try{
  117. List<Menu> list = menuMapper.getUserMenuPDA(userId);
  118. map.put("data", list);
  119. map.put("msg", "200");
  120. }catch (Exception e){
  121. e.printStackTrace();
  122. map.put("msg", "500");
  123. map.put("errMsg", "服务器请求异常,请稍后再试");
  124. }
  125. return map;
  126. }
  127. /**
  128. * @Description: 根据用户查询菜单内容PC
  129. * @Param: userId 参数
  130. * @return: 返回结果
  131. * @Author: XiaoChen
  132. * @Date: 2023/5/6
  133. */
  134. @Override
  135. public Map<String, Object> getUserMenuPc(String userId) {
  136. Map<String, Object> map = new HashMap<>();
  137. try{
  138. //查询用户菜单
  139. List<Menu> list = menuMapper.getUserMenuPc(userId);
  140. //根据角色查询用户菜单权限
  141. List<Menu> list1 = menuMapper.getUserMenu(userId);
  142. ArrayList<Menu> menus = new ArrayList<>();
  143. HashSet<String> ids = new HashSet<>();
  144. for (Menu menu : list) {
  145. if (!ids.contains(menu.getId())){
  146. menus.add(menu);
  147. ids.add(menu.getId());
  148. }
  149. }
  150. for (Menu menu : list1) {
  151. if (!ids.contains(menu.getId())){
  152. menus.add(menu);
  153. ids.add(menu.getId());
  154. }
  155. }
  156. map.put("data", menus);
  157. map.put("msg", "200");
  158. }catch (Exception e){
  159. e.printStackTrace();
  160. map.put("msg", "500");
  161. map.put("errMsg", "服务器请求异常,请稍后再试");
  162. }
  163. return map;
  164. }
  165. /**
  166. * 树结构查询
  167. * @return
  168. */
  169. public List<Map<String, Object>> getChildren(Menu menu){
  170. List<Map<String, Object>> listTree = new ArrayList<>();
  171. for(Menu menu1 : menuMapper.getMenu(menu)){
  172. Map<String, Object> treeMap = new TreeMap<>();
  173. treeMap.put("title", menu1.getName());
  174. treeMap.put("key", menu1.getId());
  175. treeMap.put("pId", menu1.getPId());
  176. menu1.setPId(menu1.getId());
  177. treeMap.put("children", getChildren(menu1));
  178. treeMap.put("url", menu1.getUrl());
  179. listTree.add(treeMap);
  180. }
  181. return listTree;
  182. }
  183. }