SysPlatformServiceImpl.java 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. package com.bizmatics.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  4. import com.bizmatics.common.core.bean.CommonPage;
  5. import com.bizmatics.common.mvc.base.AbstractCrudService;
  6. import com.bizmatics.model.SysPlatform;
  7. import com.bizmatics.model.SysPlatformMenu;
  8. import com.bizmatics.model.SysTenantMenu;
  9. import com.bizmatics.model.system.SysMenu;
  10. import com.bizmatics.model.vo.*;
  11. import com.bizmatics.persistence.mapper.SysPlatformMapper;
  12. import com.bizmatics.persistence.mapper.system.SysMenuMapper;
  13. import com.bizmatics.service.SysPlatformMenuService;
  14. import com.bizmatics.service.SysPlatformService;
  15. import com.bizmatics.service.util.SecurityUtils;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Service;
  18. import org.springframework.transaction.annotation.Transactional;
  19. import java.time.LocalDateTime;
  20. import java.util.ArrayList;
  21. import java.util.HashMap;
  22. import java.util.List;
  23. import java.util.Map;
  24. /**
  25. * <p>
  26. * 平台信息表 服务实现类
  27. * </p>
  28. *
  29. * @author ya
  30. * @since 2022-05-18
  31. */
  32. @Service
  33. public class SysPlatformServiceImpl extends AbstractCrudService<SysPlatformMapper, SysPlatform> implements SysPlatformService {
  34. @Autowired
  35. private SysMenuMapper menuMapper;
  36. @Autowired
  37. private SysPlatformMenuService sysPlatformMenuService;
  38. @Override
  39. public List<SysPlatform> getPlatformBoxList() {
  40. LambdaQueryWrapper<SysPlatform> queryWrapper = Wrappers.lambdaQuery();
  41. queryWrapper.eq(SysPlatform::getStatus, "1");
  42. List<SysPlatform> list = this.list(queryWrapper);
  43. return list;
  44. }
  45. @Override
  46. public CommonPage<SysPlatformVo> getPlatformList(String platformName, String startTime, String endTime, Integer page, Integer size, Integer id) {
  47. List<SysPlatformVo> list1 = baseMapper.getPlatformList(platformName, startTime, endTime, null, null, id);
  48. int total = 0;
  49. if (list1.size() > 0) {
  50. total = list1.size();
  51. }
  52. Integer current = null;
  53. if (page != null && size > 0) {
  54. current = (page - 1) * size;
  55. }
  56. List<SysPlatformVo> list = baseMapper.getPlatformList(platformName, startTime, endTime, current, size, id);
  57. return new CommonPage<>(list, total, size, page);
  58. }
  59. @Override
  60. public Map<String, Object> getPlatformMenu(Long platformId){
  61. //全部目录查询
  62. List<SysMenu> sysMenuListTwo = menuMapper.getSysMenuList("M");
  63. //全部菜单查询
  64. List<SysMenu> sysMenuListOne = menuMapper.getSysMenuList("C");
  65. //全部按钮列表
  66. List<SysMenu> sysMenuListThree = menuMapper.getSysMenuList("F");
  67. //已选中按钮列表
  68. LambdaQueryWrapper<SysPlatformMenu> queryWrapper = Wrappers.lambdaQuery();
  69. queryWrapper.eq(SysPlatformMenu::getPlatformId, platformId);
  70. List<SysPlatformMenu> sysMenuListFour = sysPlatformMenuService.list(queryWrapper);
  71. List<SysPlatformMenu> menuList = baseMapper.getMenuListOne(platformId, "F");
  72. Long[] arr = new Long[menuList.size()];
  73. for (int i = 0; i < menuList.size(); i++) {
  74. arr[i] = menuList.get(i).getMenuId();
  75. }
  76. List<SysMenuTwoVo> sysMenuVoListOne = new ArrayList<>();
  77. List<SysMenuOneVo> SysMenuVoList = new ArrayList<>();
  78. List<SysMenuVo> SysMenuVoListOne = new ArrayList<>();
  79. List<Object> list = new ArrayList<>();
  80. for (int i = 0; i < sysMenuListThree.size(); i++) {
  81. SysMenuTwoVo sysMenuTwoVo = new SysMenuTwoVo();
  82. sysMenuTwoVo.setId(sysMenuListThree.get(i).getMenuId());
  83. sysMenuTwoVo.setName(sysMenuListThree.get(i).getMenuName());
  84. sysMenuTwoVo.setFid(sysMenuListThree.get(i).getParentId());
  85. long Id = sysMenuListThree.get(i).getMenuId();
  86. sysMenuTwoVo.setChecked(false);
  87. if (sysMenuListFour.size() > 0) {
  88. for (int j = 0; j < sysMenuListFour.size(); j++) {
  89. long MenuId = sysMenuListFour.get(j).getMenuId();
  90. if (Id == MenuId) {
  91. sysMenuTwoVo.setChecked(true);
  92. }
  93. }
  94. } else {
  95. sysMenuTwoVo.setChecked(false);
  96. }
  97. sysMenuVoListOne.add(sysMenuTwoVo);
  98. }
  99. for (int i = 0; i < sysMenuListOne.size(); i++) {
  100. SysMenuOneVo sysMenuOneVo = new SysMenuOneVo();
  101. sysMenuOneVo.setId(sysMenuListOne.get(i).getMenuId());
  102. sysMenuOneVo.setMenu(sysMenuListOne.get(i).getMenuName());
  103. sysMenuOneVo.setFid(sysMenuListOne.get(i).getParentId());
  104. long id = sysMenuListOne.get(i).getMenuId();
  105. List<SysMenuTwoVo> sysMenuVoListTwo = new ArrayList<>();
  106. List<SysMenuTwoVo> menuListTrue = new ArrayList<>();
  107. for (int j = 0; j < sysMenuVoListOne.size(); j++) {
  108. long FId = sysMenuVoListOne.get(j).getFid();
  109. Boolean pd = sysMenuVoListOne.get(j).getChecked();
  110. if (id == FId) {
  111. sysMenuVoListTwo.add(sysMenuVoListOne.get(j));
  112. if (pd==true){
  113. menuListTrue.add(sysMenuVoListOne.get(j));
  114. }
  115. }
  116. }
  117. sysMenuOneVo.setAuthority(sysMenuVoListTwo);
  118. if (menuListTrue.size()>0){
  119. sysMenuOneVo.setChecked(true);
  120. }else {
  121. sysMenuOneVo.setChecked(false);
  122. }
  123. SysMenuVoList.add(sysMenuOneVo);
  124. }
  125. for (int i = 0; i < sysMenuListTwo.size(); i++) {
  126. SysMenuVo sysMenuVo = new SysMenuVo();
  127. sysMenuVo.setId(sysMenuListTwo.get(i).getMenuId());
  128. sysMenuVo.setMenu(sysMenuListTwo.get(i).getMenuName());
  129. sysMenuVo.setFid(sysMenuListTwo.get(i).getParentId());
  130. long id = sysMenuListTwo.get(i).getMenuId();
  131. List<SysMenuOneVo> SysMenuVoListThree = new ArrayList<>();
  132. List<SysMenuOneVo> menuListtrueOne = new ArrayList<>();
  133. for (int j = 0; j < SysMenuVoList.size(); j++) {
  134. long FId = SysMenuVoList.get(j).getFid();
  135. Boolean pd = SysMenuVoList.get(j).getChecked();
  136. if (id == FId) {
  137. SysMenuVoListThree.add(SysMenuVoList.get(j));
  138. if (pd==true){
  139. menuListtrueOne.add(SysMenuVoList.get(j));
  140. }
  141. }
  142. }
  143. sysMenuVo.setChildren(SysMenuVoListThree);
  144. if (menuListtrueOne.size()>0){
  145. sysMenuVo.setChecked(true);
  146. }else {
  147. sysMenuVo.setChecked(false);
  148. }
  149. SysMenuVoListOne.add(sysMenuVo);
  150. }
  151. for (int i = 0; i < SysMenuVoListOne.size(); i++) {
  152. String name = SysMenuVoListOne.get(i).getMenu();
  153. if (name.equals("数据管理") || name.equals("电能质量") || name.equals("系统管理")|| name.equals("租户管理")) {
  154. list.add(SysMenuVoListOne.get(i));
  155. } else {
  156. for (int j = 0; j < SysMenuVoList.size(); j++) {
  157. String name2 = SysMenuVoList.get(j).getMenu();
  158. if (name.equals(name2)) {
  159. list.add(SysMenuVoList.get(j));
  160. }
  161. }
  162. }
  163. }
  164. Map<String,Object> ajax = new HashMap<>();
  165. ajax.put("checkedKeys",arr);
  166. ajax.put("menus", list);
  167. return ajax;
  168. // return list;
  169. }
  170. @Override
  171. @Transactional
  172. public void updatePlatformMenu(PlatformMenuVo platformMenuVo){
  173. SysPlatform sysPlatform = new SysPlatform();
  174. if(platformMenuVo.getPlatformId().intValue()==0){
  175. sysPlatform.setPlatformName(platformMenuVo.getPlatformName());
  176. sysPlatform.setUpdateBy(SecurityUtils.getUser().getUserName());
  177. sysPlatform.setUpdateTime(LocalDateTime.now());
  178. this.save(sysPlatform);
  179. Integer fid = sysPlatform.getId();
  180. platformMenuVo.setPlatformId(fid.longValue());
  181. }
  182. Long[] arr = platformMenuVo.getMenuIds();
  183. //菜单ID
  184. List<SysMenu> menuIdList = baseMapper.getMenuIdListOne(arr, "F");
  185. Long arr1[] = new Long[menuIdList.size()];
  186. for (int i=0;i<menuIdList.size();i++){
  187. arr1[i] = menuIdList.get(i).getParentId();
  188. }
  189. //目录ID
  190. List<SysMenu> menuIdListOne = baseMapper.getMenuIdListOne(arr1, "C");
  191. Long arr2[] = new Long[menuIdListOne.size()];
  192. for (int i=0;i<menuIdListOne.size();i++){
  193. arr2[i] = menuIdListOne.get(i).getParentId();
  194. }
  195. List<SysMenu> menuIdListTwo = baseMapper.getMenuIdListOne(arr, "C");
  196. Long arr4[] = new Long[menuIdListTwo.size()];
  197. for (int i=0;i<menuIdListTwo.size();i++){
  198. arr4[i] = menuIdListTwo.get(i).getParentId();
  199. }
  200. Long[] arr5 =arrayMerge(arr1,arr2);
  201. Long[] arr6 =arrayMerge(arr5,arr4);
  202. Long[] arr7 =arrayMerge(arr6,arr);
  203. List arr3 = new ArrayList();
  204. for (int i=0;i<arr7.length;i++){
  205. if(!arr3.contains(arr7[i])){
  206. arr3.add(arr7[i]);
  207. }
  208. }
  209. // 删除租户菜单关联
  210. baseMapper.deletePlatformMenuBy(platformMenuVo.getPlatformId());
  211. //新增菜单
  212. if (arr3.size()>0){
  213. for (int i=0;i<arr3.size();i++){
  214. SysPlatformMenu sysPlatformMenu = new SysPlatformMenu();
  215. sysPlatformMenu.setMenuId((Long) arr3.get(i));
  216. sysPlatformMenu.setPlatformId(platformMenuVo.getPlatformId());
  217. sysPlatformMenuService.save(sysPlatformMenu);
  218. }
  219. }
  220. }
  221. public Long[] arrayMerge(Long[] arr1,Long[] arr2){
  222. Long arr3[] = new Long[arr1.length+arr2.length];
  223. for (int i=0;i<arr1.length;i++){
  224. arr3[i] = arr1[i];
  225. }
  226. for (int i=0;i<arr2.length;i++){
  227. arr3[i+arr1.length] = arr2[i];
  228. }
  229. return arr3;
  230. }
  231. }