|
|
|
@ -1,30 +1,27 @@
|
|
|
|
|
package jnpf.permission.service.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.util.ArrayUtil;
|
|
|
|
|
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
import com.sun.org.apache.xpath.internal.operations.Bool;
|
|
|
|
|
import jnpf.base.UserInfo;
|
|
|
|
|
import jnpf.permission.constant.PermissionConst;
|
|
|
|
|
import jnpf.permission.entity.*;
|
|
|
|
|
import jnpf.permission.entity.PermissionEntityBase;
|
|
|
|
|
import jnpf.permission.entity.PositionEntity;
|
|
|
|
|
import jnpf.permission.entity.UserEntity;
|
|
|
|
|
import jnpf.permission.entity.UserRelationEntity;
|
|
|
|
|
import jnpf.permission.mapper.UserRelationMapper;
|
|
|
|
|
import jnpf.permission.model.permission.PermissionModel;
|
|
|
|
|
import jnpf.permission.model.permission.PermissionVoBase;
|
|
|
|
|
import jnpf.permission.model.userrelation.UserRelationForm;
|
|
|
|
|
import jnpf.permission.service.*;
|
|
|
|
|
import jnpf.permission.util.PermissionUtil;
|
|
|
|
|
import jnpf.util.JsonUtil;
|
|
|
|
|
import jnpf.util.RandomUtil;
|
|
|
|
|
import jnpf.util.StringUtil;
|
|
|
|
|
import jnpf.util.UserProvider;
|
|
|
|
|
import org.apache.poi.ss.formula.functions.T;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Isolation;
|
|
|
|
|
import org.springframework.transaction.annotation.Propagation;
|
|
|
|
|
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
|
|
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Collections;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -259,6 +256,32 @@ public class UserRelationServiceImpl extends ServiceImpl<UserRelationMapper, Use
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<PermissionModel> getObjectVoList(String objectType, UserEntity userEntity) {
|
|
|
|
|
String userId = userEntity.getId();
|
|
|
|
|
String majorOrgId = userEntity.getOrganizeId();
|
|
|
|
|
|
|
|
|
|
// 组装对应组织/岗位/角色对象
|
|
|
|
|
switch (objectType) {
|
|
|
|
|
case PermissionConst.ORGANIZE:
|
|
|
|
|
// 使用in查询减少数据库查询次数
|
|
|
|
|
List<String> ids = new ArrayList<>();
|
|
|
|
|
this.getListByObjectType(userId, objectType).forEach(r -> ids.add(r.getObjectId()));
|
|
|
|
|
List<PermissionModel> permissionModels = setModel(organizeService.getOrgEntityList(ids, false), majorOrgId);
|
|
|
|
|
permissionModels.forEach(p->p.setFullName(PermissionUtil.getLinkInfoByOrgId(p.getId(), organizeService, false)));
|
|
|
|
|
return permissionModels;
|
|
|
|
|
case PermissionConst.POSITION:
|
|
|
|
|
// 岗位遵循一对多关系
|
|
|
|
|
List<PositionEntity> positionList = positionService.getListByUserId(userId);
|
|
|
|
|
if (positionList.size() > 0) {
|
|
|
|
|
return setModel(positionList.stream().filter(p -> p.getOrganizeId().equals(majorOrgId))
|
|
|
|
|
.collect(Collectors.toList()), userEntity.getPositionId());
|
|
|
|
|
}
|
|
|
|
|
default:
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 设置返回模型
|
|
|
|
|
*
|
|
|
|
|