|
|
@@ -5,12 +5,18 @@ import cn.hutool.core.collection.CollectionUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.jzg.commons.entity.po.SysMenu;
|
|
|
+import com.jzg.commons.entity.po.SysSystemMenu;
|
|
|
+import com.jzg.commons.entity.vo.SystemMenuVo;
|
|
|
+import com.jzg.commons.util.idgen.IdGenerate;
|
|
|
import com.jzg.mapper.SysMenuMapper;
|
|
|
+import com.jzg.mapper.SysSystemMenuMapper;
|
|
|
import com.jzg.service.SysMenuService;
|
|
|
import com.jzg.service.SysUserService;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
+import org.apache.ibatis.executor.BatchResult;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
@@ -26,12 +32,18 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu>
|
|
|
|
|
|
private final SysMenuMapper sysMenuMapper;
|
|
|
|
|
|
+ private final SysSystemMenuMapper sysSystemMenuMapper;
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
- public List<SysMenu> findTree(String userName, int menuType) {
|
|
|
+ public List<SysMenu> findTree(String systemCode, int menuType) {
|
|
|
List<SysMenu> sysMenus = new ArrayList<>();
|
|
|
-
|
|
|
- List<SysMenu> menus = findByUser(userName);
|
|
|
+ List<SysMenu> menus = new ArrayList<>();
|
|
|
+ if(systemCode.equals("PLATFORM")) {
|
|
|
+ menus = findByUser(systemCode);
|
|
|
+ }else{
|
|
|
+ menus = sysMenuMapper.getSystemMenusRecursion(systemCode);
|
|
|
+ }
|
|
|
for (SysMenu menu : menus) {
|
|
|
if (menu.getParentId() == null || menu.getParentId().equalsIgnoreCase("0")) {
|
|
|
menu.setLevel(0);
|
|
|
@@ -46,7 +58,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu>
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<SysMenu> findByUser(String userName) {
|
|
|
+ public List<SysMenu> findByUser(String systemCode) {
|
|
|
LambdaQueryWrapper<SysMenu> lqw = new LambdaQueryWrapper<>();
|
|
|
lqw.eq(SysMenu::getDelFlag, 0);
|
|
|
lqw.eq(SysMenu::getSysType, 1);
|
|
|
@@ -65,6 +77,50 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu>
|
|
|
return perms;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SysMenu> getSystemMenu(String systemCode) {
|
|
|
+ List<SysMenu> sysMenus = new ArrayList<>();
|
|
|
+ List<SysMenu> menus = sysMenuMapper.getSystemMenus(systemCode);
|
|
|
+// List<SysMenu> menus = findByUser(userName);
|
|
|
+ for (SysMenu menu : menus) {
|
|
|
+ if (menu.getParentId() == null || menu.getParentId().equalsIgnoreCase("0")) {
|
|
|
+ menu.setLevel(0);
|
|
|
+ if (!exists(sysMenus, menu)) {
|
|
|
+ sysMenus.add(menu);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sysMenus.sort((o1, o2) -> o1.getOrderNum().compareTo(o2.getOrderNum()));
|
|
|
+ findChildren(sysMenus, menus, 1);
|
|
|
+ return sysMenus;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public Boolean saveSystemMenu(SystemMenuVo systemMenuVo) {
|
|
|
+ // 先删除原先的
|
|
|
+ Long count = sysSystemMenuMapper.selectCount(new LambdaQueryWrapper<SysSystemMenu>()
|
|
|
+ .eq(SysSystemMenu::getSystemCode, systemMenuVo.getSystemCode()));
|
|
|
+ if(count > 0){
|
|
|
+ int delete = sysSystemMenuMapper.delete(new LambdaQueryWrapper<SysSystemMenu>()
|
|
|
+ .eq(SysSystemMenu::getSystemCode, systemMenuVo.getSystemCode()));
|
|
|
+ }
|
|
|
+
|
|
|
+ List<SysSystemMenu> sysSystemMenus = new ArrayList<>();
|
|
|
+ // 添加
|
|
|
+ systemMenuVo.getMenus().forEach(item->{
|
|
|
+ SysSystemMenu sysSystemMenu = new SysSystemMenu();
|
|
|
+ sysSystemMenu.setId(IdGenerate.nextId());
|
|
|
+ sysSystemMenu.setSystemCode(systemMenuVo.getSystemCode());
|
|
|
+ sysSystemMenu.setMenuId(item);
|
|
|
+ sysSystemMenus.add(sysSystemMenu);
|
|
|
+ });
|
|
|
+ sysSystemMenuMapper.insert(sysSystemMenus);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
private void findChildren(List<SysMenu> SysMenus, List<SysMenu> menus, int menuType) {
|
|
|
|
|
|
for (SysMenu SysMenu : SysMenus) {
|