|
@@ -16,6 +16,7 @@ import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
import com.qmth.teachcloud.common.enums.FieldUniqueEnum;
|
|
import com.qmth.teachcloud.common.enums.FieldUniqueEnum;
|
|
import com.qmth.teachcloud.common.enums.OrgTypeEnum;
|
|
import com.qmth.teachcloud.common.enums.OrgTypeEnum;
|
|
import com.qmth.teachcloud.common.enums.RoleTypeEnum;
|
|
import com.qmth.teachcloud.common.enums.RoleTypeEnum;
|
|
|
|
+import com.qmth.teachcloud.common.enums.userPush.SpecialPrivilegeEnum;
|
|
import com.qmth.teachcloud.common.mapper.SysOrgMapper;
|
|
import com.qmth.teachcloud.common.mapper.SysOrgMapper;
|
|
import com.qmth.teachcloud.common.service.*;
|
|
import com.qmth.teachcloud.common.service.*;
|
|
import com.qmth.teachcloud.common.util.ResultUtil;
|
|
import com.qmth.teachcloud.common.util.ResultUtil;
|
|
@@ -59,14 +60,31 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
|
|
BasicCampusService basicCampusService;
|
|
BasicCampusService basicCampusService;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public List<OrgDto> listOrgTree() {
|
|
|
|
|
|
+ public List<OrgDto> listOrgTree(SpecialPrivilegeEnum specialPrivilegeEnum) {
|
|
Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
|
|
Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
|
|
List<SysUserResult> sysUserResultList = sysUserService.findSysUserResultList();
|
|
List<SysUserResult> sysUserResultList = sysUserService.findSysUserResultList();
|
|
|
|
+ List<SysUserResult> finalSysUserResultList = sysUserResultList.stream()
|
|
|
|
+ .filter(e -> {
|
|
|
|
+ if (Objects.isNull(specialPrivilegeEnum)){
|
|
|
|
+ return true;
|
|
|
|
+ }else {
|
|
|
|
+ // 用户特殊权限
|
|
|
|
+ SpecialPrivilegeEnum userP = sysUserService.findUserSpecialPrivilegeByUserId(e.getId());
|
|
|
|
+ // 如果用户是复合权限,条件为复合、评卷员、科组长都可以
|
|
|
|
+ if (SpecialPrivilegeEnum.COMPOSITE.equals(userP)){
|
|
|
|
+ return SpecialPrivilegeEnum.COMPOSITE.equals(specialPrivilegeEnum) || SpecialPrivilegeEnum.MARKER.equals(specialPrivilegeEnum) || SpecialPrivilegeEnum.SUBJECT_HEADER.equals(specialPrivilegeEnum);
|
|
|
|
+ }else {
|
|
|
|
+ // 如果用户不是复合条件,用户权限和条件权限对应
|
|
|
|
+ return specialPrivilegeEnum.equals(userP);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+
|
|
List<OrgDto> orgList = this.listOrgAll(schoolId);
|
|
List<OrgDto> orgList = this.listOrgAll(schoolId);
|
|
Map<Long, OrgDto> map = orgList.stream()
|
|
Map<Long, OrgDto> map = orgList.stream()
|
|
.peek(e -> {
|
|
.peek(e -> {
|
|
// 加入机构下所有人员查询
|
|
// 加入机构下所有人员查询
|
|
- e.setSysUserList(sysUserResultList.stream().filter(f -> f.getOrgId().equals(e.getId())).collect(Collectors.toList()));
|
|
|
|
|
|
+ e.setSysUserList(finalSysUserResultList.stream().filter(f -> f.getOrgId().equals(e.getId())).collect(Collectors.toList()));
|
|
})
|
|
})
|
|
.collect(Collectors.toMap(OrgDto::getId, Function.identity(), (dto1, dto2) -> dto1));
|
|
.collect(Collectors.toMap(OrgDto::getId, Function.identity(), (dto1, dto2) -> dto1));
|
|
|
|
|