|
|
@@ -1,15 +1,15 @@
|
|
|
package com.usoftchina.saas.account.service.impl;
|
|
|
|
|
|
import com.usoftchina.saas.account.constant.RoleType;
|
|
|
+import com.usoftchina.saas.account.dto.OtherPowerDTO;
|
|
|
+import com.usoftchina.saas.account.dto.PowerDTO;
|
|
|
import com.usoftchina.saas.account.dto.RoleBaseDTO;
|
|
|
-import com.usoftchina.saas.account.mapper.AccountRoleMapper;
|
|
|
-import com.usoftchina.saas.account.mapper.RoleMapper;
|
|
|
-import com.usoftchina.saas.account.mapper.RoleResourceMapper;
|
|
|
-import com.usoftchina.saas.account.po.Resource;
|
|
|
-import com.usoftchina.saas.account.po.Role;
|
|
|
+import com.usoftchina.saas.account.mapper.*;
|
|
|
+import com.usoftchina.saas.account.po.*;
|
|
|
import com.usoftchina.saas.account.service.ResourceService;
|
|
|
import com.usoftchina.saas.account.service.RoleService;
|
|
|
import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
|
|
|
+import com.usoftchina.saas.context.BaseContextHolder;
|
|
|
import com.usoftchina.saas.utils.BeanMapper;
|
|
|
import com.usoftchina.saas.utils.CollectionUtils;
|
|
|
import com.usoftchina.saas.utils.StringUtils;
|
|
|
@@ -18,7 +18,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* @author yingp
|
|
|
@@ -38,6 +40,15 @@ public class RoleServiceImpl extends CommonBaseServiceImpl<RoleMapper, Role> imp
|
|
|
@Autowired
|
|
|
private ResourceService resourceService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ResourceModuleMapper resourceModuleMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ResourceGroupMapper resourceGroupMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ResourceMapper resourceMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public boolean save(Role role) {
|
|
|
if (StringUtils.isEmpty(role.getCode())) {
|
|
|
@@ -78,4 +89,85 @@ public class RoleServiceImpl extends CommonBaseServiceImpl<RoleMapper, Role> imp
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<PowerDTO> getResourcePowerById(Long id) {
|
|
|
+ List<PowerDTO> powerDTOList = new ArrayList<PowerDTO>();
|
|
|
+ List<Map<String, Object>> classifyList = roleResourceMapper.selectClassifyByRoleId(id);
|
|
|
+ List<OtherPower> otherPowerList = roleResourceMapper.selectOthersPower(id);
|
|
|
+ //查询所有模块
|
|
|
+ List<ResourceModule> modules = resourceModuleMapper.selectByAppId(BaseContextHolder.getAppId());
|
|
|
+ for (ResourceModule module : modules){
|
|
|
+ //查询所有分组
|
|
|
+ List<ResourceGroup> groups = resourceGroupMapper.selectByModuleId(module.getId());
|
|
|
+ for (ResourceGroup group : groups) {
|
|
|
+ PowerDTO powerDTO = new PowerDTO();
|
|
|
+ powerDTO.setGroupId(group.getId());
|
|
|
+ powerDTO.setModuleName(module.getName());
|
|
|
+ powerDTO.setGroupName(group.getName());
|
|
|
+ //赋值权限
|
|
|
+ for (Map<String, Object> map : classifyList){
|
|
|
+ if (group.getId().equals(map.get("group_id"))){
|
|
|
+ String classify = String.valueOf(map.get("classify"));
|
|
|
+ setPowerValue(powerDTO, classify);
|
|
|
+ if (classify.contains("OTHER")){
|
|
|
+ setOtherPower(powerDTO, group.getId(), otherPowerList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ powerDTOList.add(powerDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return powerDTOList;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void setOtherPower(PowerDTO powerDTO, Long groupId, List<OtherPower> otherPowerList) {
|
|
|
+ List<OtherPower> otherPowers = new ArrayList<OtherPower>();
|
|
|
+ for (OtherPower otherPower : otherPowerList){
|
|
|
+ if (otherPower.getGroupId().equals(groupId)){
|
|
|
+ otherPowers.add(otherPower);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<OtherPowerDTO> otherPowerDTOList = BeanMapper.mapList(otherPowers, OtherPowerDTO.class);
|
|
|
+ powerDTO.setOther(otherPowerDTOList);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void setPowerValue(PowerDTO powerDTO, String classify) {
|
|
|
+ String[] array = classify.split(",");
|
|
|
+ for(int i = 0; i < array.length; i++){
|
|
|
+ switch (array[i]){
|
|
|
+ case "QUERY":
|
|
|
+ powerDTO.setQuery(true);
|
|
|
+ break;
|
|
|
+ case "ADD":
|
|
|
+ powerDTO.setAdd(true);
|
|
|
+ break;
|
|
|
+ case "UPDATE":
|
|
|
+ powerDTO.setUpdate(true);
|
|
|
+ break;
|
|
|
+ case "AUDIT":
|
|
|
+ powerDTO.setAudit(true);
|
|
|
+ break;
|
|
|
+ case "UNAUDIT":
|
|
|
+ powerDTO.setUnAudit(true);
|
|
|
+ break;
|
|
|
+ case "DELETE":
|
|
|
+ powerDTO.setDelete(true);
|
|
|
+ break;
|
|
|
+ case "PRINT":
|
|
|
+ powerDTO.setPrint(true);
|
|
|
+ break;
|
|
|
+ case "EXPORT":
|
|
|
+ powerDTO.setFileExport(true);
|
|
|
+ break;
|
|
|
+ case "IMPORT":
|
|
|
+ powerDTO.setFileImport(true);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|