| | |
| | | |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.core.util.IdUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.yuanchu.limslaboratory.exception.AuthException; |
| | | import com.yuanchu.limslaboratory.mapper.MenuMapper; |
| | | import com.yuanchu.limslaboratory.mapper.RoleManageMapper; |
| | | import com.yuanchu.limslaboratory.pojo.Menu; |
| | |
| | | import com.yuanchu.limslaboratory.pojo.dto.RoleInfoDto; |
| | | import com.yuanchu.limslaboratory.pojo.dto.UpdateRoleMenuDto; |
| | | import com.yuanchu.limslaboratory.service.RoleManagerService; |
| | | import com.yuanchu.limslaboratory.utils.ArrayListUtil; |
| | | import com.yuanchu.limslaboratory.utils.JsonUtil; |
| | | import com.yuanchu.limslaboratory.utils.MyUtil; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | |
| | | * @Date 2023/8/23 |
| | | */ |
| | | @Service |
| | | @Slf4j |
| | | public class RoleManagerServiceImpl implements RoleManagerService { |
| | | |
| | | @Resource |
| | |
| | | ,createTime |
| | | )); |
| | | }); |
| | | roleMenuList.add(new RoleMenu(null,nextId,39L,true,false,false,false,createTime)); |
| | | //roleMenuAddList.forEach(System.out::println); |
| | | int i = roleManageMapper.insertBatchRoleMenu(roleMenuList); |
| | | return insert>0&&i>0; |
| | |
| | | List<RoleAndMenuDto> roleAndMenuDtos = roleManageMapper.selectAllRoleAndMenu(dto); |
| | | roleAndMenuDtos.forEach(r->{ |
| | | List<RoleMenu>roleMenuList=r.getRoleMenuList(); |
| | | //System.out.println(roleMenuList); |
| | | List<RoleMenu> collect = roleMenuList.stream() |
| | | .filter(t -> t.getParentId() == 0) |
| | | .peek((menu) -> menu.setChildren(this.getRoleMenuChildren(menu, roleMenuList))) |
| | | .collect(Collectors.toList()); |
| | | r.setRoleMenuList(collect); |
| | | }); |
| | | roleAndMenuDtos.forEach(r->{ |
| | | r.getRoleMenuList().forEach(System.out::println); |
| | | }); |
| | | //roleAndMenuDtos.forEach(r->{ |
| | | // r.getRoleMenuList().forEach(System.out::println); |
| | | //}); |
| | | Map<String, Object>result=new HashMap<>(3); |
| | | result.put("list",roleAndMenuDtos); |
| | | int size = roleManageMapper.getRoleInfoByName(dto.getName()).size(); |
| | |
| | | .set(RoleInfo::getUpdateTime,DateUtil.toLocalDateTime(DateUtil.date())) |
| | | .eq(RoleInfo::getId,dto.getRoleId()); |
| | | int update = roleManageMapper.update(null, updateWrapper); |
| | | //删除role_menu信息 |
| | | int deleteRoleMenuByRoleId = roleManageMapper.deleteRoleMenuByRoleId(dto.getRoleId()); |
| | | List<RoleMenu> roleMenuByRoleId = roleManageMapper.getRoleMenuByRoleId(dto.getRoleId()); |
| | | if (roleMenuByRoleId.size()>1){ |
| | | //删除role_menu信息 |
| | | update = roleManageMapper.deleteRoleMenuByRoleId(dto.getRoleId()); |
| | | } |
| | | //添加最新选择、 |
| | | dto.getMenuData().forEach(l->{ |
| | | l.setRoleId(dto.getRoleId()); |
| | | l.setCreateTime(DateUtil.toLocalDateTime(DateUtil.date())); |
| | | l.setUpdateTime(DateUtil.toLocalDateTime(DateUtil.date())); |
| | | }); |
| | | int insertBatchRoleMenu = roleManageMapper.insertBatchRoleMenu(dto.getMenuData()); |
| | | return update>0&&deleteRoleMenuByRoleId>0&&insertBatchRoleMenu>0; |
| | | List<RoleMenu> collect = dto.getMenuData().stream().filter(l -> l.getAdded() == false && l.getDeleted() == false && l.getSelected() == false && l.getUpdated() == false).collect(Collectors.toList()); |
| | | List<RoleMenu> roleMenuList = ArrayListUtil.compareNotEqualListBySingleValue(dto.getMenuData(), collect); |
| | | if(roleMenuList.size()>0){ |
| | | return update>0&&roleManageMapper.insertBatchRoleMenu(roleMenuList)>0; |
| | | }else { |
| | | return update>0; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | |
| | | return roleManageMapper.selectAllRoleAndMenuByRoleId(roleId); |
| | | } |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> getUserListRole() { |
| | | return roleManageMapper.getUserListRole(); |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Object> getUrlType(String url) { |
| | | String type=null; |
| | | Map<String, Object> stringIntegerMap = roleManageMapper.selctInterFaceType(url); |
| | | if(Objects.isNull(stringIntegerMap)){ |
| | | log.warn("没有====》"+url+"请求资源"); |
| | | throw new AuthException("403","没有该资源"); |
| | | } |
| | | String of = String.valueOf(stringIntegerMap.get("type")); |
| | | switch (of) { |
| | | case "0": |
| | | type="selected"; |
| | | break; |
| | | case "1": |
| | | type="added"; |
| | | break; |
| | | case "2": |
| | | type="updated"; |
| | | break; |
| | | case "3": |
| | | type="deleted"; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | stringIntegerMap.put("type",type); |
| | | return stringIntegerMap; |
| | | } |
| | | |
| | | @Override |
| | | public boolean hasUrl(String type, String menuId, String roleId) { |
| | | return roleManageMapper.hasUrl( type, menuId, roleId).get("num")>0L; |
| | | } |
| | | |
| | | |
| | | private List<Menu> getEnumChildren(Menu root, List<Menu> all) { |
| | | return all.stream() |