package com.dsh.upms.service.impl;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
import cn.mb.cloud.common.data.base.impl.BaseServiceImpl;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.dsh.upms.entity.SysMenu;
|
import com.dsh.upms.entity.SysRoleMenu;
|
import com.dsh.upms.entity.SysUserRole;
|
import com.dsh.upms.mapper.SysRoleMenuMapper;
|
import com.dsh.upms.mapper.SysUserRoleMapper;
|
import com.dsh.upms.service.ISysDoctorMenuService;
|
import com.dsh.upms.service.ISysMenuService;
|
import com.dsh.upms.service.ISysRoleMenuService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.CollectionUtils;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 角色菜单表 服务实现类
|
* </p>
|
*
|
* @author null123
|
* @since 2022-05-16
|
*/
|
@Service
|
public class SysRoleMenuServiceImpl extends BaseServiceImpl<SysRoleMenuMapper, SysRoleMenu> implements ISysRoleMenuService {
|
|
@Autowired
|
private SysUserRoleMapper userRoleMapper;
|
@Autowired
|
private ISysMenuService sysMenuService;
|
@Autowired
|
private ISysDoctorMenuService doctorMenuService;
|
|
|
/**
|
* @param roleId 角色
|
* @param menuIds
|
* @return
|
*/
|
@Override
|
public Boolean saveRoleMenus(Long roleId, List<Long> menuIds) {
|
this.remove(Wrappers.<SysRoleMenu>query().lambda().eq(SysRoleMenu::getRoleId, roleId));
|
|
if (CollectionUtils.isEmpty(menuIds)) {
|
return Boolean.TRUE;
|
}
|
List<SysRoleMenu> roleMenuList = menuIds.stream().map(resId -> {
|
SysRoleMenu roleMenu = new SysRoleMenu();
|
roleMenu.setRoleId(roleId);
|
roleMenu.setMenuId(resId);
|
return roleMenu;
|
}
|
).collect(Collectors.toList());
|
return this.saveBatch(roleMenuList);
|
}
|
|
/**
|
* 查询当前角色是否绑定用户
|
*
|
* @param roleId
|
* @return
|
*/
|
@Override
|
public Boolean getList(Long roleId) {
|
Map<String, Object> columnMap = new HashMap();
|
columnMap.put("role_id", roleId);
|
List<SysUserRole> userRoleList = userRoleMapper.selectByMap(columnMap);
|
if (CollUtil.isNotEmpty(userRoleList)) {
|
return Boolean.TRUE;
|
} else {
|
return Boolean.FALSE;
|
}
|
}
|
|
|
/**
|
* 同步admin账号的所有权限
|
*/
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public void synchronousAdminMenu() {
|
this.getBaseMapper().deleteAdminMenu(1L);
|
doctorMenuService.deleteAdminMenu(1L);
|
List<SysMenu> menuList = sysMenuService
|
.list(Wrappers.<SysMenu>query().lambda()
|
.eq(SysMenu::getDelFlag, 0)
|
.orderByAsc(SysMenu::getSort));
|
List<SysRoleMenu> sysRoleMenuList = new ArrayList<>();
|
for (SysMenu sysMenu : menuList) {
|
SysRoleMenu sysRoleMenu = new SysRoleMenu();
|
sysRoleMenu.setRoleId(1L);
|
sysRoleMenu.setMenuId(sysMenu.getId());
|
sysRoleMenuList.add(sysRoleMenu);
|
//维护医生和菜单表关系
|
SysDoctorMenu sysDoctorMenu = new SysDoctorMenu();
|
sysDoctorMenu.setDoctorId(1L);
|
sysDoctorMenu.setMenuId(sysMenu.getId());
|
doctorMenuService.save(sysDoctorMenu);
|
}
|
this.saveBatch(sysRoleMenuList);
|
}
|
}
|