|
@@ -2,7 +2,12 @@ package com.qmth.teachcloud.common.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+import com.google.common.reflect.TypeToken;
|
|
|
|
+import com.google.gson.Gson;
|
|
|
|
+import com.qmth.teachcloud.common.bean.dto.MenuDto;
|
|
|
|
+import com.qmth.teachcloud.common.bean.dto.MenuPrivilegeDto;
|
|
import com.qmth.teachcloud.common.bean.dto.PrivilegeDto;
|
|
import com.qmth.teachcloud.common.bean.dto.PrivilegeDto;
|
|
|
|
+import com.qmth.teachcloud.common.bean.result.MenuResult;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.entity.SysPrivilege;
|
|
import com.qmth.teachcloud.common.entity.SysPrivilege;
|
|
import com.qmth.teachcloud.common.entity.SysRolePrivilege;
|
|
import com.qmth.teachcloud.common.entity.SysRolePrivilege;
|
|
@@ -13,9 +18,11 @@ import com.qmth.teachcloud.common.enums.PrivilegePropertyEnum;
|
|
import com.qmth.teachcloud.common.mapper.SysPrivilegeMapper;
|
|
import com.qmth.teachcloud.common.mapper.SysPrivilegeMapper;
|
|
import com.qmth.teachcloud.common.service.SysPrivilegeService;
|
|
import com.qmth.teachcloud.common.service.SysPrivilegeService;
|
|
import com.qmth.teachcloud.common.service.SysRolePrivilegeService;
|
|
import com.qmth.teachcloud.common.service.SysRolePrivilegeService;
|
|
|
|
+import com.qmth.teachcloud.common.util.JacksonUtil;
|
|
import com.qmth.teachcloud.common.util.ServletUtil;
|
|
import com.qmth.teachcloud.common.util.ServletUtil;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.util.LinkedMultiValueMap;
|
|
|
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -35,6 +42,7 @@ public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, Sys
|
|
private SysRolePrivilegeService sysRolePrivilegeService;
|
|
private SysRolePrivilegeService sysRolePrivilegeService;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
|
+ @Deprecated
|
|
public List<PrivilegeDto> listPrivilegeTree() {
|
|
public List<PrivilegeDto> listPrivilegeTree() {
|
|
QueryWrapper<SysPrivilege> queryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<SysPrivilege> queryWrapper = new QueryWrapper<>();
|
|
queryWrapper.lambda().orderByAsc(SysPrivilege::getParentId, SysPrivilege::getSequence)
|
|
queryWrapper.lambda().orderByAsc(SysPrivilege::getParentId, SysPrivilege::getSequence)
|
|
@@ -64,12 +72,69 @@ public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, Sys
|
|
for (Long key : deleteKeys) {
|
|
for (Long key : deleteKeys) {
|
|
map.remove(key);
|
|
map.remove(key);
|
|
}
|
|
}
|
|
-
|
|
|
|
return new ArrayList<>(map.values());
|
|
return new ArrayList<>(map.values());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 获取所有权限
|
|
|
|
+ *
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public MenuResult listPrivilegeTreeNew() {
|
|
|
|
+ Long schoolId = SystemConstant.getHeadOrUserSchoolId();
|
|
|
|
+ QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ sysPrivilegeQueryWrapper.lambda().eq(SysPrivilege::getSchoolId, schoolId)
|
|
|
|
+ .ne(SysPrivilege::getType, PrivilegeEnum.URL);
|
|
|
|
+ List<SysPrivilege> sysPrivilegeList = this.list(sysPrivilegeQueryWrapper);
|
|
|
|
+ Gson gson = new Gson();
|
|
|
|
+ List<MenuDto> menuDtoList = gson.fromJson(JacksonUtil.parseJson(sysPrivilegeList), new TypeToken<List<MenuDto>>() {
|
|
|
|
+ }.getType());
|
|
|
|
+ LinkedMultiValueMap<Long, MenuDto> linkedMultiValueMap = new LinkedMultiValueMap<>();
|
|
|
|
+ List<MenuPrivilegeDto> menuPrivilegeDtoList = new ArrayList<>();
|
|
|
|
+ for (MenuDto m : menuDtoList) {
|
|
|
|
+ if (Objects.isNull(m.getParentId()) || m.getType() == PrivilegeEnum.MENU) {
|
|
|
|
+ menuPrivilegeDtoList.add(gson.fromJson(gson.toJson(m), MenuPrivilegeDto.class));
|
|
|
|
+ } else {
|
|
|
|
+ if (!linkedMultiValueMap.containsKey(m.getParentId())) {
|
|
|
|
+ linkedMultiValueMap.add(m.getParentId(), m);
|
|
|
|
+ } else {
|
|
|
|
+ List<MenuDto> menuDtos = linkedMultiValueMap.get(m.getParentId());
|
|
|
|
+ menuDtos.add(m);
|
|
|
|
+ linkedMultiValueMap.put(m.getParentId(), menuDtos);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ for (MenuPrivilegeDto m : menuPrivilegeDtoList) {
|
|
|
|
+ List<MenuDto> menuDtos = linkedMultiValueMap.get(m.getId());
|
|
|
|
+ List<MenuDto> urls = null, buttons = null, links = null, lists = null, conditions = null;
|
|
|
|
+ if (Objects.nonNull(menuDtos)) {
|
|
|
|
+ for (MenuDto menuDto : menuDtos) {
|
|
|
|
+ if (menuDto.getType() == PrivilegeEnum.BUTTON) {
|
|
|
|
+ buttons = Objects.isNull(buttons) ? new ArrayList<>() : buttons;
|
|
|
|
+ buttons.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
|
|
|
|
+ m.setButtons(buttons);
|
|
|
|
+ } else if (menuDto.getType() == PrivilegeEnum.LINK) {
|
|
|
|
+ links = Objects.isNull(links) ? new ArrayList<>() : links;
|
|
|
|
+ links.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
|
|
|
|
+ m.setLinks(links);
|
|
|
|
+ } else if (menuDto.getType() == PrivilegeEnum.LIST) {
|
|
|
|
+ lists = Objects.isNull(lists) ? new ArrayList<>() : lists;
|
|
|
|
+ lists.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
|
|
|
|
+ m.setLists(lists);
|
|
|
|
+ } else if (menuDto.getType() == PrivilegeEnum.CONDITION) {
|
|
|
|
+ conditions = Objects.isNull(conditions) ? new ArrayList<>() : conditions;
|
|
|
|
+ conditions.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
|
|
|
|
+ m.setConditions(conditions);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return new MenuResult(menuPrivilegeDtoList);
|
|
|
|
+ }
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
- public String savePrivilege(SysPrivilege privilege) {
|
|
|
|
|
|
+ public Long savePrivilege(SysPrivilege privilege) {
|
|
QueryWrapper<SysPrivilege> queryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<SysPrivilege> queryWrapper = new QueryWrapper<>();
|
|
queryWrapper.lambda().eq(SysPrivilege::getParentId, privilege.getParentId()).eq(SysPrivilege::getName, privilege.getName());
|
|
queryWrapper.lambda().eq(SysPrivilege::getParentId, privilege.getParentId()).eq(SysPrivilege::getName, privilege.getName());
|
|
SysPrivilege sysPrivilege = this.getOne(queryWrapper);
|
|
SysPrivilege sysPrivilege = this.getOne(queryWrapper);
|
|
@@ -90,7 +155,7 @@ public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, Sys
|
|
}
|
|
}
|
|
this.updateById(privilege);
|
|
this.updateById(privilege);
|
|
}
|
|
}
|
|
- return String.valueOf(privilege.getId());
|
|
|
|
|
|
+ return privilege.getId();
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|