|
@@ -16,11 +16,9 @@ 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.mapper.SysOrgMapper;
|
|
import com.qmth.teachcloud.common.mapper.SysOrgMapper;
|
|
-import com.qmth.teachcloud.common.mapper.SysUserMapper;
|
|
|
|
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;
|
|
import com.qmth.teachcloud.common.util.ServletUtil;
|
|
import com.qmth.teachcloud.common.util.ServletUtil;
|
|
-import org.apache.ibatis.annotations.Case;
|
|
|
|
import org.springframework.dao.DuplicateKeyException;
|
|
import org.springframework.dao.DuplicateKeyException;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -301,20 +299,26 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public List<SysOrg> findDeepByOrgIdAndType(OrgTypeEnum orgTypeEnum) {
|
|
|
|
|
|
+ public List<SysOrg> findDeepByOrgIdAndType(OrgTypeEnum orgTypeEnum, Long orgId, boolean auth) {
|
|
Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
|
|
Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
|
|
- Set<Long> orgIds = null;
|
|
|
|
- if (OrgTypeEnum.TEACHING_ROOM.equals(orgTypeEnum)) {
|
|
|
|
- orgIds = teachcloudCommonService.listSubOrgIds(null);
|
|
|
|
|
|
+ Set<Long> orgIds = new HashSet<>(); // 下级机构集合
|
|
|
|
+ Set<Long> authOrgIdSet = new HashSet<>(); // 当前用户数据权限下的机构集合
|
|
|
|
+ Set<Long> orgIdSet = new HashSet<>(); // 输入机构下的所有下级机构集合
|
|
|
|
+ if (auth) {
|
|
|
|
+ authOrgIdSet = teachcloudCommonService.listSubOrgIds(null);
|
|
}
|
|
}
|
|
|
|
+ if (SystemConstant.longNotNull(orgId)) {
|
|
|
|
+ orgIdSet = teachcloudCommonService.listSubOrgIds(orgId);
|
|
|
|
+ }
|
|
|
|
+ orgIds.addAll(authOrgIdSet);
|
|
|
|
+ orgIds.addAll(orgIdSet);
|
|
QueryWrapper<SysOrg> queryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<SysOrg> queryWrapper = new QueryWrapper<>();
|
|
queryWrapper.lambda().eq(SysOrg::getSchoolId, schoolId)
|
|
queryWrapper.lambda().eq(SysOrg::getSchoolId, schoolId)
|
|
.eq(SysOrg::getType, orgTypeEnum)
|
|
.eq(SysOrg::getType, orgTypeEnum)
|
|
.eq(SysOrg::getEnable, true);
|
|
.eq(SysOrg::getEnable, true);
|
|
- if (Objects.nonNull(orgIds)) {
|
|
|
|
|
|
+ if (orgIds.size() > 0) {
|
|
queryWrapper.lambda().in(SysOrg::getId, orgIds);
|
|
queryWrapper.lambda().in(SysOrg::getId, orgIds);
|
|
}
|
|
}
|
|
-
|
|
|
|
return this.list(queryWrapper);
|
|
return this.list(queryWrapper);
|
|
}
|
|
}
|
|
}
|
|
}
|