Create AccessRoleServiceImpl.java
parent
ce0b254201
commit
48efc68c62
@ -0,0 +1,96 @@
|
|||||||
|
|
||||||
|
package com.anjiplus.template.gaea.business.modules.accessrole.service.impl;
|
||||||
|
|
||||||
|
import com.anji.plus.gaea.bean.TreeNode;
|
||||||
|
import com.anji.plus.gaea.curd.mapper.GaeaBaseMapper;
|
||||||
|
import com.anji.plus.gaea.exception.BusinessExceptionBuilder;
|
||||||
|
import com.anjiplus.template.gaea.business.code.ResponseCode;
|
||||||
|
import com.anjiplus.template.gaea.business.modules.accessauthority.dao.entity.AccessAuthority;
|
||||||
|
import com.anjiplus.template.gaea.business.modules.accessauthority.service.AccessAuthorityService;
|
||||||
|
import com.anjiplus.template.gaea.business.modules.accessrole.controller.dto.AccessRoleDto;
|
||||||
|
import com.anjiplus.template.gaea.business.modules.accessrole.dao.AccessRoleAuthorityMapper;
|
||||||
|
import com.anjiplus.template.gaea.business.modules.accessrole.dao.entity.AccessRole;
|
||||||
|
import com.anjiplus.template.gaea.business.modules.accessrole.dao.entity.AccessRoleAuthority;
|
||||||
|
import com.anjiplus.template.gaea.business.modules.accessrole.service.AccessRoleService;
|
||||||
|
import com.anjiplus.template.gaea.business.modules.accessrole.dao.AccessRoleMapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.checkerframework.checker.units.qual.A;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @desc AccessRole 角色管理服务实现
|
||||||
|
* @author 木子李·De <lide1202@hotmail.com>
|
||||||
|
* @date 2019-02-17 08:50:14.136
|
||||||
|
**/
|
||||||
|
@Service
|
||||||
|
public class AccessRoleServiceImpl implements AccessRoleService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AccessRoleMapper accessRoleMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AccessRoleAuthorityMapper accessRoleAuthorityMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AccessAuthorityService accessAuthorityService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GaeaBaseMapper<AccessRole> getMapper() {
|
||||||
|
return accessRoleMapper;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map getAuthorityTree(String roleCode, String operator) {
|
||||||
|
Map<String, Object> result = new HashMap<String, Object>();
|
||||||
|
|
||||||
|
// 菜单按钮树
|
||||||
|
List<TreeNode> treeData = accessAuthorityService.getAuthorityTree(operator, true);
|
||||||
|
|
||||||
|
// 该角色已选中的菜单及按钮
|
||||||
|
List<String> checkedKeys = accessRoleMapper.checkedAuthoritys(roleCode);
|
||||||
|
|
||||||
|
result.put("treeData", treeData);
|
||||||
|
result.put("checkedKeys", checkedKeys);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean saveAuthorityTree(AccessRoleDto accessRoleDto) {
|
||||||
|
// 校验
|
||||||
|
String roleCode = accessRoleDto.getRoleCode();
|
||||||
|
List<String> authorityList = accessRoleDto.getAuthorityList();
|
||||||
|
if(StringUtils.isBlank(roleCode)){
|
||||||
|
throw BusinessExceptionBuilder.build(ResponseCode.Not_Empty, roleCode);
|
||||||
|
}
|
||||||
|
if(authorityList == null || authorityList.isEmpty()){
|
||||||
|
throw BusinessExceptionBuilder.build(ResponseCode.Not_Empty, authorityList);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 先清除该角色已保存的权限
|
||||||
|
LambdaQueryWrapper<AccessRoleAuthority> wrapper = Wrappers.lambdaQuery();
|
||||||
|
wrapper.eq(AccessRoleAuthority::getRoleCode, roleCode);
|
||||||
|
accessRoleAuthorityMapper.delete(wrapper);
|
||||||
|
|
||||||
|
// 保存勾选的权限(菜单和按钮)
|
||||||
|
authorityList.stream().forEach(authorityStr -> {
|
||||||
|
if(!authorityStr.contains("_")){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String[] array = authorityStr.split("_");
|
||||||
|
AccessRoleAuthority accessRoleAuthority = new AccessRoleAuthority();
|
||||||
|
accessRoleAuthority.setRoleCode(roleCode);
|
||||||
|
accessRoleAuthority.setTarget(array[0].trim());
|
||||||
|
accessRoleAuthority.setAction(array[1].trim());
|
||||||
|
accessRoleAuthorityMapper.insert(accessRoleAuthority);
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue